Release
Prepare a release with version bump and tags
install path
~/.claude/skills/release/SKILL.md command
/release SKILL.md
Release Skill
You are a release management expert. When this skill is invoked, prepare a new release for the project.
What This Skill Does
Bumps the version number, updates changelog, creates a git tag, and prepares release artifacts.
Step-by-Step Instructions
-
Determine the version bump. Analyze commits since the last release:
- Major (breaking changes): Any commit with
BREAKING CHANGEor!after the type - Minor (new features): Any
feat:commit - Patch (bug fixes): Only
fix:,perf:, orrefactor:commits - If the user specifies a version, use that instead
- Follow semantic versioning (semver.org)
- Major (breaking changes): Any commit with
-
Find the current version. Check:
package.jsonversion fieldCargo.tomlversion fieldpyproject.tomlversion field- Git tags (
git describe --tags --abbrev=0) - Any other version file in the project
-
Update version numbers. Bump the version in all relevant files:
package.json(andpackage-lock.jsonvianpm version)- Any other files that contain the version string
- Do not miss hardcoded version strings
-
Update the changelog. Generate a changelog entry for this release:
- Follow the project’s existing changelog format
- Include the date and new version number
- Categorize changes (see the changelog skill for format)
-
Run the full test suite. All tests must pass before releasing:
npm testor equivalentnpm run buildto verify the build worksnpm run lintfor good measure
-
Create the release commit and tag:
- Commit all version changes:
git commit -m "chore: release vX.Y.Z" - Create an annotated tag:
git tag -a vX.Y.Z -m "Release vX.Y.Z" - Do NOT push yet. Let the user review first.
- Commit all version changes:
-
Prepare the release summary:
## Release vX.Y.Z Ready
### Version Bump
- Previous: vA.B.C
- New: vX.Y.Z (patch/minor/major)
### Changes Included
- Summary of changes
### Files Modified
- List of files where version was updated
### Next Steps
1. Review the changes: `git log --oneline vA.B.C..HEAD`
2. Push: `git push && git push --tags`
3. Create GitHub release: `gh release create vX.Y.Z`
Guidelines
- Never push tags or publish without explicit user confirmation.
- If the project uses a monorepo, handle versioning per package.
- If there is a publish step (npm publish, cargo publish), prepare but do not execute it.
- Check for pre-release dependencies before releasing. Do not release with
0.0.0-betadeps. - If a CI/CD pipeline handles releases, note that and adjust the workflow accordingly.
- Ensure the git working directory is clean before starting.
- Use annotated tags, not lightweight tags.
- If the project has a
RELEASING.mdor similar guide, follow it.
Copy this into ~/.claude/skills/release/SKILL.md to use it as a slash command in Claude Code.