mcpField
J
jackin-release

jackin-release

github.com/jackin-projectDevelopment3469 installsUpdated 4w ago
Repository

About jackin-release

jackin-release is a release skill for operators publishing versions of jackin❯. It coordinates readiness checks and changelog preparation, recommends a version based on the changes, and requires explicit approval before running the irreversible release command.

Key features

  1. 01Run release-readiness checks
  2. 02Prepare and approve unreleased changelog entries
  3. 03Recommend a version based on change categories
  4. 04Commit changelog edits
  5. 05Execute the release after explicit confirmation
  6. 06Verify local and remote tags

Use cases

  1. 01Cut a new version after readiness checks pass
  2. 02Choose a version increment from approved changelog entries
  3. 03Review and approve the changelog before release
  4. 04Check tags and locate the build workflow after release

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/jackin-project/jackin-dev --skill jackin-release

After installing, type/jackin-releasein Claude Code to confirm it loaded.

Bundled filesagents/openai.yaml

Details

From the project README

jackin-release

Cut a release. The only irreversible skill in the suite — cargo release --execute bumps the version, rewrites the changelog header, tags, and pushes. Hard-gated on one explicit operator "yes"; nothing releases on assumption.

Orchestrates jackin-release-check (the gates) and jackin-release-notes (the changelog), then recommends a version from the changelog shape and cuts.

When to use

  • The operator asks to cut / ship / release a version.

When NOT to use

  • Just checking readiness → jackin-release-check.
  • Just updating the changelog → jackin-release-notes.

Prerequisites

cargo-release installed; gh authenticated; release.toml with pre-release-replacements for CHANGELOG.md; CHANGELOG.md with the <!-- next-header --> marker; .github/workflows/ci.yml.

Process

  1. 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.

  2. Changelog. Run jackin-release-notes. Present the [Unreleased] section; let the operator re-classify or reword.

    Done when the operator approves the changelog.

  3. 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.

  4. Commit the changelog. If CHANGELOG.md has uncommitted edits, git add CHANGELOG.md && git commit -m "docs: update changelog for vX.Y.Z".

  5. 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."

  6. Cut. cargo release <level> --execute. On failure, show the error and stop.

  7. 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.

Error recovery

  • Before cargo release: safe to fix and re-run — this skill re-validates everything.
  • During cargo release: check what committed or tagged. Tag created but unpushed → git push origin vX.Y.Z. Version commit without tag → reset and retry.
  • After: the release is done; a CI failure is a workflow issue, not a rollback.

Common mistakes

  • Running cargo release without the explicit "yes" — the one hard gate.
  • Letting a red readiness gate through to the cut.
  • Hand-editing the [X.Y.Z] version heading — cargo-release rewrites it via release.toml pre-release-replacements; double-editing corrupts the release commit.

Comments

Markdown supported