Quality first, tokens second — and they align. A single agent grinding for hundreds of turns doesn't just cost more; it gets worse (context rot: by turn 200 it re-reads a bloated history every turn and reasons over noise). Small, fresh-context units are both cheaper and smarter.
We learned this on a real bill: three days of undisciplined dispatch, one week's entire quota gone to cached-context churn. The autopsy is in case-studies/token-burn-postmortem.md.
Rules
- One agent per ticket by default. A fleet needs all three preconditions:
- Quote first — say out loud, before launch: how many agents, which model tier each one runs on, how long, estimated tokens.
- Per-agent contract — ≤100 turns, ≤5 tasks; hit a cap → save progress to disk, report, split into a fresh agent.
- True parallelism only — fan out only work items with no dependencies on each other.
- Every quote names a tier per agent. Tier sits beside agent count, duration and budget percentage — same line, not a footnote, never "we'll decide as we go". Two reasons, both load-bearing. The founder is the one paying for this compute: a quote without tiers asks him to approve a blind box. And having to write the tier down forces you to re-read your own staffing before launch — "cheapest tier" sitting next to "verify the payment logic" is a mistake you catch when you have to say it out loud. Which tier to pick:
model-tiering.
- Verification force ≤ 1/3 of build force. Reviewer armies grow quadratically if you let them (N findings × M verifiers). Cap adversarial review at 2 rounds — converged means stop; there is no "one more round for safety".
- Slice work vertically. A ticket = one thin end-to-end feature (schema + logic + UI + test) that fits in a single fresh context window. Never slice by technical layer — layer-slices create the 300-turn monster agents.
- The expensive session never digs. Your main (priciest) session dispatches a scout to read files or the web and consumes its conclusion. Thinking at the top, grinding at the bottom — but note that scouting an unfamiliar codebase is thinking, not grinding, and is staffed accordingly:
model-tiering.
- A hot usage line is a diagnosis, not an order to downgrade. Chase the cause, warn the person paying when a line crosses the high-water mark you picked, and keep planning and final judgment at full strength:
model-tiering.
- Restarts resume, never re-run. Crashed work restarts from its saved artifacts. Re-running from scratch doubles the bill for zero new value.
Success criteria
Every dispatch was quoted before launch, tier named per agent. No agent exceeded its contract. The bill correlates with shipped output — and the top line item is thinking, not grinding.
1---2name: dispatch-economics3description: Cost and quality discipline for dispatching sub-agents, background workers, or multi-agent workflows. Use before launching any agent fleet or long-running autonomous task, and whenever someone mentions burning through quota or budget.4---56Quality first, tokens second — and they align. A single agent grinding for hundreds of turns doesn't just cost more; it gets *worse* (context rot: by turn 200 it re-reads a bloated history every turn and reasons over noise). Small, fresh-context units are both cheaper and smarter.78We learned this on a real bill: three days of undisciplined dispatch, one week's entire quota gone to cached-context churn. The autopsy is in [case-studies/token-burn-postmortem.md](../../case-studies/token-burn-postmortem.md).910## Rules1112- **One agent per ticket by default.** A fleet needs all three preconditions:13 1. **Quote first** — say out loud, before launch: how many agents, which model tier each one runs on, how long, estimated tokens.14 2. **Per-agent contract** — ≤100 turns, ≤5 tasks; hit a cap → save progress to disk, report, split into a fresh agent.15 3. **True parallelism only** — fan out only work items with no dependencies on each other.16- **Every quote names a tier per agent.** Tier sits beside agent count, duration and budget percentage — same line, not a footnote, never "we'll decide as we go". Two reasons, both load-bearing. The founder is the one paying for this compute: a quote without tiers asks him to approve a blind box. And having to write the tier down forces you to re-read your own staffing before launch — "cheapest tier" sitting next to "verify the payment logic" is a mistake you catch when you have to say it out loud. Which tier to pick: `model-tiering`.17- **Verification force ≤ 1/3 of build force.** Reviewer armies grow quadratically if you let them (N findings × M verifiers). Cap adversarial review at 2 rounds — converged means stop; there is no "one more round for safety".18- **Slice work vertically.** A ticket = one thin end-to-end feature (schema + logic + UI + test) that fits in a single fresh context window. Never slice by technical layer — layer-slices create the 300-turn monster agents.19- **The expensive session never digs.** Your main (priciest) session dispatches a scout to read files or the web and consumes its conclusion. Thinking at the top, grinding at the bottom — but note that scouting an unfamiliar codebase is thinking, not grinding, and is staffed accordingly: `model-tiering`.20- **A hot usage line is a diagnosis, not an order to downgrade.** Chase the cause, warn the person paying when a line crosses the high-water mark you picked, and keep planning and final judgment at full strength: `model-tiering`.21- **Restarts resume, never re-run.** Crashed work restarts from its saved artifacts. Re-running from scratch doubles the bill for zero new value.2223## Success criteria2425Every dispatch was quoted before launch, tier named per agent. No agent exceeded its contract. The bill correlates with shipped output — and the top line item is thinking, not grinding.