Use when you have a written implementation plan to execute in a separate session with review checkpoints
npx skills add PaulRBerg/dot-agents --skill "bump-release"
Install specific skill from multi-skill repository
# Description
Rolls out a new release by updating changelog, bumping version, committing, and tagging
# SKILL.md
name: bump-release
argument-hint: '[version] [--beta] [--dry-run]'
disable-model-invocation: true
description: Rolls out a new release by updating changelog, bumping version, committing, and tagging
model: opus
Bump Release
Support for both regular and beta releases.
Parameters
version: Optional explicit version to use (e.g.,2.0.0). When provided, skips automatic version inference--beta: Create a beta release with-beta.Xsuffix--dry-run: Preview the release without making any changes (no file modifications, commits, or tags)
Steps
- Update the
CHANGELOG.mdfile with all changes since the last version release (skip this step for beta releases). - Bump the version in
package.json: - Regular release: Follow semantic versioning (e.g., 1.2.3)
- Beta release: Add
-beta.Xsuffix (e.g., 1.2.3-beta.1) - Format files - If a
justfileexists in the repository, runjust full-writeto ensureCHANGELOG.mdandpackage.jsonare properly formatted - Commit the changes with a message like "docs: release
" - Create a new git tag by running
git tag -a v<version> -m "<version>"
Note: When --dry-run flag is provided, display what would be done without making any actual changes to files, creating commits, or tags.
Tasks
Process
- Check for arguments - Determine if
versionwas provided, if this is a beta release (--beta), and/or dry-run (--dry-run) - Write Changelog - Examine diffs between the current branch and the previous tag to write Changelog. Then find
relevant PRs by looking at the commit history and add them to each changelog (when available). Ifpackage.jsoncontains
afilesfield, only include changes within those specified files/directories. If nofilesfield exists, include all
changes except test changes, CI/CD workflows, and development tooling - Follow format - Use Common Changelog specification
- Check version - Get current version from
package.json - Bump version - If
versionargument provided, use it directly. Otherwise, if unchanged since last release, increment per Semantic Versioning rules: - For regular releases:
- PATCH (x.x.X) - Bug fixes, documentation updates
- MINOR (x.X.x) - New features, backward-compatible changes
- MAJOR (X.x.x) - Breaking changes
- For beta releases (
--betaflag):- If current version has no beta suffix: Add
-beta.1to the version - If current version already has beta suffix: Increment beta number (e.g.,
-beta.1β-beta.2) - If moving from beta to release: Remove beta suffix and use the base version
- If current version has no beta suffix: Add
Beta Release Logic
When --beta flag is provided in the $ARGUMENTS
- Check for explicit version - If
versionprovided: - If version already has beta suffix β use as-is
- If version has no beta suffix β append
-beta.1 - Otherwise, parse current version from
package.jsonand determine beta version: - If current version is
1.2.3: Create1.2.4-beta.1(increment patch + beta.1) - If current version is
1.2.3-beta.1: Create1.2.3-beta.2(increment beta number) - If current version is
1.2.3-beta.5: Create1.2.3-beta.6(increment beta number) - Skip CHANGELOG.md update - Beta releases don't update the changelog
- Commit and tag with beta version (e.g.,
v1.2.4-beta.1)
Output
For regular releases only, in the CHANGELOG.md file, generate changelog entries categorizing changes in this order:
- Changed - Changes in existing functionality
- Added - New functionality
- Removed - Removed functionality
- Fixed - Bug fixes
Inclusion Criteria
For regular releases only (changelog generation is skipped for beta releases):
- Files field constraint - If
package.jsoncontains afilesfield, only include changes to files/directories specified in that array. All other codebase changes should be excluded from the CHANGELOG - Production changes only - When no
filesfield exists, exclude test changes, CI/CD workflows, and development tooling - Reference pull requests - Link to PRs when available for context
- Net changes only - Examine diffs between the current branch and the previous tag to identify changes
- Only dependencies and peerDependencies changes - Exclude changes to devDependencies
Examples
Regular Release
# Create a regular patch/minor/major release
/bump-release
# Preview what a regular release would do
/bump-release --dry-run
Beta Release
# Create a beta release with -beta.X suffix
/bump-release --beta
# Preview what a beta release would do
/bump-release --beta --dry-run
Explicit Version
# Specify exact version
/bump-release 2.0.0
# Specify exact beta version
/bump-release 2.0.0-beta.1
# Combine with flags
/bump-release 2.0.0 --dry-run
Version Examples
| Current Version | Release Type | New Version |
|---|---|---|
1.2.3 |
Regular | 1.2.4 (patch) |
1.2.3 |
Beta | 1.2.4-beta.1 |
1.2.3-beta.1 |
Beta | 1.2.3-beta.2 |
1.2.3-beta.5 |
Regular | 1.2.3 |
1.2.3 |
2.0.0 |
2.0.0 |
1.2.3 |
2.0.0 + Beta |
2.0.0-beta.1 |
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.