Transcript processing, multi-source handling, extraction principles, prep patterns.
From chief-of-staffnpx claudepluginhub tenfourty/cc-marketplace --plugin chief-of-staffThis skill uses the workspace's default tool permissions.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
This skill defines how the Chief of Staff works with meeting transcripts, meeting preparation, and meeting follow-up.
Meeting data is accessed primarily via kbx, which indexes content from Granola and Notion. Each meeting can have up to three file types, and each file type can exist in multiple source variants:
| File Type | Granola variant | Notion variant | When to Use |
|---|---|---|---|
| Transcript | .granola.transcript.md | .notion.transcript.md | Ground truth. Action extraction, exact quotes, decision capture, deep analysis. Longest but most reliable. |
| Notes | .granola.notes.md | .notion.notes.md | Quick context. What the user considered important, prep for follow-ups. May omit details the user didn't highlight. |
| AI Summary | .granola.ai-summary.md | — | Quick orientation when transcript is too long, scanning for themes. Treat as lossy — always verify key claims against transcript before acting on them. |
A single meeting can have files from both Granola and Notion — each source produces its own transcript, notes, and (for Granola) AI summary. Always read every available file for the meeting, not just one source's files.
Speaker attribution quality: When multiple transcripts exist for the same meeting, prefer the one with richer speaker attribution (multiple named speakers, e.g., "Jeremy: … Pierre: …") as the primary extraction source. The iPhone Granola app often detects different voices better than the Mac app, producing multi-speaker transcripts while the Mac version may attribute everything to a single speaker. A multi-speaker transcript is higher fidelity — use it as primary, and cross-reference the other transcript for anything it may have captured that the primary missed (e.g., side comments, different audio pickup).
The transcript is always the primary source for action items, decisions, and quotes — regardless of which recording source produced it. Notes and AI summaries are supplementary — they add context but should not replace the transcript.
For debrief and deep extraction: Read all available source variants for the meeting. Transcripts are mandatory; notes show what the user flagged as important; the AI summary is a useful cross-check.
For search and scanning: kbx search indexes all file types and source variants. When results include multiple files for the same meeting, prefer the transcript with the best speaker attribution for detailed reading.
Important: Do not extract action items or decisions solely from AI summaries. They may miss, misattribute, or hallucinate commitments.
Use kbx search to find meeting data and kbx view <path> --plain to read it. kbx indexes all file types and source variants. If kbx returns nothing, fall back to kbx granola view <calendar_uid> --all to fetch live from the Granola API.
From every meeting transcript, the Chief of Staff should be able to extract:
Action Items — WHO committed to WHAT by WHEN
Decisions — WHAT was decided, by WHOM, with what RATIONALE
kbx memory add --tags decisionFollow-ups — Items needing attention but not concrete action items
Context Updates — New facts that should be remembered
Commitments from Others — What other people promised
project: <ProjectName> in the description if related to a known kbx project (one project per task)Recurring meetings have context in the pinned kbx meetings note. For these:
kbx search "meeting title" --fast --json --limit 3 to find the last transcriptkbx view <path> --plain to read itkbx person find "Name" --json, chat MCPkbx note list --tag decision --json for related past decisionsFor each attendee, build a micro-profile:
- **[Name]** ([role])
- Last interaction: [date and context from kbx person timeline]
- Open items with them: [list from task backend]
- Recent activity: [what they've been posting/discussing]
- Context to know: [anything relevant from kbx]
After a meeting (via /debrief):
kbx search + kbx view --plainkbx note list --tag decisionproject: <ProjectName> in description when related to a kbx project, one project per task), update existing oneskbx search "topic" --tag decision --fast --json. Apply the Dedup Before Writing protocol (see information-management skill) — read any matching decision, then SKIP/MERGE/CREATE. kbx memory add --tags decision for genuinely new decisions only.kbx memory add --entity "Name" for new context only.In the weekly review, analyse meeting patterns:
Stored in the pinned kbx meetings note:
## [Meeting Name]
- **Cadence:** weekly/biweekly/monthly
- **Day/Time:** [when]
- **Duration:** [how long]
- **Attendees:** [who, with roles]
- **Purpose:** [why this meeting exists]
- **Typical agenda:** [what gets discussed]
- **Prep needed:** [what the executive should review before]
- **Key outputs:** [decisions, status updates, action items]
- **Last held:** [date]
- **Notes:** [any context about dynamics, effectiveness, concerns]
- **[Any additional fields]:** Special instructions for prep/debrief — e.g., a Notion DB to check for shared meeting notes, a chat channel to scan, a Google Doc with standing agenda. The prep and debrief commands read every field and follow any instructions they find here.
If no transcript source is connected or a meeting wasn't recorded: