Compute the next semantic version and a finalised changelog entry from a cycle's acceptance-criteria categories. Reads the draft Unreleased changelog section (or the cycle's AC list), maps categories to a semver bump (breaking-change marker → major; new capability / Added → minor; Changed / Fixed / docs → patch), determines the current version (from a declared version file or the latest changelog heading), and produces the next version + the dated changelog heading. Composed by the release-finalizer; never tags or publishes (that is CI's job).
Install
npx skillscat add parsofish/forge-studio/changelog-semver Install via the SkillsCat registry.
Changelog & semver — compute the bump
What this skill is
The deterministic half of release finalisation: turn a set of categorised
changes into one decision — the next semantic version
— and the finalised changelog heading. The release-finalizer agent composes
this skill, then applies the result to the changelog + version file.
This skill decides; it does not tag, publish, or merge. Tagging the release
and publishing it are CI's job off merge-to-main — never run git tag,gh release create, or npm publish.
Inputs
- The draft changelog
## [Unreleased]section (bullets the develop loop
wrote in cycle), OR the cycle's acceptance-criteria list when no draft exists. - The current version — from the project's declared
versionFileif present,
else the most recent## [X.Y.Z]heading in the changelog. Absent both ⇒
treat current as0.0.0(the first release is0.1.0for a feature).
Bump rules (highest match wins)
- major (
X.0.0) — any change carrying a breaking-change marker
(BREAKING CHANGE,!in a conventional-commit type, or an AC that removes
or incompatibly changes a public surface). - minor (
x.Y.0) — a new user-visible capability (anAddedcategory, afeat, a new public API surface). - patch (
x.y.Z) —Changed/Fixed/docs/ internal-only changes
with no new surface.
Pre-1.0.0 projects MAY soften a major to minor per semver §4 (initial
development) — prefer that only when the project's existing changelog shows the
convention.
Output
- The next version string
X.Y.Z. - The finalised heading:
## [X.Y.Z] - <YYYY-MM-DD>(today's date, ISO). - The bump rationale (which rule fired, one line) so the release record is
auditable.
How to apply (the finalizer does this)
Rewrite the draft ## [Unreleased] heading to the finalised heading, preserving
the bullets, and leave a fresh empty ## [Unreleased] section above it for the
next cycle.