Cross-interface persistent memory for project context, decisions, conventions, and session handoffs. Use when the user asks to "manage project memory", "initialize .agent-memory", "migrate memory", "build memory from docs", "save session learnings", "sync memory", "run memory maintenance", "check memory status", or mentions persistent memory across Codex, Claude Code, Cursor, VS Code, Craft Agent, or other file-reading agents.
76
93%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Manage cross-interface persistent memory for AI-assisted projects. Maintain a coherent, up-to-date knowledge base that any AI agent — Codex, Claude Code, Cursor, VS Code, Craft Agent, or any file-reading tool — can read and build upon across sessions.
| Area | Outcome |
|---|---|
| Initialize | Scaffold .agent-memory/ with structure and entry points |
| Capture | Distill session decisions, feedback, and context into durable memory files |
| Sync | Keep memory consistent across Codex, Claude Code, Cursor, VS Code, and other file-reading agents |
| Maintain | Compact stale entries, resolve conflicts, clean orphaned files |
| Migrate | Upgrade older formats (v1 flat files, CURSOR.md) to memory format v2.1 |
| Build | Scan existing documentation and generate initial memory files |
| Principle | Practice |
|---|---|
| Open files | Store memory as YAML-frontmatter markdown that can be read and edited with any editor or file-reading agent. |
| Shared entry point | Keep AGENTS.md as the canonical instructions file; keep client-specific files thin pointers. |
| Native-memory coexistence | Treat vendor auto-memory as machine-local scratch and .agent-memory/ as the deliberate cross-agent, reviewable source; do not overwrite or duplicate native stores. |
| Managed lifecycle | Use typed directories, expires metadata, maintain, and sync so memory stays current instead of accumulating noise. |
| No secrets | Store project knowledge and decisions, never credentials, private keys, tokens, or sensitive personal data. |
Before operating on memory, understand:
.agent-memory/ exist? What version/structure? Older formats needing migration?| Keyword | Operation | Description |
|---|---|---|
| init | Initialize | Scaffold .agent-memory/, README, index, AGENTS.md, an exact @AGENTS.md Claude import, plus per-agent pointer files for the agents in use (e.g. .cursor/rules/index.mdc) |
| migrate | Migrate | Detect and migrate older structures (CURSOR.md, flat files, INDEX.yaml) to memory format v2.1 |
| build | Build | Scan project and auto-generate initial memory files from existing docs |
| save | Save | Capture learnings from the current session into memory |
| maintain | Maintain | Compact, trim stale, fix index, clean old session logs |
| sync | Sync | Pull in external changes + save current session (end-of-session habit) |
| status | Status | Read-only health check — file counts, staleness, sync |
If no keyword is given, ask:
What would you like to do with agent memory?
- Init — Set up
.agent-memory/for this project (first time)- Migrate — Upgrade older memory structures to memory format v2.1
- Build — Scan project and generate initial memories
- Save — Capture current session learnings
- Sync — Pull in external changes + save this session (recommended end-of-session)
- Maintain — Compact, trim stale, fix index
- Status — Show memory health report
Scaffold the .agent-memory/ system from scratch.
Overwrite guard: Before creating or changing AGENTS.md, CLAUDE.md, .cursor/rules/index.mdc, .agent-memory/index.yaml, or .agent-memory/README.md, inspect any existing file and preserve its content. If a target file already exists and is not a thin compatible pointer, stage the proposed replacement and ask before overwriting. Report every file kept, created, or changed.
project/
├── AGENTS.md # Canonical shared instructions (all tools read it)
├── CLAUDE.md # Thin Claude import → @AGENTS.md + Claude-specific notes
├── .cursor/rules/index.mdc # Cursor native: "Always" rule → references AGENTS.md (only when Cursor is in use)
└── .agent-memory/ # Cross-interface persistent memoryKey: AGENTS.md is the shared source of truth. CLAUDE.md imports it with an exact @AGENTS.md line; add Claude-only notes below that import. Claude Code's auto-memory (~/.claude/projects/<project>/memory/) is machine-local scratch, loaded and managed by Claude Code separately—do not copy it wholesale into .agent-memory/, edit it as part of init, or claim it is shared across agents/worktrees. Never put shared instructions inside .claude/ or .cursor/. Create only the per-agent pointer files for agents the project actually uses; .cursor/rules/index.mdc is Cursor-specific and should be skipped when Cursor is not in use.
user/, feedback/, project/, decisions/, context/, conventions/, references/, sessions/ under .agent-memory/..agent-memory/README.md (system spec), .agent-memory/index.yaml (empty registry), AGENTS.md (canonical shared instructions), CLAUDE.md (exact @AGENTS.md import plus optional Claude-only notes). Add per-agent pointer files only for agents the project uses — e.g. .cursor/rules/index.mdc (Cursor “Always” rule that points agents at AGENTS.md — same file Migrate creates from CURSOR.md) when a .cursor/ directory exists or Cursor is otherwise in use. Skip it for non-Cursor projects. Detect native memory/rule locations read-only and report them; do not migrate or overwrite them implicitly.index.yaml and report what was created.Detect and migrate older structures to memory format v2.1.
| Old Structure | New Structure | Action |
|---|---|---|
CURSOR.md at root | .cursor/rules/index.mdc | Content moved, old file renamed .migrated |
INDEX.yaml (uppercase) | index.yaml (lowercase) | Renamed |
Flat {type}--{topic}.md | {type}/{topic}.md | Moved to directory |
summary: frontmatter | description: frontmatter | Field renamed |
CLAUDE.md with full instructions (no AGENTS.md) | AGENTS.md + CLAUDE.md containing @AGENTS.md and Claude-only notes | Promoted |
Steps: Scan for each old structure listed above → preserve existing content → perform only confirmed migrations → update CLAUDE.md to an exact @AGENTS.md import only after moving shared instructions into AGENTS.md → keep any Claude-only notes below the import → reconcile index.yaml with filesystem → report what changed.
Migration guard: Renames, moves, and pointer rewrites are destructive. Before renaming CURSOR.md, INDEX.yaml, or replacing instruction files, show the planned source and destination paths and ask for confirmation unless the file is empty or already an exact generated pointer. Keep a backup or .migrated file whenever content is moved.
Scan project and auto-generate initial memory files from existing docs.
*.md, package.json, pyproject.toml, Cargo.toml, CLAUDE.md, AGENTS.md, *.yaml configs, .env.exampleproject/overview.md, architecture → project/architecture.md, decisions → decisions/{topic}.md, conventions → conventions/{topic}.md, user preferences/collaboration style → user/preferences.md only when explicitly confirmed by the userindex.yaml — add entries for each new file, reconcile with filesystemCapture learnings from the current conversation into memory.
{type}/ directory. Create session log in sessions/ for significant sessions.codex | claude-app | claude-code | vscode | craft-agent | otherindex.yaml and report what was saved/updatedCombined: ingest external changes then save session. Recommended end-of-session command for multi-editor workflows.
Phase 1 — Ingest: Scan for unindexed files in .agent-memory/ (add to index) → scan for orphan index entries (remove) → read updated files for awareness.
Phase 2 — Save: Run the full Save operation (review, update/create, session log, index).
Phase 3 — Report: Single combined report (see references/templates.md for format).
Full maintenance: compact, trim stale, fix index, clean old session logs.
expires field. If expires < today → flag as expired, ask update/archive/remove.expires): Use updated date (or created if never updated) + type-based thresholds: context/ >30 days, sessions/ >60 days.status: archived with updated >90 days ago → suggest deletion.supersedes chain: If file A has supersedes: B, and B still exists with status: active, flag B for archival.conventions/ or decisions/.type: session with updated >60 days → extract valuable info elsewhere if needed, list deletion candidates, and ask for confirmation before deleting.Quick read-only health check. Count files by type, check index ↔ filesystem sync, report stale/expired entries. If .agent-memory/ doesn't exist, suggest init. If issues found, suggest maintain.
expires on context. Context goes stale. Set a review date.For frontmatter schema, memory types, and templates, see references/templates.md.
| File | Contents |
|---|---|
| references/templates.md | Session log template, sync/health report templates, frontmatter schema, memory types table |
| references/display-conventions.md | How to render memory files inline (markdown, YAML, JSON, rich previews, guidelines) |
| references/troubleshooting.md | Common issues by project type (solo, multi-agent, team, monorepo), troubleshooting Q&A |
Use these prompts to choose the operation, then proceed without collecting unnecessary information:
.agent-memory/ already exist, and what structure/version does it use?init, migrate, build, save, sync, maintain, or status?AGENTS.md, CLAUDE.md, Cursor rules), do they point to the shared source of truth, and which vendor-native memory/rule stores must be preserved?| Pattern | When it is enough | When agent-memory is the better fit |
|---|---|---|
Single client instruction file (CLAUDE.md, Cursor rule, etc.) | One tool and a small project | Multiple tools need a shared, indexed memory base |
| Vendor auto-memory (for example Claude Code machine-local memory) | Local scratch and automatic recall inside one client | Knowledge must be portable, reviewable, shareable through git, or consistent across clients/worktrees |
| Session handoff note | One-time transfer between chats | Durable decisions, conventions, and project context need lifecycle management |
| Memory MCP/server | Searchable centralized service is already approved | Plain files, git review, and zero runtime dependencies are preferred |
3858600
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.