← ClaudeAtlas

changelog-generatelisted

Generate a categorized changelog / release notes from commit + PR history (conventional-commits · semver). Groups feat/fix/breaking for humans, surfaces breaking changes with migration notes, and derives the semver bump from the change types — never hand-written from memory or a raw git-log dump.
adnanmokhtar/refract · ★ 1 · Code & Development · score 80
Install: claude install-skill adnanmokhtar/refract
# changelog-generate ## Premise A changelog is *generated from categorized history* — conventional-commit types or PR labels grouped for humans — with breaking changes surfaced at the top and the version bump *derived* from the change set. It is not hand-written from memory (which forgets), and it is not a raw `git log` dump (which is noise no user reads). The reader wants three answers fast: *is anything going to break me, what's new, what got fixed* — in that order. Cite-or-halt. Every changelog line traces to a commit SHA or a PR number; every breaking-change entry cites **the commit/PR that introduced it and the type marker that classified it** (`BREAKING CHANGE:` footer, `!` after type, or a `breaking`/`major` label). Every semver claim cites the change types that forced it. "This is roughly a minor release" without the type tally is a vibe. An unclassifiable commit is itself a reportable finding (a convention gap), not something to silently drop. ## When to run - At release-cut time — generate the notes for the version being tagged from the range since the last tag. - In CI on the release branch to keep an `Unreleased` section current as PRs merge. - Before publishing a package — the changelog is the first thing a consumer diffs before upgrading. - After a run of commits landed with no convention — to surface the classification gap *before* it's release day and too late to fix. - **Not** for internal-only history browsing — that's what `git log` is for; this skill