release-bump — Claude Code skill: version bump and release for ralph-orchestrator
Walks ralph-orchestrator through a release: raise the version, build, test, tag. Meant for the moment fixes are committed and publishing is next.
npx skills add mikeyobrien/ralph-orchestrator --skill release-bump -a claude-codeWhat release-bump does
This skill targets ralph-orchestrator releases and knows where the version number lives. Everything sits in the workspace Cargo.toml; crates take it from version.workspace = true, yet the cross-crate dependencies carry the number explicitly. That makes seven version = "X.Y.Z" entries to change, and the skill suggests doing it in one go with Edit and replace_all: true.
After that come cargo build, which refreshes Cargo.lock, and cargo test. The commit message follows the pattern chore: bump to vX.Y.Z, then git push origin main, then the vX.Y.Z tag. Main goes first on purpose: push the tag too early and CI builds the release without your bump commit. The skill asks you to confirm the new number and, once the tag is up, offers to follow the release as it runs.
.github/workflows/release.yml handles the rest — a GitHub Release with generated notes, macOS and Linux binaries for arm64 and x64, a crates.io publish in dependency order, and an npm publish as @ralph-orchestrator/ralph. Hand-rolling the release with gh release create skips all of that. You need cargo and git available, otherwise the build and test steps fail.
What it helps with
- change the version string everywhere in
Cargo.tomlat once - run the test suite before the release commit
- tag the release only after main is pushed
- let CI publish instead of creating a GitHub Release by hand
- watch how the publish goes after the tag is pushed
Example prompts for the agent
- Bump ralph-orchestrator to 0.8.0 and take it through the whole release flow
- Fixes are in main — bump the version and tag the release
- The tag is pushed, show me how the release is going
How to install release-bump
1Skills CLI (Vercel)
npx skills add mikeyobrien/ralph-orchestrator --skill release-bump -a claude-code2Manually: put the files in place
~/.claude/skills/release-bump/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/release-bump/
1Skills CLI (Vercel)
npx skills add mikeyobrien/ralph-orchestrator --skill release-bump -a codex2Manually: put the files in place
.agents/skills/release-bump/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add mikeyobrien/ralph-orchestrator --skill release-bump -a cursor2Manually: put the files in place
.cursor/skills/release-bump/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install mikeyobrien/ralph-orchestrator release-bump2Manually: put the files in place
.github/skills/release-bump/SKILL.md1Skills CLI (Vercel)
npx skills add mikeyobrien/ralph-orchestrator --skill release-bump -a gemini-cli2Platform CLI
gemini skills install https://github.com/mikeyobrien/ralph-orchestrator --path .claude/skills/release-bumpManually: put the files in place
.devin/skills/release-bump/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add mikeyobrien/ralph-orchestrator --skill release-bump -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about release-bump
How do I install release-bump in Claude Code?
Run npx skills add mikeyobrien/ralph-orchestrator --skill release-bump -a claude-code. The skill file then lives at ~/.claude/skills/release-bump/SKILL.md.
What does release-bump do?
It runs the ralph-orchestrator release: confirms the version with you, edits Cargo.toml, builds, tests, commits, pushes main and creates the vX.Y.Z tag.
Why does every one of the seven version entries need changing?
The internal crate dependencies spell the number out even though the crates inherit it from the workspace. Touch only [workspace.package] and the build resolves the old version for those dependencies.
Source text
SKILL.md · MIT
---
name: release-bump
description: Use when bumping ralph-orchestrator version for a new release, after fixes are committed and ready to publish
metadata:
internal: true
---
# Release Bump
## Overview
Bump version and trigger release for ralph-orchestrator. All versions live in workspace `Cargo.toml` - individual crates inherit via `version.workspace = true`.
Confirm the new version with the user. Once the bump commit is pushed, track progress of the release.
## Quick Reference
| Step | Command/Action |
|------|----------------|
| 1. Bump version | Edit `Cargo.toml`: replace all `version = "X.Y.Z"` (7 occurrences) |
| 2. Build | `cargo build` (updates Cargo.lock) |
| 3. Test | `cargo test` |
| 4. Commit | `git add Cargo.toml Cargo.lock && git commit -m "chore: bump to vX.Y.Z"` |
| 5. Push | `git push origin main` |
| 6. Tag | `git tag vX.Y.Z && git push origin vX.Y.Z` |
## Version Locations (All in Cargo.toml)
```toml
# Line ~17 - workspace version
[workspace.package]
version = "X.Y.Z"
# Lines ~113-118 - internal crate dependencies
ralph-proto = { version = "X.Y.Z", path = "crates/ralph-proto" }
ralph-core = { version = "X.Y.Z", path = "crates/ralph-core" }
ralph-adapters = { version = "X.Y.Z", path = "crates/ralph-adapters" }
ralph-tui = { version = "X.Y.Z", path = "crates/ralph-tui" }
ralph-cli = { version = "X.Y.Z", path = "crates/ralph-cli" }
ralph-bench = { version = "X.Y.Z", path = "crates/ralph-bench" }
```
**Tip:** Use Edit tool with `replace_all: true` on `version = "OLD"` → `version = "NEW"` to update all 7 at once.
## What CI Does Automatically
Once you push the tag, `.github/workflows/release.yml` triggers and:
1. Creates the GitHub Release with auto-generated notes
2. Builds binaries for macOS (arm64, x64) and Linux (arm64, x64)
3. Uploads artifacts to the GitHub Release
4. Publishes to crates.io (in dependency order)
5. Publishes to npm as `@ralph-orchestrator/ralph`
## Common Mistakes
| Mistake | Fix |
|---------|-----|
| Only updating workspace.package.version | Must update all 7 occurrences including internal deps |
| Forgetting to run tests | Always `cargo test` before commit |
| Creating release manually with `gh release create` | Just push the tag - CI creates the release with artifacts |
| Pushing tag before main | Push main first, then push the tag |
© mikeyobrien · MIT · mikeyobrien/ralph-orchestrator