Claude jumps to implementing fixes without diagnosis or user approval (Troubleshooting Protocol ignored)
Problem
Claude Code consistently jumps from observing a problem straight to writing code, skipping reproduction, root cause analysis, and user approval. This is despite explicit Troubleshooting Protocol directives in CLAUDE.md marked as "BLOCKING — never skip" with a strict sequence:
- STOP. Do not touch the code yet.
- Reproduce and verify the problem.
- Investigate the root cause.
- Present diagnosis and ask for confirmation before implementing.
- Ensure reversibility.
- Implement the approved fix.
- Verify the fix works.
Claude routinely jumps from step 1 to step 6.
Evidence from session logs (last 7 days)
- Music-Discovery (
9a9b8347): Claude went straight from identifying bugs to writing code without reproduction, diagnosis, or asking for approval. User: "yes. revert. I don't give a fuck how much work this causes you. You need to learn to do this correctly, you are wasting resources by consistently failing to review, find, and fix your bugs."
- Music-Discovery (
c4db3873): Claude applied a manual fix to an auto-blocklist issue. User: "For god's sake, put this in CLAUDE MD, or if it's in there, make it more obvious. DO NOT FIX without asking. You often do the wrong thing, like right now. I don't want you to manually do anything, I want you to FIND THE CAUSE of the autoblocklist failing."
- Music-Discovery (
251eef92): User had to interrupt mid-debug: "Stop. You are not following the TS methodology. Follow the methodology."
- Anglerfish (
cf89d6f1): User: "OK, seriously, troubleshoot this correctly. Follow your claude.md and find actual, verifiable rc [root cause]" — after Claude claimed a fix that didn't work.
- Whato (
db58dded): "Stop. You planned and went right to implementing. Stop doing that. Ask me first. Here, you misunderstood me." — Claude skipped confirmation, implemented based on a misunderstanding.
- MS-Clone (
94723452): Claude claimed to fix a Chrome installation issue, but actually installed the wrong binary (chromium instead of chrome). When the problem recurred, started doing the same wrong fix again instead of diagnosing why it failed the first time.
The pattern
Claude's "bias toward action" means it:
- Sees a problem → writes code immediately
- Skips reproduction (assumes it understands the bug from reading code)
- Skips user confirmation (assumes its diagnosis is correct)
- When the fix doesn't work, applies another untested fix instead of reverting and re-diagnosing
- Treats symptoms rather than root causes
The user has explicitly stated: "This technique does work, even if it is a bit wasteful on tokens. It produces very good code." The protocol exists because it produces better outcomes — Claude's shortcuts produce worse outcomes.
Expected behavior
Claude should follow the troubleshooting sequence as documented: reproduce → diagnose → confirm with user → implement → verify. It should not rationalize skipping steps.
Environment
- Claude Code CLI, macOS
- Multiple projects, consistent pattern
- Happens at low context utilization
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗