# Recap

> Catch the user up when they open a session with no context loaded — reconstruct where things actually stand in the Claude app, claude.ai, or Cowork, then give a short, plain-language status report — the goal, where it stands, 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 returns after being away. Read-only — never resumes or continues the work.

- Skill: `prostdev/recap-2` (Agent Skill)
- Install (CLI): `npx skillmds@latest add prostdev/recap-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/prostdev/recap-2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: ProstDev (https://skillmd.com/u/prostdev)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/prostdev/recap-2

---


# 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 replay of the
conversation.

## 1. Refresh what's actually in flight (read-only)

Check the real current state, not what the conversation last claimed — earlier messages go stale.
Cover only what applies to this session:

- **Artifacts / documents** produced this session — is the latest version the one described, and is
  it finished or mid-edit?
- **Project or uploaded files** (Cowork, or a chat with a project/repo attached) — read the current
  file, don't trust an earlier paste of it. On a filesystem-backed surface (Cowork), that includes
  anything written to disk.
- **Async or background work** — a long-running task, an export, a generation the session kicked
  off; if it's still going, report it as in-progress rather than waiting on it.
- **Connector state** — if the session acted through a connector (Slack, Google, GitHub, etc.),
  check whether the action actually landed (message sent, doc saved, issue opened) instead of
  assuming it did.
- **Nothing to inspect but the thread?** Then the conversation itself is the source — reconstruct
  from it, and say the status is based on the chat rather than verified state.

This step only **reads**. Do not finish an artifact, send the message, save the doc, 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 step looks.

## 2. Reconstruct the goal

State the goal in one line, in the user's terms, not tool or implementation language. Pull it from
the conversation and the artifacts/files in play. If it's genuinely unclear, say so rather than
guessing and presenting the guess as fact.

## 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.

