handoff
Use when work is changing sessions, agents, or machines and the next pass needs a compact handoff document with current state, open questions, and next steps instead of raw chat history.
Best use case
handoff is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when work is changing sessions, agents, or machines and the next pass needs a compact handoff document with current state, open questions, and next steps instead of raw chat history.
Teams using handoff should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/handoff/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How handoff Compares
| Feature / Agent | handoff | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when work is changing sessions, agents, or machines and the next pass needs a compact handoff document with current state, open questions, and next steps instead of raw chat history.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Handoff
Handoff turns the current state of work into a portable markdown brief that another
session, agent, or collaborator can pick up quickly.
The goal is not "summarize everything." The goal is to capture only the information
that would otherwise be expensive to rediscover.
## When to Use
- You are ending a session but the work is not actually finished
- Another agent, model, or machine will continue the task
- The conversation contains decisions that are not yet reflected in committed files
- A reviewer or implementer needs a compact state-of-play document
## When NOT to Use
| Instead of handoff | Use |
|--------------------|-----|
| Continuing the same Copilot CLI session later | `cross-session-memory` or `/resume` |
| Recording durable project guidance for everyone | `knowledge-curator` |
| Writing a committed spec, ADR, PRD, or issue | the destination artifact itself |
## Workflow
### 1. Clarify what the next session is for
Start with one sentence:
- what the next session should accomplish
- what is already done
- what remains uncertain
If the user gave a follow-up goal, tailor the handoff around that goal instead of the
whole conversation.
### 2. Pick a portable file path
Prefer a temporary markdown file outside the repo unless the user explicitly wants a
committed file.
Examples:
```powershell
# PowerShell
$path = Join-Path $env:TEMP ("handoff-" + [System.Guid]::NewGuid().ToString("N") + ".md")
```
```bash
# POSIX shell
path="$(mktemp -t handoff-XXXXXX.md)"
```
If a path already exists, read it before overwriting.
### 3. Reference artifacts instead of duplicating them
Do not restate content that already lives in:
- a plan
- an issue
- a PR
- an ADR
- a committed file
- a benchmark result
Link to those artifacts by path, URL, or commit hash and explain only why they matter.
### 3-A. Redact sensitive data before saving
Before writing the handoff document, actively redact sensitive data in the captured
context:
- API keys, tokens, or credentials -> `[REDACTED]`
- Passwords or secrets -> `[REDACTED]`
- PII in sensitive context -> `[REDACTED]`
- Internal-only URLs or endpoints -> `[INTERNAL URL]`
Do not simply omit the fact that something existed. Replace the value with a
placeholder so the next session knows there was sensitive context without seeing the
secret itself.
### 4. Capture only the load-bearing context
Good handoffs usually include:
- current objective
- work completed
- open questions
- key files and why they matter
- relevant commands, outputs, or result files
- concrete next step
Skip long narrative unless it changes the next decision.
### 4-A. Make delegated work resumable
If the handoff is crossing sessions, machines, or agents, capture the minimum
task ledger needed to resume without guesswork:
- current owner and next owner
- branch or worktree path when one exists
- current status (`ready`, `blocked`, `awaiting-review`, `needs-verification`)
- exact resume trigger
- verifier or synthesizer step if the work fans out
For parallel work, list each active lane separately instead of flattening it into
one vague status paragraph.
### 5. Recommend the next skill or workflow
If another skill would help the next session, name it explicitly and explain why.
Examples:
- `implementation-review` for "compare this delivered diff against the original ask"
- `grill-me` for "the plan still has unresolved assumptions"
- `verification-before-completion` for "prove the claim before reporting success"
### 6. Save the handoff and report the path
The handoff is only useful if the next person can find it quickly. End by giving the
exact saved path.
## Output Template
```markdown
# Handoff
## Objective
- ...
## Current State
- ...
## Task Ledger
| Task | Owner | Status | Resume Trigger |
|------|-------|--------|----------------|
| ... | ... | ... | ... |
## Key Decisions
- ...
## Important Files and Refs
- path or URL - why it matters
## Open Questions
- ...
## Risks or Gotchas
- ...
## Suggested Skills
- ...
## First Next Step
- ...
```
## Common Rationalizations
| Rationalization | Reality |
|----------------|---------|
| "The next session can just read the chat." | Raw chat is slow to rehydrate and easy to misread. |
| "I'll copy every detail so nothing is lost." | Bloated handoffs hide the actual next action. |
| "I'll paste the whole diff again." | Existing artifacts should be referenced, not duplicated. |
## Red Flags
- The handoff repeats existing docs word-for-word
- The next step is still vague after reading the document
- Important files are named without saying why they matter
- Secrets, tokens, or private data are copied into the handoff
## Verification
- [ ] The next objective is explicit
- [ ] Existing artifacts are referenced instead of duplicated
- [ ] Open questions and risks are called out separately
- [ ] The saved path is reported back to the user
## See Also
- [`cross-session-memory`](../../copilot-exclusive/cross-session-memory/SKILL.md) - resume or search prior Copilot sessions
- [`knowledge-curator`](../../copilot-exclusive/knowledge-curator/SKILL.md) - promote repeated lessons into durable project guidance
- [`implementation-review`](../implementation-review/SKILL.md) - compare delivered work against the original requestRelated Skills
verification-before-completion
Use before claiming any task is done — run the exact command that proves the fix works, read the output, and only then report success.
using-git-worktrees
Use when you need multiple branches checked out at once — create isolated working directories for parallel development without cloning the repository repeatedly
triage
Use when a single issue needs structured triage — classify it, reproduce if needed, request missing information, and leave a durable brief or close-out note in the tracker.
to-issues
Use when a plan, spec, or PRD must become an actionable backlog — break it into thin dependency-aware issues that each deliver a verifiable vertical slice
sprint-workflow
Use when starting a new feature, refactor, or multi-step dev task — runs the full sprint cycle (Think → Plan → Build → Review → Test → Ship → Monitor) using Copilot CLI's plan/autopilot modes.
sprint-retro
Use at the end of a sprint to run a data-driven retrospective — analyzes session history and git metrics to surface what shipped, what slowed you down, and concrete improvements.
security-audit
Use when a codebase needs a formal security audit beyond a quick scan — applies OWASP Top 10 and STRIDE threat modeling from a CSO perspective to surface systemic vulnerabilities.
release
Use when a sprint or feature is complete and ready to ship — tags the version, generates GitHub Release notes, runs rollout or smoke verification, and publishes to npm/PyPI/Docker registries.
prompt-optimizer
Use when a rough prompt, vague idea, or task description needs to become a finished copy-pasteable prompt for a chat-based LLM - rewrite it into one ready-to-send prompt with no blanks, no placeholders, and a clear output shape.
outside-voice
Use when you need an independent second opinion before, during, or after implementation — run challenge, consult, or review mode in a direct builder-to-builder voice
llm-wiki
Use when research or domain knowledge keeps getting rediscovered across sessions — build a supplementary markdown wiki that compounds synthesized knowledge without replacing GitHub or committed project guidance
interview-me
Use when a request is underspecified and you need to discover what the user actually wants before writing a plan, spec, or code - ask one question at a time, attach your current hypothesis, and stop only after the intent is explicitly confirmed.