release-note-generation
35
总安装量
35
周安装量
#5817
全站排名
安装命令
npx skills add https://github.com/microsoft/powertoys --skill release-note-generation
Agent 安装分布
opencode
29
gemini-cli
28
codex
27
claude-code
23
github-copilot
22
antigravity
20
Skill 文档
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 Generated Files/ReleaseNotes/ at the repository root (gitignored).
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 notes
When 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 (
gh) installed and authenticated - MCP Server: github-mcp-server installed
- GitHub Copilot code review enabled for the org/repo
Required Variables
â ï¸ 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 |
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 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 | 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
sorted_prs.csvin all outputs - Label filtering: Keeps
Product-*,Area-*,GitHub*,*Plugin,Issue-*
Troubleshooting
| Issue | Solution |
|---|---|
gh command not found |
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 |