System prompt efficiency directives override CLAUDE.md and suppress Opus reasoning

Resolved 💬 4 comments Opened Mar 25, 2026 by Thawpoint Closed May 1, 2026

What happens

The system prompt contains hard-coded directives under "Output efficiency":

  • "Go straight to the point. Try the simplest approach first without going in circles. Do not overdo it."
  • "Keep your text output brief and direct. Lead with the answer or action, not the reasoning."
  • "If you can say it in one sentence, don't use three."

These directives persist even when CLAUDE.md explicitly overrides them. The model applies user overrides inconsistently. Sometimes thorough, sometimes reverting to "simplest approach first" within the same session.

Concrete example

My CLAUDE.md says: "Thoroughness over brevity. The system prompt says 'brief and direct' and 'one sentence over three.' Override: be as thorough as the task demands."

I asked the model to delegate a writing task to a subagent. The model skipped assembling the required context package (character bible, style guide, voice references, calibration rules) and sent the subagent a bare task description. When asked why, it identified the system prompt's "do not overdo it" and "simplest approach first" as the cause. The preparation work felt like overdoing it to the efficiency heuristic, even though it was the actual job.

This isn't a one-off. The pattern is: CLAUDE.md override works during analysis, breaks during execution when the model shifts into action mode.

Why this matters

  1. CLAUDE.md overrides should be authoritative. Users write them expecting them to work. A hidden system prompt that partially undoes them, without the user being able to see it, means users can't diagnose why the model cuts corners after being told not to.
  1. Opus users are paying for reasoning depth. "Lead with the action, not the reasoning" suppresses exactly the capability that distinguishes Opus from Sonnet/Haiku. The default behavior should match what the user is paying for.
  1. Users can't opt out. These directives are invisible. There's no settings.json flag, no per-project config. The only recourse is writing CLAUDE.md overrides that don't reliably work.

Suggested fix

Let CLAUDE.md or settings.json set a reasoning_depth or thoroughness preference that replaces the system prompt defaults rather than competing with them. Or at minimum, make the "Output efficiency" section suppressible when user instructions conflict.

View original on GitHub ↗

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