SuperAPI AI Directory

pickup

General & other

View repository

Updated 10-16 08:48

About this skill

Pickup

Resume the newest handoff in an isolated worktree, then load its context. Reuse the documented worktree/branch if it still exists; create a new one only when none is documented or it's gone. Orchestrates branch and session-resume — do not reimplement their internals.

Requires branch and session-resume from this collection (optionally /pm, see step 1 tip). Install alongside this skill.

Steps

  1. Find the handoff. Use session-resume's discovery (shared handoffs/ dir, then legacy in-tree dirs). Prefer newest intentional pause-*.md; fall back to a mechanical auto-*.md only if none exists. Path arg → use it. Date/topic/slug arg → filter by it. No arg → newest intentional handoff. Multiple matches → list the 5 most recent and ask. None → say so, stop. Read the file. Tip: run /pm first for a picture of all in-flight lanes.

  2. WIP/worktree safety first. Run git worktree list and read the shared journal ($(bash ~/.claude/coordination/resolve-coord-dir.sh)/journal.md; the in-tree docs/worktree-journal.md is only a tombstone pointer). If another session has uncommitted WIP or an overlapping active worktree, surface it and pause. Never branch on top of another session's WIP.

  3. Resume-or-create. Check the handoff + journal for a documented branch/worktree (Branch:/Worktree: line, ## Parked entry, or an "Active" journal entry):

    • Worktree present → cd in, verify git status/git branch, resume. No new branch.
    • Branch exists, worktree gone (parked on origin/<branch> or local-only) → re-add: git worktree add ../<repo>-<slug> <branch> (or /branch <slug> --reuse). Resume on the existing branch.
    • Nothing documented, or both gone (shipped & pruned, or the handoff describes new work) → go to step 4.

    Unsure which applies → state findings and ask.

  1. (New work only) Create the worktree. Derive a slug — prefer an arg, else propose one from the handoff's "next" work (kebab-case, ^[a-z][a-z0-9-]*$; confirm if ambiguous). Invoke branch with it — it owns the path convention, journal entry, and base (default main). Don't hand-roll git worktree add.

  2. Project setup, if the repo needs it (fresh/re-added worktree only). Fresh worktrees have no deps/secrets — check CLAUDE.md/the handoff for the convention (e.g. symlink node_modules, copy .env/.dev.vars). Skip if not needed.

  3. Load the context. Summarize done / what's-next / first action. Rebuild TodoWrite from any unchecked ## Checklist/## Instructions items, mirror to docs/summaries/CHECKLIST.md in the worktree. Heartbeat: /branch update --working-on "<next task>".

  4. Confirm before working. Present the first concrete next step and ask before proceeding — honor any design gate or /branch-before-code rule the handoff carries.

Quick reference

Invocation Behavior
/pickup Newest handoff → resume its worktree if documented, else new
/pickup <slug> Same; slug used only when creating a NEW worktree
/pickup 2026-06-14 / /pickup budget Filter handoffs by date/topic
/pickup docs/summaries/handoff-….md Use that exact handoff

Resume-or-create at a glance

Handoff documents… On disk Action
active worktree present cd in, resume — no new branch
branch (parked/origin/local) worktree gone re-add worktree for it
nothing, or shipped+pruned gone create a fresh branch

Common mistakes

  • New branch when one exists — a pause handoff usually names in-flight work to resume; fork only for shipped-and-pruned handoffs with genuinely new work.
  • Skipping the WIP check (step 2) — cross-session WIP causes Frankenstein commits.
  • Reimplementing branch/session-resume — call them; this skill only sequences them.
  • Auto-starting the work — honor any design-gate/sign-off the handoff requires.
  • Hardcoding deps setup — node_modules/.env is project-specific; only do step 5 when needed.