Zen handoff
Make the next agent able to continue without guessing what is implemented or repeating completed side effects.
Capture
- Read the task/specification, recent session/run events and actual workspace state. Identify base/head, dirty files and worktree when relevant. Separate source inspection and implementer reports from independent verification.
- State the original objective and accepted corrections. Include settled decisions, remaining scope, selected ART/SRT, relevant lessons and the owner-selected CLI/model/effort. A fresh session does not cancel earlier requirements.
- List implemented, tested, unverified and pending separately. Checks need commands, results, timestamps and output paths. Preserve failed/unavailable checks instead of implying success.
- Identify blockers, pending owner decisions and ambiguous side effects. Name the delivery state plainly: committed, pushed, pull request open, merged to canary, promoted to main. zen-delivery defines those steps. If an acknowledgement was lost, retain the operation key and inspect its result before retrying. Browser disconnection does not prove a task stopped.
- Give one exact next action, its prerequisites and the smallest context to load. Include record refs and worktree paths; exclude secrets, one-time codes and copied private profiles. Link parent/child sessions only when observed.
- Save a DOC with
data.kind: "handoff"and task/session/evidence links. Keep prior handoffs and relate the replacement. Use tools.md, or standalone records. With no writer return a complete labelled draft.
Resume
Read the latest applicable handoff and task. Recheck mutable facts cheaply: branch, dirty state, active process, current revision, device connection and pending commands. Do not repeat an already-applied launch or publish action. Continue within the existing authorization, or prepare the missing decision.
Use the handoff template. A useful example is “writer persistence and fixture replay passed; a real provider run is unverified; next choose the model in Zen,” rather than “backend done.” Do not send the handoff to another person, chat or service without authorized transfer.