Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add TheSimpleApp/agent-skills --skill "meeting-to-tasks"
Install specific skill from multi-skill repository
# Description
Extracts actionable tasks, bug reports, and feature requests from meeting recordings. Supports Fireflies.ai, Fathom, Loom, and public meeting URLs. Use after client calls to automatically create sprint tasks.
# SKILL.md
name: meeting-to-tasks
description: Extracts actionable tasks, bug reports, and feature requests from meeting recordings. Supports Fireflies.ai, Fathom, Loom, and public meeting URLs. Use after client calls to automatically create sprint tasks.
license: MIT
metadata:
author: thesimpleapp
version: "1.0"
Meeting to Tasks
Transform client meeting recordings into structured, actionable development tasks.
Smart URL Detection
When a URL is pasted, automatically detect and route:
URL Pasted
↓
┌─────────────────────────────────────────────────┐
│ DETECT SOURCE │
│ │
│ fireflies.ai/view/* → Try Fireflies API │
│ fathom.video/* → Use Firecrawl (public) │
│ loom.com/* → Use Firecrawl (public) │
│ Other → Use Firecrawl (public) │
└─────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────┐
│ SMART FALLBACK │
│ │
│ 1. Try Rube API (if available + connected) │
│ 2. If fails → Fallback to Firecrawl scraping │
│ 3. If Rube not installed → Notify user │
└─────────────────────────────────────────────────┘
Input Methods
| Source | Primary Method | Fallback |
|---|---|---|
| Fireflies.ai | Rube API (richer data) | Firecrawl scrape |
| Fathom | Firecrawl scrape | - |
| Loom | Firecrawl scrape | - |
| Other URLs | Firecrawl scrape | - |
| Pasted transcript | Direct parse | - |
Pre-Flight Check
Before processing, verify available tools:
CHECK RUBE AVAILABILITY:
1. Try: RUBE_SEARCH_TOOLS with simple query
2. If success → Rube is available
3. If error → Rube not installed or not configured
CHECK TOOLKIT CONNECTIONS (if Rube available):
1. RUBE_SEARCH_TOOLS returns toolkit_connection_statuses
2. Check fireflies: has_active_connection
3. If not connected → Offer to connect
NOTIFY USER:
- "Rube available, Fireflies connected ✓"
- "Rube available, Fireflies needs connection - run auth?"
- "Rube not available - using Firecrawl for all URLs"
Quick Start
Option 1: Fireflies.ai (API - Recommended)
1. Connect Fireflies via Rube:
RUBE_MANAGE_CONNECTIONS toolkit="fireflies"
2. List recent meetings:
FIREFLIES_GET_TRANSCRIPTS limit=10
3. Get full transcript:
FIREFLIES_GET_TRANSCRIPT_BY_ID id="<transcript_id>"
4. Or ask natural language questions:
FIREFLIES_CREATE_ASK_FRED_THREAD
query="What action items were discussed?"
Option 2: Fathom (API)
1. Connect Fathom via Rube:
RUBE_MANAGE_CONNECTIONS toolkit="fathom"
2. List recent meetings:
FATHOM_LIST_MEETINGS
3. Get summary + transcript:
FATHOM_GET_RECORDING_SUMMARY recording_id=<id>
FATHOM_GET_RECORDING_TRANSCRIPT recording_id=<id>
Option 3: Public URL (Scraping)
User pastes: https://app.fireflies.ai/view/Meeting-Name/...
1. Scrape the page:
FIRECRAWL_SCRAPE url="<meeting_url>" formats=["markdown"]
2. Parse the extracted content for transcript
Option 4: Pasted Transcript
User pastes raw transcript text directly into chat.
No tools needed - parse immediately.
Extraction Framework
What to Extract
## From Meeting Content
### 1. Action Items (Explicit)
- "Can you add a button for..."
- "We need to fix the..."
- "Let's implement..."
- "Action item: ..."
### 2. Bug Reports (Problems Mentioned)
- "This doesn't work when..."
- "We're seeing an error..."
- "It's broken on..."
- "Users are complaining about..."
### 3. Feature Requests (Wishes/Wants)
- "It would be great if..."
- "Can we have..."
- "What if we could..."
- "Users are asking for..."
### 4. Decisions Made
- "Let's go with..."
- "We decided to..."
- "The approach will be..."
### 5. Questions to Follow Up
- "Can you look into..."
- "Let me know about..."
- "Need to research..."
### 6. Visual References (If Video Available)
- Screenshots of screens shared
- UI elements pointed at
- Error messages shown
Priority Signals
HIGH PRIORITY:
- "Urgent", "ASAP", "blocking", "critical"
- Client frustration in voice/text
- Revenue/deadline mentions
MEDIUM PRIORITY:
- "Soon", "next sprint", "when you can"
- Nice-to-have improvements
- Quality of life features
LOW PRIORITY:
- "Eventually", "someday", "if time permits"
- Future considerations
- Ideas for later
Output Format
MEETING_NOTES.md
# Meeting Notes: [Meeting Title]
**Date:** [Date]
**Attendees:** [Names]
**Duration:** [Length]
## Summary
[2-3 sentence overview of what was discussed]
## Key Decisions
- Decision 1
- Decision 2
## Action Items
### High Priority
- [ ] **[BUG]** Fix login timeout on mobile - Client experiencing this daily
- [ ] **[FEATURE]** Add export to CSV button on reports page
### Medium Priority
- [ ] **[ENHANCEMENT]** Improve loading speed on dashboard
- [ ] **[FEATURE]** Add dark mode toggle
### Low Priority
- [ ] **[IDEA]** Consider integration with Slack
## Visual References
- [Screenshot 1]: Dashboard showing the issue at 12:34
- [Screenshot 2]: Mobile view with layout problem
## Follow-Up Questions
- [ ] Research API rate limits for export feature
- [ ] Check if dark mode affects charts
## Raw Transcript
<details>
<summary>Click to expand full transcript</summary>
[Full transcript here]
</details>
SPRINT_TASKS.md (For Sprint Planning)
# Tasks from [Meeting Name]
## Batch 1 (Can Start Immediately)
### Task: Fix login timeout on mobile
- **Type:** Bug Fix
- **Priority:** High
- **Context:** Client experiencing daily. See transcript 12:34-13:02.
- **Acceptance Criteria:**
- [ ] Session persists for 24 hours on mobile
- [ ] No timeout during active use
- [ ] Test on iOS and Android
### Task: Add CSV export to reports
- **Type:** Feature
- **Priority:** High
- **Context:** Requested for monthly reports. See transcript 18:45-19:30.
- **Acceptance Criteria:**
- [ ] Export button on reports page
- [ ] Includes all visible columns
- [ ] Handles large datasets
## Batch 2 (After Batch 1)
[Additional tasks...]
## Blocked/Needs Clarification
### Task: Slack integration
- **Blocked by:** Need to confirm which Slack features needed
- **Follow-up:** Schedule call to clarify scope
Integration with Other Skills
/meeting-to-tasks → Extract tasks from meeting
↓
/sprint-planning → Organize into batches
↓
/orchestrator → Spawn agents for parallel work
↓
/code-review → Quality gate before ship
Visual Context Capture
When Video is Available
If the meeting URL includes video playback:
## Approach
1. Navigate to video player
2. Identify key moments from transcript:
- When specific features are discussed
- When bugs are demonstrated
- When screens are shared
3. Capture screenshots at those moments:
- Use browser automation
- Save to project/docs/meeting-screenshots/
4. Reference in tasks:
"See screenshot: meeting-2024-01-15/dashboard-bug.png"
Screenshot Naming Convention
{meeting-date}/
├── {timestamp}-{description}.png
├── 1234-dashboard-loading-issue.png
├── 1845-export-button-location.png
└── 2030-mobile-layout-problem.png
Workflow Examples
Example 1: After Client Call (Fireflies URL)
User: "Just finished call with Acme Corp. Here's the Fireflies link:
https://app.fireflies.ai/view/Acme-Weekly-Sync/..."
Agent:
1. Extract transcript ID from URL
2. Fetch full transcript via API
3. Parse for action items, bugs, features
4. Generate MEETING_NOTES.md
5. Generate SPRINT_TASKS.md
6. Offer to run /sprint-planning
Example 2: Pasted Transcript
User: "Here's the transcript from today's call:
[00:00] John: Welcome everyone...
[05:23] Client: The export feature isn't working...
[12:45] Client: Can we add a dark mode?
..."
Agent:
1. Parse transcript directly
2. Identify speakers (Client vs Team)
3. Extract action items with timestamps
4. Prioritize based on client emphasis
5. Generate task files
Example 3: Fathom Recording
User: "Check my Fathom for the call with BuildCo from yesterday"
Agent:
1. FATHOM_LIST_MEETINGS (filter last 2 days)
2. Find "BuildCo" meeting
3. FATHOM_GET_RECORDING_SUMMARY → Quick overview
4. FATHOM_GET_RECORDING_TRANSCRIPT → Full details
5. Generate task files
Rube Connection Setup
First-Time Setup
# Connect Fireflies (one-time)
RUBE_MANAGE_CONNECTIONS toolkit="fireflies"
→ Opens OAuth flow → Authorize → Connected
# Connect Fathom (one-time)
RUBE_MANAGE_CONNECTIONS toolkit="fathom"
→ Opens OAuth flow → Authorize → Connected
Check Connection Status
# Via RUBE_SEARCH_TOOLS response
toolkit_connection_statuses shows:
- fireflies: ACTIVE or needs connection
- fathom: ACTIVE or needs connection
- firecrawl: ACTIVE (should already be connected)
Advanced: Meeting Patterns
Client Communication Patterns
STRONG SIGNAL (likely task):
- "We need..."
- "Can you..."
- "Please add..."
- "This is breaking..."
- "Users are complaining..."
MEDIUM SIGNAL (potential task):
- "It would be nice..."
- "What if..."
- "Have you thought about..."
WEAK SIGNAL (note for context):
- "I was wondering..."
- "Someday we might..."
- "Just thinking out loud..."
Speaker Identification
CLIENT INDICATORS:
- Questions about features
- Reports of issues
- Requests for changes
- Business context
TEAM INDICATORS:
- Technical explanations
- Timeline discussions
- Clarifying questions
- Commitment statements
File Outputs
| File | Purpose | Location |
|---|---|---|
| MEETING_NOTES.md | Full meeting summary | docs/meetings/ |
| SPRINT_TASKS.md | Formatted for sprint planning | docs/sprints/ |
| Screenshots | Visual references | docs/meeting-screenshots/ |
Post-Processing
After generating tasks:
1. Review SPRINT_TASKS.md
2. Adjust priorities if needed
3. Run /sprint-planning to organize batches
4. Use /orchestrator for parallel execution
Tips
For Better Extraction
- Ask clarifying questions if transcript is ambiguous
- Flag items that need follow-up before implementation
- Cross-reference with existing backlog to avoid duplicates
- Note client's emotional emphasis (frustration = higher priority)
For Visual Context
- Request screen share timestamps when possible
- Ask client to circle/highlight problem areas
- Save reference screenshots to project docs
For Follow-Up
- Create a FOLLOW_UP.md for items needing clarification
- Schedule follow-up call if major ambiguity
- Document assumptions made for each task
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.