Generate structured meeting notes from transcripts or pasted text. Use when someone says "meeting notes", "process this transcript", "summarize this call", "notes from today's meeting", or pastes/references a meeting transcript. Auto-enriches attendees from stakeholder directory, routes output to correct project subfolder, flags downstream artifact impacts (PRD, deck, architecture), and proposes CLAUDE.local.md updates. Produces date-first Markdown files.
npx skills add https://github.com/coco-research/coco --skill pmstudio-meeting-notes
Transforms raw meeting transcripts (pasted text, audio transcription output, or file references) into structured, stakeholder-enriched meeting notes. Not generic summaries — these cross-reference project context, known stakeholders, and existing artifacts to produce notes that integrate into the project's documentation ecosystem.
From user request:
| Input | How to Handle |
|-------|---------------|
| Transcript pasted in chat | Process directly |
| File path provided | Read the file |
| /pmstudio-meeting-notes <path> | Read file at path |
| /pmstudio-meeting-notes <path> <output-dir> | Read file, write to specified directory |
| No transcript provided | Ask: "Paste the transcript or provide a file path" |
Always read (skip any that don't exist):
CLAUDE.local.md — critical for:/Stakeholder*.xlsx or /Stakeholder*.md**/Data/Stakeholder*/*PRD*.html or /*PRD*.md to:Process the transcript to extract:
| Element | What to Capture | How to Identify |
|---------|----------------|-----------------|
| Key Discussion Topics | Major themes discussed, numbered with detail | Topic shifts, agenda items, extended discussion |
| Decisions Made | Explicit choices, agreements, approvals | "We'll go with...", "Let's do...", "Agreed", "Decision:" |
| Action Items | Tasks assigned with owner and deadline | "Can you...", "I'll...", "Next step is...", "Action:" |
| Direct Quotes | Significant statements worth preserving verbatim | Strategic vision, strong opinions, commitments, memorable framing |
| New Information | Facts, data points, context not previously documented | Numbers, dates, names, technical details, process descriptions |
| New Stakeholders | People mentioned who aren't in the stakeholder directory | Names with roles/context that suggest ongoing involvement |
| Open Questions | Questions raised but not answered | "We need to find out...", "TBD", "I'll check...", unanswered questions |
| Emotional/Political Signals | Frustrations, enthusiasm, concerns, tensions | Strong language, repeated emphasis, criticism, praise |
File naming convention: YYYY-MM-DD-Attendee1-Attendee2.md (date-first for chronological sort, key attendee names for identification)
If 3+ attendees, use the most senior or topic-relevant names, not all names.
# Meeting Notes — {Topic / Key Attendees}
**Date:** {YYYY-MM-DD} ({Day of Week})
**Attendees:** {Name1 (Role)}, {Name2 (Role)}, {Name3 (Role)}
**Subject:** {Project} — {Topic Summary}
**Duration:** ~{N} minutes
---
## Summary
{2-3 sentence executive summary: what was the meeting about, what was decided, what's the main takeaway}
---
## {N}. {Topic Title}
{Detailed notes on this topic. Include:
- Context and background discussed
- Key points made by specific people (attribute statements)
- Data points, numbers, dates mentioned
- Sub-sections if the topic has distinct parts}
### {Sub-topic if needed}
- {Detail}
- {Detail}
> **"{Direct quote}"** — {Speaker Name}
{Repeat for each major topic}
---
## Decisions Made
| # | Decision | Made By | Impact | Notes |
|---|----------|---------|--------|-------|
| 1 | {Decision} | {Person} | {What it affects} | {Context} |
---
## New Stakeholders Identified
| Name | Role | Email | Context |
|------|------|-------|---------|
| {Name} | {Role} | {email or TBD} | {How they came up in discussion} |
*Omit this section if no new stakeholders were identified.*
---
## Action Items
| # | Action | Owner | Due | Status |
|---|--------|-------|-----|--------|
| 1 | {Action} | {Name} | {Date or "TBD"} | Pending |
---
## Open Questions
- {Question that wasn't answered — include who raised it and why it matters}
---
## Key Takeaways for Artifacts
{Flag what needs updating in other project documents. Be specific:}
| Artifact | What Needs Updating | Priority |
|----------|-------------------|----------|
| {PRD vX.Y} | {Specific section or requirement} | {High/Med/Low} |
| {Presentation} | {Specific slide or section} | {High/Med/Low} |
| {Architecture Map} | {Specific view or layer} | {High/Med/Low} |
| {Stakeholder Directory} | {New people to add} | {High/Med/Low} |
*Omit this section if no artifact impacts identified.*
---
## Transcript Notes
- {Note about transcript quality: complete/partial, any gaps, audio issues}
- {Which portions of the meeting are covered vs. missing}
Use the routing guide from CLAUDE.local.md to determine the correct output directory:
Routing logic:
ProductB-Control-Framework/Meeting-Notes/ProductA-Steady-State/Platform-Overview/Before writing: Show the user:
Then write the file.
After writing the meeting notes, propose a Recent Changes entry for CLAUDE.local.md:
- [YYYY-MM-DD] `{relative-path-to-notes}` — **NEW FILE**: {Meeting type} notes from {date} {attendees} call (~{N} min). {1-2 sentence summary of key topics}. {Count} action items. {Key decision or stakeholder if notable}.
Also propose updates to:
Ask: "Should I update CLAUDE.local.md with this entry?"
If the meeting produced information that should propagate to other documents, mention it:
> "This meeting discussed {topic} which may impact:
> - {PRD vX.Y} — {what section}
> - {Presentation} — {what slide}
> Run /pmstudio-sync to propagate changes, or I can update specific artifacts now."
10. Cross-reference, don't duplicate. If a topic was covered extensively in previous meeting notes, reference that file rather than re-explaining: "See 2026-03-13-{Stakeholder1}-{Stakeholder2}.md §3 for full {Audit Firm} tool walkthrough."
| Scenario | Approach |
|----------|----------|
| Multiple meetings in one transcript | Split into separate files, one per meeting |
| Very short meeting (<10 min) | Use abbreviated format: Summary + Decisions + Actions only |
| No clear decisions or actions | Still capture — note "Informational/exploratory call — no decisions or actions" |
| Sensitive/privileged content | Flag to user: "This transcript contains potentially privileged content (legal, litigation). Confirm before writing to file." |
| Poor transcript quality | Do your best, mark uncertain sections with [?], note quality issues prominently |
| Attendees not in stakeholder directory | List them in "New Stakeholders" table with whatever context is available |
| Meeting references documents not yet read | Note: "{Stakeholder} referenced {document} — not yet reviewed. Action: obtain and review." |
This skill is part of the PM Studio ecosystem:
| Related Skill | When to Suggest |
|---------------|----------------|
| /pmstudio-sync | Meeting produced changes that should propagate to PRD/deck/architecture |
| /pmstudio-changelog | Meeting produced a significant decision or change worth logging |
| /pmstudio-comms | Meeting requires a follow-up communication (status update, stakeholder notification) |
| /pmstudio-prd | Meeting revealed requirements not yet in the PRD |
| /pmstudio-nfr | After processing several meetings, audit document completeness |
Analyzes meeting transcripts and recordings to uncover behavioral patterns, communication insights, and actionable feedback. Identifies when you avoid conflict, use filler words, dominate conversations, or miss opportunities to listen. Perfect for professionals seeking to improve their communication and leadership skills.
Toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives. This skill applies when users request animated GIFs or emoji animations for Slack from descriptions like "make me a GIF for Slack of X doing Y".
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a GIF of X doing Y for Slack.
A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.
Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.
Prepare meeting materials with Notion context and Codex research; use when gathering context, drafting agendas/pre-reads, and tailoring materials to attendees.
Interactive daily standup/meeting update generator. Use when user says 'daily', 'standup', 'scrum update', 'status update', 'what did I do yesterday', 'prepare for meeting', 'morning update', or 'team sync'. Pulls activity from GitHub, Jira, and Claude Code session history. Conducts 4-question interview (yesterday, today, blockers, discussion topics) and generates formatted Markdown update.
Take coco-research/pmstudio-meeting-notes from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.