From 1d49e3e3774478fea4fa8f6b6b261508986525f4 Mon Sep 17 00:00:00 2001 From: daymade Date: Sun, 25 Jan 2026 21:57:01 +0800 Subject: [PATCH] Release v1.28.0: Enhance meeting-minutes-taker with speaker identification Add speaker identification and pre-processing pipeline: - Speaker identification via feature analysis (word count, segment count, filler ratio, speaking style) with context.md team directory mapping - New context_file_template.md for team directory configuration - Intelligent file naming pattern: YYYY-MM-DD--.md - Pre-processing pipeline with markdown-tools and transcript-fixer - Transcript quality assessment workflow Co-Authored-By: Claude Opus 4.5 --- .claude-plugin/marketplace.json | 8 +- CHANGELOG.md | 14 ++ meeting-minutes-taker/SKILL.md | 183 +++++++++++++++++- .../references/context_file_template.md | 78 ++++++++ 4 files changed, 273 insertions(+), 10 deletions(-) create mode 100644 meeting-minutes-taker/references/context_file_template.md diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index d9fd8c7..838aa23 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -6,7 +6,7 @@ }, "metadata": { "description": "Professional Claude Code skills for GitHub operations, document conversion, diagram generation, statusline customization, Teams communication, repomix utilities, skill creation, CLI demo generation, LLM icon access, Cloudflare troubleshooting, UI design system extraction, professional presentation creation, YouTube video downloading, secure repomix packaging, ASR transcription correction, video comparison quality analysis, comprehensive QA testing infrastructure, prompt optimization with EARS methodology, session history recovery, documentation cleanup, format-controlled deep research report generation with evidence tracking, PDF generation with Chinese font support, CLAUDE.md progressive disclosure optimization, CCPM skill registry search and management, Promptfoo LLM evaluation framework, iOS app development with XcodeGen and SwiftUI, fact-checking with automated corrections, Twitter/X content fetching, intelligent macOS disk space recovery, skill quality review and improvement, GitHub contribution strategy, complete internationalization/localization setup, and plugin/skill troubleshooting with diagnostic tools", - "version": "1.27.0", + "version": "1.28.0", "homepage": "https://github.com/daymade/claude-code-skills" }, "plugins": [ @@ -670,17 +670,17 @@ }, { "name": "meeting-minutes-taker", - "description": "Transform meeting transcripts into high-fidelity, structured meeting minutes with iterative review. Use when a meeting transcript is provided and meeting minutes are requested, multiple versions need merging without content loss, or existing minutes need review against original transcript. Features evidence-based recording with speaker quotes, Mermaid diagrams for architecture discussions, multi-turn parallel generation to avoid content loss, and iterative human-in-the-loop refinement", + "description": "Transform meeting transcripts into high-fidelity, structured meeting minutes with iterative review. Features speaker identification via feature analysis (word count, speaking style, topic focus) with context.md team directory mapping, intelligent file naming from content, integration with markdown-tools and transcript-fixer for pre-processing, evidence-based recording with speaker quotes, Mermaid diagrams for architecture discussions, and multi-turn parallel generation with UNION merge", "source": "./", "strict": false, - "version": "1.0.0", + "version": "1.1.0", "category": "productivity", "keywords": [ "meeting", "minutes", "transcript", "notes", - "documentation", + "speaker-identification", "mermaid", "quotes", "action-items" diff --git a/CHANGELOG.md b/CHANGELOG.md index 59889e2..3246006 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - None +## [1.28.0] - 2026-01-25 + +### Added +- **Enhanced Skill**: meeting-minutes-taker v1.1.0 - Speaker identification and pre-processing pipeline + - Speaker identification via feature analysis (word count, segment count, filler ratio, speaking style) + - Context file template (`references/context_file_template.md`) for team directory mapping + - Intelligent file naming pattern: `YYYY-MM-DD--.md` + - Pre-processing pipeline integration with markdown-tools and transcript-fixer + - Transcript quality assessment workflow + +### Changed +- Updated marketplace version from 1.27.0 to 1.28.0 +- Updated meeting-minutes-taker plugin version from 1.0.0 to 1.1.0 + ## [1.27.0] - 2026-01-25 ### Added diff --git a/meeting-minutes-taker/SKILL.md b/meeting-minutes-taker/SKILL.md index 9ae4fac..6971e65 100644 --- a/meeting-minutes-taker/SKILL.md +++ b/meeting-minutes-taker/SKILL.md @@ -1,7 +1,7 @@ --- name: meeting-minutes-taker description: | - Transforms raw meeting transcripts into high-fidelity, structured meeting minutes with iterative review for completeness. This skill should be used when (1) a meeting transcript is provided and meeting minutes, notes, or summaries are requested, (2) multiple versions of meeting minutes need to be merged without losing content, (3) existing minutes need to be reviewed against the original transcript for missing items. Features evidence-based recording with speaker quotes, Mermaid diagrams for architecture discussions, multi-turn parallel generation to avoid content loss, and iterative human-in-the-loop refinement. + Transforms raw meeting transcripts into high-fidelity, structured meeting minutes with iterative review for completeness. This skill should be used when (1) a meeting transcript is provided and meeting minutes, notes, or summaries are requested, (2) multiple versions of meeting minutes need to be merged without losing content, (3) existing minutes need to be reviewed against the original transcript for missing items, (4) transcript has anonymous speakers like "Speaker 1/2/3" that need identification. Features include: speaker identification via feature analysis (word count, speaking style, topic focus) with context.md team directory mapping, intelligent file naming from content, integration with transcript-fixer for pre-processing, evidence-based recording with speaker quotes, Mermaid diagrams for architecture discussions, multi-turn parallel generation to avoid content loss, and iterative human-in-the-loop refinement. --- # Meeting Minutes Taker @@ -10,13 +10,40 @@ Transform raw meeting transcripts into comprehensive, evidence-based meeting min ## Quick Start +**Pre-processing (Optional but Recommended):** +- **Document conversion**: Use `markdown-tools` 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. **Multi-turn generation**: Use multiple passes or subagents with isolated context, merge using UNION -4. Self-review using [references/completeness_review_checklist.md](references/completeness_review_checklist.md) -5. Present draft to user for human line-by-line review -6. **Cross-AI comparison** (optional): Human may provide output from other AI tools (e.g., Gemini, ChatGPT) - merge to reduce bias -7. Iterate on feedback until human approves final version +3. **Intelligent file naming**: Auto-generate filename from content (see below) +4. **Speaker identification**: If transcript has "Speaker 1/2/3", identify speakers before generation +5. **Multi-turn generation**: Use multiple passes or subagents with isolated context, merge using UNION +6. Self-review using [references/completeness_review_checklist.md](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--.md` + +| Component | Source | Examples | +|-----------|--------|----------| +| Date | Transcript metadata or first date mention | `2026-01-25` | +| Topic | Main discussion subject (2-4 words, kebab-case) | `api-design`, `product-roadmap` | +| Type | Meeting category | `review`, `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 @@ -24,7 +51,14 @@ 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") + - [ ] Analyze speaker features (word count, style, topic focus) + - [ ] Match against context.md team directory (if provided) + - [ ] Present speaker mapping 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: /intermediate// - [ ] Launch 3 Task subagents IN PARALLEL (single message, 3 Task tool calls) @@ -51,6 +85,112 @@ Analyze the transcript to identify: - 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. + +**Approach** (inspired by Anker Skill): + +#### Phase A: Feature Analysis (Pattern Recognition) + +For each speaker, analyze: + +| Feature | What to Look For | +|---------|-----------------| +| **Word count** | Total words spoken (high = senior/lead, low = observer) | +| **Segment count** | Number of times they speak (frequent = active participant) | +| **Avg segment length** | Average words per turn (long = presenter, short = responder) | +| **Filler ratio** | % of filler words (对/嗯/啊/就是/然后) - low = prepared speaker | +| **Speaking style** | Formal/informal, technical depth, decision authority | +| **Topic focus** | Areas they discuss most (backend, frontend, product, etc.) | +| **Interaction pattern** | Do 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) + +When user provides a project context file (e.g., `context.md`): + +1. Load team directory section +2. Match feature patterns to known team members +3. Cross-reference roles with speaking patterns + +**Context file should include:** +```markdown +## Team Directory +| Name | Role | Communication Style | +|------|------|---------------------| +| Alice | Backend Lead | Technical, decisive, assigns backend tasks | +| Bob | PM | Product-focused, asks requirements questions | +| Carol | TPM | Process-focused, tracks timeline/resources | +``` + +#### Phase C: Confirmation Before Proceeding + +**CRITICAL**: Never silently assume speaker identity. + +Present analysis summary to user: +``` +Speaker Analysis: +- Speaker 1 → Alice (Backend Lead) - 80% confidence based on: technical focus, task assignment pattern +- Speaker 2 → Bob (PM) - 75% confidence based on: product questions, requirements discussion +- Speaker 3 → Carol (TPM) - 70% confidence based on: timeline concerns, resource tracking + +Please confirm or correct these mappings before I proceed. +``` + +After user confirmation, apply mappings consistently throughout the document. + +### Step 1.7: Transcript Quality Assessment (Optional) + +Evaluate transcript quality to determine processing depth: + +**Scoring Criteria (1-10 scale):** + +| Factor | Score Impact | +|--------|-------------| +| **Content volume** | >10k chars: +2, 5-10k: +1, <2k: cap at 3 | +| **Filler word ratio** | <5%: +2, 5-10%: +1, >10%: -1 | +| **Speaker clarity** | Main speaker >80%: +1 (clear presenter) | +| **Technical depth** | High technical content: +1 | + +**Quality Tiers:** + +| Score | Tier | Processing Approach | +|-------|------|---------------------| +| ≥8 | **High** | Full structured minutes with all sections, diagrams, quotes | +| 5-7 | **Medium** | Standard minutes, focus on key decisions and action items | +| <5 | **Low** | Summary only - brief highlights, skip detailed transcription | + +**Example assessment:** +``` +📊 Transcript Quality Assessment: +- Content: 41,837 chars (+2) +- Filler ratio: 3.6% (+2) +- Main speaker: 99% (+1) +- Technical depth: High (+1) +→ Quality Score: 10/10 (High) +→ Recommended: Full structured minutes with diagrams +``` + +**User decision point**: If quality is Low (<5), ask user: +> "Transcript quality is low (碎片对话/噪音较多). Generate full minutes or summary only?" + ### Step 2: Multi-Turn Initial Generation (Critical) **A single pass will absolutely lose content.** Use multi-turn generation with **redundant complete passes**: @@ -309,8 +449,39 @@ If v3 has a flowchart for "Status Query Mechanism" but v1/v2 don't have it, that |------|--------------| | [meeting_minutes_template.md](references/meeting_minutes_template.md) | First generation - Contains template structure | | [completeness_review_checklist.md](references/completeness_review_checklist.md) | During review steps - Contains completeness checks | +| [context_file_template.md](references/context_file_template.md) | When helping user create context.md - Contains team directory template | | Project context file (user-provided) | When user provides project-specific context (team directory, terminology, conventions) | +### Recommended Pre-processing Pipeline + +**Full pipeline for .docx transcripts:** + +``` +Step 0: markdown-tools # Convert .docx → Markdown (preserves tables/images) + ↓ +Step 0.5: transcript-fixer # Fix ASR errors (optional, if quality is poor) + ↓ +Step 1+: meeting-minutes-taker # Generate structured minutes +``` + +**Commands:** +```bash +# 1. Install markitdown (one-time) +uv tool install "markitdown[pdf]" + +# 2. Convert .docx to markdown +markitdown "录音转写.docx" -o transcript.md + +# 3. Then use meeting-minutes-taker on transcript.md +``` + +**Benefits of combo workflow:** +- **Tables preserved**: markitdown converts Word tables to Markdown tables +- **Images extracted**: Can be embedded in final minutes +- **Cleaner quotes**: transcript-fixer removes ASR typos before quote extraction +- **Accurate speaker ID**: Style analysis works better on clean text +- **正交设计**: Each skill does one thing well, composable pipeline + ## Common Patterns ### Architecture Discussions → Mermaid Diagrams (Next-Level Minutes) diff --git a/meeting-minutes-taker/references/context_file_template.md b/meeting-minutes-taker/references/context_file_template.md new file mode 100644 index 0000000..a518c82 --- /dev/null +++ b/meeting-minutes-taker/references/context_file_template.md @@ -0,0 +1,78 @@ +# Project Context File Template + +Use this template to create a `context.md` file for your project. This file helps the skill: +- Correctly identify speakers in transcripts +- Use proper terminology and naming conventions +- Understand team structure and roles + +## Template + +```markdown +# Project Context + +## Team Directory + +| Name | Role | Communication Style | Expertise | +|------|------|---------------------|-----------| +| Alice | Backend Lead | Technical, decisive, assigns tasks | API design, database | +| Bob | PM | Product-focused, asks requirements | User stories, roadmap | +| Carol | TPM | Process-focused, tracks resources | Timeline, dependencies | +| Dave | Frontend | UI/UX discussions, component details | React, CSS | +| Eve | Designer | Visual patterns, user experience | Figma, design systems | + +## Project Terminology + +| Term | Meaning | Notes | +|------|---------|-------| +| Order | Customer purchase record | NOT to be confused with "command" | +| Note | User annotation on orders | Different from system "Comment" | +| Profile | Customer settings | Use "CustomerProfile" not "UserProfile" | + +## Naming Conventions + +- **Entities**: PascalCase (e.g., `OrderItem`, `CustomerProfile`) +- **APIs**: kebab-case (e.g., `/api/order-items`) +- **Database tables**: snake_case (e.g., `order_items`) + +## Existing Systems + +List systems/entities that already exist to avoid naming conflicts: + +- `Comment` - existing comment system (don't create new "Note" entity with same meaning) +- `Account` - existing user account (don't create "UserProfile" with overlapping fields) + +## Meeting Types + +| Type | Description | Typical Attendees | +|------|-------------|-------------------| +| Design Review | API/architecture discussions | Backend, PM, TPM | +| Sprint Planning | Task breakdown and assignment | All team members | +| Sync | Quick status updates | Varies | +| Retrospective | Process improvement | All team members | +``` + +## Usage + +1. Create a `context.md` file in your project directory +2. Fill in team directory with actual team members +3. Add project-specific terminology +4. Update as project evolves + +When invoking meeting-minutes-taker, provide this file path: +``` +Please generate meeting minutes from transcript.md using context.md for speaker identification. +``` + +## Speaker Identification Example + +With this context file, when the transcript has: +``` +Speaker 1: Let's discuss the Order API design... +Speaker 2: What about the user requirements for... +Speaker 3: We need to track the timeline for... +``` + +The skill will analyze and match: +- Speaker 1 → Alice (Backend Lead) - technical focus, API discussion +- Speaker 2 → Bob (PM) - requirements focus +- Speaker 3 → Carol (TPM) - timeline focus