-
Gates. Run jackin-release-check. A red gate stops — show the report and name what to fix. Warns surface; ask whether to continue.
Done when every gate is green, or the operator accepted the warns.
-
Changelog. Run jackin-release-notes. Present the [Unreleased] section; let the operator re-classify or reword.
Done when the operator approves the changelog.
-
Recommend a version. Read the approved [Unreleased] buckets: any Removed or "breaking" entry → major; any Added → minor; only Fixed / Changed / Security / Deprecated → patch. Read the current version (grep '^version' Cargo.toml), compute the next, present the recommendation, wait.
Done when the operator confirms the bump level.
-
Commit the changelog. If CHANGELOG.md has uncommitted edits, git add CHANGELOG.md && git commit -m "docs: update changelog for vX.Y.Z".
-
Final confirm. Show the summary — version, bump level, changelog shape, and the exact cargo release <level> --execute about to run (it bumps Cargo.toml, renames [Unreleased] to [X.Y.Z] - <date> via release.toml, tags, and pushes). Do not run it without an explicit "yes."
Done when the operator says "yes."
-
Cut. cargo release <level> --execute. On failure, show the error and stop.
-
Verify. git tag -l "vX.Y.Z" and git ls-remote --tags origin "refs/tags/vX.Y.Z". Point the operator at the release workflow that now builds the artifacts.