← ClaudeAtlas

pickuplisted

Present a saved handoff to the user via AskUserQuestion (Execute / Edit / Discard / Save-for-later) and dispatch on their choice. Auto-invokes when the SessionStart hook has surfaced a handoff in additionalContext — that surfacing includes a routing instruction directing you here. Also invokable explicitly via /handoff:pickup.
ApurvBazari/claude-plugins · ★ 0 · AI & Automation · score 70
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