ECC Tools Cost Audit
Use this skill when the user suspects the ECC Tools GitHub App is burning cost, over-creating PRs, bypassing usage limits, or routing free users into premium analysis paths.
This is a focused operator workflow for the sibling ECC-Tools repo. It is not a generic billing skill and it is not a repo-wide code review pass.
Skill Stack
Pull these ECC-native skills into the workflow when relevant:
autonomous-loops for bounded multi-step audits that cross webhooks, queues, billing, and retries
agentic-engineering for tracing the request path into discrete, provable units
customer-billing-ops when repo behavior and customer-impact math must be separated cleanly
search-first before inventing helpers or re-implementing repo-local utilities
security-review when auth, usage gates, entitlements, or secrets are touched
verification-loop for proving rerun safety and exact post-fix state
tdd-workflow when the fix needs regression coverage in the worker, router, or billing paths
When To Use
- user says ECC Tools burn rate, PR recursion, over-created PRs, usage-limit bypass, or premium-model leakage
- the task is in the sibling
ECC-Tools repo and depends on webhook handlers, queue workers, usage reservation, PR creation logic, or paid-gate enforcement
- a customer report says the app created too many PRs, billed incorrectly, or analyzed code without producing a usable result
Scope Guardrails
- work in the sibling
ECC-Tools repo, not in everything-Codex
- start read-only unless the user clearly asked for a fix
- do not mutate unrelated billing, checkout, or UI flows while tracing analysis burn
- treat app-generated branches and app-generated PRs as red-flag recursion paths until proved otherwise
- separate three things explicitly:
- repo-side burn root cause
- customer-facing billing impact
- product or entitlement gaps that need backlog follow-up
Workflow
1. Freeze repo scope
- switch into the sibling
ECC-Tools repo
- check branch and local diff first
- identify the exact surface under audit:
- webhook router
- queue producer
- queue consumer
- PR creation path
- usage reservation / billing path
- model routing path
2. Trace ingress before theorizing
- inspect
src/index.* or the main entrypoint first
- map every enqueue path before suggesting a fix
- confirm which GitHub events share a queue type
- confirm whether push, pull_request, synchronize, comment, or manual re-run events can converge on the same expensive path
3. Trace the worker and side effects
- inspect the queue consumer or scheduled worker that handles analysis
- confirm whether a queued analysis always ends in:
- PR creation
- branch creation
- file updates
- premium model calls
- usage increments
- if analysis can spend tokens and then fail before output is persisted, classify it as burn-with-broken-output
4. Audit the high-signal burn paths
PR multiplication
- inspect PR helpers and branch naming
- check dedupe, synchronize-event handling, and existing-PR reuse
- if app-generated branches can re-enter analysis, treat that as a priority-0 recursion risk
Quota bypass
- inspect where quota is checked versus where usage is reserved or incremented
- if quota is checked before enqueue but usage is charged only inside the worker, treat concurrent front-door passes as a real race
Premium-model leakage
- inspect model selection, tier branching, and provider routing
- verify whether free or capped users can still hit premium analyzers when premium keys are present
Retry burn
- inspect retry loops, duplicate queue jobs, and deterministic failure reruns
- if the same non-transient error can spend analysis repeatedly, fix that before quality improvements
5. Fix in burn order
If the user asked for code changes, prioritize fixes in this order:
- stop automatic PR multiplication
- stop quota bypass
- stop premium leakage
- stop duplicate-job fanout and pointless retries
- close rerun/update safety gaps
Keep the pass bounded to one to three direct fixes unless the same root cause clearly spans multiple files.
6. Verify with the smallest proving steps
- rerun only the targeted tests or integration slices that cover the changed path
- verify whether the burn path is now:
- blocked
- deduped
- downgraded to cheaper analysis
- or rejected early
- state the final status exactly:
- changed locally
- verified locally
- pushed
- deployed
- still blocked
High-Signal Failure Patterns
1. One queue type for all triggers
If pushes, PR syncs, and manual audits all enqueue the same job and the worker always creates a PR, analysis equals PR spam.
2. Post-enqueue usage reservation
If usage is checked at the front door but only incremented in the worker, concurrent requests can all pass the gate and exceed quota.
3. Free tier on premium path
If free queued jobs can still route into Anthropic or another premium provider when keys exist, that is real spend leakage even if the user never sees the premium result.
4. App-generated branches re-enter the webhook
If pull_request.synchronize, branch pushes, or comment-triggered runs fire on app-owned branches, the app can recursively analyze its own output.
5. Expensive work before persistence safety
If the system can spend tokens and then fail on PR creation, file update, or branch collision, it is burning cost without shipping value.
Pitfalls
- do not begin with broad repo wandering; settle webhook -> queue -> worker first
- do not mix customer billing inference with code-backed product truth
- do not fix lower-value quality issues before the highest-burn path is contained
- do not claim burn is fixed until the narrow proving step was rerun
- do not push or deploy unless the user asked
- do not touch unrelated repo-local changes if they are already in progress
Verification
- root causes cite exact file paths and code areas
- fixes are ordered by burn impact, not code neatness
- proving commands are named
- final status distinguishes local change, verification, push, and deployment
1---2name: ecc-tools-cost-audit3description: Evidence-first ECC Tools burn and billing audit workflow. Use when investigating runaway PR creation, quota bypass, premium-model leakage, duplicate jobs, or GitHub App cost spikes in the ECC Tools repo.4---5
6# ECC Tools Cost Audit
7
8Use this skill when the user suspects the ECC Tools GitHub App is burning cost, over-creating PRs, bypassing usage limits, or routing free users into premium analysis paths.
9
10This is a focused operator workflow for the sibling [ECC-Tools](../../ECC-Tools) repo. It is not a generic billing skill and it is not a repo-wide code review pass.
11
12## Skill Stack
13
14Pull these ECC-native skills into the workflow when relevant:
15
16- `autonomous-loops` for bounded multi-step audits that cross webhooks, queues, billing, and retries
17- `agentic-engineering` for tracing the request path into discrete, provable units
18- `customer-billing-ops` when repo behavior and customer-impact math must be separated cleanly
19- `search-first` before inventing helpers or re-implementing repo-local utilities
20- `security-review` when auth, usage gates, entitlements, or secrets are touched
21- `verification-loop` for proving rerun safety and exact post-fix state
22- `tdd-workflow` when the fix needs regression coverage in the worker, router, or billing paths
23
24## When To Use
25
26- user says ECC Tools burn rate, PR recursion, over-created PRs, usage-limit bypass, or premium-model leakage
27- the task is in the sibling `ECC-Tools` repo and depends on webhook handlers, queue workers, usage reservation, PR creation logic, or paid-gate enforcement
28- a customer report says the app created too many PRs, billed incorrectly, or analyzed code without producing a usable result
29
30## Scope Guardrails
31
32- work in the sibling `ECC-Tools` repo, not in `everything-Codex`
33- start read-only unless the user clearly asked for a fix
34- do not mutate unrelated billing, checkout, or UI flows while tracing analysis burn
35- treat app-generated branches and app-generated PRs as red-flag recursion paths until proved otherwise
36- separate three things explicitly:
37 - repo-side burn root cause
38 - customer-facing billing impact
39 - product or entitlement gaps that need backlog follow-up
40
41## Workflow
42
43### 1. Freeze repo scope
44
45- switch into the sibling `ECC-Tools` repo
46- check branch and local diff first
47- identify the exact surface under audit:
48 - webhook router
49 - queue producer
50 - queue consumer
51 - PR creation path
52 - usage reservation / billing path
53 - model routing path
54
55### 2. Trace ingress before theorizing
56
57- inspect `src/index.*` or the main entrypoint first
58- map every enqueue path before suggesting a fix
59- confirm which GitHub events share a queue type
60- confirm whether push, pull_request, synchronize, comment, or manual re-run events can converge on the same expensive path
61
62### 3. Trace the worker and side effects
63
64- inspect the queue consumer or scheduled worker that handles analysis
65- confirm whether a queued analysis always ends in:
66 - PR creation
67 - branch creation
68 - file updates
69 - premium model calls
70 - usage increments
71- if analysis can spend tokens and then fail before output is persisted, classify it as burn-with-broken-output
72
73### 4. Audit the high-signal burn paths
74
75#### PR multiplication
76
77- inspect PR helpers and branch naming
78- check dedupe, synchronize-event handling, and existing-PR reuse
79- if app-generated branches can re-enter analysis, treat that as a priority-0 recursion risk
80
81#### Quota bypass
82
83- inspect where quota is checked versus where usage is reserved or incremented
84- if quota is checked before enqueue but usage is charged only inside the worker, treat concurrent front-door passes as a real race
85
86#### Premium-model leakage
87
88- inspect model selection, tier branching, and provider routing
89- verify whether free or capped users can still hit premium analyzers when premium keys are present
90
91#### Retry burn
92
93- inspect retry loops, duplicate queue jobs, and deterministic failure reruns
94- if the same non-transient error can spend analysis repeatedly, fix that before quality improvements
95
96### 5. Fix in burn order
97
98If the user asked for code changes, prioritize fixes in this order:
99
1001. stop automatic PR multiplication
1012. stop quota bypass
1023. stop premium leakage
1034. stop duplicate-job fanout and pointless retries
1045. close rerun/update safety gaps
105
106Keep the pass bounded to one to three direct fixes unless the same root cause clearly spans multiple files.
107
108### 6. Verify with the smallest proving steps
109
110- rerun only the targeted tests or integration slices that cover the changed path
111- verify whether the burn path is now:
112 - blocked
113 - deduped
114 - downgraded to cheaper analysis
115 - or rejected early
116- state the final status exactly:
117 - changed locally
118 - verified locally
119 - pushed
120 - deployed
121 - still blocked
122
123## High-Signal Failure Patterns
124
125### 1. One queue type for all triggers
126
127If pushes, PR syncs, and manual audits all enqueue the same job and the worker always creates a PR, analysis equals PR spam.
128
129### 2. Post-enqueue usage reservation
130
131If usage is checked at the front door but only incremented in the worker, concurrent requests can all pass the gate and exceed quota.
132
133### 3. Free tier on premium path
134
135If free queued jobs can still route into Anthropic or another premium provider when keys exist, that is real spend leakage even if the user never sees the premium result.
136
137### 4. App-generated branches re-enter the webhook
138
139If `pull_request.synchronize`, branch pushes, or comment-triggered runs fire on app-owned branches, the app can recursively analyze its own output.
140
141### 5. Expensive work before persistence safety
142
143If the system can spend tokens and then fail on PR creation, file update, or branch collision, it is burning cost without shipping value.
144
145## Pitfalls
146
147- do not begin with broad repo wandering; settle webhook -> queue -> worker first
148- do not mix customer billing inference with code-backed product truth
149- do not fix lower-value quality issues before the highest-burn path is contained
150- do not claim burn is fixed until the narrow proving step was rerun
151- do not push or deploy unless the user asked
152- do not touch unrelated repo-local changes if they are already in progress
153
154## Verification
155
156- root causes cite exact file paths and code areas
157- fixes are ordered by burn impact, not code neatness
158- proving commands are named
159- final status distinguishes local change, verification, push, and deployment