---
description: Create brief or detailed summaries of transcriptions with context-aware linking
allowed-tools: [Read, Write, Edit, Glob, Grep, AskUserQuestion, mcp__google_workspace__*, mcp__google-calendar__*, mcp__atlassian__*, mcp__obsidian__*]
---
Create intelligent summaries of meeting transcriptions with automatic linking to people, projects, Jira tickets, and GitHub references.
## Input modes
$ARGUMENTS can be:
- A file path: `/path/to/transcription.txt` or `~/Downloads/meeting.txt`
- Empty: Prompts user to paste transcription inline
## Flags
| Flag | Short | Effect |
|------|-------|--------|
| `--detailed` | `-d` | Detailed mode with timestamps, speaker sections |
| `--full` | `-f` | Full extraction: questions, commitments, deadlines |
| `--meeting` | `-m` | Create as meeting note in project folder |
| `--project NAME` | `-p` | Override auto-detected project context |
| `--by-speaker` | `-s` | Group content by speaker (detailed mode) |
| `--no-calendar` | | Skip calendar auto-detection |
## Examples
```bash
/transcribe ~/Downloads/meeting-2026-01-12.txt # Brief summary
/transcribe ~/Downloads/meeting-2026-01-12.txt --detailed # With timestamps
/transcribe ~/Downloads/meeting-2026-01-12.txt -d -f -s # Full extraction, by speaker
/transcribe # Paste inline
```
## Workflow
### Phase 1: Get transcription content
**If $ARGUMENTS contains a file path:**
1. Read the file at the provided path
2. Validate it contains text content
3. Parse for speaker labels (e.g., "John:", "Speaker 1:", "[John Smith]")
**If $ARGUMENTS is empty:**
1. Prompt user to paste transcription
2. Accept multi-line input
3. Parse for speaker labels
**Parse transcription metadata:**
- Detect speaker format (name-based, role-based, numbered)
- Identify approximate duration from timestamps if present
- Extract date if mentioned in content
- Count participants
**Detect transcription language:**
- Analyze the transcription content to detect the primary language
- Common languages to detect: English, Dutch, German, French, Spanish
- Use language indicators: common words, sentence structure, character patterns
- Store detected language for summary generation
**Language matching rule:**
- **Write the entire summary in the same language as the transcription**
- This includes: section headers, labels, descriptions, all prose
- Keep technical terms language-agnostic: Jira IDs, GitHub references, project codes
- Keep proper nouns as-is: person names, company names, product names
- Keep dates in appropriate format for the language (e.g., Dutch: "17 januari 2026")
**Language-specific section headers:**
English (default):
- Key points, Decisions, Action items, Related, Timeline, By speaker, Open questions, Commitments made, Deadlines mentioned, Blockers, Risks
Dutch:
- Belangrijkste punten, Besluiten, Actiepunten, Gerelateerd, Tijdlijn, Per spreker, Open vragen, Toezeggingen, Genoemde deadlines, Blokkades, Risico's
German:
- Wichtigste Punkte, Entscheidungen, Aktionspunkte, Verwandt, Zeitleiste, Pro Sprecher, Offene Fragen, Zusagen, Genannte Fristen, Blockaden, Risiken
French:
- Points clés, Décisions, Actions, Liens, Chronologie, Par intervenant, Questions ouvertes, Engagements, Échéances mentionnées, Blocages, Risques
Spanish:
- Puntos clave, Decisiones, Acciones, Relacionado, Cronología, Por participante, Preguntas abiertas, Compromisos, Plazos mencionados, Bloqueos, Riesgos
### Phase 2: Gather vault context (parallel)
1. **Find active projects:**
- Read `01-Projects/` for notes with `status: active`
- Extract: names, key terms, companies, people involved
- Build keyword matching map
2. **Find people notes:**
- List `04-People/` for name matching
- Build lookup by first name, full name, email
- Include company affiliations
3. **Check recent context:**
- Read last 3 daily notes for recent work focus
- Note active sprint/milestones
### Phase 3: Auto-detect calendar context (unless --no-calendar)
**Search strategy:**
1. Check today's calendar for meetings
2. If transcription has date/time hints, search that day
3. Match by:
- Attendee names found in transcription
- Meeting title keywords
- Duration approximation
**If match found:**
```
📅 Detected meeting: "Sprint Planning" (14:00-15:30)
Attendees: [[04-People/Jan van der Berg]], [[04-People/Mark Johnson]], +2 others
Project: [[01-Projects/Hertek Safety]] (based on attendees)
Use this context? [y/n]
```
**If no match or --no-calendar:**
- Continue with transcription content analysis only
- Detect project from keywords and people mentioned
### Phase 4: Extract entities for linking
**Scan transcription for:**
1. **Jira tickets:**
- Pattern: `[A-Z]+-\d+` (e.g., HERT-234, TOP-56)
- Validate against known project keys if possible
- Link format: `[[HERT-234]]` or fetch title via MCP
2. **GitHub references:**
- Pattern: `owner/repo#\d+` or `PR #\d+` or `issue #\d+`
- Repository mentions
- Link format: `[owner/repo#123](url)`
3. **People mentions:**
- Match against 04-People/ notes
- Handle first names, full names, nicknames
- Link format: `[[04-People/John Smith|John]]`
4. **Project references:**
- Match keywords against active projects
- Company names → related projects
- Link format: `[[01-Projects/Project Name]]`
5. **Document references:**
- "the spec", "the RFC", "the ADR"
- File names mentioned
- Page/document titles
- Link to vault notes or external URLs
6. **Dates and deadlines:**
- Explicit: "by Friday", "January 15th"
- Relative: "next week", "end of sprint"
- Convert to absolute dates where possible
### Phase 5: Analyze content
**Core extraction (all modes):**
- **Decisions made:** What was decided, by whom, with what rationale
- **Action items:** Task, owner, deadline (if mentioned)
**Full extraction (--full flag):**
- **Open questions:** Unresolved issues, needs research/input
- **Commitments:** Promises made ("I'll do X", "We'll deliver Y")
- **Deadlines mentioned:** All date references with context
- **Blockers discussed:** Issues blocking progress
- **Risks raised:** Concerns about timeline, scope, quality
**Speaker analysis:**
- Who spoke most (rough %)
- Key points per speaker
- Action items by speaker
### Phase 6: Clarify unclear references
**Before generating summary, identify and resolve unclear transcription parts:**
1. **Detect potential transcription errors:**
- Unusual words or phrases that don't fit context
- Names that don't match known people
- Project codes/numbers that seem garbled
- Company/product names that sound phonetically similar to real ones
2. **Create clarification list with context:**
For each unclear item, show:
- **What was transcribed:** The unclear text
- **Who said it:** Speaker name and timestamp
- **Context snippet:** 1-2 sentences before/after for context
- **Suggested alternatives:** Based on conversation context, known entities, phonetic similarity
3. **Present to user for confirmation:**
```
🤔 Found unclear references that need clarification:
1. "427 documentatie" (mentioned 3x)
- Speaker: [[04-People/Egon Meijers]] at [17:26], [17:29]
- Context: "...daar loop ik al een hele tijd mee met, is dan niet persigemunitie gerelateerd, maar die 427 documentatie. Dat wil ik dan heel graag doen..."
- Suggestions:
[a] 24/7 documentatie
[b] 4.27 documentatie (version number)
[c] Keep as-is
[d] Other (type manually): _______
2. "Koning Assignment" (mentioned 5x)
- Speaker: [[04-People/Niels Scheurleer]] at [40:13]
- Context: "...In één geval zeg je, die techniek is dadelijk wel nog steeds belangrijk. Maar secundair aan het daadwerkelijk in kunnen zetten. En de vertaalslag kunnen maken aan die klant. Om inderdaad die techniek, die vertaalslag op en neer te kunnen brengen. En dat is een skill. Die halen we nu traitier naar voren uit de Koning Assignment..."
- Suggestions:
[a] Coding Assignment (phonetically similar)
[b] Koning Assignment (Dutch: "King Assignment")
[c] Keep as-is
[d] Other: _______
3. "Kodam" (mentioned 1x)
- Speaker: [[04-People/Pascal Widdershoven]] at [27:27]
- Context: "...bijvoorbeeld nu bij Kodam. Dat is niet echt een klant. Maar dat soort dingen..."
- Suggestions:
[a] Codam (https://www.codam.nl/) - coding school
[b] Keep as-is
[c] Other: _______
[Enter corrections as: 1a,2a,3a or answer individually]
```
4. **Record corrections:**
- Apply corrections to summary
- Create "Transcription corrections" section documenting:
- What was corrected and why
- What remains unclear with context for future reference
- Links to external resources where relevant (company websites, etc.)
5. **Format corrections section:**
```markdown
## Transcription correcties/verduidelijkingen
**Gecorrigeerde passages:**
1. **"Coding Assignment"** (pt1:40:13 en verder) - transcriber hoorde "Koning Assignment"
- Context: Sollicitatieprocedure voor developers bij Kabisa
2. **"24/7 documentatie"** (meerdere keren) - transcriber hoorde "427 documentatie"
- Context: Documentatieproject waar Egon mee bezig is
3. **"Kodam"** (pt1:27:27) - [Codam Coding College](https://www.codam.nl/)
- Context: Programmeerschool waar Kabisa een workshop gaf
**Onduidelijke passages (niet opgelost):**
1. **"opschering oriënteerde"** (pt2:12:40)
- Speaker: [[04-People/Niels Scheurleer]]
- Context: "...jarenlijn kennis, kunde en ervaring. En die wil ik op een andere manier inzetten dan alleen maar in één of twee weken eens kijken, om dan weer wat opschering oriënteerde dingen te gaan organiseren..."
- Note: Context onduidelijk, mogelijk "grotere georiënteerde" of andere term
2. **"nieuwsdenkingsschakelaar"** (pt1:22:26)
- Speaker: [[04-People/Joost Saanen]]
- Context: "...Vroeger ook ja. Toen gewoon een beetje op principal dingen geboekt. Want ja bij Otto kon ik ook niet altijd schrijven. Ja maar dat soort dingen is het ook goed in mijn veld. Met nieuwsdenkingsschakelaar..."
- Note: Mogelijk interne term voor overhead/schakeluren bij Kabisa
```
**Clarification workflow tips:**
- Show max 10 items at once (avoid overwhelming user)
- Group by type (names, codes, companies, jargon)
- Prioritize frequently mentioned items (mentioned 3+ times)
- Use phonetic analysis for suggestions (Dutch/English)
- Check vault for similar existing entities
- Search web for company/product names when uncertain
### Phase 7: Generate summary
**Brief mode (default):**
```markdown
---
created: YYYY-MM-DD
type: transcription-summary
tags: [meeting, transcription]
source: {{file_path or "inline"}}
meeting-date: {{detected_date or today}}
project: {{detected_project}}
---
# {{title}} - Summary
**Context:** {{calendar_context or inferred_context}}
**Participants:** {{linked_attendees}}
**Duration:** {{estimated_duration}}
## Key points
- Point 1 with [[relevant-link]]
- Point 2 mentioning [[04-People/Person]]
- Point 3 about [[HERT-234]]
## Decisions
| Decision | Owner | Context |
|----------|-------|---------|
| Chose approach X for Y | [[04-People/John]] | Discussed trade-offs... |
## Action items
- [ ] Task description - **[[04-People/Owner]]** {{deadline if any}}
- [ ] Another task - **[[04-People/Owner]]**
## Related
- Project: [[01-Projects/Project Name]]
- Jira: [[HERT-234]], [[HERT-235]]
- Previous: [[path/to/previous-meeting]]
```
**Detailed mode (--detailed):**
Adds these sections:
```markdown
## Timeline
### Opening `[0:00-5:30]`
- Meeting opened by [[04-People/Jan]]
- Reviewed agenda: Sprint progress, blockers, planning
### Sprint progress `[5:30-20:15]`
- [[04-People/Mark]] presented demo of [[HERT-234]] auth flow
- Discussion about edge cases `[12:45]` - decided to handle in separate ticket
- [[04-People/Anna]] raised concern about deadline `[18:30]`
### Blockers `[20:15-35:00]`
...
## Key moments
| Time | Topic | Significance |
|------|-------|--------------|
| `[12:45]` | Auth edge cases | Led to [[HERT-240]] creation |
| `[28:30]` | Deadline discussion | Moved to next sprint |
## Full extraction (--full)
### Open questions
- How should we handle X? (No resolution - needs research)
- What's the deadline for Y? ([[04-People/Mark]] to confirm)
### Commitments made
| Who | Commitment | When |
|-----|------------|------|
| [[04-People/Jan]] | "I'll review the PR today" | Today |
| [[04-People/Team]] | "We'll have demo ready" | Thursday |
### Deadlines mentioned
- **Friday Jan 17:** Sprint end
- **Thursday Jan 16:** Client demo
- **Next week:** Design review
### Blockers
- Waiting for API access from external team
- Need design sign-off before implementation
### Risks
- Timeline tight for auth implementation
- External dependency may delay release
```
**By-speaker mode (--by-speaker with --detailed):**
Adds or replaces timeline with:
```markdown
## By speaker
### [[04-People/Jan van der Berg]] (Lead Developer)
**Speaking time:** ~35%
**Key contributions:**
- Led technical discussion on auth implementation
- Proposed using existing session framework
- Committed to reviewing PR today
**Action items assigned:**
- [ ] Review auth PR
- [ ] Update documentation
### [[04-People/Mark Johnson]] (Product Owner)
**Speaking time:** ~25%
**Key contributions:**
- Presented sprint priorities
- Clarified acceptance criteria for [[HERT-234]]
- Raised deadline concern
**Decisions driven:**
- Moved nice-to-have features to next sprint
```
### Phase 7: Determine output location
**Default:** `00-Inbox/transcription-summary-YYYY-MM-DD-HHMMSS.md`
**If --meeting flag:**
1. Check if project was detected/specified
2. Save to `01-Projects/[Project]/meetings/`
3. Use meeting template structure
**Report location:**
```
📝 Created: [[00-Inbox/transcription-summary-2026-01-12-143022]]
Linked entities:
- 3 people (1 new: created [[04-People/Anna Peters]])
- 2 Jira tickets
- 1 project
Would you like to:
[m] Move to a project folder
[e] Edit the summary
[d] Done
```
### Phase 8: Create person notes if needed
For speakers not found in vault:
1. Parse name from transcription
2. Infer company from context (calendar, email domain)
3. Create minimal note in `04-People/`
4. Add interaction: "Meeting: [title] on [date]"
```
New people detected:
- "Anna" → No match in vault
Create person note for Anna?
- [y] Yes, create [[04-People/Anna]] (will prompt for details)
- [n] No, leave unlinked
- [s] Skip all new people
```
## Handling edge cases
**If transcription has no speaker labels:**
- Treat as single narrative
- Skip by-speaker mode
- Focus on content extraction
**If timestamps are inconsistent or missing:**
- Use relative markers: "early", "mid-discussion", "towards end"
- Note: "Timestamps unavailable or inconsistent"
**If no entities detected:**
- Create clean summary without links
- Note: "No Jira/GitHub/project references detected"
**If file not found:**
- Prompt to paste inline instead
- Suggest checking path
**If calendar has multiple possible matches:**
```
Multiple meetings could match this transcription:
[1] 10:00 - Sprint Planning (matches attendees: Jan, Mark)
[2] 14:00 - Client Review (matches topic: auth discussion)
[3] None of these
Which meeting? [1/2/3]
```
**If transcription is very long (>30 min / 10k words):**
- Process in sections
- Offer to create multiple summaries
- Prioritize action items and decisions
## Quality guidelines
**For all summaries:**
- Preserve speaker attribution for decisions
- Include timestamp references where available
- Link everything that can be linked
- Keep summary scannable (bullet points, tables)
**For quotes:**
Only include quotes when they're truly valuable:
- Strong philosophical statements about approach/values ("We should always prioritize X over Y")
- Memorable expressions that define how someone thinks
- Direct commitments or important decisions
- Feedback given to or about someone (useful for performance context)
- Unique perspectives that capture their worldview
**Do NOT include:**
- Casual conversational snippets
- Agreement/acknowledgment phrases ("yes", "that makes sense")
- Routine statements that don't reveal anything significant
- Most "what was said" - focus on "why it matters"
**For action items:**
- **Consolidate ruthlessly:** Aim for 3-7 top-level items max (cognitive load limit)
- **Distinguish deliverables from activities:**
- Top-level items are OUTCOMES (what gets delivered)
- Sub-activities are indented under parent items
- **Group by sequence:**
- Immediate/independent quick wins
- Main deliverable(s) with sub-tasks noted
- Post-deliverable actions (presentations, follow-ups)
- **Always include owner if mentioned**
- **Convert relative dates** ("next week") to absolute
- **Flag items without clear owners**
- **Use inline notes for research/activities:** "Create roadmap (includes: cost analysis, ticket research, stakeholder review)"
**Action item consolidation rules:**
1. **Before listing tasks, ask:** "What are the 2-4 main deliverables?" Not "What are all the tasks?"
2. **Consolidation patterns:**
- Multiple ticket creation → One "Create Jira tickets for X, Y, Z"
- Research + analysis + decision → One "Research and decide on X"
- Investigation + documentation → One "Document findings on X"
- Code + tests + review → One "Implement X feature"
3. **When to keep separate:**
- Different owners
- Different deadlines
- No logical grouping (truly independent)
- Quick wins vs. large projects
4. **Format for consolidated items:**
```markdown
- [ ] Main deliverable 📅 deadline ⏫ #tags 👤Owner
- Includes: sub-task A, sub-task B, sub-task C
```
5. **Example transformation:**
❌ **Bloated (12 items):**
- Research cost of tool X
- Research cost of tool Y
- Create ticket for feature A
- Create ticket for feature B
- Create ticket for feature C
- Schedule meeting with John
- Write proposal
- Get John's feedback on proposal
- Update proposal
- Present to management
- Create roadmap
- Update documentation
✅ **Consolidated (4 items):**
- [ ] Quick wins: Fix license PR, schedule team session 📅 2026-01-17
- [ ] Create technical roadmap 📅 2026-01-24 ⏫ 👤Egon
- Includes: cost research (tools X, Y), create tickets (A, B, C), get John's review
- [ ] Present roadmap to management 📅 2026-02-07 👤Egon 👤Raymond
- [ ] Update documentation post-approval 👤Team
**For decisions:**
- Include the alternatives considered
- Note who made/approved the decision
- Link to related tickets or docs
## Output format conventions
**Inline links for people:**
```markdown
[[04-People/Jan van der Berg|Jan]] mentioned that...
```
**Jira tickets with context:**
```markdown
Discussed [[HERT-234]] (auth flow) - ready for review
```
**Timestamps:**
```markdown
Key discussion at `[15:32]` about deployment strategy
```
**Quotes (only when truly valuable):**
```markdown
> "We should always prioritize reliability over new features - that's non-negotiable for this team" - [[04-People/Mark Johnson|Mark]]
```
Note: Only include quotes that reveal philosophy, commitments, or significant insights. Skip casual conversational quotes.4 views