Meeting orchestrator — creates structured meeting notes from any source: inline transcription text, VTT files, inbox transcription notes, or triage proposals. Use when creating meeting notes or when /meeting is invoked.
From para-obsidiannpx claudepluginhub nathanvale/side-quest-marketplace-old --plugin para-obsidianThis skill is limited to using the following tools:
references/analysis-and-creation.mdreferences/path-workflows.mdDesigns and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Creates structured meeting notes from any source: inline text, VTT files, inbox transcription notes, or triage proposals. Detects the input type and normalizes all paths to a common creation pipeline.
Input Detection
├── Path A: Inline text → create transcription note → analyze → confirm → create meeting
├── Path B: VTT file → convert VTT to note → analyze → confirm → create meeting
├── Path C: Inbox .md file → validate type → analyze → confirm → create meeting
├── Path D: Proposal object → skip analysis → create meeting (triage handles confirm)
│
▼ All paths converge:
Create meeting in 04 Archives/Meetings/
Link + archive transcription to 04 Archives/Transcriptions/
Report result
Examine the input and determine which path to take. First match wins:
| Signal | Path | Next Step |
|---|---|---|
JSON object with proposed_template: "meeting" | D (Proposal) | Jump to Phase 4 |
File path ending .vtt | B (VTT) | See path-workflows.md — Path B |
File path ending .md or bare note name | C (Inbox note) | Phase 1C below |
| Everything else (free text, pasted content) | A (Inline text) | See path-workflows.md — Path A |
| No input at all | Prompt | Ask what meeting to create |
No-input behavior: Use AskUserQuestion — "What meeting should I create? Paste transcription text, provide a file path (.vtt or .md), or describe the meeting."
Each path produces the same output: a transcription note path in the vault that can be read and analyzed.
Raw text (pasted transcription, clipboard content, natural language description).
Follow path-workflows.md — Path A to create a transcription note via the CLI, then continue to Phase 2.
A .vtt subtitle/caption file.
Follow path-workflows.md — Path B to convert to a transcription note via the CLI, then continue to Phase 2.
A .md file or bare note name (expanded to 00 Inbox/<name>.md if no path prefix).
type: transcription via para_fm_get:
para_fm_get({ file: "<path>", response_format: "json" })
type is not transcription, error:
"File <path> has type '<actual>' — expected 'transcription'.
Use /para-obsidian:create-from-context for non-transcription sources."
A structured proposal from analyze-voice (via triage). Already contains all extracted content.
Skip Phases 1-3 entirely. Jump to Phase 4 (Create Meeting Note).
Gather everything needed for analysis. Make these calls in parallel:
para_list_areas({ response_format: "json" })
para_list_projects({ response_format: "json" })
para_stakeholder_list({ response_format: "json" }) // for speaker matching
para_template_fields({ template: "meeting", response_format: "json" })
para_read({ file: "<transcription_path>", response_format: "json" })
From para_template_fields, extract:
validArgs — which args to pass (e.g., meeting_date, meeting_type, transcription, summary, attendees, area, project)creation_meta.sections — body section headings (e.g., "Attendees", "Notes", "Decisions Made", "Action Items", "Follow-up")Destination override: Ignore creation_meta.dest from the template. Hardcode destination as 04 Archives/Meetings. The template metadata says 03 Resources/Meetings which is wrong for this workflow.
Use the transcription content and loaded context to extract structured meeting data.
See analysis-and-creation.md for:
Present the proposal via AskUserQuestion:
Meeting: "<proposed_title>"
Type: <meeting_type> | Date: <meeting_date>
Attendees: <attendee list>
Area: <area> | Project: <project or "none">
Extracted:
- <N> meeting notes
- <N> decisions
- <N> action items
- <N> follow-up items
Options:
All paths converge here. See the "Creation Pipeline" section in analysis-and-creation.md for the full create → link → archive → report pipeline.
Summary of what happens:
para_create with template: "meeting", dest: "04 Archives/Meetings", body sections via content parameterpara_fm_set on transcription to add bi-directional meeting linkpara_rename to archive transcription to 04 Archives/Transcriptions/para_commit to save all changesPath D exception: Skip steps 2-4 (archive + commit). Triage owns those operations.
Return a SKILL_RESULT for the calling skill or command to parse:
SKILL_RESULT:{
"success": true,
"created": "04 Archives/Meetings/Sprint 42 Planning Session.md",
"transcription_archived": "04 Archives/Transcriptions/🎤 2026-02-02 3-45pm.md",
"meeting_type": "planning",
"sections_populated": ["Notes", "Decisions Made", "Action Items", "Follow-up"]
}
On error:
SKILL_RESULT:{
"success": false,
"error": "<description>",
"phase": "<which phase failed>",
"recovery": "<what the user can do>"
}
| Phase | Failure | Recovery |
|---|---|---|
| 0 | Can't determine input type | Ask user to clarify |
| 1A | CLI voice convert fails | Report CLI error, suggest checking input format |
| 1B | VTT file not found or invalid | Report path, suggest checking file exists |
| 1C | File not found or wrong type | Report actual type, suggest correct skill |
| 2 | Template fields unavailable | Report error, suggest checking vault config |
| 3 | No speakers/content found | Create with minimal data, warn user |
| 4 | para_create fails | Do NOT archive transcription. Report error for retry |
| 4 | para_fm_set fails | Meeting created but link missing. Report partial success |
| 5 | para_rename (archive) fails | Meeting created, link set, but transcription not archived. Report partial |
Critical rule: If meeting creation (Phase 4 step 1) fails, do NOT proceed to linking or archiving. Transcription stays in place for retry.
See the "Meeting Types" section in references/analysis-and-creation.md for valid meeting_type enum values and inference signals.