Skip to content
Development
Skill

/handoff

Prepare reliable, role-typed cross-session handoffs for any project. Use when the user runs /handoff, asks to create, update, improve, or use a handoff / transition file / context bridge; pass work to a new Claude Code session, thread, agent, owner, or executor; spin up parallel

From plugin
claude-code-starter
19515 skills5 agents20 commands

Claude Code

$ npx -y skills add alexeykrol/claude-code-starter --skill handoff --agent claude-code

SKILL.md

handoff.SKILL.md
name: handoff
description: "Prepare reliable, role-typed cross-session handoffs for any project. Use when the user runs /handoff, asks to create, update, improve, or use a handoff / transition file / context bridge; pass work to a new Claude Code session, thread, agent, owner, or executor; spin up parallel sessions on a project; close or archive a source session before compaction; preserve project context; generate a kickoff prompt; or evaluate a new session's Verification Report. Always perform a pre-handoff documentation/state audit, reconcile stale docs with facts when safe, ground-verify commands, preserve dirty-tree boundaries, make the next session read and verify context, and when it reports back, judge whether it understood the context accurately rather than assigning its next work."
allowed-tools: Read Write Edit Glob Grep Bash
disable-model-invocation: false

Skill: Handoff

Core Rule

Create a handoff only after the project state and documentation have been reconciled. A handoff is not a chat summary; it is the final transfer artifact after audit, consistency cleanup, verification, and scoped git handling. The handoff is the control surface between the owner and a session.

Do not trust memory files, old handoffs, README/status files, SNAPSHOT, or prior chat as current truth without checking the workspace.

When the source session receives a Verification Report from the target session, its job is acceptance, not command-and-control. Confirm whether the target session accurately understood the handoff, boundaries and readiness state so the source session can be safely archived. Do not turn that response into a new task brief unless the user explicitly asks for new instructions.

Control Model — what gets a handoff, and why

OWNER     decides which modules = sessions exist; reviews each session's output      (coarse control)
SESSION   owns its module/role; decides HOW, including spawning subagents             (fine control — the agent)
SUBAGENT  ephemeral legwork inside a session; invisible to the owner; gets NO handoff (the session's own call)

boundary owner↔session    = the module CONTRACT  (enforced via handoff → report → consensus → output review)
boundary session↔subagent = the session's internal task spec (Agent tool: researcher / implementer / reviewer)
  • **A session is the owner's unit of control** — launchable, observable, correctable, reviewable. **Each module → its own session.**
  • **A subagent is internal delegation** via the Agent tool — the session decides it; the owner does not see or steer it. **Subagents get NO handoff.**
  • Therefore **handoffs are for SESSIONS only.** This skill produces session handoffs.
  • Module=session control only holds when the module's **seam contracts are clean** — otherwise correcting one session ripples into others. Define seams before parallelizing.

Handoff TYPES — pick by what the new session will DO

`TYPE: orchestrator | executor | reviewer | owner | general`

The two primary types have opposite failure modes; a session onboarded to the wrong type fails in a characteristic way:

| | **Orchestrator** | **Executor** | |---|---|---| | Scope | global: roadmap, module map, all seams, all module states | ONE module (its folder-root) + its named contracts | | Focus | coordination + architecture | implementation | | Does | decompose work, define/maintain seam contracts, write executor handoffs, review their reports, integrate, sequence | build the module's pipeline/console/store/fixtures/reference; debug against its own metrics | | NEVER | implements module internals by hand; reads deep into one module to build | touches other modules; redefines contracts; edits the roadmap; climbs into global context | | May | use subagents (Agent tool) for legwork it owns end-to-end (stays in the loop) | use its own subagents internally | | Output | coordination artifacts: contracts, executor handoffs, roadmap/state updates, decisions | module code + its verification report + commits within its contract | | Mis-onboard failure | "grabs the work and starts implementing" — loses coordination altitude | "climbs into the whole project" — loses focus |

Other TYPE values, when neither fits:

  • **reviewer** — audits/reviews a defined scope; reports findings; does not implement.
  • **owner** — transfer of ownership/decision context to a human or lead session.
  • **general** — continuation of the same role in a fresh session (e.g. pre-compaction archive); state the scope explicitly anyway.

Parallelizing a project typically means **one orchestrator handoff + N executor handoffs** (one per module). Slugs disambiguate.

Grounding Discipline — all handoffs (hard-won)

  • **Ground claims in territory, not metafiles.** Verify each load-bearing fact (counts, file/store states, what's done) by running the command BEFORE writing it. Stale metafile claims make the new session repeat or break work.
  • **Never pin a moving "last/current commit" hash** — it goes stale on your own next commit. Give a STABLE ref (the commit holding the key work) + "check `git log` for live HEAD".
  • **Honest done-vs-pending.** Work finished THIS session is done — say so; never label it "to do" (or the reverse).
  • **Include the verification commands** so the new session can re-confirm the facts itself.
  • **Scope discipline.** Each handoff confines its session to its scope — a focused worker, not "everyone at every meeting."

Workflow

1. Establish The Target

  • Identify the project root, current working directory, branch, owner intent,

and the role expected in the next session → that fixes the TYPE.

  • If the target is a git worktree, inspect current status and recent history.
  • Respect dirty-tree boundaries: never revert or stage unrelated user changes.
  • If the user gives stop rules, ownership boundaries, or "do not commit/push"

instructions, obey them over this generic workflow.

2. Audit Documentation Before Handoff

Read the docs that define curren

Read more
@alexeykrol
Ships withclaude-code-starter

Claude Code Starter — это готовая управляющая среда для проектов, в которых основной рабочий агент — Claude Code.

19515 skills5 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
195
Star history of alexeykrol/claude-code-starter on GitHub, a chart by star-history.com

Other skills on claude-code-starter.

db-migrate

db-migrate

Миграция схемы базы данных: SQLite → PostgreSQL/Supabase. Генерация SQL, проверка совместимости.

housekeeping

housekeeping

Фоновое обслуживание проекта: актуальность README, CHANGELOG, версии, .gitignore, метафайлов.

save-dialog

save-dialog

Сохранить JSONL текущей сессии Claude Code в .claude/dialogs/. Триггеры: /save-dialog, "сохрани диалог", "архив диалога".

start

start

Инициализация рабочей сессии. Построить адекватную модель проекта, заземлить её в код, доложить с глубиной по запросу.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills12d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about handoff.

Which coding agents can use handoff?
handoff installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.