daymade/claude-code-skills4 files

Meeting Minutes Taker

>

Specification
Skill ID
daymade/claude-code-skills/meeting-minutes-taker
Publisher
daymade
Repository
claude-code-skills
Installs
0
Files
4
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

daymade/claude-code-skills/meeting-minutes-takerInstalls these files
  • SKILL.md
  • references/completeness_review_checklist.md
  • references/context_file_template.md
  • references/meeting_minutes_template.md

What this skill tells the agent

Meeting Minutes Taker

Transform raw meeting transcripts into comprehensive, evidence-based meeting minutes through iterative review.

Quick Start

Pre-processing (Optional but Recommended):

  • Document conversion: Use doc-to-markdown skill to convert .docx/.pdf to Markdown first (preserves tables/images)
  • Transcript cleanup: Use transcript-fixer skill to fix ASR/STT errors if transcript quality is poor
  • Context file: Prepare context.md with team directory for accurate speaker identification

Core Workflow:

  1. Read the transcript provided by user
  2. Load project-specific context file if provided by user (optional)
  3. Intelligent file naming: Auto-generate filename from content (see below)
  4. Speaker identification: If transcript has "Speaker 1/2/3", FIRST ask the user to label speakers on the source platform and re-export (see Step 1.5 Phase 0); infer from text only as a fallback
  5. Multi-turn generation: Use multiple passes or subagents with isolated context, merge using UNION
  6. Self-review using references/completeness_review_checklist.md
  7. Present draft to user for human line-by-line review
  8. Cross-AI comparison (optional): Human may provide output from other AI tools (e.g., Gemini, ChatGPT) - merge to reduce bias
  9. Iterate on feedback until human approves final version

Intelligent File Naming

Auto-generate output filename from transcript content:

Pattern: YYYY-MM-DD-<topic>-<type>.md

ComponentSourceExamples
DateTranscript metadata or first date mention2026-01-25
TopicMain discussion subject (2-4 words, kebab-case)api-design, product-roadmap
TypeMeeting categoryreview, sync, planning, retro, kickoff

Examples:

  • 2026-01-25-order-api-design-review.md
  • 2026-01-20-q1-sprint-planning.md
  • 2026-01-18-onboarding-flow-sync.md

Ask user to confirm the suggested filename before writing.

Core Workflow

Copy this checklist and track progress:

Meeting Minutes Progress:
- [ ] Step 0 (Optional): Pre-process transcript with transcript-fixer
- [ ] Step 1: Read and analyze transcript
- [ ] Step 1.5: Speaker identification (if transcript has "Speaker 1/2/3")
  - [ ] Phase 0 FIRST: ask user to label speakers on the source platform (Feishu Minutes / Tencent Meeting), re-export, use labeled transcript
  - [ ] Fallback only (source labeling unavailable or declined by user):
    - [ ] Analyze speaker features (word count, style, topic focus)
    - [ ] Match against context.md team directory (if provided)
    - [ ] Present speaker mapping with per-speaker evidence to user for confirmation
- [ ] Step 1.6: Generate intelligent filename, confirm with user
- [ ] Step 1.7: Quality assessment (optional, affects processing depth)
- [ ] Step 2: Multi-turn generation (PARALLEL subagents with Task tool)
  - [ ] Create transcript-specific dir: <output_dir>/intermediate/<transcript-name>/
  - [ ] Launch 3 Task subagents IN PARALLEL (single message, 3 Task tool calls)
    - [ ] Subagent 1 → <output_dir>/intermediate/<transcript-name>/version1.md
    - [ ] Subagent 2 → <output_dir>/intermediate/<transcript-name>/version2.md
    - [ ] Subagent 3 → <output_dir>/intermediate/<transcript-name>/version3.md
  - [ ] Merge: UNION all versions, AGGRESSIVELY include ALL diagrams → draft_minutes.md
  - [ ] Final: Compare draft against transcript, add omissions
- [ ] Step 3: Self-review for completeness
- [ ] Step 3.5: Retrieval Self-Test (consumption-side verification)
  - [ ] Fresh-context subagent extracts future-query claims list from transcript ONLY (never sees draft) → intermediate/<transcript-name>/retrieval-claims.md
  - [ ] Hit-test each claim against retrievable layer (Key Decisions / Action Items / Parking Lot / Open Questions), by component, with lexical anchors
  - [ ] Revocation scan before ANY promotion; promote with [self-test promoted] tag + greppable verbatim quote; uncertain → Open Questions
  - [ ] Report "enumerated N / hits M / promoted K / uncertain list" (never a binary pass); fail-open with visible NOT-RUN note if extraction fails
- [ ] Step 4: Present draft to user for human review
- [ ] Step 5: Cross-AI comparison (if human provides external AI output)
- [ ] Step 6: Iterate on human feedback (expect multiple rounds)
- [ ] Step 7: Human approves final version

Note: <output_dir> = directory where final meeting minutes will be saved (e.g., project-docs/meeting-minutes/)
Note: <transcript-name> = name derived from transcript file (e.g., 2026-01-15-product-api-design)

Step 1: Read and Analyze Transcript

Analyze the transcript to identify:

  • Meeting topic and attendees
  • Key decisions with supporting quotes
  • Action items with owners
  • Deferred items / open questions

Step 1.5: Speaker Identification (When Needed)

Trigger: Transcript only has generic labels like "Speaker 1", "Speaker 2", "发言人1", etc.

Phase 0: Source-Side Labeling (ALWAYS TRY FIRST)

When the transcript comes from a platform that supports manual speaker labeling (Feishu Minutes 飞书妙记, Tencent Meeting 腾讯会议, or any tool with a diarization-editing page), stop and ask the user to label the speakers at the source, then re-export/re-ingest the labeled transcript before generating minutes. Send the user the source page link — it is usually in the transcript's frontmatter (minute_url, meeting URL).

Why this beats inference:

  • Platform labeling is a human listening to the actual voices — the authoritative source. Text-based inference can only resolve speakers who happen to get name-called during the meeting; everyone else stays a guess.
  • Diarization-merged segments (multiple people collapsed into one label) are unrecoverable from text alone — no amount of inference fixes them, but source-side relabeling does.
  • Inference output forces [inferred] markers everywhere plus a per-speaker human review round; source labeling produces clean ground truth once.

Fall back to Phase A–C below only when: (a) the user explicitly says to proceed by inference, or (b) the source cannot be labeled (raw audio file with no platform page, no edit permission). In the fallback, every mapping must carry evidence and a confidence level, unresolved labels stay as-is (never force-assign), and when the user later labels the source, go back and correct the minutes.

Fallback approach (inspired by Anker Skill):

Phase A: Feature Analysis (Pattern Recognition)

For each speaker, analyze:

FeatureWhat to Look For
Word countTotal words spoken (high = senior/lead, low = observer)
Segment countNumber of times they speak (frequent = active participant)
Avg segment lengthAverage words per turn (long = presenter, short = responder)
Filler ratio% of filler words (对/嗯/啊/就是/然后) - low = prepared speaker
Speaking styleFormal/informal, technical depth, decision authority
Topic focusAreas they discuss most (backend, frontend, product, etc.)
Interaction patternDo others ask them questions? Do they assign tasks?

Example analysis output:

Speaker Analysis:
┌──────────┬────────┬──────────┬─────────────┬─────────────┬────────────────────────┐
│ Speaker  │ Words  │ Segments │ Avg Length  │ Filler %    │ Role Guess             │
├──────────┼────────┼──────────┼─────────────┼─────────────┼────────────────────────┤
│ 发言人1  │ 41,736 │ 93       │ 449 chars   │ 3.6%        │ 主讲人 (99% of content)│
│ 发言人2  │ 101    │ 8        │ 13 chars    │ 4.0%        │ 对话者 (short responses)│
└──────────┴────────┴──────────┴─────────────┴─────────────┴────────────────────────┘

Inference rules:
- 占比 > 70% + 平均长度 > 100字 → 主讲人
- 平均长度 < 50字 → 对话者/响应者
- 语气词占比 < 5% → 正式/准备充分
- 语气词占比 > 10% → 非正式/即兴发言
Phase B: Context Mapping (If Context File Provided)

Use this skill in a project

Open any RiverX project, search the Skills panel for daymade/claude-code-skills/meeting-minutes-taker, and install it in one click.

Use this skill