/release-notes: user-facing release notes between two git refs
A Claude Code slash command that turns the changes between two tags or commits into release notes written for end users and admins: highlights, improvements, fixes, and any action they must take to upgrade.
Skill in Writing by AISkillHub Library
What it does
Changelogs are for maintainers; release notes are for the people who use the product. `/release-notes` reads the commits and diffs between two refs and writes notes that explain changes in terms of what users can now do, what behaves differently, and what they need to do.
**What it does** - Takes two refs (for example `v1.8.0 v1.9.0`, or one ref meaning "from there to HEAD"). - Reads commit messages, merge commit PR titles, and diffs for user-facing code: UI, public API, CLI, configuration, documentation. - Groups notes into **Highlights** (at most three), **Improvements**, **Fixes**, and **Action required** (upgrade steps, config changes, deprecations with timelines only if those appear in the code or docs). - Writes in plain language with no internal jargon, ticket IDs or class names unless the audience is developers (pass `audience=developers`). - Leaves out refactors, test changes, CI and internal tooling.
**What it will not do** It does not invent benefits or numbers ("2x faster") unless the commit or PR states a measured result. It does not publish anywhere. If a change's user impact is unclear from the code, it lists it under "Needs confirmation" instead of guessing.
**Example (excerpt)** ``` ## Highlights - Invoices can now be sent in the customer's language. Set the language on the customer record.
## Action required - The `REPORTS_LEGACY_EXPORT` setting has been removed. Exports always use the new format. ```
How to use it
1. Save the file below as `.claude/commands/release-notes.md`. 2. Run `/release-notes v1.8.0 v1.9.0`, or `/release-notes v1.8.0` to compare with `HEAD`. 3. Optional: add `audience=developers` for an SDK or API product, or `audience=admins` for self-hosted operators. 4. Paste the output into your release page, email or in-app announcement, and resolve anything under "Needs confirmation" first.
Files
Save each file at the path shown, relative to your project root.