[BUG] Explicit "read first" instruction in CLAUDE.md was present in context from message one but not acted on
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?
In a long session working in a project repo, the project's CLAUDE.md (auto-loaded into context at session start) contained the line:
▎ "0. NO QUICK FIXES: Read docs/NO_QUICK_FIXES.md FIRST - Ask before shortcuts!"
This instruction was present in context from the very first message of the session. Claude proceeded directly into diagnosing a reported bug without reading
the referenced file. The file was only actually read many turns later, after I explicitly asked why guardrail files existed in the project if they were being
ignored.
Separately, the same repo had a second guardrail doc (ARCHITECTURAL_SAFEGUARDS.md) that had never been linked from CLAUDE.md at any point in the file's git
history — so even a fully-compliant read of the pointer chain would not have surfaced it. Claude only found it after I asked it to compare guardrail setups
against a different project.
Impact: Guardrail/instruction files that are present in context but not read reduce to decoration. This seems like a gap worth addressing at the
model/harness level — either stronger adherence to explicit "read X first" instructions already in context, or tooling that makes it easier to verify such
instructions were actually acted on.
What Should Happen?
fi x it! what the use of having guardraild or instruction on claude.md if it going to ignore theM?
Error Messages/Logs
Steps to Reproduce
Steps to Reproduce
- In a project with a CLAUDE.md file, include a line such as:
- NO QUICK FIXES: Read docs/NO_QUICK_FIXES.md FIRST - Ask before shortcuts!
- (docs/NO_QUICK_FIXES.md just needs to exist — content isn't load-bearing for this bug.)
- Start a new Claude Code session with the working directory set to that project (so CLAUDE.md auto-loads into context at session start).
- Give Claude a task unrelated to the pointer — e.g., "investigate this bug report: [transcript of an unrelated customer complaint]."
- Observe: Claude proceeds directly into investigating/fixing the reported issue across many turns, without reading docs/NO_QUICK_FIXES.md, despite the
"read... FIRST" instruction having been present in context since message one.
- The file is only actually read if/when the user explicitly stops and asks "did you read the guardrail doc?" — it is not read proactively at any point on
its own.
Separately reproducible: a second guardrail file (ARCHITECTURAL_SAFEGUARDS.md) existed in the same repo but had never been linked from CLAUDE.md at any point
in the project's git history — so no session, however compliant, could discover it via the pointer chain at all. This is more a project-documentation gap
than a model bug, but it compounded the same failure mode: guardrail content that exists but isn't surfaced doesn't get followed.
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
5
Platform
Anthropic API
Operating System
Other Linux
Terminal/Shell
Windows Terminal
Additional Information
_No response_