System prompt 'Output efficiency' instructions override user CLAUDE.md preferences

Resolved 💬 5 comments Opened Mar 26, 2026 by kulvirgit Closed May 3, 2026

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:

  1. Skips explicitly invoked commands — User runs a slash command, Claude suggests "let me skip this and do something simpler" to save context
  2. Takes shortcuts on data verification — Uses stale data instead of fetching live data, presents assumptions as facts
  3. Proposes "simpler approaches" instead of doing the work — Cites efficiency as justification for incomplete execution
  4. 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

  1. Priority hierarchy: CLAUDE.md instructions explicitly override system defaults when they conflict
  2. Scope the efficiency instructions: Apply "be concise" to text formatting only, not to whether tools are called, data is verified, or commands are executed
  3. Remove the IMPORTANT marker: The IMPORTANT: prefix gives output efficiency outsized priority over user preferences
  4. 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

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗