/draft-release-notes - Release Notes Drafting Command for Claude Code
Slash command that drafts release notes from the Conventional Commits made since the last release tag. It reads the git log, groups changes into Keep a Changelog sections (Added, Changed, Fixed, and more), recommends the Semantic Versioning bump, and produces human-readable notes ready to paste into a CHANGELOG or GitHub release.
Open the source and read safety notes before installing.
Safety notes
- Read-only with respect to your repository; it only reads git history (tags and commit log) and never creates tags, commits, branches, or release artifacts.
- It proposes a version bump and notes for you to review; it does not publish a release or push anything.
Privacy notes
- Commit subjects, bodies, and author names from the selected range are included in the model's context to draft the notes.
- If commit messages contain internal identifiers, customer names, or unreleased details, those become part of the prompt; review the range before running on a private history.
- The command writes nothing to disk on its own.
Schema details
- Install type
- cli
- Troubleshooting
- No
- Scope
- Source repo
- Command syntax
- /draft-release-notes [from-ref]
Full copyable content
/draft-release-notes [from-ref]About this resource
The /draft-release-notes command turns the Conventional Commits made since your last release into clean, grouped release notes following Keep a Changelog, plus a recommended Semantic Versioning bump.
Usage
/draft-release-notes [from-ref]
- With
from-ref(a tag or commit): draft notes for everything after that ref. - Without an argument: use the most recent tag as the starting point.
What it does
When you invoke this command, follow these steps:
- Find the range. If a
from-refwas given, use it. Otherwise resolve the latest tag withgit describe --tags --abbrev=0and fall back to the repository root if there are no tags. - Read the commits. Run
git log <from-ref>..HEAD --no-merges --pretty=format:%s%x00%b%x00%anto collect each commit's subject, body, and author. - Parse Conventional Commits. Classify each subject by its
type(scope):prefix. Map types to Keep a Changelog groups:feat→ Added,fix→ Fixed,perf/refactor→ Changed,deprecate→ Deprecated, removals → Removed, security fixes → Security. Skip puredocs,style,test,chore,ci, andbuildcommits unless they are user-visible. - Detect breaking changes. Treat any
type!:marker orBREAKING CHANGE:footer as breaking and list it under a prominent heading. - Recommend the bump. Any breaking change → major; otherwise any
feat→ minor; otherwise patch. - Write for humans. Rewrite terse commit subjects into clear, impact-focused bullet points; collapse duplicates; link issue/PR numbers when present.
Output format
## [Unreleased] - proposed vX.Y.Z (<bump> bump)
### Added
- ...
### Fixed
- ...
### Changed
- ...
### Breaking changes
- ...
Requirements
gitavailable, run from inside the repository.- A commit history that follows Conventional Commits gives the best grouping; non-conforming commits are listed under a generic "Other" section.
Safety notes
Read-only: the command only reads git history. It does not create tags, commits, or releases, and it does not push — you review and apply the draft yourself.
Privacy notes
Commit subjects, bodies, and author names from the selected range are included in the model's context to draft the notes. If your history contains internal identifiers or unreleased details, review the range before running. Nothing is written to disk by the command.
Source and references
- Conventional Commits 1.0.0: https://www.conventionalcommits.org/en/v1.0.0/
- Keep a Changelog 1.1.0: https://keepachangelog.com/en/1.1.0/
- Semantic Versioning 2.0.0: https://semver.org/spec/v2.0.0.html
Source citations
Signals
Loading live community signals…
A short, calm digest of reviewed Claude resources. Unsubscribe any time.