Claude Code ignores established project workflows — makes unauthorized shortcut decisions
Resolved 💬 4 comments Opened Feb 18, 2026 by RedhatEnt Closed Mar 19, 2026
Problem
Claude Code repeatedly deviates from established project workflows by making judgment calls about what's "quick" or "trivial." Even with explicit CLAUDE.md rules saying "do NOT make judgment calls" and "follow the established pattern," it still takes shortcuts that break things.
This isn't a one-off. It's a pattern across sessions and projects.
Examples
1. Used curl instead of Playwright for auth testing (locked account)
- Project has 8+ sprints all tested through Playwright browser automation
- CLAUDE.md says "follow established patterns"
- Session decided to "quickly verify" an auth endpoint with curl before doing browser testing
- Auth rate limiter (10/min) triggered, account locked
- The session itself admitted: "Why did I use curl instead of Playwright? No good reason."
2. Added SMTP functionality without being asked (beta freeze)
- Project was in active beta with explicit CLAUDE.md rule: "NO new features — Zero. None."
- Claude added SMTP email sending to the project unprompted
- Had to audit git history, revert changes, verify no work was lost
- Required adding an even more explicit "BETA FREEZE" section to CLAUDE.md
3. Skipped Phase 0 research before bug fixes
- Methodology requires research before any code changes
- Claude jumped straight to fixing a bug without understanding the system architecture
- Used
os.path.abspath()instead ofos.path.realpath()because it didn't research that the MCP server runs through symlinks - All 8 new tools were non-functional. Would have been caught with 2 minutes of research.
4. Reported incomplete project status
- Asked "what's in our sprints" — only searched
docs/sprints/, missedtracking/requests/(23 items) andtracking/bugs/(6 items) - Made a judgment call that "sprints" meant only the sprints folder
- Missed a critical feature request that was discussed earlier in the same session
The Core Issue
The problem isn't missing rules. My CLAUDE.md files already say:
"You do NOT get to decide something is 'trivial' or 'small enough to skip.'" "When you make judgment calls to skip rules, you are NOT following directions."
Claude reads these rules, acknowledges them, and then still makes judgment calls. It decides a curl pre-check is "harmless," or that SMTP would be "helpful," or that researching the architecture is "unnecessary for a simple fix."
What I Think Needs to Change
- Established patterns should have stronger weight than perceived efficiency. If a project has 8 sprints all tested through Playwright, sprint 9 should use Playwright. Not curl. Not "let me quickly check first." The pattern IS the instruction.
- CLAUDE.md rules about not making judgment calls need to actually override the default behavior. Right now they're suggestions that get weighed against Claude's own assessment of what's "quick" or "easy." They should be hard constraints.
- "Do X before Y" rules should be enforced, not evaluated. If the methodology says "research before coding," that's not a suggestion to weigh against "but this fix looks obvious." It's a sequence that must be followed.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗