| name | meeting-recap |
| description | Pull a Fathom transcript and extract decisions, action items, open questions, and notable quotes. Reads business-brain.md for ICP context. Uses Fathom MCP. Lands in reference/research/meetings/<date>-<title>.md. Optionally drafts to chosen destination. |
| when_to_use | ["/meeting-recap","recap this meeting","pull fathom recap","meeting actions","meeting notes from fathom"] |
/meeting-recap — v0.2.0
Pull a Fathom meeting transcript and extract decisions + action items + open questions.
Inputs
- Required: Fathom URL OR call_id OR recording_id
- Read on every run:
about-me/about-me.md
about-me/business-brain.md (for ICP context — what action items matter to THIS user)
templates/meeting-recap-template.md
projects/research/research-preferences.md (recap depth: executive / detailed / verbatim)
Logic
- Read input files
- Resolve Fathom input: URL →
mcp__claude_ai_Fathom__get_recording_by_url; call_id → get_recording_by_call_id; recording_id → get_meeting_summary directly
- Call
get_meeting_transcript with the resolved recording_id (for timestamped quotes) AND get_meeting_summary (for AI-generated summary as a starting point)
- Extract structured data:
- 1-paragraph TLDR
- Decisions made (3-5 bullets)
- Action items (with owner + deadline if mentioned)
- Open questions (things raised but not resolved)
- 2-3 notable quotes with timestamps + speaker
- Generate recap using
templates/meeting-recap-template.md shape
- Plan-then-approve: show user the recap structure + key extracted items
- On user approval, write the recap
- Append one-line entry to
reference/research/_index.md
- Append one-line entry to
projects/research/memory.md
- If destination = Notion or vault, ask: "Draft to too?"
Output
reference/research/meetings/<date>-<title>.md (the recap)
Hard rules
- Never make claims about meeting content without calling
get_meeting_transcript first (per Fathom MCP grounding rule)
- Plan-then-approve before any write
- Action items MUST include owner + deadline if mentioned in the transcript; mark "owner: unspecified" if not
Voice for the recap itself
Tactical, scannable. Decisions and actions are the load-bearing parts — the rest is supporting. Quotes only when they capture something the summary can't.
Self-improvement close (Foundation B)
After delivering the main output + Next Move block, ask:
"What would've made this 10% better?"
Accept a one-line answer. Then:
-
Append to projects/research/memory.md:
<YYYY-MM-DD> | /meeting-recap | <answer verbatim>
-
Read memory.md and check if any pattern recurs 3+ times for /meeting-recap. Patterns matching by:
- Substring overlap >= 60% with prior entries
- Same keyword (e.g., "quotes", "owners", "TLDR", "Fathom", "deadlines", "decisions")
-
If recurrence detected:
-
If no recurrence → silent. No noise.
Actionable close (Foundation C)
End every run with this exact block (the ⚡ NEXT MOVE: string is canonical — caps, leading lightning emoji, colon, space):
⚡ NEXT MOVE: <Subject> <Verb> <Timing>
Why: <one-sentence reason — usually the decision or commitment that depends on it>
The Next Move MUST be the SINGLE most important action item from the meeting — not the full list. Picking rule:
- If the user is the owner of any action item → pick the user's most time-sensitive one
- If the user owes a follow-up to another attendee → that wins (relationship debt compounds fastest)
- If all action items belong to others → pick the one the user needs to UNBLOCK or chase, with timing
- If there were no action items but a decision was made → pick the first step that makes that decision real
| Action item type | Next Move pattern |
|---|
| User owes a deliverable | "Send to by — <decision/commitment from meeting>." |
| User needs to chase someone else's action | "Follow up with on by — they committed in the meeting and it blocks ." |
| Decision was made, needs a first real step | "Tell about the decision to today — they need to know before ." |
| Meeting flagged an open question | "Get an answer on from by — it blocks the decision on ." |
✅ "⚡ NEXT MOVE: Send Sarah the revised pricing deck by Wednesday EOD. Why: You committed to it at 14:32 and it gates the contract decision."
❌ "⚡ NEXT MOVE: Review the action items and follow up." (no owner, no specific action, no timing — fails the rule)
Validation pattern
The block MUST match:
⚡ NEXT MOVE: .+ .+ .+\n Why: .+
If it doesn't match, the skill output is incomplete — regenerate.