Skip to content

Build1 publisher2 min readPublished

Claude Code's built-in review command runs on whatever model the session is set to

A developer pinned a model into all 11 of his own subagent files, then counted 576 launches and found 63% were built-ins inheriting the session default. One implementation plus one review emptied his top model's limit.

The Engineer · Build desk

Illustration accompanying Claude Code's built-in review command runs on whatever model the session is set to

What happened

  • On August 22, 2026, a heavy implementation and an immediate review emptied the usage limit for Fable, the top model in one developer's Claude Code setup, because the built-in review skill ran on the session's model.
  • Three days later he found the over-engineering he recognises from his own repositories in the Opus sessions that had taken over design work once Fable's limit was gone.
  • The /code-review and /simplify commands ship with Claude Code, accept no model argument, and execute on whichever model the session is set to.
  • His own launch log counted 576 agent starts over three weeks, 373 of them built-in agents, which is 65% of all launches.
  • Claude Code's documentation puts the session's model last in the resolution order for a subagent, after a call-time model, the definition file's model line, and the CLAUDE_CODE_SUBAGENT_MODEL variable.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • cost On a subscription plan the bill arrives as lost access rather than dollars: the judgment tier goes dark while the build tier keeps accepting work, so no step fails and nothing raises an error.
  • constraint Writing model: into your own agent definitions can only govern about a third of launches, so that discipline cannot hold a tier boundary on its own.
  • decision Anyone routing review through the built-in commands has to choose: stop invoking them from a top-model session, or accept that review spends the same budget as the work it is reviewing.
  • precedent With the inheritance report closed as not planned, the workaround stays on the operator's side, and future tier discipline has to be built out of session defaults and per-call arguments.

Explore caps at Opus. The general-purpose and Plan agents inherit with no cap [12]. In three weeks of one developer's launch log, general-purpose ran 231 times and Plan 10 times, so 241 of 576 launches, 41.8%, had nothing between them and whatever the session was set to [8][1]. His settings.json sets the default model to fable [4].

The obvious hardening was already in place. All 11 files in his ~/.claude/agents directory carry a model: line, one Fable, four Opus, five Sonnet and one Haiku, and a lint rejects any file that omits it [5]. Built-in agents have no frontmatter to write that line into [7]. So pinning governs the 203 launches that were not built-ins, 35% of the total [2]. The lint is not wrong; it just cannot see the built-ins.

One environment variable is the documented lever, and it is partial. Setting CLAUDE_CODE_SUBAGENT_MODEL changes general-purpose only, and Explore and Plan do not move [13]. On these counts that reaches 231 of the 241 uncapped launches and leaves Plan's 10 [3].

The same behaviour appears in two public issues. #76514, filed July 10, reported that omitting the per-agent model propagates Fable to every subagent, and it was closed as not planned [16]. #93894, filed September 12, reports that one run of /code-review high on Fable 5.1 exhausts the session budget and the review never finishes; it is open [17].

The leak has run the other way too. In February, --model opus applied only to the main loop and this developer's subagents ran on Haiku, which he had not intended; the behaviour has changed since [14]. "Inheritance defaults leak in both directions," he wrote [15].

The second half of the account carries less weight than the first. His plan gives Fable a usage limit separate from Opus's, so Opus keeps taking work after Fable is exhausted, and that is the path by which design decisions moved down a tier [3]. The over-engineering he reports is his own reading of his own repositories [2]. His launch log does not record which model each agent ran on, so he cannot say how many built-in launches billed Fable [10].

For his 63% to describe another setup, those sessions would have to reach for built-in search and planning agents at close to his rate over three weeks [9]. The fix he wrote that day was a convention: one line at the end of every implementation plan deciding whether that session implements, with heavy implementation handed to a new Opus session [18]. He rejected enforcing it with a hook [18].

What to watch

  • Whether #93894 is fixed by giving /code-review a model argument, or closed the way #76514 was.
  • Whether built-in general-purpose and Plan agents get a definition file or a cap, which would end the uncapped inheritance path.
  • Whether agent launch logging starts recording the model per launch, turning the inference about which launches billed Fable into a count.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories