Turns the commits since your last tag into release notes grouped for users, not for developers.
WHEN TO USE IT
At release time, when the changelog should say what changed for the people using the software.
Formats change. If a field stops working, check it against Anthropic's documentation.
$0 is the first argument — the tag to start from. With none given, the skill finds the latest tag itself.
---
name: release-notes
description: Draft user-facing release notes from the commits since a tag.
disable-model-invocation: true
allowed-tools: Bash(git describe *) Bash(git log *) Bash(git tag *)
argument-hint: [from-tag]
---
Draft release notes.
1. Starting point: use `$0` if given, otherwise run
`git describe --tags --abbrev=0`.
2. Run `git log <tag>..HEAD --no-merges --pretty=format:"%h %s"`.
3. Group the changes for a user, not a developer:
- **New** — things they can now do
- **Improved** — things that work better
- **Fixed** — bugs they may have hit
- **Breaking** — anything they must change, with what to do
4. Rewrite each line in plain language. Drop refactors, tests, CI and
dependency bumps unless they change behaviour.
Output Markdown only. Do not create a tag or a file.
The folder name becomes the command. Claude Code watches the skills folders, so a new skill is usually available without a restart.
# this project — commit it to share with the team
mkdir -p .claude/skills/release-notes
mv SKILL.md .claude/skills/release-notes/
# or: for you, in every project
mkdir -p ~/.claude/skills/release-notes
mv SKILL.md ~/.claude/skills/release-notes/
# then, inside Claude Code:
# /release-notes v1.4.0
MORE SKILLS
The authority
Anthropic's documentation for Skills
This template is a starting point. Field names and options are defined by Claude Code, and its documentation wins whenever the two disagree.
https://code.claude.com/docs/en/skills