handoff
Handoff
Write a complete but selective continuation handoff, tailored to any next-session focus the user provides. The focus may narrow the next action; it must not erase the larger goal or remaining work.
A handoff is a judgment exercise, not template fill. Its failure mode is either a polished recap of facts recoverable from git status, or a terse pointer that makes the next session reconstruct the research and decisions again.
Close the session
Before building the handoff, finish in-flight verification and normal repository bookkeeping allowed by the existing task scope and authorization, including an already authorized commit, push, or deploy. Do not start new product work. If a clean stop needs new implementation or authority, preserve the exact remaining state. Write the handoff last, from that state.
Build the handoff
- Reconstruct from session memory: the goal, verified state, research that changed the direction, decisions and their reasons, rejected or deferred paths, failed approaches, open work, blockers, and the clearest executable next step. Include only the categories that matter, but do not drop load-bearing context to make the handoff short.
- Spend a verification budget of at most five cheap, read-only operations total —
git status, one boundedgit log, a targeted read or search — on the facts whose misstatement would change the receiving session's first action. Prefer a cheap check for those facts; write everything outside the budget as unverified. Never run builds, tests, or history reconstruction (merge-base, ancestry, reflog tracing) for the handoff. - Omit facts the next session can recover cheaply unless their interpretation matters. Link durable documents — specs, plans, ADRs, issues, commits, diffs, audits — and say what each load-bearing one establishes. A link never replaces a decision, disposition, warning, or next step.
- When continuation depends on working documents, give each exact path and its durability as known from the session — committed, untracked, gitignored, temporary, or unknown. If the only detailed artifact is ephemeral and memory is insufficient, make a targeted read of that artifact — content recovery, not a re-audit — and carry enough of its findings in the handoff to survive its loss.
- When work spans sessions or repositories, name both states instead of collapsing them: the session-sized loop that may be closed, and the larger workstream — its scope, what landed, what remains open, what was rejected or parked.
- Match the user's language. Keep commands, paths, identifiers, and source-language technical text exact. Redact secrets and personal details that are unnecessary for continuation.