claude-migrate-memory-to-doc
Migrate Claude Code Memory to Tool-Agnostic Docs
Why this skill exists
Claude Code's personal memory lives in ~/.claude/projects/<project-slug>/memory/. It is locked to Claude Code: not version-controlled with the repo, invisible to every other tool. The moment the user runs Codex, Cursor, or any other AI CLI in the same directory, those tools cannot read "who the user is / how to work with them" — even though a user profile and collaboration preferences are exactly what any AI assistant should read first.
This skill moves the cross-tool-shareable content out of memory into a tool-agnostic location, and leaves memory as a thin handoff cache. The real problem it solves is tool lock-in, not "messy memory".
This skill runs inline (never context: fork): it spawns parallel review subagents and runs codex via Bash — a forked subagent could do neither.
The core insight — read this before touching anything
The hard part is not moving files. It is this:
A reference file reached only by a plain-text pointer is read on-demand and is NOT guaranteed to load — in either tool.
- Claude Code auto-preloads a reference only via
@importsyntax. A plain-text pointer ("see~/.claude/references/user/foo.md") is on-demand: the agent must choose to open it. - Codex is stricter: it does not parse or follow text paths written inside CLAUDE.md at all. It only auto-injects the doc files themselves (its
AGENTS.md/ configured fallback) along the~/.codex → git-root → cwdchain. Reference files named anything else, sitting in~/.claude/references/, are never auto-loaded by Codex.