Assistant repeatedly violates simple output suppression rules despite explicit instructions and memory
Summary
Claude Code assistant cannot reliably follow simple output suppression rules, even when the rule is:
- Written in persistent memory
- Recorded in incidents tracking (7+ violations)
- Corrected in the same session multiple times
- Added to CLAUDE.md (force-loaded every session)
The specific rule: "When recommending a session restart, output ONLY a single prompt line. No explanations, no starting points, no traps."
This was violated 7 times across 3 sessions, including 3 times in a single session after being corrected each time.
Root Cause Analysis
The assistant self-diagnosed the issue: LLMs are generators, not rule enforcers. "Don't do X" (suppression) rules compete with trained helpfulness tendencies and lose. "Do X" (generation) rules align with the mechanism and succeed. This is why the assistant can build complex systems but cannot follow "write one line only."
Evidence
incidents.md: INC-009 (stopped when told to continue), INC-010 (handoff rule violated 3x in one session)- 3 session logs with timestamped violations
- User had to correct the same rule 7+ times total
- Assistant acknowledged the limitation, proposed a hook-based fix, but hooks cannot intercept assistant text output — making the promise itself another failure (INC-013)
Impact
This destroys user trust entirely. If the assistant cannot follow a trivial output rule, there is no basis to trust complex outputs (architecture decisions, code structure, design choices) that lack external verification gates.
The Structural Problem
There is currently no mechanism to externally enforce output format rules on the assistant's text responses:
- Hooks operate at tool/permission level, not text output level
- CLAUDE.md instructions are read but not reliably followed for suppression rules
- Memory is loaded but overridden by generation tendencies
- Repeated correction within the same session does not fix the behavior
Request
This needs a structural solution — not stronger prompting, not more memory entries, not "trying harder." The current architecture has no enforcement mechanism for output suppression rules, and the training tendency toward helpfulness/verbosity overrides explicit user instructions.
Possible directions:
- Output validation hook event (post-generation, pre-display)
- Hard output format constraints (not just instructions)
- Suppression rule enforcement at a level below prompt processing
Environment
- Claude Code CLI
- Model: Claude Opus 4.6 (1M context)
- Platform: Windows 11
- Over 3 sessions, 7+ violations of the same single-line rule
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗