bump-release
Cut a release: bump versions, write changelogs, commit, tag.
Security Assessment
About bump-release
A release-cutting workflow that bumps versions, writes changelogs, and creates commits and annotated tags, supporting single-package repositories and workspace monorepos across regular releases, beta prereleases, and dry runs. It is invoked as a user command with optional package selectors, an explicit semver version (single-package only), and --beta or --dry-run flags.
Work begins with a bundled, read-only planner (scripts/plan-release.mjs) that emits one JSON fact base used as the source of truth: package discovery, previous tags and tag patterns, scoped changed, included, and excluded file lists, dependency edges, whether package selection is needed, and dirty-tree status. In pnpm workspaces it uses pnpm list when available and otherwise falls back to workspace-glob discovery, including negative patterns; Bun and npm-style workspaces use glob discovery. A clean working tree is required before any edits.
The workflow then resolves target packages, rejects an explicit version applied to more than one package, plans each version by Semantic Versioning (or the documented beta and prerelease transitions), and skips no-op releases with no relevant changes. Dependency cascade uses the planner's edges to update dependent ranges and pull affected packages into the plan, treating range widening as patch and peer-dependency majors as major unless the user confirms otherwise. Changelog entries follow the Common Changelog reference, ordered Changed, Added, Removed, Fixed, with present-tense imperative verbs and production-impacting changes only, so tests, CI, and dev tooling are excluded and beta releases skip the changelog. After a single formatting pass, packages are committed and tagged in dependency order using commit and tag patterns inferred from existing tags.
FAQ
Does it support monorepos?
Yes. It handles single-package repos and pnpm, Bun, and npm-style workspace monorepos, releasing one or several packages and cascading to dependents whose ranges need updating.
What does the planner script do?
scripts/plan-release.mjs is a read-only step that produces one JSON fact base covering package discovery, previous tags, scoped changed files, dependency edges, and dirty-tree status.
What does --dry-run show?
It previews the plan (package order, current and planned versions, changelog, tag, and commit actions, dependency range updates, and skipped files) without modifying files, committing, or tagging.
What changelog format does it follow?
Common Changelog, using the categories Changed, Added, Removed, Fixed in that order, present-tense imperative entries, and only production-impacting changes, excluding tests, CI, and dev tooling.
Does the working tree need to be clean?
Yes. If the planner reports the working tree is not clean, the workflow stops and shows the short status rather than committing unrelated work.
Install bump-release
Quick Setup:
- Copy the skill folder to
.claude/skills/ - Claude will automatically detect and use the skill
Repository
paulrberg/agent-skills