Release workflow for the Stave repository that confirms whether the next release is patch or minor before bumping the version, reviews the actual PR changes and PR description `Changes` sections in the release scope instead of relying on commit titles alone, generates release notes with `conventional-changelog`, and opens a pull request against `main` from a dedicated temporary release worktree so the user's original checkout stays on its original branch. Use when the user asks to cut the next release, ship the current changes as a versioned release, or prepare a release PR. After the PR merges, the repository's GitHub Actions workflow builds and publishes the release artifacts automatically.
68
81%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Use this skill to create a versioned release PR for the Stave repository.
Read references/stave-release-checklist.md for the exact sequence and repair rules.
Detect the repository root.
git rev-parse --show-toplevel to find the repo root. Never assume a hardcoded path.Inspect the release state before editing.
package.json to load the current version.git status --short to confirm the working tree is clean (or note what is uncommitted).git remote -v and confirm origin exists.git tag --list 'v*' --sort=-version:refname | head -5 to find the most recent semver tag. Incremental conventional-changelog generation depends on at least one prior tag.vX.Y.Z tag is required before incremental changelog generation is safe.Confirm the release bump type and update the version.
patch or minor before editing package.json, unless the user already specified the version bump explicitly.patch, increment package.json from x.y.z to x.y.(z+1).minor, increment package.json from x.y.z to x.(y+1).0.Review the shipped changes before writing the release summary.
HEAD.git log --first-parent --oneline <prev-tag>..HEADgit diff --stat <prev-tag>..HEADgit diff --name-only <prev-tag>..HEADgit diff <prev-tag>..HEAD for important hunksgh pr view <number> --json title,body,files,url and gh pr diff <number>.Changes section, treat those bullets as the preferred human-written summary source for that PR. Use PR titles only as a fallback when no usable Changes section exists.Changes bullets against the actual diff before carrying them into release notes.Generate release notes.
bunx --bun conventional-changelog-cli -p conventionalcommits -i CHANGELOG.md -sconventional-changelog output as a draft baseline, not the final authority.Changes bullets after generation. Do not let conventional-changelog overwrite useful Changes content that better describes the shipped work.PR #123 — ....References list of PR links at the end instead of headline-style PR blocks.README.md and any other release-facing docs that changed as part of the shipped behavior so docs and changelog stay aligned.Verify before commit.
bun run typecheck at minimum.bun test or bun run test:ci when scope is broad).Create a dedicated temporary release worktree and commit there.
../.worktrees/<repo>/release-x.y.z. Do not leave the user's original checkout on the release branch.git stash push --include-untracked -m "worktree-pr:release-x.y.z:<timestamp>"git worktree add -b release-x.y.z ../.worktrees/<repo>/release-x.y.z HEADgit worktree add -b release-x.y.z ../.worktrees/<repo>/release-x.y.z HEADgit add -Achore: release x.y.zPush the release branch and open a PR.
origin: git push origin <branch>main using gh pr create --base main.chore: release x.y.zgh pr diff <pr-number> or gh pr view <pr-number> --json files.main. All releases land via PR.Clean up the temporary worktree and restore the original checkout state.
git worktree remove ../.worktrees/<repo>/release-x.y.zgit worktree prune to remove stale metadata.main.Report the outcome.
main. All releases land via PR.git rev-parse --show-toplevel.patch vs minor with the user unless the request already makes the release type explicit.conventional-changelog is the required path.Changes section when it exists and is consistent with the diff; treat it as a preferred summary source.conventional-changelog overwrite validated Changes bullets from PR descriptions without reconciling them back into the final top section.PR #... — ...; prefer outcome-focused bullets and optional reference links.main commit after merge.git worktree prune.release-x.y.z; restore or preserve the original branch, usually main.git worktree remove from inside the same temporary release worktree you are trying to delete.e275ad5
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.