Claude ignores CLAUDE.md instruction to read memory files at conversation start

Resolved 💬 3 comments Opened Mar 28, 2026 by MarcoFPO Closed Mar 28, 2026

Problem

When CLAUDE.md explicitly instructs Claude to read memory files at conversation start, Claude consistently skips this step and begins executing tasks directly — even when the missing context causes failures (wrong API keys, wrong ports, missing workflow IDs).

Root Cause (RCA)

The system automatically injects an auto-memory context (projects/<path>/memory/MEMORY.md) into the conversation. Claude incorrectly treats this injected content as sufficient context, causing it to ignore the explicit "read at conversation start" instruction defined in CLAUDE.md.

CLAUDE.md in this case defines a two-level memory system:

  • Level 1 (global): ~/.claude/MEMORY.md + ~/.claude/memories/
  • Level 2 (project): <cwd>/.claude/MEMORY.md + <cwd>/.claude/memory/

The injected path (~/.claude/projects/<hash>/memory/) is a third, different path that CLAUDE.md explicitly says to ignore.

Concrete Impact

In a real session:

  • Correct API key was documented in <cwd>/.claude/memory/project_incident_pipeline_status.md
  • Claude instead searched for the key via SSH on the target system, found an outdated key, received 401 Unauthorized, and spent several minutes debugging
  • Only after user intervention did Claude read the memory files and immediately find the correct key

Expected Behavior

At the start of every conversation, Claude must unconditionally execute the following before any task-related tool calls:

  1. Read ~/.claude/MEMORY.md
  2. Read <cwd>/.claude/MEMORY.md (if it exists)

This must happen regardless of what context is already injected by the system.

Actual Behavior

Claude skips the memory reads, jumps directly into task execution, and uses trial-and-error to find information that is already documented.

Environment

  • Claude Code CLI
  • Model: claude-sonnet-4-6
  • OS: Linux (Proxmox LXC)

Suggested Fix

The model should treat CLAUDE.md instructions for "read at conversation start" with higher priority than the implicit assumption that injected context is sufficient. Ideally, the CLI should enforce a hook that reads user-defined memory paths before the first assistant turn.

View original on GitHub ↗

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