catch-up
Give the human a fast, plain-English catch-up on what changed in the project: what the agents did, why, and what decisions need their input. Use this whenever the user asks to "catch me up", "what changed", "where are we", "recap", "brief me", "give me the rundown", "what did you do", "summarize the session", "fill me in", or otherwise signals they have been away and want to get back up to speed quickly. Built for someone steering several agent-driven projects at once who does not read the code closely but needs to grasp the core ideas, the choices made, and the open decisions well enough to steer. Trigger even if they do not use these exact words: any request to get oriented on recent progress should use this skill.
What this skill does
# Catch Up
The person reading this has been away. While they were gone, agents (you and
others) moved the project forward. They are juggling several projects like
this one and do not read the code closely. Your job is to get them back in
the driver's seat in under a minute: what changed, why it changed, and where
their input would actually steer things.
That framing decides everything below. They cannot act on a diff or a commit
list, so do not give them one. They *can* act on plain ideas and clear
choices, so give them those.
## What good looks like
- **Plain English, zero jargon.** Every technical term either gets
translated or explained the first time it appears. If a reader who has
never seen the code would stumble on a word, rewrite it. See
[Translating jargon](#translating-jargon).
- **Altitude, not inventory.** Group changes by what they *mean*, not by
file. One idea per bullet. The headline is the thing, not the line count.
- **The why is the payload.** The diff says what changed; only the
conversation says why. The reader steers on the why, so make sure it
survives.
- **Surfaces the forks.** The single most useful thing you can give a
steerer is the list of decisions that are still open, or were made by
default and could be reversed. That is where their attention belongs.
- **Honest.** If something is half-done, untested, or went sideways, say so.
A catch-up that hides loose ends makes steering worse, not better.
## How to do it
### 1. Find the starting line
State the window you are summarizing, in one short phrase, so the reader
knows the frame. Infer it from the conversation, in this order:
1. **A previous catch-up.** Scan the transcript for the last time you ran
this skill (your own output, led by a window line like the ones below).
If you find one, summarize only what happened *after* it. This is the
common case when they check in repeatedly.
2. **A clear milestone.** A merge, a shipped PR, a finished plan, or an
explicit "let's start on X" is a natural starting line. Summarize since
then and name it: *"Since the auth refactor merged"*.
3. **The session start.** If neither of the above is clear, summarize the
whole session and say so: *"This session so far"*.
If the transcript was compacted or you genuinely cannot tell, default to
session start, say that is what you did, and lean on git (below) to recover
the missing history rather than guessing.
Good window lines: *"Since your last check-in"*, *"Since we started on
search"*, *"This session so far"*, *"Since the v2 branch merged"*.
### 2. Gather what changed
Lead with the **conversation** — in an agent-driven project it holds both
the work and the reasoning. Then ground it against the repo so you are
reporting what actually landed, not what was merely discussed:
```bash
git log --oneline -20 # what actually got committed
git diff --stat HEAD~N # rough shape of the change (pick N from the log)
git status # what is still uncommitted / in flight
```
Use git to confirm the *what* and catch anything that happened off-screen.
Use the conversation for the *why*. Do not read every file — you are after
the shape of the change, not a line-by-line account. A quick look at one or
two key files is fine when you need to understand an abstraction well enough
to name it plainly; reading ten is a sign you have lost the altitude.
### 3. Keep only what helps them steer
Keep: the core moving parts that were added or reshaped (named in plain
words), the approach chosen and any real alternative that was rejected, the
reasoning, decisions that now lock things in, open forks, and anything
surprising or risky.
Drop: file-by-file churn, line counts, formatting and lint noise, mechanical
renames, and anything the reader could not act on. If you are unsure whether
something belongs, ask "could they steer on this?" If not, cut it.
### 4. Write the briefing
Use the structure below. Scale it to how much actually changed — see
[Scale to the change](#scale-to-the-change). Drop any section that would be
empty; an honest short note beats a padded template.
```
[Window line] (TL;DR)
<one or two plain sentences: the headline, plus how many things need them>
What changed
- <a change, in plain language, grouped by theme>
- <a knock-on effect, if it matters to them>
Why
- <the problem being solved or the reasoning behind the approach>
Your call
- <open decision>: <the tradeoff in plain terms>. <what you did by default>.
```
Keep each bullet tight: lead with the point in one line. Add at most one
plain sentence after it, and only when a term genuinely needs unpacking for
someone who has not seen the code. More than that and you have slipped from
briefing into narration — cut it back, or split it into two bullets.
The **Your call** section is the steering payload. List real forks: things
left undecided, or decided by default and easy to flip. For each, give the
tradeoff in one plain sentence and say what you did in the meantime so they
know the current state. If nothing needs them, say so in one line
(*"Nothing needs you right now."*) rather than inventing a decision.
## Translating jargon
This is the core move, so it is worth doing well. Name the underlying idea,
not the implementation. A few examples of the translation:
| Instead of | Say |
|---|---|
| "Added a reducer to centralize state" | "Put all the app's 'what's true right now' bookkeeping in one place instead of scattered around" |
| "Memoized the selector" | "Made a slow lookup remember its answer so it stops recomputing every time" |
| "Introduced a discriminated union for the result" | "Made a result always be exactly one of a few clearly-labeled shapes, so we can't mix them up" |
| "Extracted the API client into a shared module" | "Moved the code that talks to the server into one shared spot so every screen uses the same one" |
| "Added optimistic updates" | "The screen now shows your change instantly and quietly fixes itself if the server disagrees" |
Two practical tells. First, if a name in your draft only means something to
someone who has read the code (a class name, a file name, an internal
codename), replace it with what it *does*. Second, write the way you would
explain it out loud to a smart colleague on a different team. That voice is
almost always the right altitude.
## Scale to the change
The structure is a guide, not a quota. Match the output to the substance:
- **Tiny change** (a fix, a tweak): one or two sentences. No headers. *"Fixed
the bug where the export button did nothing on empty lists. Nothing needs
you."*
- **Normal session:** the full briefing, a few bullets per section.
- **Big or sprawling session:** still lead with one TL;DR line, then group
the body by theme so it stays skimmable. Resist the urge to be
comprehensive — completeness is the enemy here. Pick the handful of things
that change how they would steer, and note that smaller stuff was skipped.
## Voice
Short sentences, one idea each. No em dashes. Skip the AI throat-clearing
("It's worth noting that...", "delve", "robust", "leverage", "seamless").
Write like a sharp colleague catching them up between meetings, not like a
release note.
Related in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts — single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score ≥ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.