release
Guide for releases and changelog. Use when updating changelog or preparing releases. Triggers on: changelog, release, version bump.
When & Why to Use This Skill
This Claude skill streamlines the software release lifecycle by automating versioning and changelog management. It provides a standardized framework for semantic versioning (SemVer) and ensures that CI/CD pipelines are correctly triggered through precise PR title prefixes and automated git tagging, reducing manual errors in the deployment process.
Use Cases
- Automated Versioning: Automatically determine and apply major, minor, or patch version bumps in package.json based on standardized PR prefixes like feat:, fix:, or major:.
- Changelog Standardization: Maintain a clean and organized CHANGELOG.md by automatically categorizing changes into Added, Fixed, or Breaking Changes sections during the release preparation.
- CI/CD Trigger Optimization: Ensure seamless integration with automated workflows by validating that commit messages and tags meet the requirements for triggering build and deployment pipelines.
- Release Error Troubleshooting: Quickly identify and resolve common release bottlenecks, such as 'tag already exists' errors caused by forgotten version bumps.
| name | release |
|---|---|
| description | Guide for releases and changelog. Triggers on: changelog, release, version. |
Release Guide
Before Merging a Release PR
1. Bump Version in package.json
| PR Title Prefix | Version Bump |
|---|---|
feat: or minor: |
Minor (0.X.0) |
fix: or patch: |
Patch (0.0.X) |
major: or type!: |
Major (X.0.0) |
2. Update CHANGELOG.md
Add entry under ## [Unreleased]:
## [X.Y.Z] - YYYY-MM-DD
### Added/Fixed/Breaking Changes
- Description from PR title
Section headers by bump type:
major:or!:→### Breaking Changesfeat:orminor:→### Addedfix:orpatch:→### Fixed
3. PR Title Must Have Release Prefix
Examples:
feat: add batch retry for failed rows → creates tag from package.json version
fix: correct token refresh timing → creates tag from package.json version
major: redesign API endpoints → creates tag from package.json version
feat!: change auth flow (breaking) → creates tag from package.json version
After Merge
Workflow automatically:
- Detects release prefix in commit message
- Reads version from
package.json - Fails if tag already exists (forgot to bump version)
- Creates and pushes tag
- Tag triggers
release.yml→ build + GitHub release
Skipping Releases
PRs with non-release prefixes won't trigger tag creation:
docs:- documentationrefactor:- code restructuretest:- test changeschore:- maintenanceci:- CI changes
Errors
"Tag vX.Y.Z already exists" → You forgot to bump the version in package.json. Update the version in your PR and re-merge (or create a follow-up PR).
Manual Release (Emergency)
# Bump version in package.json
# Update CHANGELOG.md
git add package.json CHANGELOG.md
git commit -m "chore: release vX.Y.Z"
git tag vX.Y.Z
git push origin HEAD vX.Y.Z