release-note-generation
Original:🇺🇸 English
Translated
6 scripts
Toolkit for generating PowerToys release notes from GitHub milestone PRs or commit ranges. Use when asked to create release notes, summarize milestone PRs, generate changelog, prepare release documentation, request Copilot reviews for PRs, update README for a new release, manage PR milestones, or collect PRs between commits/tags. Supports PR collection by milestone or commit range, milestone assignment, grouping by label, summarization with external contributor attribution, and README version bumping.
7installs
Sourcemicrosoft/powertoys
Added on
NPX Install
npx skill4agent add microsoft/powertoys release-note-generationTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Release Note Generation Skill
Generate professional release notes for PowerToys milestones by collecting merged PRs, requesting Copilot code reviews, grouping by label, and producing user-facing summaries.
Output Directory
All generated artifacts are placed under at the repository root (gitignored).
Generated Files/ReleaseNotes/Generated Files/ReleaseNotes/
├── milestone_prs.json # Raw PR data from GitHub
├── sorted_prs.csv # Sorted PR list with Copilot summaries
├── prs_with_milestone.csv # Milestone assignment tracking
├── grouped_csv/ # PRs grouped by label (one CSV per label)
├── grouped_md/ # Generated markdown summaries per label
└── v{VERSION}-release-notes.md # Final consolidated release notesWhen to Use This Skill
- Generate release notes for a milestone
- Summarize PRs merged in a release
- Request Copilot reviews for milestone PRs
- Assign milestones to PRs missing them
- Collect PRs between two commits/tags
- Update README.md for a new version
Prerequisites
- GitHub CLI () installed and authenticated
gh - MCP Server: github-mcp-server installed
- GitHub Copilot code review enabled for the org/repo
Required Variables
⚠️ Before starting, confirm with the user. If not provided, ASK: "What release version are we generating notes for? (e.g., 0.98)"
{{ReleaseVersion}}| Variable | Description | Example |
|---|---|---|
| Target release version | |
Workflow Overview
┌────────────────────────────────┐
│ 1.1 Collect PRs (stable range) │
└────────────────────────────────┘
↓
┌────────────────────────────────┐
│ 1.2 Assign Milestones │
└────────────────────────────────┘
↓
┌────────────────────────────────┐
│ 2.1–2.4 Label PRs (auto+human) │
└────────────────────────────────┘
↓
┌────────────────────────────────┐
│ 3.1 Request Reviews (Copilot) │
└────────────────────────────────┘
↓
┌────────────────────────────────┐
│ 3.2 Refresh PR data │
│ (CopilotSummary) │
└────────────────────────────────┘
↓
┌────────────────────────────────┐
│ 3.3 Group by label │
│ (grouped_csv) │
└────────────────────────────────┘
↓
┌────────────────────────────────┐
│ 4.1 Summarize (grouped_md) │
└────────────────────────────────┘
↓
┌────────────────────────────────┐
│ 4.2 Final notes (v{VERSION}.md) │
└────────────────────────────────┘| Step | Action | Details |
|---|---|---|
| 1.1 | Collect PRs | From previous release tag on |
| 1.2 | Assign Milestones | Ensure all PRs have correct milestone |
| 2.1–2.4 | Label PRs | Auto-suggest + human label low-confidence |
| 3.1–3.3 | Reviews & Grouping | Request Copilot reviews → refresh → group by label |
| 4.1–4.2 | Summaries & Final | Generate grouped summaries, then consolidate |
Detailed workflow docs
Do not read all steps at once—only read the step you are executing.
- Step 1: Collection & Milestones
- Step 2: Labeling PRs
- Step 3: Reviews & Grouping
- Step 4: Summarization
Available Scripts
| Script | Purpose |
|---|---|
| dump-prs-since-commit.ps1 | Fetch PRs between commits/tags |
| group-prs-by-label.ps1 | Group PRs into CSVs |
| collect-or-apply-milestones.ps1 | Assign milestones |
| diff_prs.ps1 | Incremental PR diff |
References
- Sample Output - Example summary formatting
- Detailed Instructions - Legacy full documentation
Conventions
- Terminal usage: Disabled by default; only run scripts when user explicitly requests
- Batch generation: Generate ALL grouped_md files in one pass, then human reviews
- PR order: Preserve order from in all outputs
sorted_prs.csv - Label filtering: Keeps ,
Product-*,Area-*,GitHub*,*PluginIssue-*
Troubleshooting
| Issue | Solution |
|---|---|
| Install GitHub CLI and add to PATH |
| No PRs returned | Verify milestone title matches exactly |
| Empty CopilotSummary | Request Copilot reviews first, then re-run dump |
| Many unlabeled PRs | Return to labeling step before grouping |