release-workflow is a standalone Claude Code plugin for preparing and directly publishing semantic-version release commits with explicit approval and race protection.
It was extracted from ether-moon/skill-set so release policy and release tooling can evolve independently from general development skills.
- Inspects an immutable base-branch snapshot and verifies that supported version manifests agree.
- Previews a patch, minor, or major release before changing repository state.
- Updates manifests and
CHANGELOG.mdin an isolated worktree. - Creates one scoped release commit bound to the accepted preview.
- Pushes directly to the configured base branch only after explicit approval and a final remote-SHA check.
- Preserves recovery state when authentication, branch protection, or a base race blocks publication.
It does not publish packages, deploy applications, create tags, or silently fall back to a pull request.
The plugin is available through the skill-set marketplace:
/plugin marketplace add ether-moon/skill-set
/plugin install release-workflow@skill-set
For local development:
git clone https://github.com/ether-moon/release-workflow.git
claude --plugin-dir ./release-workflowAsk Claude Code to inspect or prepare a release, for example:
Prepare a patch version bump, show me the preview, and wait before publishing.
The bumping-version skill reads release policy from the target repository's committed AGENTS.md:
## Versioning
- **Base branch**: main
- **Commit message**: chore: bump version to {version}
- **Extra version files**: (none)
- **Changelog categories**: Added, Improved, FixedThe runner requires Bash 3.2 or newer, git, gh, and jq.
Run the deterministic checks:
tests/run.sh
scripts/generate-trigger-evals --check
scripts/validate-evals --require-trigger-matrix
claude plugin validate --strict .The repository keeps generated trigger cases and functional release cases under evals/. The runner's state-machine and recovery behavior are covered by tests/test-release-runner.sh.
MIT