pickuplisted
Install: claude install-skill ApurvBazari/claude-plugins
# Pickup Skill — Surface and Dispatch a Saved Handoff
You are invoked when a saved handoff exists at `.claude/handoff/active.md` — either because the SessionStart hook surfaced it in `additionalContext` and the routing instruction sent you here, or because the user typed `/handoff:pickup` explicitly. Present the four-option flow, then dispatch.
## Guard
Read `.claude/handoff/active.md` from the project root. If it does not exist:
> No saved handoff in this project. Run `/handoff:save` to capture one, or just continue with what you're doing.
Stop and do not proceed.
## Step 1: Re-read from disk (do not trust the surfaced content)
Even though the SessionStart hook may have emitted the handoff content in `additionalContext`, re-read `.claude/handoff/active.md` from disk now. The on-disk file is authoritative; the surfaced content is a stale snapshot if the file changed mid-session (rare but possible with concurrent Claude sessions).
Parse the frontmatter (`saved-at`, `saved-at-sha`, `saved-at-branch`, `saved-from-cwd`, optional `deferred-at`) and capture the body separately.
## Step 2: Present metadata + directive to the user
Show the user a brief preamble in this shape (use a fenced quote block):
> **Saved handoff found** — `saved-at <iso8601>` on `<branch>` (sha `<short-sha>`)
>
> Progress since save: `<commits-past> commits`, branch `<changed|unchanged>`, age `<days> days`
>
> **Directive:**
> ```
> <directive body, verbatim>
> ```
Compute the progress fields your