Stop burning tokens on code review (Swizec Teller)
swizec-teller, 15 Aug 2026. A cost report from a team drowning in review load, and the first source here that puts a price on model-based code review rather than an opinion. The argument: the deterministic half of a review guideline should be compiled into linters, and the model kept for the half that genuinely needs judgement — see deterministic-review-gate.
The numbers
The team shipped 2,900 pull requests last quarter, about 10 reviews a day per person. Two model-based review setups were tried against that load:
| Setup | Cost | What it produced |
|---|---|---|
| Cursor's BugBot | ~$1,000/week | Edge cases "that are not a big problem," plus fluff |
| Claude review skills in GitHub Actions | $1,000 in a single day | Enough noise that reviewing the AI's comments cost more time than reading the code |
The failure is not that the reviews were wrong. It is that a reviewer now has two queues — the diff and the machine's commentary — and the second one is longer.
What replaced it
Rules extracted from the team's own written guidelines, by asking a model
(Fable) to "turn the deterministic parts into a linter." The examples given:
no-raw-color, descriptive-test-names, no-swallowed-errors, and vale-de-blab (prose clarity in
docs and comments).
The properties that matter are timing and determinism, not accuracy:
- Seconds, not minutes. The slowest linter takes 27 seconds for a full sweep, against 10–30 minutes for a model review.
- The same input gives the same comment, so a reviewer can dismiss a known rule at a glance instead of re-reading an argument.
- It runs in the editor and on pre-commit — which is the point for this spoke: the check fires before the agent pushes, inside the loop, rather than after the PR exists.
Why it belongs here rather than in dev-tooling
A linter is ordinary build infrastructure and ../dev-tooling-wiki owns that. What makes this an
agentic-tooling source is the direction of the arrow: the model is used once, to compile prose
rules into deterministic checks, and then removed from the hot path that runs on every agent-authored
commit. That is a claim about where a model belongs in a loop, and it lands directly on the spoke's
verification thread — agent-loops-verification argued verification is the binding constraint and
proposed better environments; this argues part of it should not involve a model at all.
Tier and what it can carry
T2 — a practitioner reporting measured figures from an operation they ran (PR volume, weekly spend, sweep times), which is what the tier rule asks for. What it cannot carry: there is no A/B, no defect-detection rate for either approach, and no statement of what the linters miss that BugBot caught. The cost side is measured; the quality side is asserted. Read it as one team's economics, not as evidence that model review finds less.
Related
deterministic-review-gate · jev-code-reviewer · swizec-teller · agent-loops-verification · shipping-without-human-verification · agentic-coding-harness · claude-code · skill-induced-failure · synthesis