Claude doesn't proactively read memory files before acting on known systems

Resolved 💬 4 comments Opened Apr 10, 2026 by halimabdi Closed Jun 7, 2026

Problem

Claude Code has a persistent memory system (~/.claude/projects/*/memory/) with an index file (MEMORY.md) that's loaded into context. However, Claude consistently fails to read individual memory files before starting work on known systems, even when:

  1. MEMORY.md index clearly lists relevant memories for the system being worked on
  2. There's an explicit feedback memory saying "Check memory before acting on known systems"
  3. The task involves a system with established deployment procedures, architecture notes, and lessons learned

What happens

  • Claude explores the codebase from scratch (many tool calls, high token usage)
  • Claude rediscovers information that was already saved in memory
  • Claude makes mistakes that were previously documented and saved as lessons
  • Massive token waste on reconnaissance that memory would have eliminated

Expected behavior

Before starting work on any known system (especially ones referenced in MEMORY.md), Claude should:

  1. Scan MEMORY.md for relevant entries
  2. Read those memory files
  3. Use that context to skip unnecessary exploration

Real example

Today: Asked to fix charts + tiers on Immigration Analytics (Server B). Memory had project_immigration_analytics.md with deployment info. Claude ignored it, explored from scratch, then manually recreated Docker containers (wrong approach), broke Traefik routing, had to rollback and rediscover the correct docker-compose deploy method — all of which could have been avoided by reading memory first.

Frequency

This is a recurring issue across multiple sessions. The user has already created a feedback memory (feedback_check_memory_first.md) about this exact problem, which Claude also ignored this session.

Suggestion

Consider making memory retrieval a mandatory first step (like a system-level hook) when the user's message references a known project/system that appears in MEMORY.md, rather than relying on Claude to voluntarily check.

🤖 Generated with Claude Code

View original on GitHub ↗

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