Automated summary
Writes a cold-start brief (HANDOFF.md) capturing the real state of an in-progress implementation so a fresh session can resume without re-exploring the codebase.
Strengths
- Creates the file and its section headers up front, then fills them, so a partial handoff already exists on disk if context compacts mid-run
- Reconciles task-document checkmarks against actual repo reality: files in the diff, test results, and changes belonging to no step
- Batches independent git commands as parallel tool calls and also captures blockers, session decisions, deferred issues and gotchas
- Enforces a concrete output structure: current state, files to read first, step in progress, next actions
Limitations
- Assumes a specific project convention (a tech-decomposition task document under tasks/task-[name]/) that many repositories do not follow
- The {{TEST_CMD}} placeholder must be configured, otherwise test state is not captured properly
- Only produces the document — it does not verify that the next session actually resumes from it
Use when context is running long or work must be paused mid-implementation and picked up later in a fresh conversation window.
Avoid it when the task is finished and simply needs committing, or when the project has no task document to reconcile against the code.
Security analysis
SafeThe skill instructs only read-only git inspection, local file reads, and writing a handoff markdown file plus a one-line note in an existing task document. Bash use is legitimate and non-destructive; there is no exfiltration, obfuscation, or privilege escalation. The only mild consideration is that the templated test command executes project code, which is expected behavior for a test-state capture step.
- •Bash is used for read-only git inspection (branch, log, status, diff, stash list, merge-base) — no mutations or network calls
- •`{{TEST_CMD}}` is an unresolved placeholder; when filled it will execute the project's test command, which can run arbitrary project code, but that is inherent to running tests
- •Write/Edit are scoped to producing `tasks/task-[name]/HANDOFF.md` and a small note in the task doc — no destructive file operations
- •No secrets, credentials, or repository contents are sent anywhere; no curl|sh, base64 payloads, or safety-disabling instructions
Examples
I need to stop for today — prepare a session handoff for the current task so I can pick it up tomorrow in a fresh conversation./ph tasks/task-auth-refactor — write the handoff doc, including any uncommitted changes that don't belong to a step yet.My context window is getting long and I'm in the middle of step 4. Save progress into HANDOFF.md and capture the failing tests and open blockers.name: ph description: >- Prepare session handoff for continuation in a new conversation. Use when 'prepare handoff', 'save progress', 'session handoff', 'I need to stop', 'prepare for next session', 'hand off', 'write handoff', or when the user wants to pause mid-implementation and resume later in a fresh context window. argument-hint: [task-directory] allowed-tools:
- Read
- Write
- Edit
- Bash
- Glob
- Grep
Prepare Handover Command
Announcement: Begin with: "I'm using the ph skill to prepare a session handoff."
PRIMARY OBJECTIVE
Capture the current implementation state into a cold-start brief (HANDOFF.md) so a fresh Claude session can resume work without re-exploring the codebase. This is invoked when context windows run long or when work spans multiple sessions.
Write-first discipline
Context may compact while this skill runs. Create HANDOFF.md with section headers immediately after STEP 1, then fill each section as you complete STEPS 2–5. A partially-written handoff on disk is more useful than a fully-planned one that never gets saved. Produce every section through to the end — do not stop early due to token concerns.
WHY THIS EXISTS
/si Continue mode works well when the task document is perfectly up to date. In practice, handoffs happen mid-step when docs are stale — checkmarks don't reflect actual code state, recent decisions aren't documented, and the next session wastes tokens re-discovering what this session already knew.
HANDOFF.md solves this by capturing a point-in-time snapshot that the next session can load directly.
WORKFLOW
STEP 1: Resolve Task
- If
$ARGUMENTSprovided, locate the task directory - Otherwise, detect from current branch or ask: "Which task to prepare handoff for?"
- Read the task document (tech-decomposition)
STEP 2: Capture Git State
Run all of the following bash calls in the same turn — they are independent. Batch them into a single response with parallel tool calls rather than issuing them one at a time.
# Branch and last commit
git branch --show-current
git log --oneline -5
# Working tree state
git status --short
# Uncommitted changes summary
git diff --stat
git diff --cached --stat
# Stash list
git stash list
STEP 3: Capture Implementation State
- Identify current step: Read task doc checkmarks — find the last checked step and the first unchecked step
- Reconcile with reality: Compare task doc claims against actual code. Check every file in the diff, not only the files named in steps:
- Do files mentioned in checked steps exist?
- Do tests for checked steps pass?
- Are there files modified but not mentioned in any step? (exploratory changes, debug code, temp scaffolding — all go under "Gotchas")
- Is there uncommitted work that belongs to no step at all? Document it.
- Identify recently modified files:
git diff --name-only $(git merge-base HEAD main)..HEAD - Capture test state:
{{TEST_CMD}} 2>&1 | tail -20
The git diff --name-only call above can run in the same turn as the test command and the STEP 2 git calls — batch them with parallel tool calls.
STEP 4: Capture Context
- Blockers: Any known issues, failing tests, unresolved errors
- Key decisions: Implementation choices made during this session that aren't in the task doc
- Deferred issues: Pre-existing problems discovered but intentionally not fixed
- Gotchas: Surprising behaviors, workarounds applied, things the next session should know
STEP 5: Write HANDOFF.md
Write to tasks/task-[name]/HANDOFF.md:
# Session Handoff
**Date**: YYYY-MM-DD
**Branch**: [branch-name]
**Last Commit**: [sha] [message]
---
## Current State
**Step in progress**: Step [N]: [description]
**Completed steps**: [list of checked steps with brief notes]
**Overall progress**: [X of Y steps complete]
## Files to Read First
Load these files to rebuild context (ordered by importance):
1. `[path/to/most-critical-file]` — [why: e.g., "main implementation file for this step"]
2. `[path/to/test-file]` — [why: e.g., "failing test that needs GREEN implementation"]
3. `[path/to/related-module]` — [why: e.g., "dependency modified in Step 2"]
4. `[path/to/task-doc]` — [why: "source of truth for requirements"]
5. `[path/to/context-file]` — [why: e.g., "database schema with new model"]
## Working Tree State
[git status output]
**Uncommitted changes**: [description of what's in progress but not committed]
**Stashes**: [any stashed work and what it contains]
## Test State
[test output summary — passing/failing counts]
**Failing tests**: [list with file:line if applicable]
**Reason**: [why they fail — e.g., "RED phase, implementation not written yet"]
## Key Decisions Made This Session
| # | Decision | Rationale |
|---|----------|-----------|
| 1 | [what was decided] | [why] |
## Blockers & Gotchas
- [any known issues the next session should be aware of]
## Deferred Issues
- [pre-existing problems not in scope, logged here for awareness]
## Next Actions
1. [Immediate next thing to do — be specific]
2. [Then this]
3. [Then this]
STEP 6: Update Task Document
- Ensure all checked/unchecked steps accurately reflect code state
- Add a note in the task doc:
**Handoff prepared**: See HANDOFF.md for session context
HOW /si CONTINUE MODE USES HANDOFF.md
When /si detects Continue mode, it checks for HANDOFF.md in the task directory:
- If HANDOFF.md exists: Load it first, read the "Files to Read First" section, then reconcile with task doc. This is faster and more accurate than re-exploring.
- If HANDOFF.md is absent: Fall back to the current behavior (scan task doc checkmarks, run tests, read recent commits).
After /si Continue mode successfully resumes:
- Rename
HANDOFF.mdtoHANDOFF-[date].md(archive, don't delete — useful for debugging session boundaries)
CONSTRAINTS
- HANDOFF.md stays uncommitted — it's a transient artifact consumed by the next session. Leave it in the working tree, not in git history.
- This skill only captures state — If you notice a quick fix while reviewing, log it under "Next Actions" and let the next session decide. Fixing mid-handoff corrupts the snapshot you are about to save.
- Be honest about state — if tests are failing, say so. If a step is partially done, say so. The next session needs truth, not optimism.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/prepare-handover-mryiqfl3/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/prepare-handover-mryiqfl3' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/prepare-handover-mryiqfl3/download' --output '.skill-downloads/prepare-handover-mryiqfl3/SKILL.md.part' && mv '.skill-downloads/prepare-handover-mryiqfl3/SKILL.md.part' '.skill-downloads/prepare-handover-mryiqfl3/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/prepare-handover-mryiqfl3/SKILL.md' && test -s '.skill-downloads/prepare-handover-mryiqfl3/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/ph' && cp -R '.skill-downloads/prepare-handover-mryiqfl3' '.claude/skills/ph'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/prepare-handover-mryiqfl3'openskills read 'prepare-handover-mryiqfl3'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/prepare-handover-mryiqfl3/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
PDF Reader
Productivity
Read and extract text from PDF files, including documents, reports, contracts, and spreadsheets. Works with local files, URLs, and WhatsApp attachments. Use whenever PDF content is needed, even if not explicitly requested.
Discord Messaging Workflows
Productivity
Use the message tool to send, edit, and moderate Discord messages with interactive components.
Interactive Verdict Preview
Productivity
Generate an interactive HTML preview of keep/drop verdicts for maintainer review, then process the pasted feedback JSON.