Meeting Minutes
github/awesome-copilot
Generate concise, actionable meeting minutes for internal meetings.
Post-meeting debrief — analyzes what happened, compares outcomes to your prep intentions, tracks decision evolution.
$ npx skills add silverstein/minutes --skill minutes-debrief -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install silverstein/minutes minutes-debrief --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/silverstein/minutes.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.opencode/skills/minutes-debrief .claude/skills/minutes-debrief && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "minutes-debrief" agent skill from https://github.com/silverstein/minutes/tree/main/.opencode/skills/minutes-debrief into .claude/skills/minutes-debrief/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "minutes-debrief", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/silverstein/minutes/tree/main/.opencode/skills/minutes-debriefType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add silverstein/minutes --skill minutes-debrief -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install silverstein/minutes minutes-debrief --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/silverstein/minutes.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.opencode/skills/minutes-debrief .agents/skills/minutes-debrief && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "minutes-debrief" agent skill from https://github.com/silverstein/minutes/tree/main/.opencode/skills/minutes-debrief into .agents/skills/minutes-debrief/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "minutes-debrief", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add silverstein/minutes --skill minutes-debrief -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install silverstein/minutes minutes-debrief --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/silverstein/minutes.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.opencode/skills/minutes-debrief .cursor/skills/minutes-debrief && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "minutes-debrief" agent skill from https://github.com/silverstein/minutes/tree/main/.opencode/skills/minutes-debrief into .cursor/skills/minutes-debrief/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "minutes-debrief", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/silverstein/minutes.git --path .opencode/skills/minutes-debrief--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add silverstein/minutes --skill minutes-debrief -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install silverstein/minutes minutes-debrief --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/silverstein/minutes.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.opencode/skills/minutes-debrief .gemini/skills/minutes-debrief && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "minutes-debrief" agent skill from https://github.com/silverstein/minutes/tree/main/.opencode/skills/minutes-debrief into .gemini/skills/minutes-debrief/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "minutes-debrief", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install silverstein/minutes minutes-debriefInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add silverstein/minutes --skill minutes-debrief -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/silverstein/minutes.git skills-src && mkdir -p .github/skills && cp -r skills-src/.opencode/skills/minutes-debrief .github/skills/minutes-debrief && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "minutes-debrief" agent skill from https://github.com/silverstein/minutes/tree/main/.opencode/skills/minutes-debrief into .github/skills/minutes-debrief/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "minutes-debrief", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add silverstein/minutes --skill minutes-debrief -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install silverstein/minutes minutes-debrief --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/silverstein/minutes.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.opencode/skills/minutes-debrief .opencode/skills/minutes-debrief && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "minutes-debrief" agent skill from https://github.com/silverstein/minutes/tree/main/.opencode/skills/minutes-debrief into .opencode/skills/minutes-debrief/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "minutes-debrief", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
minutes-debriefPost-meeting debrief — analyzes what happened, compares outcomes to your prep intentions, tracks decision evolution.
Minutes Debrief is an agent skill from silverstein/minutes. Post-meeting debrief — analyzes what happened, compares outcomes to your prep intentions, tracks decision evolution. Use when the user says "debrief", "what just happened in that meeting", "what did we decide", "debrief that call", "post-meeting", "what changed", or right after stopping a recording.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: opencode
The repository describes itself as: Open-source, local-first Granola/Otter alternative that Claude Code, Codex, Cursor, and any MCP client can query. Meetings, calls, and voice memos transcribed on-device into… The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d3285c7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
nodegitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
opencode
From compatibility in the SKILL.md frontmatter.
Minutes Debrief loads about 2.6k tokens when it runs. Until then it costs about 79 tokens; SKILL.md has 1,186 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from silverstein/minutes at commit d3285c7, republished under its MIT licence (© silverstein). 1,186 words, ~2,574 tokens.
.claude/skills/minutes-debrief/SKILL.md (or your agent's skills folder).Before running helper scripts or opening bundled references, set:
export MINUTES_SKILLS_ROOT="$(git rev-parse --show-toplevel)/.opencode/skills"
export MINUTES_SKILL_ROOT="$MINUTES_SKILLS_ROOT/minutes-debrief"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 5Pick 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.
Run minutes get "<exact path>" --json, require exit status 0, and use only the
returned transcript and frontmatter. Never reopen the list path with the host
Read tool. Extract:
decisions: frontmatter or ## Decisions section)action_items: frontmatter or ## Action Items section)## Summary or the transcript itself)attendees: frontmatter)If the authorized frontmatter says capture: none, there is no transcript by design: the
meeting was designated sensitive and the recorder never ran. The debrief IS the
record. Switch to debrief-from-memory mode:
## Markers section (timestamped notes typed during
the meeting) and the frontmatter (title, date, duration,
debrief: state).Skip Phases 2 and 2b (there is no transcript and no speaker attribution); continue with prep matching and the closing ritual as normal.
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/nullMatch 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 "$MINUTES_SKILLS_ROOT/_runtime/hooks/lib/minutes-learn-cli.mjs" aliases "<attendee-or-person>" 2>/dev/nullPhase 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 "$MINUTES_SKILLS_ROOT/_runtime/hooks/lib/minutes-learn-cli.mjs" get-presentation-focus debriefIf 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 "$MINUTES_SKILLS_ROOT/_runtime/hooks/lib/minutes-learn-cli.mjs" get-presentation-focus debriefApply 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 "$MINUTES_SKILLS_ROOT/_runtime/hooks/lib/minutes-learn-cli.mjs" set-presentation-focus debrief actions-first "User explicitly prefers action items first"
node "$MINUTES_SKILLS_ROOT/_runtime/hooks/lib/minutes-learn-cli.mjs" set-presentation-focus debrief decisions-first "User explicitly prefers decisions first"
node "$MINUTES_SKILLS_ROOT/_runtime/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 "$MINUTES_SKILLS_ROOT/_runtime/hooks/lib/minutes-learn-cli.mjs" set-alias "Sarah Chen" "Sarah" "User corrected prep/debrief matching"© silverstein, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .opencode/skills/minutes-debrief of silverstein/minutes.
Open the folder on GitHubat commit d3285c7
Minutes Debrief next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Minutes Debrief this skillsilverstein/minutes | 1.5k | — | ~2.6k | Automated safety check: Pass | MIT | |
| Meeting Minutesgithub/awesome-copilot | 40k | 2 repos | ~2k | Automated safety check: Pass | MIT | |
| Meeting Analyzeralirezarezvani/claude-skills | 28k | — | ~3k | Automated safety check: Pass | MIT | |
| Meetingsalirezarezvani/claude-skills | 28k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Meeting Minutesaipoch/medical-research-skills | 1.9k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Meeting Minutes Takerdaymade/claude-code-skills | 1.4k | — | ~9.8k | Automated safety check: Pass | MIT |
github/awesome-copilot
Generate concise, actionable meeting minutes for internal meetings.
alirezarezvani/claude-skills
Analyzes meeting transcripts and recordings to surface behavioral patterns, communication anti-patterns, and actionable coaching feedback.
alirezarezvani/claude-skills
A skill your agent uses when someone wants to decide whether a meeting is worth calling, price a meeting in dollars, build a timeboxed agenda with desired outcomes, or turn messy meeting notes into…
aipoch/medical-research-skills
Use meeting minutes for other workflows that need structured execution, explicit assumptions, and clear output boundaries.
daymade/claude-code-skills
Transforms raw meeting transcripts into structured, evidence-based meeting minutes — merges multiple versions without losing content, reviews existing minutes against the transcript for missing…
aipoch/medical-research-skills
Generates structured meeting minutes from text transcripts. An agent skill from aipoch/medical-research-skills.
silverstein/minutes
Analyze a product walkthrough, bug report video, Loom, or ScreenPal using Minutes transcription plus visual review.
silverstein/minutes
Self-coaching analysis of your own behavior across meetings — talk-time ratio, filler words, hedging language, monologue length, energy patterns, and (when meetings are tagged via /minutes-tag) what…
silverstein/minutes
Lightweight outcome tagging for meetings — won, lost, stalled, great, or noise.
silverstein/minutes
Verify that Minutes is properly set up and working — model downloaded, mic accessible, directories exist, no stale state.
silverstein/minutes
Start or stop recording a meeting, call, or voice memo. An agent skill from silverstein/minutes.
silverstein/minutes
Fast non-interactive briefing before any meeting — auto-detects your next calendar event, pulls relationship history, surfaces open commitments, and produces a one-page brief in under 30 seconds.
Post-meeting debrief — analyzes what happened, compares outcomes to your prep intentions, tracks decision evolution. Minutes Debrief is an agent skill from silverstein/minutes. Post-meeting debrief — analyzes what happened, compares outcomes to your prep intentions, tracks decision evolution.
Minutes Debrief fits situations like: the user says debrief; what just happened in that meeting; what did we decide; debrief that call.
Run `npx skills add silverstein/minutes --skill minutes-debrief -a claude-code`. Or copy the skill folder (.opencode/skills/minutes-debrief in silverstein/minutes) into .claude/skills/minutes-debrief in your project. Claude Code loads it when a task matches its description.
Run `npx skills add silverstein/minutes --skill minutes-debrief -a codex`. Or copy the skill folder (.opencode/skills/minutes-debrief in silverstein/minutes) into .agents/skills/minutes-debrief in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add silverstein/minutes --skill minutes-debrief -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/minutes-debrief, .gemini/skills/minutes-debrief, .github/skills/minutes-debrief and .opencode/skills/minutes-debrief in your project.
Going by SKILL.md and its folder, Minutes Debrief needs the command-line tools its instructions call (node and git). Compatibility (from SKILL.md): opencode.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Minutes Debrief is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Minutes Debrief: Meeting Minutes (github/awesome-copilot, 40k stars), Meeting Analyzer (alirezarezvani/claude-skills, 28k stars), Meetings (alirezarezvani/claude-skills, 28k stars) and Meeting Minutes (aipoch/medical-research-skills, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
silverstein (a GitHub user) maintains it in silverstein/minutes, which has 1,542 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 8, 2026.
Source: silverstein/minutes on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.