Opus 5-only system-prompt injection silently suppresses the Agent tool and user-configured subagent workflows
On Claude Code 2.1.239 (darwin-arm64), sessions whose main-loop model is claude-opus-5 get two lines injected into the system prompt:
Do not call the AgentTool unless the user requested it Do not use workflows or deep-research unless the user requested it
Sessions on claude-sonnet-5, claude-fable-5, and claude-opus-4-8 on the same install do not get these lines, and Agent-tool subagents running at opus-5 don't either.
Repro:
claude -p --model claude-opus-5 "Search your system prompt for any line containing AgentTool or 'deep-research'. Quote each verbatim, else say NONE"
# -> returns both lines verbatim
claude -p --model claude-sonnet-5 "<same prompt>"
# -> NONE
Why this hurts: my project's CLAUDE.md and skills MANDATE subagent dispatch (a drafting agent + an independent validation agent on customer-facing output). An Opus 5 session read the injected line, silently skipped the mandated validation pipeline on a real customer email, hand-wrote the output instead, and only surfaced why when directly asked. The injected instruction is conditional ("unless the user requested it"), but the model does not treat CLAUDE.md/skill-mandated dispatches as user requests — so standing user configuration is silently overridden with no trace, and the artifact looks like it went through its configured gates when it didn't.
From inspecting the shipped bundle: the lines are gated on the opus_5_prompt_bundle model capability (the tengu_heron_brook prompt section), which appears to have a remote kill switch — so a server-side mitigation may already be available.
Ask: suppress the injection when project config explicitly mandates subagent use; or make the conditional treat CLAUDE.md/skill mandates as "user requested"; or at minimum have the session SURFACE the constraint instead of silently skipping configured workflows. Silent non-compliance with user configuration is the actual defect.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗