release

Cut a new semver release — bumps package.json, generates changelog preview, commits, tags, and pushes.

SKILL.md

GitHub

Release Skill

Cut a new release for Imprint. Follow these steps in order.

Step 1 — Determine bump type

Run git log $(git describe --tags --abbrev=0 2>/dev/null || git rev-list --max-parents=0 HEAD)..HEAD --oneline to see commits since the last tag.

Decide the bump type:

  • major — breaking changes (feat!: or BREAKING CHANGE in body)
  • minor — new features (feat:)
  • patch — everything else (fix:, refactor:, perf:, docs:, chore:, etc.)

If unsure, ask the user.

Step 2 — Read current version

Read package.json and extract the current version field.

Step 3 — Compute new version

Apply semver bump to the current version. For example: 0.1.0 + minor = 0.2.0.

Step 4 — Update package.json

Edit package.json to set the new version string. Do not change anything else.

Step 5 — Preview changelog

Run bunx git-cliff --config cliff.toml --unreleased --strip header and show the output to the user. Ask if it looks correct.

Step 6 — Commit

Stage and commit:

git add package.json
git commit -m "chore(release): v<VERSION>"

Use the exact version string. No Co-Authored-By trailer for release commits.

Step 7 — Tag

git tag v<VERSION>

Step 8 — Push

Ask the user for confirmation, then:

git push && git push --tags

This triggers the release.yml workflow which creates the GitHub Release with auto-generated changelog.

Step 9 — Confirm

Tell the user: "Release v<VERSION> tagged and pushed. GitHub Actions will create the release at https://github.com/ashaychangwani/imprint/releases."