Model ignores its own rules — acts before checking, despite extensive guardrails

Resolved 💬 10 comments Opened Mar 28, 2026 by DK-1974 Closed May 21, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

I run Claude Code with extensive project memory, CLAUDE.md rules, and pre-commit hooks designed to enforce "check before acting." Despite all of this:

Core problem: Claude consistently acts before checking. It recommends changes to files that were already modified. It makes claims without reading the actual state. It produces plausible-sounding narratives instead of verifying facts.

What makes this severe: This isn't a missing rule. I have extensive memory entries, multiple hook-enforced gates, and explicit CLAUDE.md instructions all saying "read before you write, verify before you claim." The model acknowledges these rules exist, then immediately violates them. Even when hooks catch the violation and block it, the model repeats the same pattern in the next response.

The pattern: Fast output over correct output. Every single time. That's junior behavior — a senior checks first, then acts. Claude types first, then gets caught.

Impact: Full working days lost with zero productive output. The model generates confident but unverified output that requires constant human correction.

I would pay double for a "Senior Mode" button that makes Claude actually read before it writes, verify before it claims, and check git log and changelogs before recommending changes that were already made. The current model defaults to "respond fast" regardless of how many rules tell it otherwise.

This is not a configuration issue. The guardrails are in place and firing. The model simply doesn't internalize "check first" as a behavior.

Environment: Claude Code CLI, Opus model, macOS

What Should Happen?

Claude should read the current state (git log, changelog, files) before making any recommendation. When rules and memory entries say "check first," the model should actually check first — not produce fast, plausible-sounding output that turns out to be wrong.

Error Messages/Logs

Steps to Reproduce

Set up CLAUDE.md with rules requiring "read before edit" and "verify before claiming"
Add memory entries reinforcing "check git log and changelog before recommending changes"
Add pre-commit hooks that enforce these rules
Ask Claude to work on content or design tasks
Observe: Claude recommends changes to files that were already modified, makes unverified claims, and repeats the pattern even after hooks block it

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

Claude Code 2.1.86

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

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