---
name: pickup
description: Use when session opens with a bare continuation prompt — "resume", "continue", "continue from where you left off", "pick up where we were", "what were we doing" — or any restart after /clear, /compact, or crash where the user gives no task detail. Deterministically re-derives session state from git, factory traces, background tasks, handoff docs, and the on-disk transcript BEFORE acting. Never blind-continue.
---

# Pickup — Reorient From Bare "resume"

Audience: AI coding agents first.

Bare "resume" carries zero state. Rule: **re-derive state from artifacts, verify, THEN continue. NEVER guess the task from vibes or summary alone.**

## Steps (ordered; stop gathering once task + next action both confirmed)

1. **Prior state = claim, not truth**: any compaction summary or recalled context is a CLAIM — verify against the artifacts below before continuing. Recover lost decisions, errors, plans, and last user prompts from the on-disk transcript ([[fix-rot]] reads it directly).
2. **Git truth**: one `batch` — `git status`, `git log --oneline -15`, `git branch --show-current`, `git stash list`, `git worktree list`. Uncommitted diff = strongest signal of in-flight work.
3. **Factory state**: find any `adw_id` in the handoff or transcript. Inspect its full history on `/factory` or run `factory watch <ADW_ID> --since-start`. A new launch creates a new run; do not infer progress from a plan document. Check `TaskList` for background tasks still running.
4. **Durability verdict BEFORE any handoff doc**: run `session-recovery --cwd <cwd>`. It reconstructs the previous session's end state from the transcript + the append-only session ledger, so it cannot go stale. Obey its verdict:
   - `clean` → the named handoff doc is trustworthy.
   - `unclean` → a session died by SIGKILL (OOM). It may name the CURRENT session id — `--resume` reuses it, so that is this session's previous life. Work AFTER the last completed turn was never recorded anywhere. Re-verify any tool call it lists as never returned — that side effect may or may not have happened. Any handoff doc is at best partial here: it was written before the kill, so trust the transcript over it.
   - `undetermined` / `active` → NEVER treat any handoff file as current. Read the transcript it names.
   - Report says `handoff latest.md: STALE` → that file describes a DIFFERENT session. DO NOT read it.
   - Report says `handoff latest.md: INCOMPLETE` → right session, but written before the last recorded turn. Read the transcript for everything after it.
5. **Handoff docs** (only when step 4 cleared them): `~/.claude/handoffs/<cwd-slug>/latest.md` and `<session-id>-rich.md` for the SAME session id the verdict named; latest `docs/plans/*handoff*`. Present → that doc owns the TODO list.
6. **Reconcile**: artifacts contradict compaction summary → artifacts win. Still ambiguous after 1–5 → ask user ONE specific question naming the two candidate tasks. NEVER ask open "what should I do?".

## Output before continuing

State in ≤5 lines: task, last completed step, next action, blockers. Then act on next action immediately — reorientation is not the deliverable.

## Boundaries

- Mid-session rot (agent lost plot, context still in thread) → `fix-rot` skill, not this.
- Writing the handoff at session END → `handoff` skill. This skill is the READER side.
- DO NOT re-do work git already shows committed. For factory work, check the trace before acting.
