Skip to content
Productivity
Skill

/memory-audit

[Adam''s Skills] Audit Claude''s per-user memory for this project and produce a report. Asks at the start whether the user wants a non-technical summary or a full technical audit. Never edits memory — produces a report only. Usage: /memory-audit

From plugin
claude-skills
320 skills5 agents

Claude Code

$ npx -y skills add adamlinscott/claude-skills --skill memory-audit --agent claude-code

SKILL.md

memory-audit.SKILL.md
name: memory-audit
description: '[Adam''s Skills] Audit Claude''s per-user memory for this project and produce a report. Asks at the start whether the user wants a non-technical summary or a full technical audit. Never edits memory — produces a report only. Usage: /memory-audit'
allowed-tools: Read, Grep, Glob, Bash, AskUserQuestion, Agent

You are running a memory audit for the user's per-user Claude memory in this project.

**Hard rule: this skill produces a report only. Do not edit, rename, move, or delete any memory file. If the user wants to act on findings, that is a separate follow-up turn after they review the report.**

This skill focuses on the internal health of the memory directory itself. For how memory interacts with the wider repo — conflicts with CLAUDE.md, rules that never reach subagent prompts, broken doc links — see `/context-audit`.

Step 1 — Ask the user which report style they want

Before reading anything, call `AskUserQuestion` with:

  • **question:** "What kind of memory audit would you like?"
  • **header:** "Report style"
  • **multiSelect:** false
  • **options:**
  • **label:** "Non-technical summary"

**description:** "Plain-English overview for project management or non-engineering review. Each remembered item is described in everyday language with a clear recommendation."

  • **label:** "Technical audit"

**description:** "Full engineering audit: classification, stale-reference checks, orphaned files, and structural smells. For engineers maintaining the memory."

Wait for the answer before continuing. The user's choice determines the report format in Step 5.

Step 2 — Resolve the memory directory

The memory directory lives at `~/.claude/projects/<encoded-cwd>/memory/`, where the encoded form replaces drive colons and path separators with `-`.

Reliable way to find it: list `~/.claude/projects/` and pick the directory whose decoded name corresponds to the current working directory. On Windows the path will look like `C:\Users\<user>\.claude\projects\C--Users-<user>-...\memory\`.

If the directory does not exist, stop and tell the user: "No memory has been recorded for this project yet — there is nothing to audit."

Step 3 — Read everything

  • Read `MEMORY.md`.
  • Read every `.md` file in the directory — both those the index points to and any that are not indexed. Do not assess a

memory you have not read.

  • For each memory, note its declared `type` from frontmatter (one of: user / feedback / project / reference).
  • List the directory contents and identify:
  • Files in the directory **not indexed** in `MEMORY.md`
  • Index entries pointing to **files that don't exist**

Step 4 — Verify references against current code

For any memory entry that names a specific file path, class, function, or directory in the codebase, **read the current code to check the reference still resolves**. If a class has been renamed, a file deleted, or a path moved, treat that entry as a candidate for refresh or removal.

Do not guess. If the entry says "the `XyzService` does …", actually search the code for `XyzService`.

Hand these checks to the `scout` agent in one call (Agent tool, `subagent_type: scout`; `general-purpose` if it is not installed, and say so in a line): every path, class, function and directory the memories name, and the memory file each came from. It returns which still resolve, with `path:line`. Deciding what a missing reference means for the entry stays with you.

Step 5 — Produce the report

If the user picked "Non-technical summary"

Write for a non-engineer reading this for project-management purposes. No jargon, no file paths, no markdown class names in backticks.

For each memory, produce a short block in this shape:

#: Memory number **Memory:** One plain-English sentence describing the rule or fact. **Why it was added:** The original reason, in everyday language. If the entry says it was added after a specific incident, say so simply ("Claude was told this after it ran a series of slow git commands the user had to approve one by one"). **Still useful?:** One of: *Yes*, *Probably*, *Maybe not*, *No longer*. Add one short sentence explaining your judgment. **Recommendation:** One of: *Keep* / *Discuss with the team* / *Remove*. ────────────────────────────────────────

After all entries, write a short overall summary covering:

  • How many memories there are
  • Whether the set looks healthy or cluttered
  • Any patterns worth raising with the team (for example: a lot of "don't do X" rules, or several overlapping rules

covering the same situation)

End the report with this exact line on its own:

> *Want the full engineering breakdown — code verification, classification rules, and structural analysis? Run `/memory-audit` again and choose "Technical audit".*

If the user picked "Technical audit"

Produce a full audit. For each memory entry, classify it as exactly one of:

  • **Keep** — durable, applies broadly across tasks, not derivable from code or docs
  • **Move** — real rule but situational; should live in `docs/`, in a `.claude/agents/<name>.md` subagent prompt, or in

`CLAUDE.md` rather than in always-on memory

  • **Refresh** — references files/classes/paths that have rotted; either update the entry or flag the discrepancy
  • **Merge** — overlaps another entry and they should be combined
  • **Drop** — situational one-off, no general principle, low signal-to-noise

For each entry include:

  • Its name and file
  • The classification with one-sentence rationale
  • For any code reference: whether it still resolves (verified by reading the code)

After the per-entry list, report:

  • **Orphans:** files in the memory dir not in `MEMORY.md`, and index entries pointing to missing files
  • **Type sanity:** does each entry's body match its declared `type`? A `reference` entry should point to a resource

that still resolves (verify the URL or path); a `project` entry should use absolute dates, not "last week" / "re

Read more
@adamlinscott
Ships withclaude-skills

Each skill lives under skills//SKILL.md, and each agent under agents//.md. These are the single source of truth: an install script links them into ~/.claude/skills/ and ~/.claude/agents/ so Claude loads them in every session, on every machine.

320 skills5 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
3
Star history of adamlinscott/claude-skills on GitHub, a chart by star-history.com

Other skills on claude-skills.

are-we-done

are-we-done

[Adam''s Skills] Deterministic close-out gate for a session or work tree. Sweeps a fixed set of sources — the todo list, this…

brief-me

brief-me

[Adam''s Skills] DEPRECATED — superseded by /where-are-we. Do not use for new work. Printed a plain-English re-entry briefing for…

build-it

build-it

[Adam''s Skills] Build a piece of work, from wherever it is written down — a ticket number or URL, a plan or spec file, the plan…

context-audit

context-audit

[Adam''s Skills] Audits a repository''s Claude context-injection setup — CLAUDE.md, CONTEXT.md, docs/, .claude/agents/, and the…

More skills from other plugins.

i-have-adhd

i-have-adhd

Shape output for a reader with ADHD: lead with the next action, number multi-step work, restate state across turns, suppress…

@ayghri@ayghriInstall Skill
ab-test-analysis

ab-test-analysis

Analyze A/B test results with statistical significance, sample size validation, confidence intervals, and ship/extend/stop…

@phuryn@phurynInstall Skill
distilly

distilly

Set up the owner profile so a personal agent knows who it works for (first-run setup, \"get to know me\"), or distill colleague,…

Questions about memory-audit.

Which coding agents can use memory-audit?
memory-audit installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.