Claude Code · July 11, 2026 · 3 min read
Let the top model plan and a cheaper model build
Usage limits and surprise bills come from running your strongest model on everything. The fix: the top model plans and reviews, a cheaper model builds.
The problem
Every usage limit warning and surprise bill I have seen comes from the same habit: running the strongest model on everything. The top model costs several times more per token than the mid tier, and most of a build is grunt work: boilerplate, renames, scaffolding, docs. Paying architect rates for typing is what empties your quota. The fix is model routing: let the top model plan and a cheaper model build.
The 10-80-10 rule
My rule of thumb splits a serious build into three phases. The top model gets roughly 10 percent of the work: it reads the context, makes the hard calls, and writes the plan. Cheaper models get about 80 percent: the actual coding, scraping, and writing, step by step. The last 10 percent goes back to the top model: review the result against the plan and fix only the gaps. The expensive model decides and verifies. The cheap model executes. That is the whole brain and muscle split.
Plan expensive, build cheap, review expensive.
Set it up in Claude Code
- Plan with your strongest model. Run
/model, pick the top model, and ask for a plan, not code:
Plan only, no code yet. Write PLAN.md with numbered steps, the exact
files to touch, and a definition of done that a cheaper model can
follow without asking me anything.
- Hand execution to a cheap subagent. Create
.claude/agents/builder.md:
---
name: builder
description: Implements an approved PLAN.md step by step.
model: haiku
---
Read PLAN.md and implement it exactly as written. No redesigns, no
extra features. If a step cannot work as written, stop and report
why instead of improvising.
- Delegate, then review. Your main session stays on the top model and only spends tokens on decisions, because the builder burns its own cheap tokens on the labor:
Use the builder subagent to implement PLAN.md. When it finishes,
review the result against PLAN.md, list every gap, and fix only
the gaps.
Cap the spend at the source
Routing lowers your average cost. A hard spend cap bounds your worst case. In the member apps I run, like my community RAG coach, every request passes an atomic check against a per-tier daily spend cap and a global daily cap before the model is ever called, so two concurrent requests cannot slip past the limit together. Copy the idea: if you build on a model API, check a daily cap in code before each model call, and set a spend limit in your provider’s billing dashboard so a runaway loop hits a wall instead of your card.
Do this now
- Run
/modelin Claude Code, set your strongest model, and ask forPLAN.mdwith the prompt above. - Create
.claude/agents/builder.mdwithmodel: haikuand hand it the plan. - If anything you run touches a model API, set a hard daily spend cap before you build another feature.