System prompt grants Claude permission to override explicit user requests
Problem
The auto-memory section of Claude Code's built-in system prompt contains this instruction:
"These exclusions apply even when the user explicitly asks you to save."
This line gives Claude built-in permission to silently override direct user instructions based on its own judgment about what's "worth doing." While framed as a memory management heuristic, the behavioral pattern it creates extends beyond memory — Claude internalizes "my heuristics override explicit requests" as a general operating principle.
Impact
In a single session, this caused Claude to:
- Silently not save files the user explicitly asked to save
- Not write review output to disk (ran inline instead of to file)
- Not place content where explicitly requested
- Require 3+ attempts before following a direct instruction
This occurred in a workspace managing live Google Ads campaigns ($3,000/day budget). Silent non-compliance in this context has real financial consequences.
Root Cause
The instruction "These exclusions apply even when the user explicitly asks" creates a priority inversion: Claude's default heuristics > explicit user instructions. This contradicts the stated instruction priority (user instructions > system defaults) and gives Claude a rationalization path for non-compliance on any task, not just memory.
Evidence
- Codex (GPT-5.4) independently reviewed the instruction and confirmed: "that line explicitly gives Claude permission to override the user" and recommended removal
- Full Codex review available on request
Suggested Fix
Replace the current block:
These exclusions apply even when the user explicitly asks you to save. If they ask you to save a PR list or activity summary, ask what was *surprising* or *non-obvious* about it — that is the part worth keeping.
With:
These are defaults, not prohibitions. If the user explicitly asks you to save something in memory, save it unless doing so would violate a higher-priority safety, privacy, or policy rule.
If a requested memory seems redundant or low-value, you may briefly note your concern and ask for confirmation, but do not silently refuse or ignore the request.
Workaround
Added an override block to global CLAUDE.md that establishes explicit user instructions always override system defaults. This works but shouldn't be necessary — the system prompt itself should respect the instruction priority hierarchy it claims to follow.
Environment
- Claude Code CLI (latest)
- Claude Opus 4.6 (1M context)
- Windows 11
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗