release-notes-generator
Skill2 starsChanged 4 months agoMITView on GitHub
Turns a git history or a list of commits into categorized, reader-first release notes (Added, Changed, Fixed, Breaking, Security, Performance, Docs) with conventional-commit parsing, breaking-change detection and configurable scope grouping. Use when the user asks to write release notes, a changelog entry, an upgrade notice, a release announcement or a diff summary for a release, tag, sprint or deploy, or hands over a `git log` and wants it turned into prose for customers or internal teams.
5 other projects use a version of this.
Adopted by
Most recently taken up by
- Amazon-Quick/Amazon-Quick-official-catalogtheir own version, first seen Oct 28, 2026
- nek1987/auto-agent-harnesstheir own version, first seen Oct 11, 2026
- letehaha/moneymattertheir own version, first seen Oct 11, 2026
- 00PrabalK00/claude-skillstheir own version, first seen Mar 16, 2026
- Ethical-AI-Syndicate/skillstheir own version, first seen Jan 24, 2026
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- letehaha/moneymatter★ 221same name
- Amazon-Quick/Amazon-Quick-official-catalog★ 50same name
- nek1987/auto-agent-harness★ 4same name
- 00PrabalK00/claude-skills★ 1same name
- Ethical-AI-Syndicate/skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository13 other files it gives its agents.
- AGENTS.mdAGENTS.md
- accessibility-auditorSkill
- contract-reviewerSkill
- csv-data-profilerSkill
- dependency-auditorSkill
- git-workflow-assistantSkill
- meeting-notes-to-actionsSkill
- prompt-engineering-optimizerSkill
- rest-api-designerSkill
- security-code-reviewSkill
- sql-query-optimizerSkill
- technical-writing-editorSkill
- web-research-synthesizerSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 5 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 22
Use when asked to draft release notes, update a CHANGELOG, prepare an upgrade notice or summarize what changed between two tags.
- Distinctive: line 26
Do not use for: marketing copy that must sell a feature (this notes only what changed), a full changelog with every micro-commit, or …
- Very specific: line 49
Ask the user which release the notes are for and whether they need customer- or internal-facing tone.
- Distinctive: line 66
Run the parser, then apply your judgement:
- Distinctive: line 78
Keep this order — most urgent to least:
- Distinctive: line 95
Every breaking change is in the Breaking section and mentions a migration path.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Release Notes Generator
Turn a raw commit list into notes a human can read in 30 seconds and act on.
When to use
Use when asked to draft release notes, update a CHANGELOG, prepare an upgrade notice or summarize what changed between two tags. Good for customer-facing announcements and internal release updates alike.
Do not use for: marketing copy that must sell a feature (this notes only what changed), a full changelog with every micro-commit, or rewriting prose the user already wrote. When a commit is ambiguous, ask rather than infer intent.
Core discipline
Group by user impact, not by how the work was structured. A commit typed
chore can carry a visible behavior change; a commit typed feat can be pure
plumbing. The parser is a first pass — your judgement decides the final grouping.
Separate breaking changes into their own section at the top. For every item, state the observable consequence, not the internal mechanism.
Workflow
1. Gather the commit set
| Input | How to get it | Use |
| Repo + tag range | git log --oneline v1.2.0..v1.3.0 | The canonical input |
| Raw commit file | Pass a text file, one conventional commit per line | Offline / non-git input |
| Sprint/PR list | From the tracker | Cross-check nothing is missed |
Ask the user which release the notes are for and whether they need customer- or
internal-facing tone. Missing a boundary tag? Ask, or use the last CHANGELOG
entry as the anchor and say so.
2. Run the categorizer
python3 scripts/notes_builder.py . --from-ref v1.2.0 --to-ref v1.3.0 --format mdIt parses conventional commits (feat, fix, perf, docs, refactor,
test, build, ci, chore, revert), detects BREAKING CHANGE: footers and
! markers, groups by scope, and emits candidate notes. Its grouping is a
draft: fix the wording and regroup by user impact yourself.
3. Regroup by user impact
Run the parser, then apply your judgement:
| Parser said | But the change is | Put it in |
feat(api) | A new endpoint customers call | Added |
feat(core) | Internal caching with no user-visible effect | Internal / not customer-facing |
fix(ui) | Retina display support for a new device | Fixed (it was broken before) |
chore(ci) | CI now also builds on ARM | Internal, unless the artifact is distributed |
refactor(auth) | Session format changed, old tokens invalid | Breaking, not Changed |
4. Write reader-first sections
Keep this order — most urgent to least:
- Breaking (top, unmissable) — what breaks, who is affected, how to migrate.
- Added — new capabilities, each a sentence a reader can understand without the codebase.
- Fixed — the symptom and what it was fixed in.
- Changed / Deprecated / Removed — behavior changes, rename guidance.
- Security — the fix and the exposure, without publishing exploit detail.
- Performance — before/after figures when known.
- Docs / Internal — optional, compact.
Rules: verb-first bullets, no internals jargon, cite the PR/issue for each item, and never claim something was fixed unless a commit says so.
5. Verify
- Reconcile against the raw commit list — no item in, none silently merged away.
- Every breaking change is in the Breaking section and mentions a migration path.
- Security entries do not leak exploit steps.
- Date, version tag and scope of the release are stated once at the top.
Worked example
Input (git log --oneline v1.2.0..v1.3.0)
feat(api): add bulk export endpoint /v2/exports
fix(auth): session cookie now expires correctly across browsers
perf(db): cache hot reads, cut p95 from 240ms to 90ms
chore(ci): publish ARM builds of the CLI
refactor(config): rename env var DB_HOST to DATABASE_HOST (BREAKING CHANGE)
docs: add quickstart for the Python SDKOutput (regrouped)
# v1.3.0 — 2026-08-20
> Covers changes since v1.2.0. Customers upgrading from v1.2.x should read the
> breaking section first.
## Breaking
- Environment variable `DB_HOST` is renamed to `DATABASE_HOST`. Update any
deployment that references the old name. (#82)
## Added
- Bulk export endpoint `POST /v2/exports` for pulling large datasets in one
call. (#78)
## Fixed
- Session cookies now expire correctly across browsers; users are no longer
logged out mid-session. (#79)
## Performance
- Hot database reads are cached: p95 latency dropped from 240 ms to 90 ms. (#80)
## Internal
- CLI publishes ARM builds. (#81)
- Added the Python SDK quickstart to the docs. (#83)Why — the refactor that renames an env var is genuinely breaking, so it is
promoted to the top despite its type; the chore that ships ARM builds stays
internal because end users do not consume CI. Grouping follows user impact, not
the commit type.
Quality checklist
notes_builder.pyrun; output reviewed item by item, not pasted through- Every commit in the range is accounted for (or explicitly excluded)
- Breaking changes at the top, each with a migration path
- Bullets are verb-first and readable without the codebase
- Security items omit exploit detail
- No internals jargon for customer-facing notes
- PR/issue references attached to each item
- Version, date and commit range stated at the top
Failure modes
| Situation | Response |
| No commits in range / empty log | Confirm the tag names; report an empty diff rather than inventing items |
| Non-conventional commits | Ask for intent or infer from the diff; flag each inference |
| Ambiguous breaking change | Ask the user; do not guess migration impact |
| Mixed customer + internal scope | Split into two sections labelled accordingly |
| Very large range (100+ commits) | Group by scope/area first, then deduplicate by user impact |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

