Handover
Two modes. Detect which from the request: write (capture state for a
future session) or pickup (resume from an existing handover).
Handover docs are the project's audit trail of deep dives: date-stamped,
topic-scoped, findable months later. They capture TASK STATE — what memory
must not hold (memory is for durable facts and preferences; a handover is a
snapshot of work in flight).
Where they live
handovers/ at the project root. Default this directory to git-ignored
— handovers carry names, half-formed thinking, and private context; check
.gitignore and add handovers/ if absent, telling the user. Only a
deliberately scrubbed handover ever belongs in version control.
Naming: YYYY-MM-DD_<topic-slug>.md (e.g. 2026-09-16_entity-formation.md).
One topic per file — if the session spans several separable topics, ask
whether to fork them into separate handovers; that is the point of the
system.
Mode 1 — write
- Scope it. If the user named a topic, capture ONLY that thread, not
the whole session. A general end-of-session handover may still fork into
several topical files.
- Structure:
# Handover — <topic> (<date>)
**Status:** OPEN
**Continues:** <prior handover file, if this extends one> / fresh
**One-line mission:** <what this thread is trying to achieve>
**Pickup grade:** <frontier — judgment/strategy/adversarial work ahead |
mixed — frontier session that should delegate the listed mechanical subtasks
to lower-model subagents | execution — a lower model can run this from the
spec below> <one clause saying why>
## State — where things stand
<decisions made (with the WHY), what's done, what's ruled out>
## Open threads
<each: what, who holds the ball, next concrete action>
## Gotchas
<things the next session would waste an hour rediscovering>
## Pointers — read these, in this order
<repo-relative file paths; POINT at files, never duplicate their content —
copies drift, pointers don't. Include line refs where useful.>
## Out of scope here
<adjacent topics deliberately excluded, and which handover covers them>
- Update the index.
handovers/INDEX.md, newest first:
| date | topic | status | file | — create it if missing. The index is
what makes "find that old deep-dive" a ten-second job.
- Close or supersede predecessors. If this handover continues an older
one, edit the old file's Status to
SUPERSEDED-BY <new file> and fix its
index row. Never leave two OPEN handovers on one topic.
- Route durable facts to memory, not the handover — a preference or
permanent fact learned this session goes in the memory system; the
handover gets task state only.
Mode 2 — pickup
- No file named? Read
handovers/INDEX.md, show OPEN handovers, confirm
which (most recent on the named topic is the default guess).
- Read the handover, then the Pointers in the order given — and only
those files. Resist re-exploring; the doc exists so you don't.
- Verify before acting: open threads may have moved since the doc was
written (check the balls-in-court against reality — sent mail, new
files, replies). State what changed since the handover, then continue
the work.
3b. Honor the Pickup grade: on a frontier-model session, delegate the
handover's mechanical subtasks to lower-model subagents rather than
burning frontier tokens on execution work (see the user's model-economy
norm in their global CLAUDE.md, if they keep one).
- When the topic genuinely completes, set Status to
CLOSED and update
the index — an accurate index is the audit trail the user keeps this
system for.
1---2name: handover3description: Write a date-stamped, topic-scoped handover document so a fresh session can continue the work cheaply — or pick one up and resume from it. Use when the user asks for a handover/handoff doc, wants to fork a topic into its own session, or says to resume/re-open a handover.4---56# Handover78Two modes. Detect which from the request: **write** (capture state for a9future session) or **pickup** (resume from an existing handover).1011Handover docs are the project's audit trail of deep dives: date-stamped,12topic-scoped, findable months later. They capture TASK STATE — what memory13must not hold (memory is for durable facts and preferences; a handover is a14snapshot of work in flight).1516## Where they live1718`handovers/` at the project root. **Default this directory to git-ignored**19— handovers carry names, half-formed thinking, and private context; check20.gitignore and add `handovers/` if absent, telling the user. Only a21deliberately scrubbed handover ever belongs in version control.2223Naming: `YYYY-MM-DD_<topic-slug>.md` (e.g. `2026-09-16_entity-formation.md`).24One topic per file — if the session spans several separable topics, ask25whether to fork them into separate handovers; that is the point of the26system.2728## Mode 1 — write29301. **Scope it.** If the user named a topic, capture ONLY that thread, not31 the whole session. A general end-of-session handover may still fork into32 several topical files.332. **Structure:**3435```markdown36# Handover — <topic> (<date>)37**Status:** OPEN38**Continues:** <prior handover file, if this extends one> / fresh39**One-line mission:** <what this thread is trying to achieve>40**Pickup grade:** <frontier — judgment/strategy/adversarial work ahead |41mixed — frontier session that should delegate the listed mechanical subtasks42to lower-model subagents | execution — a lower model can run this from the43spec below> <one clause saying why>4445## State — where things stand46<decisions made (with the WHY), what's done, what's ruled out>4748## Open threads49<each: what, who holds the ball, next concrete action>5051## Gotchas52<things the next session would waste an hour rediscovering>5354## Pointers — read these, in this order55<repo-relative file paths; POINT at files, never duplicate their content —56 copies drift, pointers don't. Include line refs where useful.>5758## Out of scope here59<adjacent topics deliberately excluded, and which handover covers them>60```61623. **Update the index.** `handovers/INDEX.md`, newest first:63 `| date | topic | status | file |` — create it if missing. The index is64 what makes "find that old deep-dive" a ten-second job.654. **Close or supersede predecessors.** If this handover continues an older66 one, edit the old file's Status to `SUPERSEDED-BY <new file>` and fix its67 index row. Never leave two OPEN handovers on one topic.685. **Route durable facts to memory, not the handover** — a preference or69 permanent fact learned this session goes in the memory system; the70 handover gets task state only.7172## Mode 2 — pickup73741. No file named? Read `handovers/INDEX.md`, show OPEN handovers, confirm75 which (most recent on the named topic is the default guess).762. Read the handover, then the Pointers **in the order given** — and only77 those files. Resist re-exploring; the doc exists so you don't.783. Verify before acting: open threads may have moved since the doc was79 written (check the balls-in-court against reality — sent mail, new80 files, replies). State what changed since the handover, then continue81 the work.823b. Honor the Pickup grade: on a frontier-model session, delegate the83 handover's mechanical subtasks to lower-model subagents rather than84 burning frontier tokens on execution work (see the user's model-economy85 norm in their global CLAUDE.md, if they keep one).864. When the topic genuinely completes, set Status to `CLOSED` and update87 the index — an accurate index is the audit trail the user keeps this88 system for.