Skip to content
AI & Agents
Command

/cs-memory

Inspect, trace, and adopt the tiered agent-memory store (status | why | contested | adopt | forget)

From plugin
claude-skills
30k169 skills127 agents169 commands2 MCP
$ npx -y skills add alirezarezvani/claude-skills --agent claude-code

Command definition

cs-memory.md
disable-model-invocation: true
description: Inspect, trace, and adopt the tiered agent-memory store (status | why | contested | adopt | forget)
argument-hint: "status | why \"<claim>\" | contested | adopt | forget \"<claim>\""

/cs-memory — curate what the agent remembers

Argument: `$ARGUMENTS` (default: `status`)

Scripts live at `engineering/agent-memory/skills/agent-memory/scripts/`. All are stdlib-only and read-only except where stated.

---

`status` (default)

1. Run `memory_inspect.py --tier L3`, `--tier L2`, `--tier L1`. 2. Read `.memory/staged/promotions.json` if it exists. 3. Read the last 7 days of `.memory/errors.log` if it exists — **surface any entry**. That file is where silently dropped writes are recorded, and a log nobody is pointed at is the same as no log.

Report, in this order: what is always loaded (L3), what this project loads (L2), how many candidates are waiting and what is blocking each, what is staged for adoption, and any dropped writes.

**Do not adopt anything here.** `status` is read-only.

---

`why "<claim>"`

Run `memory_inspect.py --why "<claim>"`.

Report the full provenance: observation count, distinct sessions, distinct calendar days, first and latest transcript back-pointers, whether each resolves, and the quoted source line when exactly one transcript matched.

If the resolution status is **`ambiguous`**, say so plainly and print no source line. Two projects can hold a transcript of the same basename; guessing attaches a real claim to the wrong session, and a wrong citation is worse than none.

---

`contested`

Run `memory_inspect.py --contested`.

For each pair, present both claims with their dates and sources side by side and ask the user which governs. **Do not pick.** Do not merge them. Do not mark one resolved on your own judgement — resolution is a human decision by design.

---

`adopt`

The only command in this file that writes. Six steps, in order, no skipping:

1. Run `memory_promote.py --stage` to refresh `.memory/staged/promotions.json`. 2. **Back up both `CLAUDE.md` files** (project and global) with a timestamped copy. Do this before writing anything, every time. 3. Walk the staged list **one atom at a time**. For each, show the claim, the evidence (sessions, days, sources), and the target file. Wait for the user. 4. **Refuse outright** any atom with `redacted: true` — no amount of evidence substitutes for the human reading the original. Explain why and move on. 5. **Refuse** any atom whose citation does not resolve. 6. Append accepted atoms to the target `CLAUDE.md` under a clearly marked `<!-- agent-memory: adopted -->` section, and log each to `.memory/adopted.log`.

Never write to a `CLAUDE.md` outside this flow. Never batch-accept.

---

`forget "<claim>"`

1. Locate the atom with `memory_inspect.py --why "<claim>"`. 2. Show the user exactly what will be removed, from which tier, and whether it was already adopted into a `CLAUDE.md`. 3. On confirmation, remove it from `.memory/atoms.jsonl` and, if it was adopted, remove the corresponding line from the `CLAUDE.md` — after backing that file up.

Removing an atom does **not** prevent re-learning. If the marker fires again in a future session, it returns. That is correct: forgetting is not a permanent veto, and saying so avoids a confusing surprise later. To stop it returning, change the underlying fact or state the correction — a correction is itself a high-confidence observation.

---

Refuse and route

  • No `.memory/` directory yet → say so. It is created on the first session end

with the hooks installed; nothing is wrong.

  • User asks to lower a promotion threshold so something passes → refuse. Gates

are changed in the open, in `DESIGN.md`, not per-claim. Offer to record the case as evidence the threshold is wrong.

  • User asks to design or price a memory system generally → route to

`engineering/memory-engineering`. This skill *is* a memory system; that one audits any of them, this one included.

Read more
@alirezarezvani
Ships withclaude-skills

411 production-ready skills for Claude Code and 12 other coding agents, covering engineering, product, marketing, compliance, finance and the C-suite. We test whether each skill loads when you ask in plain words, and publish the results.

30k200 skills127 agents2 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
29.6k
Star history of alirezarezvani/claude-skills on GitHub, a chart by star-history.com

Other commands on claude-skills.

focused-fix

focused-fix

Command

Deep-dive feature repair — systematically fix an entire feature/module across all its files and dependencies. Usage: /focused-fix…

plugin-audit

plugin-audit

Command

Comprehensive audit pipeline for skills, plugins, agents, and commands. Validates structure, quality, security, marketplace…

More commands from other plugins.

devbox-entrypoint

devbox-entrypoint

Command

Context: runloop resumes a devbox by re-running the same entrypoint script, which invokes `cn serve --id <agentId> ...`. Because…

continue12d36k
@continuedev@continuedevInstall Command
c

c

Command

Shortcut for "continue working" — pick the work in flight back up exactly where it stopped and keep going until it is done or…

lifeos2w20k
@danielmiessler@danielmiesslerInstall Command
sidecar

sidecar

Command

Spawn a read-only sidecar subagent to investigate something in this checkout without editing files, moving branches, or touching…

@builderio@builderioInstall Command