azure/weekly-demo-video
>- **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. make demo video, demo for LT, weekly demo video, azd demo. weekly reports (use weekly-report).
npx skills add https://github.com/Azure/azure-dev --skill weekly-demo-video
Generates narrated MP4 demo videos for azd features using Python + Pillow + edge-tts + ffmpeg.
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
cd <repo-root> # the azure-dev repository root
git checkout main && git pull --rebase
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.
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).
Present a table of proposed demos. Ask user to confirm or adjust before generating.
Follow the conventions strictly:
{{ references/CONVENTIONS.md }}
List generated videos with filenames and durations. Offer short descriptions for docs.
ImageFont.load_default() automatically. Warn the user that slides may look different.All videos go to: <repo-root>/demo-video/
> Note: demo-video/ is listed in .gitignore to prevent accidental commits.
azd_weekly_demo_{date}_{name}.mp4 (e.g. azd_weekly_demo_may_07_exegraph.mp4)azd_sprint_demo_{date}_{name}.mp4 (e.g. azd_sprint_demo_apr_28_agent_sessions.mp4)Take azure/weekly-demo-video from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference pip.
Without those the skill loads but fails at the first command.