# Recap

> Turn one meeting's notes or transcript (a file, a folder of files, or pasted text) into a clean recap and add its action items to the tracked ledger. Use when the user wants to write up, summarize, or take minutes from a meeting.

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

---


# Recap a Meeting

Process meeting input into a polished recap and update the action ledger. The input arrives via `$ARGUMENTS` — it may be a file path, a folder path, or pasted notes. If `$ARGUMENTS` is empty, ask the user to paste their notes or give a path.

> Follow the shared conventions in the **meeting-notes** core skill: file layout (`./Meetings/`), extraction rules, the action-item line format, and the templates. Read them if they're not already in context.

## Steps

### 1. Locate and read the input
- **File path** → read it. Handle `.txt`, `.md`, `.vtt`, `.srt`, `.docx`, and exported transcripts.
- **Folder path** → process every meeting file in it (batch mode). Produce one recap per file and reconcile all action items into the ledger in a single pass.
- **Pasted text** → use it directly.
- If a single file actually contains multiple meetings, split and treat each separately.

### 2. Extract structure
Pull metadata, TL;DR, decisions, action items (owner + task + due date), open questions/risks, and cleaned notes — per the core skill's extraction rules. **Do not fabricate** attendees, dates, owners, or due dates; mark unknowns as `(unassigned)` / `(no date)`.

### 3. Write the recap file
- Read `${CLAUDE_PLUGIN_ROOT}/skills/meeting-notes/templates/recap.md` for structure on first use.
- Create `./Meetings/` and `./Meetings/recaps/` if they don't exist.
- Save to `./Meetings/recaps/YYYY-MM-DD-<slug>.md` (slug = kebab-case title). If the date isn't in the content, use today's date and note that under the header.

### 4. Update the action ledger
This is the important part — see the **actions** skill for the full reconcile logic. In short:
- Open `./Meetings/ACTIONS.md` (create from `${CLAUDE_PLUGIN_ROOT}/skills/meeting-notes/templates/ACTIONS.md` if missing).
- For each new action item, check whether it already exists (same owner + substantially the same task). If yes, update its due date / carry it forward instead of duplicating. If no, add it under **🟡 Open** with the `· _Source Meeting (date)_` suffix.
- Recompute the **🔴 Overdue** section against today's date.
- Update the `_Last updated_` line.

### 5. Report back
Give the user a tight summary in chat:
- Where the recap was saved (clickable path).
- Counts: decisions, action items added, items carried forward/updated, anything `(unassigned)` or `(no date)` that needs their input.
- Offer the obvious next step: "Want me to draft follow-ups? Run `/meeting-notes:followup`."

## Example

**User:** `/meeting-notes:recap Meetings/raw/product-sync.txt`

**You:**
1. Read the transcript, strip timestamps, attribute commitments to speakers.
2. Write `Meetings/recaps/2026-06-29-product-sync.md`.
3. Add 2 new items to `ACTIONS.md`, carry forward 1 from last week (its due date slipped), flag 1 `(unassigned)`.
4. Reply: *"Recap saved to `Meetings/recaps/2026-06-29-product-sync.md`. 3 decisions, 2 new actions (1 carried forward). ⚠️ One item — 'prepare migration plan' — had no owner; who should own it? Want follow-ups drafted?"*

