The fix

Built-in helpers run on Opus unless you name a model

1 model: on the spawn call beats everything below it 2 model: in the agent file "inherit" means use the main model 3 CLAUDE_CODE_SUBAGENT_MODEL environment default, used by general-purpose 4 The main conversation's model Opus, for us repo-scout agent file says haiku Haiku Explore no model passed Opus Explore model: haiku Haiku
✅Pass a model on every spawnRung 1 wins for every agent, built-in or not. Our CLAUDE.md tells Claude to name a tier every time.
🛟Set a defaultCLAUDE_CODE_SUBAGENT_MODEL=sonnet catches general-purpose when someone forgets. Explore and Plan still inherit.
🚫Deny Opus by nameAgent(model:opus) in deny blocks any spawn that asks for Opus.