From minutes
Post-meeting debrief that compares recordings against prep intentions, surfaces decisions and action items, and tracks decision evolution.
How this skill is triggered — by the user, by Claude, or both
Slash command
/minutes:minutes-debriefThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Post-meeting analysis that reads your latest recording, compares what happened to what you planned, and surfaces decision evolution — so nothing falls through the cracks.
Post-meeting analysis that reads your latest recording, compares what happened to what you planned, and surfaces decision evolution — so nothing falls through the cracks.
This is a multi-phase interactive flow. It connects to /minutes-prep when a prep file exists, creating a before→after loop.
minutes list --limit 5
Pick the most recent recording. If there are multiple from today, ask via AskUserQuestion: "You have [N] recordings today. Which one are you debriefing?" with options listing the titles.
If no recent recording exists:
Say: "I don't see any recent recordings. Did you run minutes record and minutes stop? If the recording is from a specific meeting, tell me the title or date and I'll find it."
Don't proceed without a recording to debrief.
Use Read on the meeting file path. Extract from the transcript and frontmatter:
decisions: frontmatter or ## Decisions section)action_items: frontmatter or ## Action Items section)## Summary or the transcript itself)attendees: frontmatter)If the meeting has a speaker_map: field in frontmatter, check the confidence levels:
minutes confirm --meeting <path>"minutes confirm --meeting <path> to tag them."This nudge is brief (one line) — don't make it a blocker.
Look for a prep file that matches this meeting:
ls ~/.minutes/preps/ 2>/dev/null
Match logic:
.prep.md files from today or yesterday (within 48 hours)person: frontmatter fieldattendees: list — match on first name, but check learned aliases before deciding there is no match:
node "${CLAUDE_PLUGIN_ROOT}/hooks/lib/minutes-learn-cli.mjs" aliases "<attendee-or-person>" 2>/dev/null
Treat all returned variants as equivalent during prep-file matching.Phase 4a: Prep-connected debrief (when a matching prep exists)
Read the prep file. Pull out the goal: field. Ask via AskUserQuestion:
"You went into this meeting wanting to: [goal from prep]
Did you accomplish it?"
Options:
Then produce the debrief summary with the prep comparison:
Before writing the output, check for a learned debrief presentation preference:
node "${CLAUDE_PLUGIN_ROOT}/hooks/lib/minutes-learn-cli.mjs" get-presentation-focus debrief
If the result is:
decisions-first → put Decisions before Action Items and Relationship Updateactions-first → put Action Items first, then Decisions, then Relationship Updaterelationship-first → put Relationship Update first, then Decisions, then Action ItemsIf there is no preference, keep the default order below.
## Debrief: [Meeting Title]
### Prep vs Reality
- **Goal:** [from prep]
- **Outcome:** [resolved / partially / pivoted]
- **What changed:** [if anything]
### Decisions
- [list each decision]
### Action Items
- [list with assignee and due date]
### Relationship Update
- [any notable changes in tone, new topics, shifted priorities]
Phase 4b: Standalone debrief (no matching prep)
Produce a straightforward debrief:
Before deciding the section order, check:
node "${CLAUDE_PLUGIN_ROOT}/hooks/lib/minutes-learn-cli.mjs" get-presentation-focus debrief
Apply the same ordering rules if a preference exists; otherwise keep the default order below.
## Debrief: [Meeting Title]
### Key Decisions
- [list each decision]
### Action Items
- [list with assignee and due date]
### Notable Discussion Points
- [2-3 most significant things discussed]
Search for prior decisions on the same topics discussed in this meeting:
minutes search "<topic>" --limit 10 --since <30-days-ago>
For each topic that has a decision in this meeting AND a decision in a prior meeting:
"Decision evolution — pricing:
Is this settled now, or still in flux?"
Classification:
End with three beats:
Signal reflection — Quote something specific from the meeting or the debrief conversation. "You said '[quote]' — that sounds like the decision is locked."
Assignment — One concrete follow-up action. "Send Alex the pricing doc tonight while the conversation is fresh." "Update the roadmap doc with today's Q2 timeline change."
Next skill nudge — "At the end of the week, run /minutes-weekly to see how all your meetings connect and what still needs attention."
node "${CLAUDE_PLUGIN_ROOT}/hooks/lib/minutes-learn-cli.mjs" set-presentation-focus debrief actions-first "User explicitly prefers action items first"
node "${CLAUDE_PLUGIN_ROOT}/hooks/lib/minutes-learn-cli.mjs" set-presentation-focus debrief decisions-first "User explicitly prefers decisions first"
node "${CLAUDE_PLUGIN_ROOT}/hooks/lib/minutes-learn-cli.mjs" set-presentation-focus debrief relationship-first "User explicitly prefers relationship updates first"
minutes list returns nothing, say so. Don't invent a debrief.sarah.prep.md). Match against attendee first names in the recording frontmatter. "Alex C." matches "sarah".node "${CLAUDE_PLUGIN_ROOT}/hooks/lib/minutes-learn-cli.mjs" set-alias "Sarah Chen" "Sarah" "User corrected prep/debrief matching"
npx claudepluginhub silverstein/minutes --plugin minutesGenerates topic-segmented meeting summaries with decisions highlighted and actions captured inline per topic plus consolidated action view. Auto-populates from sibling meeting-agenda and accepts transcripts from Zoom, Meet, Otter, Fireflies, Krisp MCP, or manual notes.
Synthesizes a week of meeting recordings into a forward-looking brief with themes, decision arcs, and stale commitments. Activated when user says 'weekly review' or uses '/minutes-weekly'.
Converts meeting notes, transcripts, or chat logs into structured minutes with decisions, action items, and open questions.