diff --git a/development/claude-code-memory-autoload.md b/development/claude-code-memory-autoload.md new file mode 100644 index 0000000..b70e92e --- /dev/null +++ b/development/claude-code-memory-autoload.md @@ -0,0 +1,47 @@ +# Claude Code Memory Auto-Load (CORE.md Symlinks) + +## Problem +Claude Code's CLAUDE.md can instruct the AI to load files at session start, but this relies on the model choosing to follow the instruction — which it often doesn't. + +## Solution +Claude Code has a built-in auto-memory feature: each project gets a `MEMORY.md` file at `~/.claude/projects//memory/MEMORY.md` that is **automatically injected into the system prompt** every session. No tool calls needed. + +We symlink every project's `MEMORY.md` to our cognitive memory `CORE.md` (`~/.claude/memory/CORE.md`), which is an auto-curated summary of the most relevant memories (~1,000-1,100 tokens). + +## How It Works + +``` +~/.claude/projects//memory/MEMORY.md → ~/.claude/memory/CORE.md +``` + +- CORE.md is regenerated daily by `cognitive-memory-daily.service` +- Symlinks are refreshed daily by the same service (catches new projects) +- Cost: ~1% of 200k context window — negligible + +## Files + +| File | Purpose | +|------|---------| +| `~/.local/bin/claude-memory-symlinks` | Script that creates/refreshes symlinks for all projects | +| `~/.config/systemd/user/cognitive-memory-daily.service` | Daily timer that runs decay → core → embed → symlinks | +| `~/.claude/memory/CORE.md` | Auto-curated cognitive memory summary (symlink target) | + +## Manual Refresh + +```bash +# Regenerate CORE.md and refresh symlinks +claude-memory core && claude-memory-symlinks + +# Just refresh symlinks (e.g., after creating a new project) +claude-memory-symlinks +``` + +## What Changed + +- **Removed** from `~/.claude/CLAUDE.md`: "Session start: Load CORE.md" instruction +- **Added** to `~/.claude/CLAUDE.md`: "CORE.md auto-loads via MEMORY.md symlinks" +- **Migrated** project-specific MEMORY.md content (major-domo, strat-gameplay-webapp) into cognitive memory before replacing with symlinks +- **Added** `claude-memory-symlinks` step to daily systemd service + +## Date +2026-02-16