AI Guides › Playbooks
By Nigel Guy · 7 min read
Most people treat Claude's memory feature as the continuity plan. It saves things on its own, you never see it decide what mattered, and three weeks later the assistant half-remembers a decision you reversed in week one. It feels fine while it works because the gaps only show when you are relying on it.
A stricter alternative is boring on purpose: a fixed set of plain files, read in a fixed order, at the start of every session, and updated at the end. You can open them, diff them and correct them. Memory then becomes a bonus rather than the foundation.
The rule: automatic memory is a convenience, not a record. Anything you would be annoyed to lose lives in a file you wrote or approved, and the session reads it in the same order every time.
A note on sourcing. The idea came from someone describing their own setup of seven agents, each reading the same seven files in the same order. We could not verify that setup independently, so nothing below depends on it. The seven files here are our design; the product behaviour is checked against Anthropic's documentation.
Verified against Anthropic's help centre and Claude Code docs on 2026-10-04:
| Surface | What carries over | Who controls it |
|---|---|---|
| Claude (web, desktop, mobile) | Memory saved as topics from your chats. Each project has its own memory, separate from non-project chats. | Claude saves on its own, or when you say "remember this". You can read, edit and delete topics in Settings > Memory. |
| Claude Code | CLAUDE.md files you write, plus "auto memory" notes Claude writes itself. Each session starts with a fresh context window. |
You write the first; Claude writes the second. Auto memory loads the first 200 lines or 25KB. |
Details that catch people out:
CLAUDE.md is context, not enforced configuration. If an action must be blocked, use a hook or permissions setting, not a polite instruction.Seven files, numbered so the order is visible in the filename. Keep each short. In Claude Code, put them in the project folder and import them from CLAUDE.md with @path/to/file lines (imports load at launch, up to four hops deep, so they organise rather than save context). In a Claude project, upload them as project knowledge and name the order in the project instructions.
| # | File | Holds | Changes |
|---|---|---|---|
| 1 | 01-role.md |
Who the agent is, who it works for, what a good result looks like | Rarely |
| 2 | 02-rules.md |
Standing rules, tone, things it must never do | Rarely |
| 3 | 03-glossary.md |
Names, jargon, tools, people and what they mean here | Occasionally |
| 4 | 04-state.md |
Where the work stands today, in under 15 lines | Every session |
| 5 | 05-decisions.md |
Dated decisions, each with the reason and whether it is final | When you decide |
| 6 | 06-open-loops.md |
Unfinished items, who owns them, what unblocks them | Every session |
| 7 | 07-handoff.md |
The last session's summary and the first move for the next | Every session |
Order matters because stable material comes first and volatile material last. In Claude Code, files are concatenated rather than overriding each other, and what comes later is read last. So the state and handoff land closest to the task.
CLAUDE.md file is Anthropic's own target; apply the same discipline to the pack.archive/ folder the agent does not read by default.You are my [AGENT_ROLE] for [PROJECT_NAME]. Before doing anything else, read these files in this exact order: [LIST_OF_FILES_IN_ORDER].
Then reply with only:
1. Two sentences on the current state, in your own words.
2. The open loops you think matter most today, maximum three.
3. Anything in the files that contradicts something else in them.
4. Any file you could not read.
Do not start work yet. If a file is missing or empty, say so rather than guessing its contents. Today's task is: [TODAY_TASK]. Wait for my go-ahead.
Fill in the role, project, file list and today's task.
You are my [AGENT_ROLE] for [PROJECT_NAME]. We are ending the session. Using only what happened in this conversation and the current contents of the pack files, propose updates in this order:
1. 04-state.md: replace with the current state, under 15 lines.
2. 05-decisions.md: add any decision we made, with date [TODAY_DATE], the reason, and whether it is final or provisional. Do not add anything we only discussed.
3. 06-open-loops.md: add new loops, tick off closed ones, and name an owner for each.
4. 07-handoff.md: replace with a summary in five lines or fewer and a single recommended first action for next time.
Show each file as a before-and-after. Mark anything you are unsure about with [CHECK]. Do not invent dates, owners or reasons. If something is missing, ask me. Before you answer, check that no proposed line contradicts a decision already in 05-decisions.md.
Fill in the role, project and today's date. Paste the approved text into the files yourself, or have Claude Code write them after you say yes.
Say you run a small bakery and use one Claude project for supplier emails. Your 02-rules.md says never promise delivery dates. In 05-decisions.md: "3 Sept: switch flour supplier to Alder Mill, because of price; provisional until the first two deliveries." 06-open-loops.md lists "confirm Alder Mill's invoice terms, owner: you, blocked until their reply."
Three weeks later you open a new chat. The opener makes Claude report the supplier switch, the open invoice question and the provisional status. Without the pack, memory might have retained "uses Alder Mill" but not that it was provisional, and the draft email would have treated it as settled.
AGENTS.md in some configurations, but if a CLAUDE.md exists it normally reads that instead, so check which file is winning.Keep memory switched on if it helps. Just do not make it the only copy.