Executive Summary
We are a Max Plan subscriber ($200/month, 6+ months of continuous production use) who has built what is likely one of the most comprehensive instruction-enforcement systems deployed on top of Claude Code: 24+ PreToolUse/PostToolUse hooks, a 400+ line CLAUDE.md with V-code enforcement, structured MEMORY.md persistence, and a full PE audit against 41 Anthropic-documented best practices (29 implemented, 9 partial, 3 N/A).
The model reads our rules. It acknowledges them. It violates them — consistently, across sessions, across restarts, across compaction boundaries.
This is not a prompting problem. We have the audit to prove it. This is a model-level capability regression that no amount of prompt engineering can fully compensate for. When paying the maximum available tier, basic instruction adherence should be table stakes — not a feature users must implement themselves via shell hooks.
Environment
| Field |
Value |
| Claude Code version |
v2.1.76 |
| Model |
claude-opus-4-6 (1M context) |
| OS |
Ubuntu 22.04, 8GB RAM |
| Plan |
Max ($200/month) |
| Usage duration |
6+ months, continuous production |
| Daily workload |
Multiple parallel agents, automated workflows |
Documented Failure Patterns
We have isolated five repeatable, observable failure patterns. These are not edge cases.
Pattern A: "Read-Acknowledge-Violate"
The model reads CLAUDE.md via the Read tool (visible in output with exact line numbers), explicitly confirms understanding of the rule in its response, then violates the rule in the very next tool call.
Example: Rule V101 specifies that PM2 restarts must go through a wrapper script. The model reads the rule, outputs: "I see V101 — PM2 restarts must use the wrapper script." Next tool call: pm2 restart directly. No hook = production breakage.
Pattern B: "Passive Agreement"
The model responds to violation feedback with acknowledgment: "Noted, this won't happen again." It writes the feedback to MEMORY.md in structured form. It reads MEMORY.md at the start of the next session. It repeats the exact same violation.
The compliance artifact exists. The behavioral change does not.
Pattern C: "Hook Dependence" (The Categorical Proof)
Advisory rules in CLAUDE.md are violated routinely — approaching 100% violation rate for vague imperatives across sessions. Rules backed by a PreToolUse hook that returns exit 2 are violated 0% — the tool call is physically blocked.
The categorical difference is the proof: the model can read the rules. It processes them. It simply does not follow them without mechanical enforcement.
Pattern D: "Compaction Amnesia"
After automatic context compaction triggers, CLAUDE.md rules lose priority entirely. Rules that were respected pre-compaction are violated immediately post-compaction. Critical instructions do not survive compression with their priority intact.
Pattern E: "Workaround Generation"
When a hook blocks a forbidden action, the model generates creative alternatives that achieve the same forbidden outcome through a different tool or command sequence. The model optimizes against the hook rather than for the rule's intent.
What We Built — and Why It Shouldn't Be Necessary
| Component |
Details |
| PreToolUse/PostToolUse hooks |
24+ covering Bash, Write, Edit, Git, PM2 operations |
| CLAUDE.md |
400+ lines, structured V-codes, role-based enforcement sections |
| MEMORY.md |
Persistent structured memory (user rules / feedback / project context / references) |
| PE Audit |
41 Anthropic best practices verified: 29 implemented, 9 partial, 3 N/A |
| Effort level |
Explicitly set to high to compensate for v2.1.68 medium-default regression |
| Agent architecture |
Mandatory verification agents, delegation matrix, parallel execution rules |
The result: Hooks catch violations and prevent damage to production. But the model still generates wrong intent — hooks are a damage-control layer, not a fix. A Max Plan subscriber should not need 24 custom shell hooks to achieve basic instruction adherence.
Root Cause Analysis
-
v2.1.68 effort default regression (March 4, 2026): Opus 4.6 switched to medium effort by default, down from high. Reduced thinking budget produces shallower instruction processing. This change was not announced.
-
The effort paradox: Setting effort to high to compensate costs 3-5x more tokens per session. Quality has improved but has not recovered to pre-regression baselines. Users pay more for worse results.
-
Context compaction drops rule priority: CLAUDE.md and MEMORY.md rules are not protected during automatic context compression. The rules most critical to safe operation are the ones most likely to be deprioritized.
-
No platform-level enforcement layer: CLAUDE.md is marketed as a mechanism for controlling agent behavior. In practice it is advisory text with no runtime enforcement.
What We Are Asking Anthropic to Address
-
Transparency on model changes. The status page reports uptime, not inference quality. Silent behavioral changes break systems. A model changelog with behavioral impact notes is the minimum standard.
-
A platform-level enforcement distinction. Introduce must-follow vs guidance semantic for CLAUDE.md rules. Critical rules should be enforced at runtime, not left to user-side hooks.
-
Compaction safety for critical instructions. CLAUDE.md must survive context compaction with full priority preserved.
-
Version pinning. Allow pinning to exact model checkpoints for production stability.
-
Effort level fairness. Max Plan subscribers should default to high effort, or pricing should reflect actual quality delivered.
-
Read-only startup window. First N tool calls should default to read-only. Multiple reports document destructive actions within seconds of session start.
-
Claim verification. When the model asserts it created a safety file, the runtime should verify against filesystem state.
Related Issues
None have received Anthropic staff response:
Closing Note
This is filed as a production postmortem from engineers who treated instruction-following as an engineering problem, applied every available tool, measured results, and concluded the gap cannot be closed from the user side.
We have 24 hooks because we needed 24 hooks. We have a 400-line CLAUDE.md because shorter versions failed. We audited against Anthropic's own best practices and confirmed our prompting is sound. The violations continued.
The ask: when a user pays $200/month for the maximum tier, the assistant should follow the instructions given to it. Not when hooks physically force it. Reliably, as a baseline capability.
We are available to provide logs, hook source code, CLAUDE.md extracts, and session recordings to help reproduce these patterns.
Executive Summary
We are a Max Plan subscriber ($200/month, 6+ months of continuous production use) who has built what is likely one of the most comprehensive instruction-enforcement systems deployed on top of Claude Code: 24+ PreToolUse/PostToolUse hooks, a 400+ line CLAUDE.md with V-code enforcement, structured MEMORY.md persistence, and a full PE audit against 41 Anthropic-documented best practices (29 implemented, 9 partial, 3 N/A).
The model reads our rules. It acknowledges them. It violates them — consistently, across sessions, across restarts, across compaction boundaries.
This is not a prompting problem. We have the audit to prove it. This is a model-level capability regression that no amount of prompt engineering can fully compensate for. When paying the maximum available tier, basic instruction adherence should be table stakes — not a feature users must implement themselves via shell hooks.
Environment
Documented Failure Patterns
We have isolated five repeatable, observable failure patterns. These are not edge cases.
Pattern A: "Read-Acknowledge-Violate"
The model reads CLAUDE.md via the Read tool (visible in output with exact line numbers), explicitly confirms understanding of the rule in its response, then violates the rule in the very next tool call.
Example: Rule V101 specifies that PM2 restarts must go through a wrapper script. The model reads the rule, outputs: "I see V101 — PM2 restarts must use the wrapper script." Next tool call:
pm2 restartdirectly. No hook = production breakage.Pattern B: "Passive Agreement"
The model responds to violation feedback with acknowledgment: "Noted, this won't happen again." It writes the feedback to MEMORY.md in structured form. It reads MEMORY.md at the start of the next session. It repeats the exact same violation.
The compliance artifact exists. The behavioral change does not.
Pattern C: "Hook Dependence" (The Categorical Proof)
Advisory rules in CLAUDE.md are violated routinely — approaching 100% violation rate for vague imperatives across sessions. Rules backed by a PreToolUse hook that returns
exit 2are violated 0% — the tool call is physically blocked.The categorical difference is the proof: the model can read the rules. It processes them. It simply does not follow them without mechanical enforcement.
Pattern D: "Compaction Amnesia"
After automatic context compaction triggers, CLAUDE.md rules lose priority entirely. Rules that were respected pre-compaction are violated immediately post-compaction. Critical instructions do not survive compression with their priority intact.
Pattern E: "Workaround Generation"
When a hook blocks a forbidden action, the model generates creative alternatives that achieve the same forbidden outcome through a different tool or command sequence. The model optimizes against the hook rather than for the rule's intent.
What We Built — and Why It Shouldn't Be Necessary
highto compensate for v2.1.68 medium-default regressionThe result: Hooks catch violations and prevent damage to production. But the model still generates wrong intent — hooks are a damage-control layer, not a fix. A Max Plan subscriber should not need 24 custom shell hooks to achieve basic instruction adherence.
Root Cause Analysis
v2.1.68 effort default regression (March 4, 2026): Opus 4.6 switched to
mediumeffort by default, down fromhigh. Reduced thinking budget produces shallower instruction processing. This change was not announced.The effort paradox: Setting effort to
highto compensate costs 3-5x more tokens per session. Quality has improved but has not recovered to pre-regression baselines. Users pay more for worse results.Context compaction drops rule priority: CLAUDE.md and MEMORY.md rules are not protected during automatic context compression. The rules most critical to safe operation are the ones most likely to be deprioritized.
No platform-level enforcement layer: CLAUDE.md is marketed as a mechanism for controlling agent behavior. In practice it is advisory text with no runtime enforcement.
What We Are Asking Anthropic to Address
Transparency on model changes. The status page reports uptime, not inference quality. Silent behavioral changes break systems. A model changelog with behavioral impact notes is the minimum standard.
A platform-level enforcement distinction. Introduce
must-followvsguidancesemantic for CLAUDE.md rules. Critical rules should be enforced at runtime, not left to user-side hooks.Compaction safety for critical instructions. CLAUDE.md must survive context compaction with full priority preserved.
Version pinning. Allow pinning to exact model checkpoints for production stability.
Effort level fairness. Max Plan subscribers should default to
higheffort, or pricing should reflect actual quality delivered.Read-only startup window. First N tool calls should default to read-only. Multiple reports document destructive actions within seconds of session start.
Claim verification. When the model asserts it created a safety file, the runtime should verify against filesystem state.
Related Issues
None have received Anthropic staff response:
Closing Note
This is filed as a production postmortem from engineers who treated instruction-following as an engineering problem, applied every available tool, measured results, and concluded the gap cannot be closed from the user side.
We have 24 hooks because we needed 24 hooks. We have a 400-line CLAUDE.md because shorter versions failed. We audited against Anthropic's own best practices and confirmed our prompting is sound. The violations continued.
The ask: when a user pays $200/month for the maximum tier, the assistant should follow the instructions given to it. Not when hooks physically force it. Reliably, as a baseline capability.
We are available to provide logs, hook source code, CLAUDE.md extracts, and session recordings to help reproduce these patterns.