brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
agent-memory-disciplineTeaches when to recall from long-term memory before acting and when to save durable decisions, corrections and failures afterwards. Use when a memory tool or MCP memory server is connected but the agent is not using it consistently, when the user complains that the assistant forgets preferences, conventions or past decisions between sessions, or when settin…
Independent GitHub snapshot · Automated classification · Original documentation governs
Connecting a memory tool does not make an agent use it: tools register, the session runs, and nothing gets recalled or saved. This skill supplies the missing part, standing rules for when to read memory and when to write it.
The problem it solves is specific. An agent with memory available still repeats settled questions, reverts corrected habits, and loses decisions between sessions, because nothing tells it when recall and save are due. The rules below make both moments explicit.
memory/ folder of Markdown notes, one fact per file. No dependencies, fully greppable, versionable in git.Read memory before doing any of these, not after:
Skip recall for one-off factual questions, arithmetic, or anything fully specified in the current message. Recall costs a tool call and context; spending it on a self-contained question is waste.
Search with the words the user actually used, plus the project or repository name. If the first search returns nothing useful, try one broader query, then stop and proceed without memory rather than looping.
Do not recall what the conversation already holds. An entry that is already in the context window is not read again, and when a later turn needs a fresh recall, the memory block in the prompt is replaced, not appended, so the model never sees two copies of the same entry. A hosted memory server cannot do this for the agent: it does not know what the conversation contains, so the guard belongs to the client that builds the prompt.
Write to memory when one of these has just happened:
Do not save: the contents of files that can be read again, restatements of the current task, transient state, anything the user marked as temporary, and anything containing secrets, tokens, or personal data.
One memory, one fact. A paragraph containing four decisions cannot be superseded cleanly when one of them changes.
A memory that is useless in three weeks was written wrong. Give each entry, in the text if the backend has no fields for it:
Prefer the user's own words over a paraphrase. Paraphrase drifts.
When something changes, the old memory is not wrong. It is closed.
If the project moved from Redux to Zustand, "we use Redux" was true from January to June. Deleting it destroys the explanation for every component written in that window. Mark it superseded, keep its validity window, and write the new one alongside.
This is the single most destructive habit in agent memory, and it stays invisible until someone asks a question about old code.
If recall returns two entries that disagree, do not pick the closer match and proceed. Surface both, with their dates, and ask or flag. A convention that a recent failure contradicts is exactly the situation where the user needs to be told, not smoothed over.
An observation becomes policy when a human confirms it, when it lands in a merged decision record, or when it has worked repeatedly. Never promote a single observation to a rule without one of those.
Following this skill produces two things, and nothing else:
Project uses pnpm, not npm. Stated by the user on 2026-08-11 after a lockfile conflict. Applies to all packages in this repo.
A superseded entry keeps its text and gains an end date and a pointer to the entry that replaced it. The full format, with closing and evidence examples, is in references/entry-format.md.
The user says: "stop using npm here, we're on pnpm."
Project uses pnpm, not npm. Stated by the user on 2026-08-11 after a lockfile conflict. Applies to all packages in this repo.Recall returns two entries: Integration tests run against the staging database (2026-06-02) and Integration tests use a local container; staging is off limits after the incident (2026-08-19).
Checklist to keep in the loop:
Related reading on the underlying ideas: Agent Skills overview, Claude Code skills, and the Model Context Protocol for connecting memory servers.
Written and maintained by the team behind Mnemoverse, which is one hosted implementation. The rules above are deliberately backend-neutral and were written to be useful without it.