Changelog & Release Notes Writer
Turn merged PRs into release notes users actually read.
Converts a list of merged PRs or commits into user-facing release notes: grouped by impact, written in terms of what users can now do, with breaking changes impossible to miss. Handles both developer-audience and end-user-audience styles.
The prompt
Variables to fill in: {{audience}}{{version}}{{changes}}
Turn the raw change list below into release notes for: {{audience}} (developers | end users).
Format:
**⚠️ Breaking changes** — first, always, even if empty ("None"). For each: what breaks, who's affected, exact migration steps.
**New** — what users can now DO, not what was merged. "Added bulk export to CSV" not "Implemented ExportService."
**Improved** — perceptible improvements only, with numbers where available ("search is ~2x faster").
**Fixed** — user-visible bugs in the form "Fixed: [what was going wrong]."
Rules:
- Omit internal changes (refactors, dependency bumps, CI) unless they have user-visible effects — list what you omitted in one line at the end.
- Every line starts with a verb. No commit hashes, no PR numbers in the prose (link syntax [#123] at line end is fine).
- If a change's user impact is unclear from the input, put it under "Needs description: " rather than guessing.
Version & date: {{version}}
Raw changes (PR titles, commit messages, or descriptions):
{{changes}}How to use
- 1Pipe in your merged PR titles for the release (from your repo's compare view or `git log --oneline`).
- 2Answer the 'Needs description' items yourself — those are cases where your PR titles were too internal to interpret.
- 3Keep audience consistent per changelog; run twice for separate dev-facing and user-facing notes.
Examples
SaaS release notes
Input
Audience: end users. Changes: 'feat: bulk csv export', 'fix: dashboard timezone off-by-one', 'chore: bump next 15', 'feat!: remove legacy API v1'.
Output
**⚠️ Breaking changes** — API v1 has been removed. If you're still calling /api/v1/*, switch to v2 (guide: ...). **New** — Added bulk export to CSV from any table view. **Fixed** — Fixed: dashboard dates showing the previous day for UTC+ timezones. *(Omitted: 1 internal dependency update.)*
Pro tips
- Write slightly better PR titles and this becomes fully automatic — the prompt rewards good hygiene.
Frequently asked questions
Can it read directly from GitHub?+
The prompt takes pasted text. For automation, feed it PR titles from your CI pipeline or a GitHub Action, or use a coding agent with repo access and this prompt as its instruction.