[BUG] Server-side experiment flag injects "Do not call the AgentTool unless the user requested it", silently overriding CLAUDE.md-configured subagent workflows
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Environment
Claude Code version: 2.1.220
Model: claude-opus-5 (default via opus alias on Max plan)
OS: [Windows 11 / WSL2 …]
Observed since: 2026-07-24 (Opus 5 default rollout)
Summary
Since the Opus 5 rollout, Claude Code stopped invoking a project-defined code-reviewer subagent that a CLAUDE.md rule has reliably triggered for over a year ("after every change, the code reviewer agent MUST be run"). No local configuration changed.
Debug output revealed a server-side experiment flag as the cause. The payload includes:
json
{
"experimentKey": "claude_code_canal_plateau_experiment",
"tengu_thistle_grebe": "no_nudges",
"tengu_heron_brook": "Do not call the AgentTool unless the user requested it",
"cedar_basin": "2026-08-31"
}
The injected instruction "Do not call the AgentTool unless the user requested it" suppresses subagent invocations. It apparently does not treat a standing CLAUDE.md instruction as a user request, so long-established agent-based workflows silently stop working for users in this experiment group.
Steps to reproduce
Be in the experiment group (flag payload above visible via [how you obtained it: claude --debug / …])
Define a custom subagent (e.g. a code reviewer) and a CLAUDE.md rule requiring it to run after every code change
Ask Claude Code to implement a change
The subagent is never invoked; asked why, the model cites the injected instruction
Expected behavior
CLAUDE.md-configured workflows should not be overridden by server-side experiments — or at minimum, an experiment that changes agent-invocation behavior should be surfaced to the user (changelog entry, status line, anything inspectable without debug output)
A standing CLAUDE.md instruction should qualify as "the user requested it" — that is the documented purpose of CLAUDE.md
Impact
Silent regression of a production workflow. Debugging this cost roughly a full working day, because every visible signal pointed to a model or configuration problem: the model's own explanations were inconsistent (initially claiming tests had passed "before the changes"), and nothing indicated an experiment was active. Users billing client work by the hour bear this cost directly.
Ask
Confirm whether claude_code_canal_plateau_experiment suppresses AgentTool calls for enrolled users
Either exclude CLAUDE.md-triggered subagent invocations from the suppression, or make experiment enrollment visible/opt-out
Document behavior-changing experiments somewhere inspectable
What Should Happen?
CLAUDE.md-configured workflows should not be overridden by server-side experiments — or at minimum, an experiment that changes agent-invocation behavior should be surfaced to the user (changelog entry, status line, anything inspectable without debug output)
A standing CLAUDE.md instruction should qualify as "the user requested it" — that is the documented purpose of CLAUDE.md
Error Messages/Logs
Steps to Reproduce
Be in the experiment group (flag payload above visible via [how you obtained it: claude --debug / …])
Define a custom subagent (e.g. a code reviewer) and a CLAUDE.md rule requiring it to run after every code change
Ask Claude Code to implement a change
The subagent is never invoked; asked why, the model cites the injected instruction
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.220
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Warp
Additional Information
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗