Files
PowerToys/.github/skills/release-note-generation/references/step4-summarization.md
Gordon Lam 5422bc31bb docs(prompts): Enhance release notes generation and implement GitHub issue tools (#44762)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This update improves the release notes generation process by
restructuring documentation for clarity and enhancing workflows. It
introduces new tools for handling GitHub issue images and attachments,
along with automated tests to ensure functionality.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist

- [ ] Closes: N/A
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [x] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [x] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [x] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: N/A

<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments
The changes include updates to the release notes summarization process
and workflow documentation for better clarity. New scripts for managing
PR diffs, grouping, and milestone assignments have been added.
Additionally, tools for downloading images and attachments from GitHub
issues have been implemented, ensuring a more streamlined process.

<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Automated tests were added for the new GitHub issue tools, and all tests
passed successfully. Manual validation included testing the new
workflows and ensuring the documentation accurately reflects the changes
made.
```
2026-01-21 16:18:57 +08:00

3.5 KiB
Raw Blame History

Step 4: Summaries and Final Release Notes

4.0 To-do

  • 4.1 Generate Summary Markdown (Agent Mode)
  • 4.2 Produce Final Release Notes File

4.1 Generate Summary Markdown (Agent Mode)

For each CSV in Generated Files/ReleaseNotes/grouped_csv/, create a markdown file in Generated Files/ReleaseNotes/grouped_md/.

⚠️ IMPORTANT: Generate ALL markdown files first. Do NOT pause between files or ask for feedback during generation. Complete the entire batch, then human reviews afterwards.

Structure per file

1. Bullet list - one concise, user-facing line per PR:

  • Use the “Verb-ed + Scenario + Impact” sentence structure—make readers think, “Thats exactly what I need” or “Yes, thats an awesome fix.”; The "impact" can be end-user focused (written to convey user excitement) or technical (performance/stability) when user-facing impact is minimal.
  • If nothing special on impact or unclear impact, mark as needing human summary
  • Source from Title, Body, and CopilotSummary (prefer CopilotSummary when available)
  • If the column NeedThanks in CSV is True, append: Thanks [@Author](https://github.com/Author)!
  • Do NOT include PR numbers in bullet lines
  • Do NOT mention “security” or “privacy” issues, since these are not known and could be leveraged by attackers in earlier versions. Instead, describe the user-facing scenario, usage, or impact.
  • If confidence < 70%, write: Human Summary Needed: <PR full link>

See SampleOutput.md for examples of well-written bullet summaries.

2. Three-column table (same PR order):

  • Column 1: Concise summary (same as bullet)
  • Column 2: PR link [#ID](URL)
  • Column 3: Confidence level (High/Medium/Low)

Review Process (AFTER all files generated)

  • Human reviews each grouped_md/*.md file and requests rewrites as needed
  • Human may say "rewrite Product-X" or "combine these bullets"—apply changes to that specific file
  • Do NOT interrupt generation to ask for feedback

4.2 Produce Final Release Notes File

Once all grouped_md/*.md files are reviewed and approved, consolidate into a single release notes file.

Output: Generated Files/ReleaseNotes/v{{ReleaseVersion}}-release-notes.md

Structure

1. Highlights section (top):

  • 8-12 bullets covering the most user-visible features and impactful fixes
  • Pattern: **Module**: brief description
  • Avoid internal refactors; focus on what users will notice

2. Module sections (alphabetical order):

  • One section per product (Advanced Paste, Awake, Command Palette, etc.)
  • Migrate bullet summaries from the approved grouped_md/Product-*.md files
  • One section 'Development' for all the rest summaries from the approved grouped_md/Area-*.md files
  • Re-review E2E, group release improvements by section, and move the most important items to the top of each section. Some items in the Development section may overlap and should be moved to the Module section where more applicable.

Example Final Structure

# PowerToys v{{ReleaseVersion}} Release Notes

## Highlights

- **Command Palette**: Added theme customization and drag-and-drop support
- **Advanced Paste**: Image input for AI, color detection in clipboard history
- **FancyZones**: New CLI tool for command-line layout management
...

---

## Advanced Paste

- Wrapped paste option lists in a single ScrollViewer
- Added image input handling for AI-powered transformations
...

## Awake

- Fixed timed mode expiration. Thanks [@daverayment](https://github.com/daverayment)!
...

---

## Development
...