Memory promotion
Skill the-c0d3r/claude-skill-memory-promotion/memory-promotion
Keeps Claude's memory stores (CLAUDE.md, auto-memory, project memory) in sync — no more re-teaching the same thing twice.
npx -y skills add the-c0d3r/claude-skill-memory-promotion --skill memory-promotionAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 29 days oldThe repository was created 29 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Reconciles Claude Code's CLAUDE.md, auto-memory (MEMORY.md and topic files, both personal and per-project), and any web-chat memory notes into one consistent, non-duplicated set of instructions. Use when the user asks to "clean up memory", "review my memory", "sync memory", "promote this to CLAUDE.md", "what's in my memory", or wants a periodic maintenance pass across memory stores.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
7.2 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it
Memory Promotion
Claude accumulates instructions in several places that don't
automatically stay in sync: a hand-maintained CLAUDE.md, auto-memory
files Claude writes on its own, per-project memory, and (for claude.ai
users) a separate web-chat memory with no filesystem access at all. Left
alone, the same correction gets re-taught in multiple places, or a
genuinely important pattern sits in a file that's rarely re-read. This
skill finds and reconciles those overlaps.
Instructions
Step 1: Identify what to reconcile
Always include, without asking:
- Personal auto-memory:
~/.claude/memory/MEMORY.mdand linked topic files. - The current project's memory (wherever this skill is invoked from):
~/.claude/projects/<current-project>/memory/. This is a single, cheap directory read, and it's the store most likely to hold a pattern the user learned here but never promoted anywhere global — exactly what this skill exists to catch. Don't wait to be asked; if you wait, the skill only ever surfaces what the user already remembered, which defeats the point.
Proactively offer, but never do without confirmation, the expensive, scope-widening version:
- Additional named project(s) beyond the current one, or a full sweep
across everything under
~/.claude/projects/. Mention that other projects with memory exist and ask if the user wants them included — don't stay silent and wait for the user to think to ask. But don't scan them without a yes: this can be slow, and can cross into unrelated or client-separated projects the user didn't intend to expose to this particular cleanup. - claude.ai web memory — this has no API or filesystem access. Ask the user to paste it (e.g. "List everything in your memory about me, verbatim", or via Settings > Capabilities > "View and edit your memory"). Skip this store entirely if the user is Claude-Code-only.
Step 2: Read current global state
Read ~/.claude/CLAUDE.md in full. Read personal MEMORY.md and every
topic file it links to. If the user keeps a separate file for chat-UI-only
preferences (some setups do — instructions relevant only to a web chat
interface, with no Claude Code equivalent), read that too. Treat it as
optional and skip it if it doesn't exist.
Step 3: Scan project-level memory
For the current project plus any additional projects in scope (Step 1),
read its MEMORY.md, linked topic files, and any project-local
CLAUDE.md / CLAUDE.local.md. Look for two distinct things:
- Patterns already written in project-specific language but actually generic — about how the user works, debugs, or communicates, not a project fact.
- A project-specific incident or decision that has a generalizable lesson underneath it. Extract the why or how it was approached, never the what — a migration that failed because it wasn't tested under concurrent writes isn't a reusable fact, but "test migrations under concurrent load, not just at rest" might be. Only extract a lesson when it's clearly supported by what's written; don't force a generalization out of a fact that's genuinely just project-specific.
Either way, the specific fact itself (paths, service names, exact decisions) stays in project memory — only an abstracted lesson, if one exists, becomes a candidate. Because that lesson comes from a single project, default to proposing it as a feedback-style auto-memory entry (Step 4) rather than an immediate CLAUDE.md promotion, unless it's obviously a strong principle already corroborated elsewhere — CLAUDE.md is for stable, proven-universal rules, not a first draft of one.
Step 4: Diff and categorize
For every candidate (web-memory paste, personal auto-memory entries, project-memory entries), compare against current CLAUDE.md content:
- Already covered → discard, no action.
- New, universal, and relevant to coding/agent work → propose adding to CLAUDE.md.
- New, universal, but only relevant to a chat UI (formatting or artifact preferences with no Claude Code equivalent) → propose adding to the user's chat-UI-preferences file, or suggest creating one if they don't have one.
- New, tied to a file type or recurring task shape, reusable across projects → propose as a new skill, or an addition to an existing matching skill.
- New, narrow, situational, or project-specific → leave it where it is, or add it to personal auto-memory as a feedback-style entry if it's worth remembering outside that one project. Don't promote project-specific facts (paths, service names, one-off decisions) anywhere global.
Step 5: Propose before writing
Show the user a summary of proposed changes, grouped by destination, plus any auto-memory entries that are now redundant with CLAUDE.md and should be retired. Wait for explicit confirmation before editing anything.
Step 6: Apply confirmed changes
Update CLAUDE.md and/or skill files; add feedback-style entries to
personal auto-memory where appropriate; delete/retire redundant topic
files; update MEMORY.md indexes to remove dangling links to anything
deleted.
Step 7: Flag manual steps
If any destination requires a manual step outside the filesystem (e.g. pasting content into a claude.ai settings page), remind the user explicitly — this skill cannot push content there itself.
Examples
Example 1: routine cleanup
User says: "clean up my memory, I feel like I keep repeating myself"
Actions: personal auto-memory + CLAUDE.md + the current project's memory (Steps 1–3), no additional projects, no web memory. Diff, propose 2 promotions to CLAUDE.md and 1 retired duplicate topic file, apply on confirmation.
Example 2: cross-surface sync including claude.ai
User says: "sync my memory across everything, including claude.ai"
Actions: Ask for the web-memory paste, read CLAUDE.md and auto-memory, diff all three, propose changes grouped by destination, apply on confirmation, remind the user to paste any chat-UI-only additions back into claude.ai's settings.
Troubleshooting
No ~/.claude/memory/ directory exists yet. Nothing to reconcile
there — proceed with just CLAUDE.md (and project memory / web memory if
those are in scope).
User can't or won't paste claude.ai memory. Skip that store and say so in the summary — don't guess or fabricate its contents.
A "generic" pattern turns out to be project-specific on closer read. When in doubt, leave it in project memory rather than promoting it — a false negative (stays put) is cheaper to fix later than a false positive (pollutes a file every session loads).
Gives 0 of the 12 instructions most memory context skills give in ~1.6k tokens
Counted across 674 of the 847 authors here whose files we hold, read 2026-08-06
- inform the user when setup is completein 21 of 674, across 6 files
- confirm the draft with the user before writingin 21 of 674, across 6 files
- update the agent skills block in place if it existsin 21 of 674, across 6 files
- present findings to the userin 20 of 674, across 5 files
- write the three docs files from seed templatesin 20 of 674, across 5 files
- ask the user about each decision one at a timein 19 of 674, across 4 files
- edit CLAUDE.md if it existsin 18 of 674, across 3 files
- explore current repo statein 18 of 674, across 3 files
- do not overwrite user edits to surrounding sectionsin 18 of 674, across 3 files
- back up the original file before overwritingin 16 of 674, across 8 files
- keep the memory index under 200 linesin 15 of 674
- Provide actionable steps and verificationin 13 of 674, across 2 files
Said here and by no other author read
- include current project memory without asking
- scan global memory and linked topic files
- extract general lessons from project memory
- keep specific project facts in project memory
- discard candidates already covered
- propose universal rules for CLAUDE.md
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.