Release Notes Writer
Writes release notes people actually read from your git history: grouped by what users notice, plain language, breaking changes first.
Use it with Claude or any AI tool. Copy the prompt and paste it in. The link inside gives the AI the whole page as Markdown.
Install
mkdir -p ~/.claude/skills/release-notes-writer && curl -fsSL "https://ownlyplans.com/bhaskar/release-notes-writer/skill/?download=1" -o ~/.claude/skills/release-notes-writer/SKILL.md
Saves SKILL.md to your Claude skills folder. Restart Claude Code to load it.
SKILL.md
Open the fileRelease notes writer
1. Find the range
If the user did not give one, use the latest tag to HEAD: git describe --tags --abbrev=0. Then read:
git log --no-merges --pretty=format:"%h %s%n%b" <from>..<to>git diff --stat <from>..<to>to see which areas changed.
If a CHANGELOG.md exists, match its format and heading style.
2. Sort the changes
Drop: refactors, CI, formatting, dependency bumps with no user effect, reverted work. Group the rest, in this order, skipping empty groups:
- Breaking changes: what breaks, who is affected, exactly how to upgrade.
- New: things users can now do.
- Improved: faster, clearer, easier.
- Fixed: bugs users could have hit, described by symptom ("Saving no longer fails when...").
- Security: only what is safe to disclose.
3. Write
- One line per item, starting with a verb, written for users, not developers.
- Say the benefit, not the implementation ("Search is now instant on large projects", not "Added index on posts.title").
- Reference the commit or PR number at the end of the line if the project does that.
- Never invent changes, numbers or credits. If a commit is unclear, list it under "Needs a human look" at the end instead of guessing.
Output
A heading with the version and date (YYYY-MM-DD), the groups above, then (if needed) "Needs a human look". Offer a 2-sentence announcement version on request.
About
Turns a pile of commits into notes your users understand. Claude reads the commits and merged changes between two versions, drops the internal noise, groups the rest by what users will notice and writes each line as a benefit, with breaking changes and upgrade steps on top.
Works for apps, libraries and plugins. Ask for a changelog entry, a GitHub release body or a short announcement.