-
Notifications
You must be signed in to change notification settings - Fork 300
Add weekly-demo-video and weekly-report Copilot skills #8099
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
rajeshkamal5050
wants to merge
5
commits into
main
Choose a base branch
from
feature/weekly-skills
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
4358ad1
Add weekly-demo-video and weekly-report skills
rajeshkamal5050 0074fe9
Remove TONE-RULES.md and its reference
rajeshkamal5050 4052e51
Address all review feedback
rajeshkamal5050 255329a
Restore TONE-RULES.md — reframed for team use
rajeshkamal5050 0f7981a
Address Marina's feedback: dates, gitignore, cross-shell
rajeshkamal5050 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,98 @@ | ||
| --- | ||
| name: weekly-demo-video | ||
| license: MIT | ||
| metadata: | ||
| version: "1.0" | ||
| description: >- | ||
| 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): | ||
|
|
||
| ```bash | ||
| python3 -c "from PIL import Image; print('ok')" | ||
| ffmpeg -version | ||
| edge-tts --list-voices > /dev/null | ||
| ``` | ||
|
|
||
| ## Execution Flow | ||
|
|
||
| ### Step 1: Pull latest | ||
|
|
||
| ```bash | ||
| cd <repo-root> # the azure-dev repository root | ||
| git checkout main && git pull --rebase | ||
| ``` | ||
|
|
||
| ### Step 2: Find commits for the week | ||
|
|
||
| Replace the dates below with the actual week range: | ||
|
|
||
| ```bash | ||
| 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`) | ||
|
|
83 changes: 83 additions & 0 deletions
83
.github/skills/weekly-demo-video/references/CONVENTIONS.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,83 @@ | ||
| # Video Conventions | ||
|
|
||
| These rules MUST be followed for all demo videos. | ||
|
|
||
| ## Pipeline | ||
|
|
||
| | Step | Tool | Details | | ||
| |------|------|---------| | ||
| | Slides | Python + Pillow | Generate 1920×1080 PNG images | | ||
| | Narration | `edge-tts` | `--voice en-US-GuyNeural --rate=+5%`, free neural TTS, no API key | | ||
| | Audio convert | `ffmpeg` | MP3 → WAV per slide | | ||
| | Per-slide video | `ffmpeg` | `-loop 1 -tune stillimage -c:a aac -b:a 192k -pix_fmt yuv420p` | | ||
| | Concatenate | `ffmpeg` | `-f concat -safe 0` with file list | | ||
|
|
||
| Pronunciation fix: `re.sub(r'\bazd\b', 'AZ-D', text, flags=re.IGNORECASE)` — applied to narration strings ONLY. | ||
|
|
||
| ## Video Rules | ||
|
|
||
| | Rule | Details | | ||
| |------|---------| | ||
| | Resolution | 1920×1080 | | ||
| | Duration | Under 2-3 minutes | | ||
| | Audio padding | +0.8s silence after each slide's narration | | ||
| | PR references | NEVER mention PR numbers in videos | | ||
| | End slide | Always end with "Give it a try." + links | | ||
| | --no-prompt | Frame as built for AI agents (Copilot CLI, Claude, Gemini), NOT generic CI | | ||
| | Slide text | Lowercase `azd` always (phonetic `AZ-D` in narration only) | | ||
|
|
||
| ## Color Palette | ||
|
|
||
| | Name | RGB | Usage | | ||
| |------|-----|-------| | ||
| | Background | `(15, 17, 23)` | Slide background | | ||
| | Text | `(230, 237, 243)` | Body text | | ||
| | Accent blue | `(88, 166, 255)` | Titles, labels, `→` lines | | ||
| | Green | `(63, 185, 80)` | Success, `$` prompts, `✓` lines, terminal dot | | ||
| | Red | `(248, 81, 73)` | Errors, terminal dot | | ||
| | Yellow | `(210, 153, 34)` | Warnings, section headers (`##`), terminal dot | | ||
| | Dim | `(125, 133, 144)` | Subtitles, comments, footers | | ||
| | Code BG | `(22, 27, 34)` | Code block background | | ||
| | Divider | `(48, 54, 61)` | Horizontal rule on content slides | | ||
|
|
||
| ## Fonts | ||
|
|
||
| | Platform | Body | Code | | ||
| |----------|------|------| | ||
| | macOS | `/System/Library/Fonts/SFNS.ttf` | `/System/Library/Fonts/SFNSMono.ttf` | | ||
| | Windows | `C:/Windows/Fonts/arial.ttf` | `C:/Windows/Fonts/consola.ttf` | | ||
| | Fallback | `ImageFont.load_default()` | `ImageFont.load_default()` | | ||
|
|
||
| ## Code Block Rendering | ||
|
|
||
| - Rounded rectangle with `radius=12`, filled with Code BG | ||
| - Terminal dots at top-left (red, yellow, green circles, 14px, spaced 22px) | ||
| - Syntax coloring by line prefix: | ||
| - `#` or `//` → Dim (comment) | ||
| - `$` → Green (shell prompt) | ||
| - `error`/`fail` → Red | ||
| - `warning` → Yellow | ||
| - `✓`/`success` → Green | ||
| - `>`/`→` → Accent blue | ||
| - Mono font at 18px, line height 28px | ||
|
|
||
| ## Slide Types | ||
|
|
||
| ### Title Slide | ||
| - "azure developer cli" label top center (accent blue, font 22) | ||
| - Large title centered (text color, font 52) | ||
| - Subtitle in dim (font 26) | ||
| - Optional bullet items with `→` prefix (font 28, 50px spacing) | ||
| - Date footer bottom center (dim, font 20) | ||
|
|
||
| ### Content Slide | ||
| - Title top-left in accent blue (font 40) | ||
| - Horizontal divider line at y=115 | ||
| - Bullet points with `•` prefix (font 24, 42px spacing) | ||
| - Lines starting with `##` render as yellow section headers (font 26) | ||
| - Optional code block positioned at bottom (min y=480) | ||
|
|
||
| ### End Slide | ||
| - Title in accent blue centered (font 48) | ||
| - "Give it a try." below (text color, font 36) | ||
| - `aka.ms/azd • github.com/Azure/azure-dev` footer (dim, font 22) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,109 @@ | ||
| --- | ||
| name: weekly-report | ||
| license: MIT | ||
| metadata: | ||
| version: "1.0" | ||
| description: >- | ||
| Generate weekly executive reports for the azd team. Pulls PR/issue/release | ||
| data from GitHub, reads changelogs, combines with team notes, and produces | ||
| a polished markdown report. | ||
|
|
||
| INVOKES: gh CLI, jq, git CLI, explore sub-agents, ask_user. | ||
|
|
||
| USE FOR: weekly report, exec report, status update, team update, weekly | ||
| summary, generate report, report time. | ||
| DO NOT USE FOR: demo videos (use weekly-demo-video), release changelogs | ||
| (use changelog-generation), general docs, PRs. | ||
| --- | ||
|
|
||
| # Weekly Executive Report Generator | ||
|
|
||
| Generates weekly executive reports for the Azure Developer CLI (azd) team leadership. | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| | Tool | Purpose | | ||
| |------|---------| | ||
| | `gh` | GitHub CLI — authenticated with repo access | | ||
| | `jq` | JSON filtering for release queries | | ||
| | `git` | Repository data | | ||
|
|
||
| ## Report Format (strict order) | ||
|
|
||
| ``` | ||
| 📝 TLDR | ||
| 📊 Metrics | ||
| ⚠️ Risks + Blockers | ||
| 🎯 Changelog | ||
| 📋 This Week | ||
| 🔜 Next Week | ||
| 🚩 Learnings | ||
| 🔥 Demos/Links | ||
| ``` | ||
|
|
||
| ## Execution Flow | ||
|
|
||
| ### Step 1: Confirm date range | ||
|
|
||
| Cadence is **Thursday to Thursday**. Confirm with the user if unclear. | ||
|
|
||
| ### Step 2: Pull repo data | ||
|
|
||
| Replace `START` and `END` below with the dates from Step 1. | ||
|
|
||
| ```bash | ||
| cd <repo-root> # the azure-dev repository root | ||
| git checkout main && git pull --rebase | ||
| ``` | ||
|
|
||
| **PRs merged:** | ||
| ```bash | ||
| gh pr list --repo Azure/azure-dev --state merged --search "merged:START..END" --limit 200 --json number,title,mergedAt | ||
| ``` | ||
|
|
||
| **Issues closed:** | ||
| ```bash | ||
| gh issue list --repo Azure/azure-dev --state closed --search "closed:START..END" --limit 200 --json number,title,closedAt | ||
| ``` | ||
|
|
||
| **Releases:** | ||
| ```bash | ||
| gh api repos/Azure/azure-dev/releases --paginate | jq '[.[] | select(.published_at >= "START" and .published_at <= "END") | {name, tag_name, published_at}]' | ||
| ``` | ||
|
|
||
| ### Step 3: Read changelogs | ||
|
|
||
| Changelog data is maintained by the `changelog-generation` skill. | ||
|
|
||
| - Core: `cli/azd/CHANGELOG.md` | ||
| - Agents: `cli/azd/extensions/azure.ai.agents/CHANGELOG.md` | ||
| - Finetuning: `cli/azd/extensions/azure.ai.models/CHANGELOG.md` | ||
|
|
||
| ### Step 4: Wait for team notes | ||
|
|
||
| Do NOT assemble the report until the user provides team notes from emails, Teams, meetings, etc. | ||
| Only product and engineering content. | ||
|
|
||
| ### Step 5: Assemble report | ||
|
|
||
| Combine repo data with team notes. Follow all rules below. | ||
|
|
||
| ### Step 6: Iterate | ||
|
|
||
| Expect 5–15 rounds of edits. Apply changes surgically. After removals, check for related content elsewhere (risks → next week → learnings → TLDR) and offer to clean up. | ||
|
|
||
| ## Output | ||
|
|
||
| Save reports to the Copilot CLI session workspace (`~/.copilot/session-state/<session-id>/files/`) as `weekly-report-{month}{startday}-{endday}.md`. | ||
|
|
||
| ## Section Rules | ||
|
|
||
| {{ references/SECTION-RULES.md }} | ||
|
|
||
| ## Tone and Style | ||
|
|
||
| {{ references/TONE-RULES.md }} | ||
|
|
||
| ## Example Report | ||
|
|
||
| Use the latest completed report in the session files as a format reference. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,56 @@ | ||
| # Section Rules | ||
|
|
||
| ## 📝 TLDR | ||
| - **Single paragraph**, narrative style. Not bullets or headlines. | ||
| - Lead with what matters most that week. | ||
| - Include feature/extension shipping highlights. | ||
| - End with numbers (PRs, issues, releases). | ||
| - Don't claim things are "shipped" when they're WIP/exploratory. | ||
| - Don't overstate commitment level (e.g., "targeting Build" → "being explored"). | ||
|
|
||
| ## 📊 Metrics | ||
| - Always placeholder: `_// metrics owner to add_` | ||
|
|
||
| ## ⚠️ Risks + Blockers | ||
| - Start with 2–3 items. Expect the user to trim. | ||
| - Don't overstate risks. Don't include risks from other teams. | ||
| - Distinguish GA blockers from future improvements. | ||
|
|
||
| ## 🎯 Changelog | ||
|
|
||
| Structure: | ||
| 1. **Releases table** — Release name, version, date | ||
| 2. **By the numbers** — core releases, extension releases, issues closed, PRs merged | ||
| 3. **Key Changes** — grouped by area (Core, Extension Framework, Extensions — Agents, Extensions — Finetuning, Quality & CI, Docs) | ||
|
|
||
| Rules: | ||
| - Keep it short, only highlighting important changes. | ||
| - Include PR links: `[#NNNN](https://github.com/Azure/azure-dev/pull/NNNN)` | ||
|
|
||
| ## 📋 This Week | ||
|
|
||
| Subsections (use what's relevant): | ||
| - Core | ||
| - Extensions — Agents | ||
| - Extensions — Finetuning | ||
| - Extension Framework | ||
| - Bugs & Reliability | ||
| - Testing | ||
| - Docs & Content | ||
| - Planning & Priorities ← **always last** | ||
|
|
||
| Rules: | ||
| - "Agent Developer Experience" is the correct naming (not "Agent UX"). | ||
| - Planning items framed as WIP discussions, not firm decisions. | ||
|
|
||
| ## 🔜 Next Week | ||
| - Highlight priorities from team notes and iteration board. | ||
| - Tag GA priorities explicitly. | ||
|
|
||
| ## 🚩 Learnings | ||
| - 2–3 items. Practical, not aspirational. | ||
| - Expect the user to add/remove. | ||
|
|
||
| ## 🔥 Demos/Links | ||
| - Format: Bold title on one line, `[Demo Recording](url)` on next line. | ||
| - Wait for the user to provide demo links. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| # Tone and Style Rules | ||
|
|
||
| | Rule | Details | | ||
| |------|---------| | ||
| | Voice | Clear and direct. Short sentences. Avoid AI-generated tone. | | ||
| | Names | No individual names in the report. | | ||
| | Scope | Only product and engineering content. | | ||
| | Shipped vs WIP | Be precise. Don't claim features are shipped when they're exploratory or WIP. | | ||
| | Hype words | Avoid: "turning point", "game changer", "material", "meaningful", "significant milestone". | | ||
| | Severity | Don't overstate. If something is a concern but not critical, say so. | | ||
| | Commitment | Use "being explored" not "targeting". "Early discussions" not "decided". | | ||
| | Framing | Planning items are discussions in progress, not firm decisions. | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -85,3 +85,6 @@ cli/azd/cover_* | |
| review-*.diff | ||
|
|
||
| .playwright-mcp/ | ||
|
|
||
| # Demo video output | ||
| demo-video/ | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.