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.

8 stars

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

$curl -o ~/.claude/skills/handoff/SKILL.md --create-dirs "https://raw.githubusercontent.com/drvoss/everything-copilot-cli/main/skills/workflow/handoff/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/handoff/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How handoff Compares

Feature / AgenthandoffStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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 request

Related Skills

verification-before-completion

8
from drvoss/everything-copilot-cli

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

8
from drvoss/everything-copilot-cli

Use when you need multiple branches checked out at once — create isolated working directories for parallel development without cloning the repository repeatedly

triage

8
from drvoss/everything-copilot-cli

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

8
from drvoss/everything-copilot-cli

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

8
from drvoss/everything-copilot-cli

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

8
from drvoss/everything-copilot-cli

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

8
from drvoss/everything-copilot-cli

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

8
from drvoss/everything-copilot-cli

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

8
from drvoss/everything-copilot-cli

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

8
from drvoss/everything-copilot-cli

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

8
from drvoss/everything-copilot-cli

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

8
from drvoss/everything-copilot-cli

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.