Skip to content
Agentmart
Submit a tool

catchup

Start-of-session briefing — "where did I leave off?" Reads (never writes) the nearest docs/STATUS.md + recent docs/log/ entries + the newest…

Skill by julianhernandez2155

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/julianhernandez2155-catchup

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Start-of-session briefing — "where did I leave off?" Reads (never writes) the nearest docs/STATUS.md + recent docs/log/ entries + the newest ~/.claude/session-drafts/ + git log/status, and produces a short "here's where you stopped and what's next" briefing. Has a cross-project mode that lists recent sessions across all projects from the session-drafts trail. Trigger on `/catchup`, `/catch-up`, "where did I leave off", "what did I last work on", "remind me what I was doing", "catch me up", "what was I doing yesterday". READ-ONLY — never writes, never commits.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/catchup

What's inside

Skill name
catchup
Description
Start-of-session briefing — "where did I leave off?" Reads (never writes) the nearest docs/STATUS.md + recent docs/log/ entries + the newest ~/.claude/session-drafts/ + git log/status, and produces a short "here's where you stopped and what's next" briefing. Has a cross-project mode that lists recent sessions across all projects from the session-drafts trail. Trigger on `/catchup`, `/catch-up`, "where did I leave off", "what did I last work on", "remind me what I was doing", "catch me up", "what was I doing yesterday". READ-ONLY — never writes, never commits.
License
MIT
Instructions
95 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# catchup (/catchup)

The morning half of the daily lifecycle pair (mirror of `/end`). Answers "where did I leave
off?" by pulling together the durable, machine-portable breadcrumbs you already produce —
STATUS, daily logs, session-drafts, git — into one short briefing. **Read-only. Never writes
a file. Never commits.**

Optional argument: a lookback window. `/catchup` (default: most recent session/day),
`/catchup 3d` (last 3 days), `/catchup all` (force cross-project mode below).

## Step 1 — Detect context

From the current working directory, walk up to 6 levels looking for:

- `docs/VISION.md` (the enduring charter — read first in Step 2)
- `docs/STATUS.md` and `docs/log/` (a decision-log-scaffolded project)
- `CLAUDE.md` (project routing)
- a git repo (`.git/`)

Classify:
- **Scaffolded project** — `docs/STATUS.md` and/or `docs/log/` exist → full project briefing (Step 2).
- **Bare repo** — git repo but no `docs/` scaffolding → git-only briefing (Step 2, reduced).
- **No project** — neither → skip to cross-project mode (Step 3).

## Step 2 — Gather (read-only) and brief

Read, in this order, skipping what's absent:

0. `docs/VISION.md` — read **first**, for context. Pull the **North star** line (and skim the principles). This is the enduring purpose the tactical state below should still be serving; lead the briefing with it so the re-orient anchors on *why* before *where*. Read-only, like everything here. **If `docs/STATUS.md` exists but `docs/VISION.md` does not**, this scaffolded project is missing its top layer — surface that as a nudge in the briefing (see the North star line in the template) and point at `/decision-log` to author it once. Don't author it here; catchup never writes.
1. `docs/STATUS.md` — pull **Current focus** and **What's next**.
2. The 1–2 most recent `docs/log/YYYY-MM-DD.md` files — pull the latest **theme**, **Done**, and **Next**.
3. The newest 1–2 files in `~/.claude/session-drafts/` whose `cwd:` matches this project — match **case-insensitively after normalizing the path** (Windows/OneDrive casing varies). **Ignore anything under `~/.claude/session-drafts/routed/`** — those were already handled by `/end` or `/wrap`. The rest are unattended SessionEnd-hook captures not yet routed.
4. `git log --oneline -10` and `git status --short` (and `git log --since="<lookback>"` if a window was given) — actual recent commits + uncommitted in-flight work.
5. The newest `~\curator\dreams\DREAMS-*.md` — the nightly curator's cross-session narrative digest + forward-looking advisor. It's **Workspace-global** (covers every terminal session, not just this project), so read it regardless of which project you're in. This is the one source that captures work which never reached git or STATUS, plus the curator's "Worth considering" nudges (including any file-cleanup items). Skip if absent or if it's a one-line "Quiet window."

**Then cross-check git against the prose — git is the ground truth.** STATUS.md and daily logs are hand-written and routinely drift: a session that records a *decision* ("next: do X") often goes on to *execute* X in the same sitting without re-updating the prose, so the written "next step" is already done in git. To catch this:

- Read STATUS.md's `_Last updated: YYYY-MM-DD_` line. Run `git log --since="<that date>" --oneline` (and check the date of `git log -1`).
- **If commits landed after STATUS's last-updated date, STATUS is stale.** Do NOT recite its "What's next" as the next step — it may already be done. Instead, read those newer commit subjects (and `git show --stat` a couple if needed) to reconstruct what *actually* happened, and lead the briefing with a staleness warning.
- When prose and git disagree, trust git and say so plainly.

Then produce a **short** briefing (not a dump):

```
## Where you left off — <project name>

**North star:** <one-line restatement from docs/VISION.md. If STATUS exists but there's no VISION.md, replace with: "⚠️ No VISION.md — this project has no enduring charter yet; author one once via `/decision-log`." Omit the line entirely only for bare repos / non-scaffolded dirs.>

⚠️ **STATUS is stale** — last updated <date>, but <N> commits landed since (<latest commit date>). Briefing below reconstructed from git, not STATUS.   ← include ONLY when git is ahead of STATUS

**Last worked on:** <reconstructed from newest commits when STATUS is stale; else STATUS focus + latest log theme, 1–2 lines>
**In flight (uncommitted):** <git status --short summary, or "clean tree">
**Next step:** <real next step — derived from what git shows is actually done, NOT a stale STATUS "What's next">
**🌙 From last night (DREAMS):** <only if a DREAMS-*.md diary exists and wasn't a quiet window: lift the single most important "Threads still open" item and the top "Worth considering" nudge, 1–2 lines, and link the diary file. This is the cross-terminal view git can't give you. Omit the line entirely if there's no diary or it was quiet.>
**Pending capture:** <N session-drafts not yet routed — suggest /end or /wrap if >0; if STATUS is stale AND drafts are empty, note the close-out gap>
**Recent commits:** <2–4 most relevant from git log>
```

For a **bare repo**, drop the STATUS/log lines and brief from `git log`/`git status` + any
matching session-draft only. Say plainly "no STATUS/log scaffolding here — want me to set it
up with `/end`?" so the user can opt into decision-log Init.

## Step 3 — Cross-project mode (no project at cwd, or `/catchup all`)

The `~/.claude/session-drafts/` directory is a timestamped, cwd-tagged trail of substantive
sessions across all projects — but it is **only as complete as the close-out discipline that
feeds it.** A session that shipped real work but never ran `/end` or `/wrap` leaves NO draft.
So treat empty/sparse drafts as "the trail is incomplete," NOT "no work happened," and fall
back to git in the discoverable projects:

1. List `~/.claude/session-drafts/*.md` (NOT the `routed/` archive subfolder), newest first, within the lookback window (default: last 2).
2. For each, read its header — `cwd:`, the timestamp, and the **Decisions / Discoveries** sections.
3. **Cross-check against git.** Glob for `**/docs/STATUS.md` under the cwd to find the scaffolded projects, and for the 1–2 most recently active ones run `git log --oneline -8` + `git status --short`. If a project's commits postdate its STATUS `_Last updated:_` date, flag it stale (per Step 2's cross-check) — this is the case the drafts trail will silently miss. **Never report a project as "nothing pending / all routed" on the strength of empty drafts alone; confirm against git first.**
4. Brief as a compact table: when · which project (from cwd or git) · one-line theme.

```
## Recent sessions (last <window>)

| When | Project | What |
|---|---|---|
| <ts> | <cwd leaf> | <decisions/discoveries one-liner> |
```

End by noting how many drafts are pending routing and that `/end` (in the relevant project)
or `/wrap` (Workspace knowledge) will clear them.

## Hard rules

- **Read-only.** This skill never writes, edits, or commits anything. If the user wants to act
  on what they see, that's `/end`, `/wrap`, or `decision-log` — name the right one, don't do it here.
- **Git is the ground truth; prose breadcrumbs drift.** STATUS.md, daily logs, and session-drafts are hand-maintained and lag reality whenever a session ships work without closing out. Always reconcile them against `git log`/`git status` before briefing, and when they conflict, trust git and flag the drift. A confident recitation of a stale "next step" is the failure this skill exists to prevent.
- Keep the briefing scannable. The point is a fast re-orient, not a wall of text.
- On Windows the drafts dir is `%USERPROFILE%\.claude\session-drafts\`; use git via Bash or PowerShell. `/end` and `/wrap` archive consumed drafts into a `routed/` subfolder — never count those as pending, and match a project's `cwd:` case-insensitively.

From julianhernandez2155/claude-code-harness, MIT.

More from julianhernandez2155/claude-code-harness

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Jun 8, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from julianhernandez2155

Cite this page

catchup skill. Agent Mart. https://agentmart.dev/skills/julianhernandez2155-catchup (last updated 2026-10-24)