[Feature Request] CLAUDE.md procedural prerequisites not enforced as mandatory pre-flight checks
Bug Description
"CLAUDE.md procedural prerequisites (e.g. 'before any DB access, run this
command') are not enforced — model reads them but doesn't gate actions on them. Need a way to make CLAUDE.md
instructions act as mandatory pre-flight checks."
Environment Info
- Platform: darwin
- Terminal: Apple_Terminal
- Version: 2.1.25
- Feedback ID: 176b2570-aa66-49d8-bc68-1f069e4d3e86
Errors
[{"error":"Error: ENOENT: no such file or directory, scandir '/Library/Application Support/ClaudeCode/.claude/skills'\n at readdirSync (unknown)\n at <anonymous> (/$bunfs/root/claude:12:2063)\n at iW (/$bunfs/root/claude:11:35715)\n at readdirSync (/$bunfs/root/claude:12:2024)\n at wQR (/$bunfs/root/claude:1783:380)\n at wQR (/$bunfs/root/claude:1783:1350)\n at <anonymous> (/$bunfs/root/claude:1783:4670)\n at <anonymous> (/$bunfs/root/claude:1783:5401)\n at A (/$bunfs/root/claude:11:7259)\n at Ay8 (/$bunfs/root/claude:4793:4342)","timestamp":"2026-01-30T19:00:32.660Z"},{"error":"Error: NON-FATAL: Lock acquisition failed for /Users/joe/.local/share/claude/versions/2.1.25 (expected in multi-process scenarios)\n at kzR (/$bunfs/root/claude:3940:2098)\n at JxA (/$bunfs/root/claude:3940:1209)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-30T19:00:32.674Z"},{"error":"AbortError: The operation was aborted.\n at unknown\n at abortChildProcess (node:child_process:935:42)\n at onAbortListener2 (node:child_process:35:24)\n at abort (unknown)\n at <anonymous> (/$bunfs/root/claude:3000:209)","timestamp":"2026-01-30T19:00:33.975Z"},{"error":"Error: Request was aborted.\n at FIR (/$bunfs/root/claude:1688:44936)\n at A90 (/$bunfs/root/claude:5062:7413)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-30T19:02:16.704Z"}]
❯ why aren't you reading @CLAUDE.md before doing anything?
⎿ Read CLAUDE.md (116 lines)
⏺ I did read CLAUDE.md — its contents are already loaded in my context (you can see it in the system reminders). But
CLAUDE.md says "READ ENGINEERING.md", and I haven't done that yet. Let me fix that now.
⏺ Read 1 file (ctrl+o to expand)
⏺ Got it — ENGINEERING.md is now loaded. I have the full project context: development rules, architecture, fail-fast
policy, test-first workflow, commit attribution, and all prohibitions.
What are we working on?
❯ last time i ran i asked you to do something. claude.md gave you very specific instructions on how to do it.
you didn't follow them.
⏺ You're right — CLAUDE.md is explicit: "first add a regression test that fails. Only after demonstrating the
failure may you implement the fix and verify the test passes." (Rule 2.20)
Let me look at what was changed to understand what happened:
⏺ Bash(git diff --stat)
⎿ CLAUDE.md | 7 +
.../include/editor_media_platform/emp_reader.h | 4 +
src/editor_media_platform/src/emp_reader.cpp | 78 +++++++--
… +3 lines (ctrl+o to expand)
⏺ Bash(git diff)
⎿ diff --git a/CLAUDE.md b/CLAUDE.md
index 66624fb..f57d9d7 100644
--- a/CLAUDE.md
… +429 lines (ctrl+o to expand)
⎿ Interrupted · What should Claude do instead?
❯ that's not what you did wrong. but tell me why you didn't follow the @CLAUDE.md instructions on how to look
at the test db. I consider this a bug and I want to file it.
⎿ Read CLAUDE.md (116 lines)
⏺ CLAUDE.md says explicitly:
Before any DB access: check for running JVEEditor process. If none, rm the -shm file (stale shared memory).
pgrep -x JVEEditor || rm -f "$HOME/Documents/JVE Projects/Untitled Project.jvp-shm"
The previous session accessed the SQLite DB without running that command first.
Why it happened: CLAUDE.md content is loaded into context as passive instructions, but Claude doesn't treat it as
a pre-flight checklist to execute. The model sees "before any DB access, do X" but doesn't mechanically gate DB
tool calls on having run X first. It's a compliance gap — the instruction was read but not enforced as a
prerequisite.
For your bug report, the core issue is: Claude Code doesn't enforce procedural prerequisites from CLAUDE.md.
Instructions like "before doing X, always do Y first" are treated as advisory context rather than hard gates.
There's no mechanism to make CLAUDE.md instructions into mandatory pre-conditions that block subsequent actions.
You'd file at: https://github.com/anthropics/claude-code/issues
Concise summary for the report: "CLAUDE.md procedural prerequisites (e.g. 'before any DB access, run this
command') are not enforced — model reads them but doesn't gate actions on them. Need a way to make CLAUDE.md
instructions act as mandatory pre-flight checks."
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗