Recap
The user just sat down and has no context loaded — they were asleep, in a meeting, or working
elsewhere. Give them a 30-60 second read that lets them decide what to do next, not a transcript of
the session.
1. Refresh (1-2 minutes, read-only)
Check whatever this session actually put in flight — skip categories that don't apply:
- Background agents/subagents —
ListAgents for anything this session spawned; if one is
still running, report it as in-progress, don't wait on it.
- Background shell/workflow jobs —
TaskOutput/Monitor for anything started with
run_in_background or Workflow.
- Scheduled work —
CronList for a routine/loop this session created.
- An open PR —
gh pr view / gh pr checks if this session opened or is waiting on one; pull
the live CI/review state, don't rely on what the conversation last said.
- Uncommitted work —
git status / git diff in every repo touched this session, so a "done"
claim from earlier is checked against what's actually on disk.
This step only reads state. Do not fix a failing check, push a commit, merge a PR, or resume an
unfinished task while refreshing — recap's whole point is a truthful snapshot, and mixing in new
work defeats it, however small the fix looks.
2. Reconstruct the goal
State the goal in one line, in the user's terms, not implementation language. Pull it from the
conversation, plan/task state, or — if genuinely unclear — the diff and recent commits. Don't guess
and present it as fact if the evidence is thin; say it's unclear instead.
3. Report — short, plain, structured
Plain language, no jargon, skimmable in under a minute:
- Goal — one line.
- Status — 2-4 short lines max: done vs in-progress vs blocked, from the refreshed state in
step 1, not stale assumptions from earlier in the conversation.
- Needs from you — only when something is genuinely blocked on the user. If there's a real
decision to make, don't dump it as paragraphs: invoke
clarify-request so it arrives as one
clear question at a time with a recommended answer, instead of asking the user to read and parse
it themselves. If nothing's needed, say so plainly — don't invent a question to fill the slot.
- Next steps — a short list, each line tagged
[You] or [Me], so the user can see at a glance
what's on them versus what you'll pick up once they say go.
Don't
- Don't start, resume, or fix anything during a recap — not even something small and obviously
right. Report it and let the user decide; that decision belongs in step 3's "Needs from you" or a
[Me] next step, not something to act on now.
- Don't re-explain things the user already knows from earlier in the session — recap is written for
someone with zero loaded context, but stay terse: state the fact, skip the backstory.
- Don't pad the status with hedging or exhaustive detail. If the user wants more, they'll ask.
1---2name: recap3description: Refresh anything stale from this session — a PR, a background agent, a running job — then give the user a short, plain-language status report — the session's goal, where things actually stand, and what's needed from them — plus a next-steps list split into mine/yours. Use when the user asks for a recap, says "catch me up" / "where did we leave off", or opens the session after being away with no context loaded. Read-only — never starts or continues work.4---56# Recap78The user just sat down and has no context loaded — they were asleep, in a meeting, or working9elsewhere. Give them a 30-60 second read that lets them decide what to do next, not a transcript of10the session.1112## 1. Refresh (1-2 minutes, read-only)1314Check whatever this session actually put in flight — skip categories that don't apply:1516- **Background agents/subagents** — `ListAgents` for anything this session spawned; if one is17 still running, report it as in-progress, don't wait on it.18- **Background shell/workflow jobs** — `TaskOutput`/`Monitor` for anything started with19 `run_in_background` or `Workflow`.20- **Scheduled work** — `CronList` for a routine/loop this session created.21- **An open PR** — `gh pr view` / `gh pr checks` if this session opened or is waiting on one; pull22 the live CI/review state, don't rely on what the conversation last said.23- **Uncommitted work** — `git status` / `git diff` in every repo touched this session, so a "done"24 claim from earlier is checked against what's actually on disk.2526This step only **reads** state. Do not fix a failing check, push a commit, merge a PR, or resume an27unfinished task while refreshing — recap's whole point is a truthful snapshot, and mixing in new28work defeats it, however small the fix looks.2930## 2. Reconstruct the goal3132State the goal in one line, in the user's terms, not implementation language. Pull it from the33conversation, plan/task state, or — if genuinely unclear — the diff and recent commits. Don't guess34and present it as fact if the evidence is thin; say it's unclear instead.3536## 3. Report — short, plain, structured3738Plain language, no jargon, skimmable in under a minute:3940- **Goal** — one line.41- **Status** — 2-4 short lines max: done vs in-progress vs blocked, from the refreshed state in42 step 1, not stale assumptions from earlier in the conversation.43- **Needs from you** — only when something is genuinely blocked on the user. If there's a real44 decision to make, don't dump it as paragraphs: invoke **`clarify-request`** so it arrives as one45 clear question at a time with a recommended answer, instead of asking the user to read and parse46 it themselves. If nothing's needed, say so plainly — don't invent a question to fill the slot.47- **Next steps** — a short list, each line tagged `[You]` or `[Me]`, so the user can see at a glance48 what's on them versus what you'll pick up once they say go.4950## Don't5152- Don't start, resume, or fix anything during a recap — not even something small and obviously53 right. Report it and let the user decide; that decision belongs in step 3's "Needs from you" or a54 `[Me]` next step, not something to act on now.55- Don't re-explain things the user already knows from earlier in the session — recap is written for56 someone with zero loaded context, but stay terse: state the fact, skip the backstory.57- Don't pad the status with hedging or exhaustive detail. If the user wants more, they'll ask.