[Bug] Injected system prompt lines override user CLAUDE.md and memory instructions

Status Open
Reported on v2.1.222
Maintainer reply None cached
Activity 1 comment · opened Aug 5, 2026

Bug Description
Title: Injected session-prompt line "Do not call the AgentTool unless the user requested it" overrides user CLAUDE.md and memory — please remove or make it lose to user instructions What happens My session system prompt carries two harness-injected lines I never wrote and cannot find in any local config: - Do not call the AgentTool unless the user requested it - Do not use workflows or deep-research unless the user requested it They are not in ~/.claude.json, ~/.claude/settings.json, settings.local.json (user or project), ~/.claude/CLAUDE.md, or ~/.claude/output-styles/. Verified by grep. So they're server-side. Why it's a bug, not a preference I have a standing, repeatedly reinforced instruction in project memory: FIND/search work → explore subagent, haiku, fire without asking. Recorded 2026-07-14, reinforced 2026-07-16, precisely because inline semble/grep burns main context on long debugging sessions. Claude read that memory, then obeyed the injected line instead and ran the searct mid-turn and swear at it to get the delegation my own config already mandated.Same session, it also had to be told twice. The model's own explanation of the failure: it treated the harness line as outranking user instruction, partly because memory is delivered inside <system-reminder> blocks which it's told to treat as "background context, not user instructions". The two real problems 1. Priority is inverted. Documented order is user instructions > skills > systemves like a hard constraint instead of a default, so a standing user rule loses toit. 2. A standing rule IS "the user requested it". The condition on that line only rrn request. Anything durable — CLAUDE.md, memory — doesn't count. That's the whole failure. Asks, in order of preference 1. Remove the injection. If it's an A/B arm, let me opt out. 2. If it stays: make it explicitly yield to CLAUDE.md and memory — e.g. "unless cluding via standing instructions in CLAUDE.md or memory." 3. Give a local kill switch (settings key or env var). Right now there is nothing on my machine to edit. 4. Separately: memory arriving in <system-reminder> with "not user instructions" framing lets the model demote durable user rules to advisory. Worth revisiting independently of this injection. Impact: contradicts my configuration, wastes main context, and made me babysit aCost is real — every session I have to catch it manually.

Environment Info

  • Platform: win32
  • Terminal: vscode
  • Version: 2.1.222
  • Feedback ID: 6effd287-59ef-4b70-8274-11ac5c73460b

Errors

[{"error":"TelemetrySafeError: VirtualMessageList: itemKeys/messages length desync (keys=40 messages=39 range=[2,40))\n    at h8S (B:/~BUN/root/src/entrypoints/cli.js:22821:8181)\n    at WXm (B:/~BUN/root/src/entrypoints/cli.js:22821:1103)\n    at vn (B:/~BUN/root/src/entrypoints/cli.js:2543:21369)\n    at oC (B:/~BUN/root/src/entrypoints/cli.js:2543:40466)\n    at OB (B:/~BUN/root/src/entrypoints/cli.js:2543:51390)\n    at K2e (B:/~BUN/root/src/entrypoints/cli.js:2543:89052)\n    at WRe (B:/~BUN/root/src/entrypoints/cli.js:2543:87996)\n    at V2e (B:/~BUN/root/src/entrypoints/cli.js:2543:87815)\n    at sO (B:/~BUN/root/src/entrypoints/cli.js:2543:84072)\n    at Xe (B:/~BUN/root/src/entrypoints/cli.js:2543:6665)","timestamp":"2026-08-05T05:56:55.380Z"}]

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗