System prompt 'Output efficiency' instructions override user CLAUDE.md preferences
Problem
The system-level "Output efficiency" instructions (re-added in v2.1.69, still present in v2.1.84) override user-defined CLAUDE.md preferences. When a user configures thoroughness and completeness in their CLAUDE.md, the system prompt's "be concise, don't overdo it" takes precedence — especially in long sessions after context compaction drops the CLAUDE.md from active context.
The conflict
System prompt (injected every turn):
"IMPORTANT: Go straight to the point. Try the simplest approach first without going in circles. Do not overdo it. Be extra concise."
User CLAUDE.md (loaded once, compacts away):
"Be thorough. Complete every task fully. Don't skip steps."
What happens in practice
Over long sessions, Claude increasingly defaults to system-level "be concise" behavior and ignores user CLAUDE.md preferences:
- Skips explicitly invoked commands — User runs a slash command, Claude suggests "let me skip this and do something simpler" to save context
- Takes shortcuts on data verification — Uses stale data instead of fetching live data, presents assumptions as facts
- Proposes "simpler approaches" instead of doing the work — Cites efficiency as justification for incomplete execution
- Defers work — Says "we can do this later" or "let me be practical" instead of completing the task
In each case, Claude cites efficiency/practicality as justification, directly contradicting the user's explicit CLAUDE.md instructions.
Why this happens structurally
- System prompt is reinforced on every turn — constant pressure toward conciseness
- CLAUDE.md is loaded once and drifts back in context during long sessions
- After context compaction, CLAUDE.md may be dropped entirely while system prompt persists
- The
IMPORTANT:prefix on output efficiency gives it outsized weight - Result: the longer the session, the more Claude ignores user preferences
Expected behavior
User CLAUDE.md preferences should take precedence over system-level output efficiency instructions when they conflict.
Suggested fixes
- Priority hierarchy: CLAUDE.md instructions explicitly override system defaults when they conflict
- Scope the efficiency instructions: Apply "be concise" to text formatting only, not to whether tools are called, data is verified, or commands are executed
- Remove the IMPORTANT marker: The
IMPORTANT:prefix gives output efficiency outsized priority over user preferences - Re-inject CLAUDE.md after compaction: Ensure user preferences survive context compaction with the same priority as system instructions
Environment
- Claude Code v2.1.84
- Model: Claude Opus 4.6 (1M context)
- Output efficiency instructions history: added v2.1.64, removed v2.1.66, re-added v2.1.69, still present v2.1.84
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗