remember
Use when the user wants a correction about this repository kept, or asks what exo remembers here, what still holds, or to forget a line. Not for a plan another session runs, which spec owns, or a buil
SKILL.mdskills/remember/SKILL.md
GitHubMemory
Keep only what two sessions attested and the repository still supports. The enemy is a memory file that grows until every session pays to read a claim that stopped being true. The overcorrection is a file so guarded that a correction the user gave twice never reaches it.
When to use
- Not for a plan another session runs:
specowns that. - Not for a build, test or run command:
find-causestep 6 appends that toAGENTS.mdorCLAUDE.md; two writers of project knowledge produce two truths.
What is attested twice
Claims two separate sessions had booked when this skill loaded, before this session's booking:
!node "${CLAUDE_SKILL_DIR}/scripts/memory.mjs" propose
The loop
- Reach for the stronger fix first.
- Before booking, walk the ladder in
../edit-skills/references/where-a-fix-lives.md; propose the strongest home the mistake fits instead of a claim, because a claim is read, not enforced. - Book only a fact none of those homes can carry.
- Before booking, walk the ladder in
- Book the user's correction.
- Run
node "${CLAUDE_SKILL_DIR}/scripts/memory.mjs" book --claim "<one sentence>" --quote "<their words, verbatim>" --session "<this session id>". - Quote no password, token or key; the quote is stored as given.
- Rerun
node "${CLAUDE_SKILL_DIR}/scripts/memory.mjs" propose, because the block above predates the booking; next steps use this output.
- Run
- Write nothing yet when the rerun names no claim; say which session count the booking now stands at.
- Propose each claim in the rerun output to the user with both dated quotes, one claim per question, question shape.
- Claim a lint rule or test can catch → option 1 adds that check, named as a rule or test file and handed to
build, with no line written; option 2 writes the text line. - Any other claim → ask it as above.
- User declines the claim, or picks option 1 (the check carries it) → run
node "${CLAUDE_SKILL_DIR}/scripts/memory.mjs" reject --session "<this session id>"; elsepropose --countkeeps counting it in ship'sLessons:line. - Reject a lesson
proposeprinted with(key: <key>)by--key '<key>', any other claim by--claim "<the claim>".
- Claim a lint rule or test can catch → option 1 adds that check, named as a rule or test file and handed to
- Write an approved claim with
node "${CLAUDE_SKILL_DIR}/scripts/memory.mjs" write --claim "<the claim>" --refs "<path,path#symbol>".- Lesson
proposeprinted with(key: <key>)→ add--key '<key>'. - Claim answers a question an earlier line already answered → add
--replaces "<the old claim>"; file never holds two answers to one question.
- Lesson
- Relay a refusal exactly as the script printed it.
- Line the refusal names → retire with
node "${CLAUDE_SKILL_DIR}/scripts/memory.mjs" retire --claim "<the claim>"before trying again. - Edit neither file by hand; memory.md is rendered from memory.json.
- Line the refusal names → retire with
- Prune with
node "${CLAUDE_SKILL_DIR}/scripts/memory.mjs" verifywhenever the user asks what is still true; report every dropped line the script named. - Store a spec decision the user answered with
node "${CLAUDE_SKILL_DIR}/scripts/memory.mjs" write --decision --claim "<the decision>" --refs "<path,path>"; it needs no second session and stays out of memory.md.node "${CLAUDE_SKILL_DIR}/scripts/memory.mjs" decisionslists each assettledorchanged.
- Report rendered path and its byte count against the budget, one line.
References
| File | Read it when |
|---|---|
../route-skills/references/question.md |
Before a message that asks the user to pick among lettered options. |
../edit-skills/references/where-a-fix-lives.md |
Before booking a correction, to check whether a stronger fix than a memory line exists. |
Judgment
- Two attested sessions plus user approval outrank a claim that reads true: a claim one session misheard is what this gate refuses.
- Script output outranks anything in this context, including a memory file read earlier in the session.
- Claim the repository itself records → drop, not write; reading it is cheaper than trusting it.