generate-handover
Skill: Generate Handover
What This Skill Does
This documentation shall serve Agents and Humans when working in consecutive sessions with the project.
Creates a session handover document (plans/<name>/handovers/session-<date>.md) that captures everything a new session needs to continue work seamlessly:
- What was accomplished in this session
- What is in progress (interrupted work)
- Key decisions made and their rationale
- Current state of modified files
- Blockers and issues discovered
- Concrete next steps
- Context that would be lost without the handover
When to Use
- When the user asks to "create a handover" or "save session state"
- When ending a work session on a multi-phase plan
- When work is interrupted and will be continued later
- When switching between team members or agents
Do NOT generate handovers automatically. This skill is invoked manually by the user.
Execution Model (Recommended)
- Preferred: the primary agent runs this skill and writes the handover under
plans/<name>/handovers/. - Rationale: a handover is a distilled session narrative (decisions, rationale, state). It should be authored where the session context lives.
- Optional: delegate
git status/git diff --statinterpretation or bulk file listing todoc-explorer, but keep narrative/decisions in the primary.
Workflow
Step 1: Identify the Context
Determine what to capture:
- Which plan is being worked on? Check
plans/directory - What phase is active? Read
plan.mdandtodo.md - If no formal plan exists, create a standalone handover (see below)
Step 2: Gather Session Information
Collect from the current session context:
Progress:
- What tasks were completed? (from todo list changes, commits, conversation)
- What is currently in progress? (incomplete work, partial implementations)
- What was planned but not started? (remaining todo items)
Decisions:
- What technical decisions were made? (architecture, library choices, approach)
- What alternatives were considered? (and why they were rejected)
- What trade-offs were accepted?
Implementation State:
- Which files were modified? Use
git diff --statorgit status - Are there uncommitted changes?
- What tests are pending?
Issues:
- Are there blockers? (dependencies, unclear requirements, technical issues)
- Were workarounds applied that need revisiting?
Step 3: Write the Handover Document
Create plans/<name>/handovers/session-<YYYY-MM-DD>.md:
If multiple handovers on the same day, append a counter: session-2025-02-14-2.md.
Fill in all sections from the template:
- Session Summary: 2-3 sentences describing what this session was about
- Progress: Organized by completed / in-progress / not-started
- Key Decisions: Table with decision, alternatives considered, and rationale
- Current State: Modified files with what changed, pending tests
- Blockers & Issues: What prevents progress, with potential solutions if known
- Next Steps: Ordered list of what the next session should do first
- Context for Next Session: Free-form section for anything that would be lost - partial reasoning, important constraints discovered, "watch out for" notes
Step 4: Update the Todo List
After creating the handover:
- Ensure
todo.mdreflects the actual current state - Mark completed items
- Add any newly discovered items
- Note blockers
Step 5: Confirm with User
Use the question tool to ask:
- Is anything missing from the handover?
- Are the next steps correctly prioritized?
Standalone Handovers (No Plan)
If there is no formal plan but a handover is needed:
- Create
docs/handovers/session-<date>.md(in the docs directory instead of plans) - Omit plan/phase references from the frontmatter
- Focus on the general session context, decisions, and next steps
Rules
- Accuracy over completeness: Only document what actually happened. Don't invent or assume progress.
- Concrete next steps: "Continue working on auth" is useless. "Implement the JWT refresh token rotation in
src/auth/refresh.ts, starting from therotateTokenfunction stub" is actionable. - Decision rationale matters: Capture why decisions were made, not just what was decided. The next session needs the reasoning to avoid re-evaluating the same options.
- File-based interface: The handover document is the interface. All context goes into the file, not into chat messages.
- Don't duplicate the todo list: Reference
todo.mdfor task status. The handover captures session context (decisions, state, blockers), not a repeat of the task list. - Use git for file state: Use
git statusandgit diff --statto identify modified files rather than relying on memory. - Multiple handovers are normal: Each session can produce its own handover. They are additive, not replacements.
- Keep it scannable: The next session's agent will read this to bootstrap context. Use clear headings, short bullet points, and tables where appropriate.
- Todo updates stay lightweight: When updating
todo.mdin Step 4, make simple status changes directly. For complex plan restructuring, theupdate-planskill should be used instead.
Templates
This skill includes a normative template as a bundled file. Only read the templates when processing them. Output MUST follow the template headings and frontmatter keys:
tpl-session-handover.md- Structure for handover documents