npx skills add ...
npx skills add microsoft/powertoys --skill release-note-generation
npx skills add microsoft/powertoys --skill release-note-generation
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, generate PR review summaries locally for release notes, update README for a new release, manage PR milestones, collect PRs between commits/tags, or prepare release assets (download installers and compute installer hashes).
Generate professional release notes for PowerToys milestones by collecting merged PRs, summarizing each PR with the local CLI agent, grouping by label, and producing user-facing summaries.
All generated artifacts are placed under Generated Files/ReleaseNotes/ at the repository root (gitignored).
gh) installed and authenticated — The collection script uses gh pr view and gh api graphql to fetch PR metadata and co-author information. Run gh auth status to verify; if not logged in, run gh auth login first. See Step 1.0.0 for details.az login) with the azure-devops extension; access to the microsoft/Dart ADO project⚠️ Before starting, confirm {{ReleaseVersion}} with the user. If not provided, ASK: "What release version are we generating notes for? (e.g., 0.98)"
| Variable | Description | Example |
|---|---|---|
{{ReleaseVersion}} | Target release version | 0.98 |
| Step | Action | Details |
|---|---|---|
| 1.0 | Verify prerequisites | gh auth status must pass; generate MemberList.md |
| 1.1 | Collect PRs | From previous release tag on stable branch → sorted_prs.csv |
| 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 | Local agent summarizes each PR diff into CopilotSummary → (optional refresh) → group by label |
| 4.1–4.2 | Summaries & Final | Generate grouped summaries, then consolidate |
Do not read all steps at once—only read the step you are executing.
| 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 |
| prepare-release-assets.ps1 | Download installers + symbols from an ADO build, compute SHA256, emit the "Installer Hashes" markdown table for the GitHub release page |
sorted_prs.csv in all outputsProduct-*, Area-*, GitHub*, *Plugin, Issue-*| Issue | Solution |
|---|---|
gh command not found | Install GitHub CLI and add to PATH |
| No PRs returned | Verify milestone title matches exactly |
Empty CopilotSummary for many PRs | Run Step 3.1 (local-agent summaries). Do not use mcp_github_request_copilot_review from a CLI/coding agent — the GitHub API rejects bot-initiated review requests, so the column will stay empty. |
| Many unlabeled PRs | Return to labeling step before grouping |
prepare-release-assets.ps1 fails with "Failed to acquire ADO access token" | Run az login and ensure you have access to the microsoft/Dart ADO project |