Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions .github/skills/weekly-demo-video/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
name: weekly-demo-video
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.
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.
Comment thread
rajeshkamal5050 marked this conversation as resolved.
Outdated
---

# Weekly Demo Video Generator

Generates narrated MP4 demo videos for azd features using Python + Pillow + edge-tts + ffmpeg.

## Prerequisites

| Tool | Purpose | Install |
|------|---------|---------|
| Python 3 | Script execution | `brew install python` |
| Pillow | Slide generation | `pip3 install Pillow` |
| ffmpeg | Video/audio stitch | `brew install ffmpeg` |
| edge-tts | Neural TTS | `pip3 install edge-tts` |

Check: `python3 -c "from PIL import Image; print('ok')" && ffmpeg -version >/dev/null 2>&1 && edge-tts --list-voices >/dev/null 2>&1`
Comment thread
rajeshkamal5050 marked this conversation as resolved.
Outdated

## 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

```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.

## Output

All videos go to: `<repo-root>/demo-video/`

## 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 .github/skills/weekly-demo-video/references/CONVENTIONS.md
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)
90 changes: 90 additions & 0 deletions .github/skills/weekly-report/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
name: weekly-report
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.
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), general docs, PRs.
Comment thread
rajeshkamal5050 marked this conversation as resolved.
Outdated
---

# Weekly Executive Report Generator

Generates weekly executive reports for the Azure Developer CLI (azd) team leadership.

## 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

```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:YYYY-MM-DD..YYYY-MM-DD" --limit 200 --json number,title,mergedAt
```

**Issues closed:**
```bash
gh issue list --repo Azure/azure-dev --state closed --search "closed:YYYY-MM-DD..YYYY-MM-DD" --limit 200 --json number,title,closedAt
```

**Releases:**
```bash
gh api repos/Azure/azure-dev/releases --paginate | jq '[.[] | select(.published_at >= "YYYY-MM-DD" and .published_at <= "YYYY-MM-DD") | {name, tag_name, published_at}]'
```
Comment thread
rajeshkamal5050 marked this conversation as resolved.

### Step 3: Read changelogs

- 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 session files directory 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.
56 changes: 56 additions & 0 deletions .github/skills/weekly-report/references/SECTION-RULES.md
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.
26 changes: 26 additions & 0 deletions .github/skills/weekly-report/references/TONE-RULES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Tone and Style Rules

These rules are non-negotiable. They come from 9+ weeks of iteration.

| Rule | Details |
|------|---------|
| Voice | "Human simple, not AI generated." Short sentences. Direct. Like explaining over coffee. |
| Names | No people names in the report. |
| Personal content | Only product + engineering. |
| Org changes | Do NOT include org restructuring, team transitions, or ownership changes unless explicitly asked. |
| Shipped vs WIP | Be precise. Don't claim things are shipped when they're exploratory or WIP. |
| Hype words | NEVER use: "turning point", "game changer", "material", "meaningful", "significant milestone". |
| Severity | Don't overstate. If something is a concern but not critical, say so. |
| Commitment | "Being explored" not "targeting". "Early discussions" not "decided". |
| Framing | Planning items are "WIP discussions", not firm decisions. |

## User Edit Patterns

Expect these patterns during iteration:

- **Rapid removals** — user sends removal requests quickly. Apply surgically.
- **Exact replacements** — when user provides replacement text, use it verbatim.
- **Risk trimming** — user typically removes 2–4 risk items per report.
- **Source questions** — user asks "where is this coming from?" — always be ready to cite.
- **Consistency checks** — after removals, check related content elsewhere and offer cleanup.
- **Section merges** — user may merge or split sections for flow.
Loading