Meeting autopilot
Skill cacheforge-ai/cacheforge-skills/skills/meeting-autopilot
⚡ SOTA agent skills for OpenClaw — observability, security, code quality, incident response, and more. Built by Anvil AI.
npx -y skills add cacheforge-ai/cacheforge-skills --skill meeting-autopilotAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 10 stars10 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Turn meeting transcripts into operational outputs — action items, decisions, follow-up email drafts, and ticket drafts. Not a summarizer. An operator. Accepts VTT, SRT, or plain text. Multi-pass LLM extraction.
SKILL.md
5.3 KB, as published. Nobody here has run it
✈️ Meeting Autopilot
Turn meeting transcripts into structured operational outputs — NOT just summaries.
Activation
This skill activates when the user mentions:
- "meeting transcript", "meeting notes", "meeting autopilot"
- "action items from meeting", "meeting follow-up"
- "process this transcript", "analyze this meeting"
- "extract decisions from meeting", "meeting email draft"
- Uploading or pasting a VTT, SRT, or text transcript
Permissions
permissions:
exec: true # Run extraction scripts
read: true # Read transcript files
write: true # Save history and reports
network: true # LLM API calls (Anthropic or OpenAI)
Requirements
- bash, jq, python3, curl (typically pre-installed)
- ANTHROPIC_API_KEY or OPENAI_API_KEY environment variable
Agent Workflow
Step 1: Get the Transcript
Ask the user for their meeting transcript. Accept any of:
- A file path to a VTT, SRT, or TXT file
- Pasted text directly in the conversation
- A file upload
The skill auto-detects the format (VTT, SRT, or plain text).
Important: This skill does NOT do audio transcription. If the user has an audio/video file, suggest they use:
- Zoom/Google Meet/Teams built-in transcription
- Otter.ai or Fireflies.ai for recording + transcription
whisper.cppfor local transcription
Step 2: Get Optional Context
Ask for (but don't require):
- Meeting title — helps with email subject lines and report headers
- If not provided, the skill derives it from the filename or uses "Meeting [date]"
Step 3: Run the Autopilot
Save the transcript to a temporary file if pasted, then run:
bash "$SKILL_DIR/scripts/meeting-autopilot.sh" <transcript_file> --title "Meeting Title"
Or from stdin:
echo "$TRANSCRIPT" | bash "$SKILL_DIR/scripts/meeting-autopilot.sh" - --title "Meeting Title"
The script handles all three passes automatically:
- Parse — normalize the transcript format
- Extract — pull out decisions, action items, questions via LLM
- Generate — create email drafts, ticket drafts, beautiful report
Step 4: Present the Report
The script outputs a complete Markdown report to stdout. Present it directly — the formatting is designed to look great in Slack, email, or any Markdown renderer.
The report includes:
- 📊 Overview table (counts by category)
- ✅ Decisions with rationale
- 📋 Action items table (owner, deadline, status)
- ❓ Open questions
- 🅿️ Parking lot items
- 📧 Follow-up email draft(s) — ready to send
- 🎫 Ticket/issue drafts — ready to file
Discord v2 Delivery Mode (OpenClaw v2026.2.14+)
When the conversation is happening in a Discord channel:
- Send a compact first summary (decision count, action-item count, top owners), then ask if the user wants full report sections.
- Keep the first response under ~1200 characters and avoid long tables in the first message.
- If Discord components are available, include quick actions:
Show Action ItemsShow Follow-Up Email DraftShow Ticket Drafts
- If components are not available, provide the same follow-ups as a numbered list.
- Prefer short follow-up chunks (<=15 lines per message) for long reports.
Step 5: Offer Next Steps
After presenting the report, offer:
- "Want me to refine any of the email drafts?"
- "Should I adjust any action item assignments?"
- "Want to save this report to a file?"
- "I can also process another meeting — transcripts from different meetings build up a tracking history."
Error Handling
| Situation | Behavior |
|---|---|
| No API key set | Print branded error with setup instructions |
| Transcript too short (<20 chars) | Suggest pasting more content or checking file path |
| Empty LLM response | Report API issue, suggest checking key/network |
| No items extracted | Report "meeting may not have had actionable content" — still show key points if any |
| Unsupported file format | Suggest --format txt to force plain text parsing |
Notes for the Agent
- The report is the star. Present it in full. Don't summarize the summary.
- Follow-up emails are the WOW moment. Highlight them — they're ready to copy and send.
- Be proactive: After the report, suggest specific improvements based on what was found.
- Cross-meeting tracking: Items are automatically saved to
~/.meeting-autopilot/history/. Mention this — it's a preview of the v1.1 feature that tracks commitments across meetings. - If the transcript has no speaker labels, mention that adding "Speaker: text" format improves attribution accuracy.
References
scripts/meeting-autopilot.sh— Main orchestrator (the only entry point you need)scripts/parse-transcript.sh— Transcript parser (VTT/SRT/TXT → JSONL)scripts/extract-items.sh— LLM extraction + classificationscripts/generate-outputs.sh— Operational output generation + report formatting