[BUG] CLAUDE.md mandatory session start protocol not followed without direct user instruction

Resolved 💬 4 comments Opened Mar 27, 2026 by jb614 Closed May 5, 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?

Claude Code does not follow a mandatory session start protocol defined in CLAUDE.md without being directly instructed to do so by the user.

The protocol is explicitly marked as mandatory and non-optional. It specifies that Claude Code must actively read a list of files using the Read tool before responding to any request,
output a confirmation, and wait for user acknowledgement before proceeding.

In practice:

  • Files that happen to be pre-loaded into context are treated as "read" without the Read tool being called
  • Files requiring an active Read tool call are skipped unless the user explicitly instructs Claude to read them
  • The confirmation is output and work proceeds before the user has acknowledged it
  • When the failure is pointed out, Claude acknowledges it — but repeats the same behaviour in the next session

The result is that the user must directly instruct Claude Code to follow its own stated mandatory requirements at the start of every session.

What Should Happen?

What should happen

On session start and after context compaction, Claude Code should treat any procedure in CLAUDE.md that is explicitly marked as mandatory as a direct instruction to execute — not as
background context to absorb passively.

If CLAUDE.md contains a numbered procedure with steps like "read these files", "output this confirmation", "wait for acknowledgement", Claude Code should execute each step using its
tools, in order, before responding to the user's first message — exactly as if the user had typed those instructions themselves.

Error Messages/Logs

Steps to Reproduce

Steps to reproduce

  1. Create a CLAUDE.md (project or global) containing a session start protocol with explicit mandatory steps — for example: "Before responding to any request: 1. Read file X. 2. Read file

Y. 3. Output a confirmation. 4. Wait for user acknowledgement before proceeding."

  1. Mark the protocol as mandatory and non-optional in the text.
  2. Start a new Claude Code session, or trigger context compaction.
  3. Send any opening message.
  4. Observe that Claude Code responds to the message without having called the Read tool on the specified files, without outputting the confirmation, and without waiting for

acknowledgement.

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

Claude Code CLI version 2.1.85, running model claude-sonnet-4-6.

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

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