Meeting Minutes Processor
Convert meeting audio → structured Markdown summary → (optional) Jira issues.
Workflow
Step 1: Transcribe Audio
If the user provides an audio file, run transcribe.py. It auto-detects the best available backend (local first):
# Auto-detect backend, Chinese language (default)
python3 scripts/transcribe.py <audio_file> --output transcript.txt
# Force a specific backend
python3 scripts/transcribe.py <audio_file> --backend faster-whisper --output transcript.txt
python3 scripts/transcribe.py <audio_file> --backend openai-whisper --output transcript.txt
python3 scripts/transcribe.py <audio_file> --backend openai-api --output transcript.txt
# Other options
python3 scripts/transcribe.py <audio_file> --model large-v3 --language auto --device cpuBefore running, always ask the user which model size to use and explain the trade-off:
请选择转录模型(影响速度和准确率): -small(默认推荐)— 快速,准确率良好,适合大多数会议 -medium— 较慢(约 2-5x),准确率更高,适合口音复杂或专业术语多的会议 -large-v3— 最慢,最高准确率 如不确定,建议先用small快速出结果,不满意再换medium。
Default to small unless the user explicitly requests a larger model.
Backend priority (auto-detect order):
faster-whisper— fastest local, recommended (pip install faster-whisper)openai-whisper— original local model (pip install openai-whisper)openai-api— cloud fallback (requiresOPENAI_API_KEY)
If no backend is installed: Tell the user and suggest:
pip install faster-whisper # recommended (fast, low memory)
pip install openai-whisper # alternative
# or set OPENAI_API_KEY to use cloudModel size guide (for local backends):
| Model | VRAM/RAM | Speed | Quality |
|---|---|---|---|
| tiny | ~1GB | fastest | basic |
| base | ~1GB | fast | ok |
| small | ~2GB | good | good |
| medium | ~5GB | slower | great (default) |
| large-v3 | ~10GB | slowest | best |
Large files (>25MB, only affects openai-api backend): Split first:
ffmpeg -i input.mp3 -f segment -segment_time 600 -c copy chunk_%03d.mp3If the user provides a text transcript directly, skip Step 1.
Step 2: Analyze & Summarize
Read the transcript carefully and extract:
- Requirements (需求): Features, product changes, system behaviors discussed. Each gets: title, description, priority (High/Medium/Low), owner, due date, acceptance criteria, tags.
- Action Items (待办): Specific tasks assigned to people. Each gets: task description, owner, due date, priority.
- Key Decisions (关键决策): What was decided and why.
- Open Questions (待确认事项): Unresolved items that need follow-up.
Priority inference: See references/output-schema.md for Chinese language priority signals.
Step 3: Output Structured Summary
Output format: See references/output-schema.md for the full Markdown template and JSON schema.
Always output:
- Markdown to the user (in chat or as a
.mdfile) - JSON (
summary.json) when Jira push is requested
Use the exact Markdown template from references/output-schema.md. Number requirements REQ-001, REQ-002… and action items ACT-001, ACT-002…
Step 4: Push to Jira (Optional)
If user wants to push to Jira, first save the JSON output:
# Preview first
python3 scripts/push_to_jira.py summary.json --project <KEY> --dry-run
# Confirm with user, then push
python3 scripts/push_to_jira.py summary.json --project <KEY>For setup instructions and troubleshooting: see references/jira-setup.md
Required env vars: JIRA_URL, JIRA_EMAIL, JIRA_API_TOKEN
Key Rules
- If speaker names are mentioned in the transcript, use them for owner fields
- If owner_email is unknown, leave it blank (don't guess)
- If a due date is not mentioned, use
"TBD"— never fabricate dates - Acceptance criteria should be testable and specific
- Requirements vs Action Items: requirements describe *what the system should do*; action items are *tasks for a person to complete*
- Mark anything uncertain with *(待确认)*