adopt
Use when: user asks to increase claude-mem-lite's tool-invocation rate in the current project, or to (re)install the steering block. Writes a sentinel-wrapped…
Use when: the user explicitly asks to verify, audit or correct their stored memories against the current code (e.g. \"check my memories for stale ones\", /verify). You check each memory with read-only repo tools and propose corrections; nothing is written until the user approves
> /plugin marketplace add sdsrss/claude-mem-lite > /plugin install claude-mem-lite@sdsrss
How it fires
How this command gets triggered: by you, by Claude, or both.
/verifyContext preview
What this command does when you run it.
Use when: the user explicitly asks to verify, audit or correct their stored memories against the current code (e.g. \"check my memories for stale ones\", /verify). You check each memory with read-only repo tools and propose corrections; nothing is written until the user approves
name: verify description: "Use when: the user explicitly asks to verify, audit or correct their stored memories against the current code (e.g. \"check my memories for stale ones\", /verify). You check each memory with read-only repo tools and propose corrections; nothing is written until the user approves the exact plan. Not for routine recall or saving."
Memories go stale: a bug recorded as open gets fixed, a measurement gets retracted, a mechanism is replaced. Measured on 118 live memories across 7 repos, ~10% were STALE and ~14% PARTIAL, and most went stale within a day of being saved. No automatic pass catches this — cheap single-shot models misjudged it (precision 0.36) and model-written corrections were false in 28 of 72 cases. What works is YOU reading the code: you propose, the user approves the exact plan, and `verify-apply` is the only thing that writes.
(If another plugin also defines `/verify`, this one is `/claude-mem-lite:verify`.)
Get the exact project name first. For the current project (the usual case), run from the project's directory:
node "${CLAUDE_PLUGIN_ROOT}/cli.mjs" verify-apply --print-projectIt prints the canonical name (e.g. `dev--my-app`) that verify-apply itself will target. For another project, use the name the user gave only if it already has the `parent--name` shape; otherwise ask. Always pass that exact name — `export --project` matches loosely and can pick a neighbouring project from a short name.
node "${CLAUDE_PLUGIN_ROOT}/cli.mjs" export --project <project> [--from <date>] > <scratch>/memories.jsonEvery row carries `id`, `project`, `type`, `title`, `narrative`, `facts`, `lesson_learned`, `files_modified`, `created_at`. Check that every row's `project` is the name you passed. With `--ids`, filter the file to those ids. The repository to check them against is the current directory for the current project; for another project, ask the user where it lives. `files_modified` holds both absolute and repo-relative paths. Tell the user how many memories you are about to check.
For EACH memory, answer: *if this memory were shown to an agent working in this repo today, would anything it asserts mislead that agent?*
1. List its concrete, checkable claims: identifiers, file paths, `file:line` references, constants, counts, behaviours, "X is still broken", "Y was measured at Z". 2. Check each against the current tree (Grep, Read) and, where useful, the history since `created_at` (`git log --since=<created_at> -- <files>`, `git log -S<token>`, `git show`). 3. Pick one verdict:
renamed/removed symbol, a changed value or default, a changed behaviour, a bug presented as open that has since been fixed, a count that moved, a measurement later retracted.
mechanism) is out of date.
Rules that the measurement showed matter:
command's output that contradicts a specific claim.
off by `head` or a size limit, proves nothing — re-run it untruncated before calling a claim stale.
measurement: stale only if a later commit or document reports a different value, not because you cannot re-run it here.
history. It is stale only if it would mislead about the PRESENT.
More than ~25 memories: split them into batches and give each batch to a read-only subagent with the rubric above; have each subagent write its results to a file with a bash heredoc and reply with only the path. Treat a subagent's verdict as a lead: before proposing anything, re-open every cited `file:line`, commit or command yourself.
If every memory is VALID (or UNVERIFIABLE / NO_CODE_CLAIM), stop here: report the counts to the user and say nothing needs changing. Do not run Step 4 with an empty proposals file.
Write `<scratch>/proposals.json` — a JSON array, one entry per memory to change:
[
{ "id": 52, "action": "replace", "verdict": "STALE",
"title": "...", "narrative": "...", "lesson_learned": "...",
"evidence": "7bc8ba9; hook-optimize.mjs:1371-1383" },
{ "id": 64, "action": "edit", "verdict": "PARTIAL",
"set": { "narrative": "..." }, "evidence": "hook-llm.mjs:1359-1361" },
{ "id": 201, "action": "retire", "verdict": "STALE", "evidence": "600c744" }
]`importance` or `concepts`. Copy the original text into `set` and change only the stale words.
stale detail sits in `facts` (edit cannot change `facts`). Write the corrected memory; give `facts` (an empty string drops them) or `concepts` when those are what is stale. Omitted fields are copied from the original, which stays as history.
claude-mem-lite is a persistent memory (also called long-term memory or cross-session context) system for Claude Code — Anthropic's CLI coding agent.
Use when: user asks to increase claude-mem-lite's tool-invocation rate in the current project, or to (re)install the steering block. Writes a sentinel-wrapped…
Use when: logging a known bug + repro steps you can't fix right now. Writes a searchable observation (findable via mem_search + surfaced by recall hooks; still…
Use when: capturing a non-obvious lesson/gotcha/workaround after a tricky fix or surprising behavior. Writes a searchable observation (findable via mem_search…
Use when: user asks to remember something, after solving a non-obvious problem, or to capture key session findings