Skills Created: - outline: Full MCP integration with Outline wiki (search, read, create, export, AI queries) - Enhanced basecamp: Added project mapping configuration to PARA structure - Enhanced daily-routines: Integrated work context (Basecamp, Outline) into daily/weekly workflows - Enhanced meeting-notes: Added Teams transcript processing workflow guide PARA Work Structure Created: - 01-projects/work/: 10 project folders with MOCs (placeholders for user customization) - 02-areas/work/: 5 area files (current-job, professional-dev, team-management, company-knowledge, technical-excellence) - 03-resources/work/wiki-mirror/: Ready for Outline exports - 04-archive/work/: Ready for completed work Documentation Added: - skills/outline/SKILL.md: Comprehensive wiki workflows and tool references - skills/outline/references/outline-workflows.md: Detailed usage examples - skills/outline/references/export-patterns.md: Obsidian integration patterns - skills/meeting-notes/references/teams-transcript-workflow.md: Manual DOCX → meeting note workflow - skills/chiron-core/references/work-para-structure.md: Work-specific PARA organization Key Integrations: - Basecamp ↔ Obsidian: Project mapping and task sync - Outline ↔ Obsidian: Wiki search, export decisions, knowledge discovery - Teams → Obsidian: Transcript processing with AI analysis - All integrated into daily/weekly routines Note: n8n workflows skipped per user request. Ready for n8n automation later.
13 KiB
Teams Transcript Processing Workflow
Manual workflow for processing Teams meeting transcripts (.docx) into structured meeting notes with action items.
Table of Contents
- Workflow Overview
- Prerequisites
- Step-by-Step Process
- Templates
- Integration Points
- Best Practices
- Troubleshooting
Workflow Overview
Teams Transcript (.docx)
↓
[Manual: Upload transcript]
↓
[Extract text content]
↓
[AI Analysis: Extract key info]
├─→ Attendees
├─→ Topics discussed
├─→ Decisions made
└─→ Action items
↓
[Create Obsidian meeting note]
├─→ Use meeting-notes template
├─→ Include transcript summary
└─→ Extract action items as tasks
↓
[Optional: Sync to Basecamp]
├─→ Create todos in Basecamp
└─→ Assign to project
Prerequisites
Tools Needed
- Teams (for recording and downloading transcripts)
- Python with
python-docxlibrary (for text extraction) - Obsidian (for storing meeting notes)
- Basecamp MCP (for syncing action items - optional)
Install Dependencies
pip install python-docx
Step-by-Step Process
Step 1: Download Teams Transcript
In Teams:
- Go to meeting recording
- Click "..." (more options)
- Select "Open transcript" or "Download transcript"
- Save as
.docxfile - Note filename (includes date/time)
Filename format: MeetingTitle_YYYY-MM-DD_HHMM.docx
Step 2: Extract Text from DOCX
Python script (/tmp/extract_transcript.py):
#!/usr/bin/env python3
from docx import Document
import sys
import os
def extract_transcript(docx_path):
"""Extract text from Teams transcript DOCX"""
try:
doc = Document(docx_path)
full_text = '\n'.join([para.text for para in doc.paragraphs])
return full_text
except Exception as e:
print(f"Error reading DOCX: {e}")
return None
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python extract_transcript.py <transcript.docx>")
sys.exit(1)
docx_path = sys.argv[1]
text = extract_transcript(docx_path)
if text:
print(text)
# Optionally save to text file
output_path = docx_path.replace('.docx', '.txt')
with open(output_path, 'w') as f:
f.write(text)
print(f"\nExtracted to: {output_path}")
Usage:
python extract_transcript.py "MeetingName_2026-01-28_1400.docx"
Step 3: AI Analysis of Transcript
Prompt for AI (ask your AI assistant):
Analyze this Teams meeting transcript and extract:
1. Attendees:
- Names and roles (if mentioned)
- Who spoke the most
- Any key stakeholders
2. Topics Discussed:
- Main topics (3-5 key items)
- Brief summary of each topic
3. Decisions Made:
- Clear decisions with reasoning
- Format: "Decision: [what] - [reasoning]"
- Include: "Deferred decisions" if applicable
4. Action Items:
- Extract specific, actionable tasks
- Include: owner (@mention), due date (if mentioned), priority (implicit from context)
- Format: "- [ ] Task description #meeting #todo 🔼 👤 @name 📅 YYYY-MM-DD"
5. Next Steps:
- Follow-up meetings needed
- Deliverables expected
- Blockers or dependencies
Format output in markdown ready for Obsidian meeting template.
Step 4: Create Obsidian Meeting Note
Ask AI to:
- Use meeting-notes skill template
- Format extracted content
- Create proper frontmatter
- Add wiki-links to related projects/areas
Template structure (from meeting-notes skill):
---
title: "[Meeting Title]"
platform: teams
date: YYYY-MM-DD
time: HH:mm-HH:mm
duration: "X minutes"
attendees: [names]
transcript_file: "MeetingName_2026-01-28.docx"
project: [[Project Name]]
tags: [meeting, work, teams]
---
## Attendees
- [Name] - [Role]
- [Name] - [Role]
## Topics Discussed
### [Topic 1]
- [Summary]
### [Topic 2]
- [Summary]
## Decisions Made
1. [Decision] - [Reasoning]
2. [Decision] - [Reasoning]
## Action Items
- [ ] [Action description] #meeting #todo 🔼 👤 @name 📅 YYYY-MM-DD
- [ ] [Action description] #meeting #todo 🔽 👤 @self 📅 YYYY-MM-DD
## Next Steps
- [ ] Schedule follow-up meeting
- [ ] Share notes with team
Step 5: Save to Obsidian
Location:
~/CODEX/01-projects/work/[project]/meetings/[topic]-YYYYMMDD.md
Ask AI to:
- Determine project from context
- Create proper folder structure
- Use kebab-case for filename
- Add to project MOC
Step 6: Sync Action Items to Basecamp (Optional)
When to sync:
- Meeting was about a specific project
- Action items have clear owners
- Project uses Basecamp for task tracking
Ask user: "Sync these action items to Basecamp?"
If yes:
- Delegate to basecamp skill
- Ask: "Which Basecamp project?"
- Create todos with:
- Proper due dates
- Assignees (from @mentions)
- Linked to project
- Confirm: "Created X todos in [project]"
Templates
AI Analysis Prompt Template
Copy this prompt for consistent results:
You are a meeting analysis assistant. Analyze this Teams meeting transcript and extract:
1. Attendees:
- List all participants mentioned
- Identify speakers (who talked most)
- Note any key stakeholders (managers, decision-makers)
2. Topics Discussed (3-5 main topics):
For each topic:
- Title (2-4 words)
- Summary (2-3 sentences)
- Time spent on topic (if discernible from transcript)
3. Decisions Made:
For each decision:
- Decision statement (what was decided)
- Reasoning (brief justification)
- Consensus level (unanimous / majority / proposed)
- Format as checklist item: `- [ ] Decision: [text]`
4. Action Items:
For each action item:
- Description (specific, actionable verb)
- Owner (@mention if clear, otherwise "Unassigned")
- Due date (YYYY-MM-DD if mentioned, else "No deadline")
- Priority (implicit: ⏫ urgent, 🔼 high, 🔽 low)
- Format: `- [ ] Task #meeting #todo [priority] 👤 @owner 📅 date`
5. Next Steps:
- Follow-up meetings needed?
- Deliverables expected?
- Blockers or dependencies?
**Output Format**: Markdown ready for Obsidian meeting note template.
**Meeting Type**: [standup / 1:1 / workshop / decision]
Transcript:
[PASTE TEAMS TRANSCRIPT HERE]
Meeting Note Template (Enhanced for Teams)
---
title: "[Meeting Title]"
platform: teams
date: YYYY-MM-DD
time: HH:mm-HH:mm
duration: "X minutes"
attendees: [Name 1 - Role, Name 2 - Role, ...]
transcript_file: "transcripts/[Topic]-YYYYMMDD.docx"
recording_link: "[Teams recording URL if available]"
project: [[Project Name]]
tags: [meeting, work, teams, transcript]
---
## Attendees
| Name | Role | Company |
|-------|-------|---------|
| [Name] | [Role] | [Company] |
| [Name] | [Role] | [Company] |
## Agenda
[If agenda was known in advance]
1. [Item 1]
2. [Item 2]
3. [Item 3]
## Transcript Summary
[AI-generated summary of transcript]
## Topics Discussed
### [Topic 1]
- [Summary points]
- [Time spent: X minutes]
### [Topic 2]
- [Summary points]
- [Time spent: X minutes]
## Decisions Made
1. ✅ [Decision 1]
- **Reasoning**: [Why this decision]
- **Owner**: [Who made decision]
- **Due**: [If applicable]
2. ✅ [Decision 2]
- **Reasoning**: [Why this decision]
- **Owner**: [Who made decision]
### Deferred Decisions
- [ ] [Decision deferred] - [Why deferred, revisit date]
## Action Items
- [ ] [Task 1] #meeting #todo 🔼 👤 @owner 📅 YYYY-MM-DD
- [ ] [Task 2] #meeting #todo ⏫ 👤 @owner 📅 YYYY-MM-DD
- [ ] [Task 3] #meeting #todo 🔽 👤 self 📅 YYYY-MM-DD
### Action Item Summary
| Task | Owner | Due | Priority |
|-------|--------|------|----------|
| [Task 1] | @owner | YYYY-MM-DD | ⏫ |
| [Task 2] | @owner | YYYY-MM-DD | 🔼 |
| [Task 3] | @self | N/A | 🔽 |
## Next Steps
- [ ] Schedule follow-up meeting: [Topic] - [Proposed date]
- [ ] Share notes with: [attendee list]
- [ ] Update project status in Basecamp
## Notes
[Additional notes, observations, or clarifications]
## Links
- 📹 Teams Recording: [URL if available]
- 📄 Transcript: [[transcript_filename]]
- 🗄 Project: [[Project Name]]
- 📄 Related Docs: [[Related Outline Doc]](outline://document/abc123)
Integration Points
With meeting-notes Skill
Flow:
User: "Process transcript: [file.docx]"
1. Extract text from DOCX
2. Ask AI to analyze transcript
3. AI extracts: attendees, topics, decisions, action items
4. Create meeting note using meeting-notes skill
5. Ask: "Sync action items to Basecamp?"
With basecamp Skill
Flow (optional):
User: "Yes, sync to Basecamp"
1. Ask: "Which Basecamp project?"
2. List available projects
3. For each action item:
- create_todo(project_id, todolist_id, content, due_on, assignee_ids)
4. Confirm: "Created X todos in [project]"
With obsidian-management Skill
Flow:
1. Create meeting note at: 01-projects/work/[project]/meetings/[topic]-YYYYMMDD.md
2. Update project MOC with link to meeting:
- Add to "Meetings" section in project _index.md
3. If decision made, create in decisions/ folder
4. If applicable, export decision to Outline wiki
Best Practices
During Meeting
- Use Teams recording: Get transcript automatically
- Name attendees: Add their roles to transcript
- Speak clearly: Improves transcript accuracy
- Agenda first: Helps AI structure analysis
Processing Transcripts
- Process quickly: Within 24 hours while fresh
- Clean up text: Remove filler words (um, ah, like)
- Be specific: Action items must be actionable, not vague
- Assign owners: Every action item needs @mention
- Set due dates: Even if approximate (next week, by next meeting)
Storage
- Consistent location: All work meetings in project/meetings/
- Link everything: Link to project, related docs, areas
- Tag properly: #meeting, #work, #teams, #transcript
- Archive old: Move completed project meetings to archive/
Basecamp Sync
- Sync important meetings: Not every meeting needs sync
- Use project context: Sync to relevant project
- Verify in Basecamp: Check todos were created correctly
- Follow up: Check completion status regularly
Troubleshooting
Transcript Won't Open
Problem: DOCX file corrupted or wrong format
Solution:
- Re-download from Teams
- Try opening in Word first to verify
- Use alternative: Copy-paste text manually
AI Misses Action Items
Problem: Transcript analysis misses clear action items
Solution:
- Manually add missed items to meeting note
- Reprompt AI with specific context: "Review transcript again, focus on action items"
- Check transcript: Was the audio clear?
Wrong Project Assigned
Problem: Meeting note created in wrong project folder
Solution:
- Move file to correct location
- Update links in project MOCs
- Use consistent naming conventions
Basecamp Sync Fails
Problem: Todos not created in Basecamp
Solution:
- Check Basecamp MCP is connected
- Verify project ID is correct
- Check assignee IDs are valid
- Check todo list exists in project
- Retry with fewer items
Example End-to-End
Input
Teams transcript: api-design-review_2026-01-28_1400.docx
AI Output
## Attendees
- Alice (Product Owner)
- Bob (Lead Developer)
- Charlie (Tech Lead)
- Sarah (UX Designer)
## Topics Discussed
1. API Authentication Design (20 min)
2. Rate Limiting Strategy (15 min)
3. Error Handling (10 min)
## Decisions Made
1. Use OAuth2 with refresh tokens - Industry standard, better security
2. Implement 1000 req/min rate limit - Based on load tests
## Action Items
- [ ] Create OAuth2 implementation guide #meeting #todo 🔼 👤 @alice 📅 2026-02-05
- [ ] Document rate limiting policy #meeting #todo 🔼 👤 @bob 📅 2026-02-10
- [ ] Update error handling documentation #meeting #todo 🔽 👤 @sarah 📅 2026-02-15
Obsidian Note Created
File: ~/CODEX/01-projects/work/api-integration-platform/meetings/api-design-review-20260128.md
Basecamp Sync
Project: API Integration Platform Todos created: 3
- OAuth2 guide (assigned to Alice, due 2026-02-05)
- Rate limiting (assigned to Bob, due 2026-02-10)
- Error handling (assigned to Sarah, due 2026-02-15)
Automation (Future n8n Implementation)
When n8n is added, automate:
- Watch transcript folder: Auto-trigger on new .docx files
- AI auto-analysis: Use AI API to extract meeting info
- Auto-create meeting notes: Save to Obsidian automatically
- Auto-sync to Basecamp: Create todos for action items
- Send notifications: "Meeting processed, X action items created"
Workflow diagram:
Teams transcript folder
↓ (n8n: Watch folder)
[Trigger: new .docx]
↓
[Extract text]
↓
[AI Analysis]
↓
[Create meeting note]
↓
[Sync to Basecamp] (conditional)
↓
[Send ntfy notification]
Quick Reference
| Action | Tool/Script |
|---|---|
| Download transcript | Teams UI |
| Extract text | python extract_transcript.py |
| Analyze transcript | AI assistant prompt |
| Create meeting note | meeting-notes skill |
| Sync to Basecamp | basecamp skill |
| Store in Obsidian | obsidian-management skill |
| Export decision | outline skill (optional) |