with one click
release
Create a release PR with version bump, then auto-tag after merge
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Create a release PR with version bump, then auto-tag after merge
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | release |
| description | Create a release PR with version bump, then auto-tag after merge |
Create a release PR that bumps the version and updates the changelog. After the PR is merged, the tag-release.yml workflow will automatically tag the release, trigger cargo publish, and bump to the next development version.
The skill accepts a version level argument:
patch - 0.0.1 -> 0.0.2minor - 0.0.1 -> 0.1.0major - 0.0.1 -> 1.0.00.2.0Example: /release minor
Verify prerequisites:
main branchgit fetch origin
if [ "$(git branch --show-current)" != "main" ]; then
echo "Error: Must be on main branch"
exit 1
fi
if [ -n "$(git status --porcelain)" ]; then
echo "Error: Working directory not clean"
exit 1
fi
if [ "$(git rev-parse HEAD)" != "$(git rev-parse origin/main)" ]; then
echo "Error: Not up to date with origin/main"
exit 1
fi
Run local checks:
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all
If checks fail, stop and report the errors.
Determine the new version:
Cargo.tomlCreate release branch:
NEW_VERSION="X.Y.Z" # from step 3
git checkout -b release/v${NEW_VERSION}
Bump version in Cargo.toml:
version = "..." field in the root Cargo.tomlUpdate CHANGELOG.md:
Commit changes:
CRITICAL: The commit message MUST start with release: v (no other words before the version).
The tag-release.yml workflow matches startsWith(message, 'release: v') on the merge commit.
When GitHub squash-merges a single-commit PR, the commit message becomes the merge commit message.
git add Cargo.toml CHANGELOG.md
git commit -m "release: v${NEW_VERSION}"
Push and create PR:
git push -u origin release/v${NEW_VERSION}
gh pr create \
--title "release: v${NEW_VERSION}" \
--body "$(cat <<EOF
## Release v${NEW_VERSION}
This PR prepares the release of v${NEW_VERSION}.
### Changes
- Version bump to ${NEW_VERSION}
- Changelog update
### After Merge
The tag-release workflow will automatically:
1. Create git tag \`v${NEW_VERSION}\`
2. Trigger CI + publish to crates.io
3. Create a GitHub Release
4. Bump to next development version (\`-alpha.0\`)
---
See CHANGELOG.md for details.
EOF
)"
Report the PR URL to the user.
When the PR is merged to main, the tag-release.yml workflow will:
Cargo.tomlvX.Y.Zrelease.yml workflow then runs CI and publishes to crates.io0.0.2-alpha.0)brew install gh or see https://cli.github.com/gh auth logincontents: write stored as RELEASE_TOKEN in repo secrets (the default GITHUB_TOKEN can't trigger other workflows)CARGO_REGISTRY_TOKEN in repo secrets