WORKFLOW REFERENCE
Handoff
Capture the minimum durable state another session or agent needs to continue safely — nothing missing, nothing extra.
Codex CLI
$engineering-flow:handoffClaude Code
/engineering-flow:handoffWhy this workflow exists
Handoff is information compression. The next session does not need the transcript; it needs the smallest complete set of facts required to continue safely. An eight-item checklist guarantees completeness, and an empty category must say “None” rather than quietly disappearing — because omission and absence look identical to whoever reads it next.
How it runs, stage by stage
Every rule below is taken from the workflow definition in the source repository — this is what the agent is actually told to do.
- 01
Gather current facts
Re-read the real state instead of trusting memory.
- Re-read version-control status and the relevant diff.
- Read the authoritative requirement and design documents.
- Check the latest verification output rather than relying on memory.
- Identify blockers, unresolved decisions, and unrelated work that must be preserved.
- 02
Produce the handoff
Eight items, every one explicit, empty categories written as “None”.
- Objective and accepted behavior.
- Current implementation state.
- Key files and authoritative documents.
- Decisions already made and their reasons.
- Commands run and their latest results.
- Remaining tasks in dependency order.
- Known risks, blockers, and unverified areas.
- Version-control state and unrelated changes to preserve.
- References support the facts; they do not replace them. Summarize each decision and its reason even when linking the source, and reference documents, commits, diffs, and test output instead of copying their full contents.
- Write to the requested path when one is provided; otherwise return the handoff in the response without silently creating a repository file.
Rules that cannot be bypassed
The eight-item checklist
Objective, state, key files, decisions, command results, remaining tasks, risks, and version state. An empty category says “None” — it is never omitted.
Facts, not transcripts
Conclusions and their reasons are recorded; documents and test output are referenced. The conversation is never copied wholesale.
No silent files
A file is written only when you give an explicit path; otherwise the handoff comes back in the reply.
Fresh state only
Version-control status, diffs, and verification output are re-read at handoff time rather than recalled from earlier in the session.
A real invocation
What the conversation actually looks like, from the token you send to the evidence you get back.
$engineering-flow:handoff
Create a continuation record with the objective, completed state, key files, decisions, latest verification, remaining work, risks, and Git status.- Agent
Re-reads Git status and the diff, the authoritative requirement record, and the most recent test output.
- Agent
Organizes the facts into the eight items, writing “None” for blockers rather than dropping the category.
- Agent
Summarizes each decision with its reason, and references the requirement document and test results instead of pasting them.
- Agent
Returns the record in the response — no path was given, so no file is created.
When to use it
- The session is ending and work passes to another session or teammate.
- The context window is nearly full and state must be saved before compaction.
- You need an executable record of exactly where the task stands.
- Someone else will continue and must not repeat decisions you already made.
When to reach for something else
| Situation | Use instead |
|---|---|
| You want a summary for a human reader, not a continuation record | Just ask for a summary |
| The work itself is unfinished and you want it finished | Develop |
| You want an assessment of the change quality | Review |
Questions
Will it write the handoff to a file?
Only when you give an explicit output path. Otherwise the record is returned in the reply and no repository file is created.
Why does it write “None” instead of skipping a section?
Because omission and genuine absence look the same to the next reader. Writing “None” proves the category was actually checked.
Does it paste the whole conversation?
No. It records conclusions and reasons, and references documents, commits, diffs, and test output rather than copying them.
Can I use it mid-task?
Yes. It captures the current state at any point — including unresolved decisions and unrelated work that must be preserved.