Audit this repo's auto-memory files and suggest promoting each one to a more persistent layer — user or repo CLAUDE.md, an existing or new skill, a settings.json hook, or a checked-in reference doc. Use when the user says "audit memory", "promote memory", "clean up memories", "memory-promote", or wants to move ephemeral memory into durable config.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add lttr/claude-marketplace --skill memory-promote --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Memory Promote?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/lttr-memory-promote)More formats (shields.io, HTML) on the badges page.
---
name: memory-promote
disable-model-invocation: true
description: Audit this repo's auto-memory files and suggest promoting each one to a more persistent layer — user or repo CLAUDE.md, an existing or new skill, a settings.json hook, or a checked-in reference doc. Use when the user says "audit memory", "promote memory", "clean up memories", "memory-promote", or wants to move ephemeral memory into durable config.
allowed-tools: Bash(ls:*), Bash(find:*), Bash(grep:*), Bash(cat:*), Bash(realpath:*), Bash(pwd:*), Read, Edit, Write
---
# Memory Promote
Auto-memory under `<config-dir>/projects/<encoded-cwd>/memory/` is per-conversation context, not durable config. Many memories belong in a more persistent layer where they apply consistently and survive memory pruning. This skill scans memories and proposes a target layer for each.
`<config-dir>` is `$CLAUDE_CONFIG_DIR` when set, otherwise `~/.claude`. Resolve it once at the start and use it everywhere below.
## Scope
The current repo. Memory dirs encode the absolute cwd with `/` replaced by `-`:
- `/home/alex/work/api` → `<config-dir>/projects/-home-alex-work-api/memory/`
Compute `MEM_DIR="$CONFIG_DIR/projects/$(pwd | tr / -)/memory"`. If it doesn't exist, report "no memories for this repo" and stop.
If the user asks for something wider or narrower in their own words — another repo, every project, only the cross-cutting ones, just list them without suggestions — honor it using the same encoding. Don't invent flags for it; the report-then-confirm loop below already gives them control.
## Steps
1. **List memories.** `find "$MEM_DIR" -type f -name '*.md' ! -name 'MEMORY.md'`. For each file, read the frontmatter and body. Memory frontmatter looks like:
```yaml
---
name: coolify-deploy
description: Deployment coordinates for the app
metadata:
node_type: memory
type: project
originSessionId: <uuid>
---
```
The classification key is `metadata.type` (commonly `user`, `project`, `feedback`, `reference`). If it is absent, infer the type from the body.
2. **Classify each memory** using the table below.
3. **Render report** — one row per memory: file, type, current content (1-line summary), → suggested target, rationale, concrete action.
4. **Wait for user confirmation** before changing anything — promotion is a judgment call, so confirm per-item even when the user asked to just apply everything.
5. **On confirm:** perform the action (edit CLAUDE.md, invoke `/cc:skill-creator`, add the hook to `settings.json`, write a reference doc), then **delete the memory file and its line in `MEMORY.md`**.
## Promotion targets
| Memory pattern | Promote to | Why |
| ---------------------------------------------------------------- | ------------------------------------------- | ---------------------------------------------------- |
| `type: user` (role, stack, voice, naming) | user-level `CLAUDE.md` | Applies across all projects, not just one |
| `type: feedback` — stable preference, repo-specific | repo `CLAUDE.md` | Survives memory pruning, visible to teammates |
| `type: feedback` — "never run X" / "X is human-only" | `settings.json` PreToolUse deny hook | Harness enforces; can't be forgotten |
| `type: feedback` — repeatable workflow ("always do X before Y") | new skill (via `/cc:skill-creator`) or hook | Skill makes it discoverable; hook makes it automatic |
| `type: project` — durable fact (versioning scheme, release flow) | repo `CLAUDE.md` | Onboarding context, not session state |
| `type: project` — current sprint/incident/deadline | **keep in memory** | Genuinely ephemeral — memory is the right layer |
| `type: reference` — internal URL, dashboard, doc page | repo `CLAUDE.md` "References" section | Checked in, shared with team |
| Pattern already covered by an installed skill | point to that skill, delete memory | The skill already encodes it |
| Build/test command quirks | repo `CLAUDE.md` "Development Workflow" | Lives next to the code that needs it |
## Heuristics
- **Cross-repo applicability test:** would this memory be useful in any other repo? → user-level `CLAUDE.md`. Only this one? → repo `CLAUDE.md`.
- **Enforcement test:** is the memory a _prohibition_ ("never run X")? → hook beats prose. Memory/CLAUDE.md is a request; a hook is a guarantee.
- **Existing-skill test:** before suggesting a new skill, look for overlap in `<config-dir>/skills/`, the repo's `.claude/skills/`, and installed plugin skills. Prefer pointing at an existing skill over creating another one.
- **Ephemeral test:** does it name a person, sprint, date, or in-flight ticket? → leave it in memory.
## Output format
Print a numbered list. Per item:
```
[N] <memory-file> (type: <type>)
Current: "<one-line summary of body>"
→ Promote to: <target>
Why: <one sentence>
Action: <exact edit / command to run>
```
After the list, ask "Which to promote? (numbers, `all`, or `none`)". Then act on the selected items one at a time.
## Notes
- Don't auto-delete a memory unless its content is fully captured at the new location.
- When editing a `CLAUDE.md`, append under an existing relevant section if one exists; only create new sections when needed.
- For hook proposals, defer to the built-in `/update-config` skill when it is available — it knows the settings schema. Otherwise edit `settings.json` directly and show the diff before writing.
- For skill proposals, defer to `/cc:skill-creator` — it knows the SKILL.md format.
- After promotion, also remove the entry from the `MEMORY.md` index in the same memory dir.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!