| argument-hint | [packages...] [version] [--beta] [--dry-run] |
| compatibility | Requires Bun, Git, and uv. |
| disable-model-invocation | true |
| effort | high |
| model | sonnet |
| name | release-bumper |
| skill-dependencies | ["cli-gh"] |
| user-invocable | true |
| description | Cut a release: bump versions, write changelogs, commit, tag. |
Release Bumper
If these instructions are already present in the conversation from a slash or dollar invocation, follow them directly;
do not invoke this skill again through a skill tool.
Release one package or several packages with version bumps, changelog entries, commits, and tags. Supports
single-package repositories, workspace monorepos, stable releases, beta releases, and dry runs.
A non-dry-run invocation authorizes the repository-local version edits, changelogs, commits, and annotated tags defined
by this workflow. Do not add a generic confirmation gate after the agent derives the release plan. Ask only when an
unresolved package selection or dependency-range policy changes the release set or approach; GitHub release creation
remains a separate external write governed below.
Arguments
packages: optional package names or directories. Omit in a single-package repository.
version: optional explicit semver. Valid only for one user-selected package.
--beta: create or advance a -beta.X prerelease.
--dry-run: preview without modifying files, committing, or tagging.
Helper Interface
Resolve <skill-dir> from this SKILL.md. Keep helper stdout as JSON and diagnostics on stderr.
bun run "<skill-dir>/scripts/plan-release.ts" \
[--cwd <repo>] [--beta] [--dry-run] [--version <semver>] \
[--package <name-or-dir>]...
The read-only discovery output has schemaVersion: 2. It reports package identity, complete per-package changedFiles,
workspace edges and declared ranges, previous-tag facts, selected targets, and worktree state. changeHints are
filename-based, explicitly non-authoritative navigation hints. Never use them to decide release relevance or changelog
inclusion.
After the agent decides every stable patch/minor/major version, write discovery JSON to a temporary file and run:
uv run "<skill-dir>/scripts/finalize-release-plan.py" \
--discovery <discovery.json> \
[--version <package>=<semver>]...
The finalizer performs beta and explicit-version transitions, stable prerelease promotion, npm-range satisfaction,
simple dependency-range suggestions, and dependency ordering. It reports complex ranges, peer ranges, dependency cycles,
and stable versions not supplied by the agent as unresolved decisions. When an unsatisfied edge adds a dependent, choose
that package's release version and rerun with another assignment. The finalizer never chooses a regular
release magnitude or dependency policy.