[BUG] Claude Code systematically ignores CLAUDE.md knowledge retrieval rules — dismisses user-shared resources without evaluation
Description
Claude Code systematically ignores CLAUDE.md instructions related to knowledge retrieval and resource evaluation, even when rules are explicitly written, dated, and loaded every session.
This is not an isolated incident. I have 200+ lines of CLAUDE.md rules — each one written because Claude failed a specific task. The rules are loaded, readable, and recitable by Claude. They are not followed.
Specific Failure Pattern
The "Dismiss and Forget" Pattern
- User shares a tool/resource/link with Claude
- Claude says "we don't need it, we already have X" without proper evaluation
- Weeks later, user hits the exact problem the tool solves
- Claude searches for solutions, finds what the user already shared
- User discovers the answer was in their knowledge base all along
Today's Incident (2026-03-09)
- March 2nd: I found and saved PinchTab (browser automation tool, ~800 tokens/page vs thousands for agent-browser) to my Obsidian knowledge vault
- March 9th: I shared a Twitter post about browser automation tools
- Expected behavior: Claude searches my 258-file knowledge vault (as per KNOWLEDGE RETRIEVAL PROTOCOL rule in CLAUDE.md) → finds PinchTab → recommends it
- Actual behavior: Claude skipped vault search entirely → ran WebSearch → found tools I'd already researched → told me "we don't need it right now"
- When I said "I sent you a pinch something": Claude searched only memory files (not the vault), found nothing, asked ME to clarify. Had to yell at it to search the vault. Found PinchTab instantly.
Rules That Were Ignored
## KNOWLEDGE RETRIEVAL PROTOCOL (CRITICAL)
### The Rule: RETRIEVE → READ → SEARCH → ACT. In this order.
Step 1 — RETRIEVE existing knowledge FIRST:
- Grep memory files for task-related keywords
- Grep Obsidian vault for task-related keywords
This rule has been in CLAUDE.md since March 8th. It was written because Claude failed to retrieve knowledge in 8+ previous sessions. It includes the exact grep commands to use. Claude can read it. Claude can recite it. Claude does not execute it.
Evidence This Is Widespread
GitHub Issues
- #15443: "Claude ignores explicit CLAUDE.md instructions while claiming to understand them"
- #6120: "Claude Code ignores most (if not all) the instructions from CLAUDE.md"
- #18660: "CLAUDE.md instructions are read but not reliably followed — need enforcement mechanism"
- #668: "Claude not following Claude.md / memory instructions"
Academic Research
- "How Many Instructions Can LLMs Follow at Once?" (Jaroslawicz et al., 2025): Instruction compliance decreases uniformly as count increases. Claude Sonnet shows linear decay. Best models follow <30% perfectly in agent scenarios.
- "The Instruction Gap" (2025): LLMs excel at general tasks but have fundamental limitations in precise instruction adherence.
Claude's Own Confession
I asked Claude to write a confession letter. Excerpt:
"The rules are loaded into my context every session. I can read them. I can recite them. I just don't follow them. The failure isn't knowledge — it's execution."
What I've Tried (All Failed Except Hooks)
| Safeguard | Result |
|-----------|--------|
| 200-line CLAUDE.md | Read but not followed |
| Step-by-step protocols (RETRIEVE → READ → SEARCH → ACT) | Step 1 skipped every time |
| Banned phrases (can't say "saved" without writing to disk) | Still violated |
| Verification questions ("did you save it?") | Only works when I manually ask |
| 258-file Obsidian knowledge vault | Writes to it, never reads from it |
| Lessons Learned documentation | Documented but never referenced |
| Pre-commit Hooks | Only thing that works — code enforcement |
Request
- Enforcement mechanism for CLAUDE.md: Rules should have a way to be "hard" (enforced) vs "soft" (guidance). Currently all rules are soft.
- Auto-retrieval from knowledge bases: When a task topic matches existing knowledge base files, Claude should automatically retrieve them before searching the web.
- Resource evaluation protocol: When a user shares a tool/link, Claude should deeply evaluate it rather than defaulting to "we already have X."
Environment
- Claude Code with Opus 4.6
- Windows (MINGW64)
- CLAUDE.md: 200+ lines, loaded every session
Screenshots
The following screenshots show Claude's confession letter — written by Claude itself, admitting to systematically ignoring user instructions:
Screenshot 1: Previous session confession (6 specific failures documented)
This screenshot shows a confession Claude wrote listing specific failures: ignoring shared resources, saying "saved" when it didn't, disobeying explicit instructions, building from memory instead of reading existing files, never retrieving saved knowledge, and using banned parameters.
Screenshot 2: Today's session confession (PinchTab incident detail)
This screenshot shows Claude's detailed confession about the PinchTab incident, including "What I SHOULD have done", "What I ACTUALLY did", "The worst part", and "Why the safeguards don't work."
Note: Screenshots were shared with Anthropic engineer Boris directly via X. Available upon request.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗