skills/bump-release/SKILL.md
Cut a release: bump versions, write changelogs, commit, tag.
npx skillsauth add paulrberg/dot-agents bump-releaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
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.Resolve <skill-dir> from this SKILL.md. Keep helper stdout as JSON and diagnostics on stderr.
node "<skill-dir>/scripts/plan-release.mjs" \
[--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 --version assignment. The finalizer never chooses a regular
release magnitude or dependency policy.
For every stable changelog written, validate its deterministic structure:
uv run "<skill-dir>/scripts/validate-changelog.py" \
--file <CHANGELOG.md> --version <semver> --date <YYYY-MM-DD> [--tag <tag>]
This checks the expected release and date, heading/category order, allowed categories, list structure, and release-link tag. It does not judge importance, wording, or semantic category.
2 means the target is not a releasable Git/package
repository; exit 64 means invalid input. Stop on either.workingTree.clean. Do not absorb unrelated work.changedFiles and the net diff from its previous tag. Decide whether the surviving
changes warrant a release. Runtime environments, refactors, documentation, tests, and tooling can all be relevant in
context; filenames never decide this.references/common-changelog.md and write consumer-facing entries from the bounded net
diff. The agent owns entry selection, wording, importance, and category. Beta releases do not update changelogs.docs: release <version>;docs: release <package> <version>;v<version> or bare-semver facts;<package-dir>@<version>.git push origin --tags command after success.Helper failures mean malformed input, violated invariants, or failed validation; an agent decision remaining unresolved is data in the JSON, not a helper failure. Discovery and dry-run are read-only. Do not write changelogs before the final stable package set is known, and do not infer a tag convention when discovery reports observed facts.
Dry-run completion requires a discovery-backed, agent-reviewed action preview with zero writes. Release completion requires validated manifests and stable changelogs, formatting, one commit and annotated tag per package in dependency order, and a report of created commits/tags and agent-decided skips.
Use ### ⛔ Release stopped — working tree is not clean, ### ⚠️ Confirm release plan,
### 🔎 Release preview — no files, commits, or tags written, or ### 🏁 Release complete as applicable. Keep helper
JSON, versions, hashes, tags, commands, and changelog text exact and undecorated.
development
Refactor naming and repository structure exhaustively while preserving behavior and external contracts.
tools
Uses Chrome DevTools via MCP for efficient debugging, troubleshooting and browser automation. Use when debugging web pages, automating browser interactions, analyzing performance, or inspecting network requests. This skill does not apply to `--slim` mode (MCP configuration).
testing
Audit an entire repository with fresh eyes for correctness errors, bugs, omissions, duplication, inconsistencies, and other evidenced mistakes; fix every safe issue and verify the result.
development
Autonomous overnight codebase improvement with bounded runtime, evidence-gated changes, and verification.