| name | weekly-demo-video |
| license | MIT |
| metadata | {"version":"1.0"} |
| description | **WORKFLOW SKILL** — Generate narrated weekly demo videos for azd features. Pulls latest commits, identifies demo-worthy features, researches PRs, and produces MP4 videos with dark-themed slides and neural TTS narration.
INVOKES: Python, Pillow, ffmpeg, edge-tts, explore sub-agents, ask_user.
USE FOR: weekly demo, generate demo video, demo video, sprint demo, create demo, make demo video, demo for LT, weekly demo video, azd demo. DO NOT USE FOR: general video editing, non-azd demos, slide decks without video, weekly reports (use weekly-report). |
Weekly Demo Video Generator
Generates narrated MP4 demo videos for azd features using Python + Pillow + edge-tts + ffmpeg.
Prerequisites
Ensure these tools are installed:
| Tool | Purpose |
|---|
| Python 3 | Script execution |
| Pillow | Slide generation (pip install Pillow) |
| ffmpeg | Video/audio stitch |
| edge-tts | Neural TTS (pip install edge-tts) |
Verify prerequisites (bash):
python3 -c "from PIL import Image; print('ok')"
ffmpeg -version
edge-tts --list-voices > /dev/null
Execution Flow
Step 1: Pull latest
cd <repo-root>
git checkout main && git pull --rebase
Step 2: Find commits for the week
Replace the dates below with the actual week range:
git log --oneline --since="YYYY-MM-DD" --until="YYYY-MM-DD" --no-merges
Use the current week window (7 days). For sprint demos, use a 2-week window.
Step 3: Identify demo-worthy features
Group related commits. Skip: typos, CI fixes, test-only, deps bumps, docs-only.
Look for: new commands, UX improvements, perf gains, new flags, agent features.
Use explore agents in parallel to research each feature group (give them specific commit SHAs).
Step 4: Confirm with user
Present a table of proposed demos. Ask user to confirm or adjust before generating.
Step 5: Generate videos
Follow the conventions strictly:
{{ references/CONVENTIONS.md }}
Step 6: Report
List generated videos with filenames and durations. Offer short descriptions for docs.
Error Handling
- edge-tts failure: Retry once. If it fails again, log the error and skip that slide's audio — notify the user.
- ffmpeg failure: Check the ffmpeg error output. Common issues: missing codec, invalid image path. Print the error and stop — don't produce a partial video.
- Font not found: Falls back to
ImageFont.load_default() automatically. Warn the user that slides may look different.
Output
All videos go to: <repo-root>/demo-video/
Note: demo-video/ is listed in .gitignore to prevent accidental commits.
Demo Naming
- Weekly demos:
azd_weekly_demo_{date}_{name}.mp4 (e.g. azd_weekly_demo_may_07_exegraph.mp4)
- Sprint demos:
azd_sprint_demo_{date}_{name}.mp4 (e.g. azd_sprint_demo_apr_28_agent_sessions.mp4)