Skip to content
Back to skills

Handoff

ASecurity

Use when managing a two-session handoff — inspecting, picking up, or reviewing a committed handoff package produced by a session=two scope run. The operator interface over the cross-environment handoff lifecycle (plan in one session, build in another, review back in the first). Trigger with /hyperflow:handoff, "list handoffs", "pick up the handoff", "review the handoff build".

  • 2,785 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 24, 2026
ai-agentsbashgitsecurity

Works with

  • claude code

Security analysis

A100/100

Scanned September 24, 2026

npx -y skills add jeremylongshore/claude-code-plugins-plus --skill handoff --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Handoff?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Handoff
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jeremylongshore-handoff-b6daec3e/badge)](https://www.skillsdirectory.com/skills/jeremylongshore-handoff-b6daec3e)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: handoff
description: |
  Use when managing a two-session handoff — inspecting, picking up, or reviewing a committed handoff package produced by a session=two scope run. The operator interface over the cross-environment handoff lifecycle (plan in one session, build in another, review back in the first).
  Trigger with /hyperflow:handoff, "list handoffs", "pick up the handoff", "review the handoff build".
allowed-tools: Read, Write, Edit, Bash(git:*), Bash(mv:*), Glob, Grep, AskUserQuestion, Skill
argument-hint: "<list | status [slug] | pickup <slug> | review <slug> | complete <slug>>"
version: 1.0.1
license: MIT
compatibility: Designed for Claude Code; portable to Codex/OpenCode/Antigravity
tags: [handoff, two-session, cross-environment, orchestration]
---

# Handoff

Operator interface for **two-session execution**: one session plans (`session=two` at the Step 0 gate), a second
session in another environment builds, and the first session reviews. The lifecycle and package format are defined
in [`../hyperflow/session-handoff.md`](../hyperflow/session-handoff.md); this skill is the thin set of verbs over it
(mirrors how `/hyperflow:flush` fronts the deferred-commit machinery).

Packages live at `.hyperflow-handoff/<slug>/` (committed, so they travel via git). `STATUS` (`planned → built →
reviewed`) is the single source of truth and decides which side of the handoff you are on.

## Subcommands

### `list`
Read-only. List every `.hyperflow-handoff/*/` (excluding `.archive/`): slug · `STATUS` · `on_complete` · age. Group
by status so the user sees what is awaiting build vs awaiting review.

### `status [<slug>]`
Show the `HANDOFF.md` manifest + `STATUS` for one package (or all). When `STATUS=built`, also print the
`COMPLETION.md` diff range and commit count. Read-only.

### `pickup <slug>` — build side
Thin alias for starting the second-session build: invoke `Skill` with `skill: dispatch` and `args: "<slug>"`.
Dispatch's Step 1.0 rehydrates `artefact/` into `.hyperflow/`, runs `/hyperflow:scaffold` if the cache is missing,
builds the batches, writes `COMPLETION.md` + `STATUS=built`, and then deploys or stops per `on_complete`.

### `review <slug>` — planning side
1. Require `STATUS=built` (else: "handoff `<slug>` is `<status>` — nothing to review yet").
2. Read `COMPLETION.md` → extract `Diff range = <base>..<head>`.
3. Invoke `Skill` with `skill: audit` and `args: "<base>..<head> level=3"` (`level=5` when the originating triage
   flow in `HANDOFF.md` was `scientific` or `security`). The audit dispatches the matching domain specialist
   reviewers over the second session's diff.
4. On audit clean pass → fire the deploy gate (`AskUserQuestion` — `Run /hyperflow:deploy? Yes / No`, binary, no
   marker). On `NEEDS_FIX` → the audit fix-gate (`Yes` → `/hyperflow:plan` → `/hyperflow:dispatch`) handles it.
5. Set `STATUS=reviewed` once the review is accepted.

### `complete <slug>`
Mark the lifecycle done: set `STATUS=reviewed` (if not already) and archive the package to
`.hyperflow-handoff/.archive/<slug>/`. Commit `chore(handoff): archive <slug>`.

## Resolution

- Default `<slug>` = the most-recently-modified package when omitted from `status`/`pickup`/`review`.
- A package whose `STATUS=planned` is a **build-side** task (run `pickup`); `built` is a **review-side** task (run
  `review`). The session-start hook surfaces the right verb automatically.

## Iron rules

- **Never edit the build's commits.** `review` is read-only over the diff range; fixes flow through the audit
  fix-gate → scope → dispatch, never by amending the second session's commits.
- **Never force-push; never `--no-verify`.** Auto-push failures surface the exact `git push -u origin <branch>`.
- **No AI attribution** in any commit or package file.
- Honors `handoff.*` config (`autoPush`, `remote`, `packageDir`).

## Doctrine

Shared rules in [`../hyperflow/DOCTRINE.md`](../hyperflow/DOCTRINE.md). Package contract + templates in
[`../hyperflow/session-handoff.md`](../hyperflow/session-handoff.md).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…