| name | release-prep |
| description | Prepare a qsv release by bumping versions across all files and updating changelog |
| disable-model-invocation | true |
Release Preparation
Prepare a qsv release by updating version numbers across all required files and generating a changelog entry.
Arguments
version (required): The new version number (e.g., "16.2.0")
msrv (optional): New minimum supported Rust version, if changing
Version Bump Checklist
Update the version string in ALL of these files:
Cargo.toml (line 3): version = "X.Y.Z"
CLAUDE.md: **Current Version**: X.Y.Z in Project Overview
.claude/skills/manifest.json: "version" field (MCP server version -- may differ from binary version)
.claude/skills/package.json: "version" field (must match manifest.json)
CHANGELOG.md: Add new version section at top
If MSRV is changing, also update:
6. Cargo.toml (line 15): rust-version = "X.Y"
7. CLAUDE.md: **MSRV**: Rust X.Y in Project Overview
Changelog Entry
Add a new section at the top of CHANGELOG.md following this format:
## [X.Y.Z] - YYYY-MM-DD
### Added
- (new features)
### Changed
- (changes to existing features)
### Fixed
- (bug fixes)
### Removed
- (removed features)
Use git log from the last release tag to populate the changelog sections.
Exclude commits with (mcp) or (plugin) in the title — those belong in the MCP/Plugin changelog (.claude/skills/CHANGELOG.md) and are handled by /mcp-release-prep.
Add links to relevant PRs and issues for each changelog entry when possible.
Post-Version-Bump Steps
After version bumps, remind the user to:
- Run
cargo build --locked --bin qsv -F all_features to verify the build (omit --locked if deps changed)
- Run
cargo test -F all_features to verify tests pass
- Run
qsv --update-mcp-skills to regenerate skill JSONs with new version
- Run
bash contrib/completions/generate_examples.bash to regenerate completions
- Run
cargo +nightly fmt to format any changed Rust files
- Commit all changes together
Important Notes
- The MCP server version in
manifest.json/package.json can advance independently of the qsv binary version
- The
minimum_qsv_version field in manifest.json tracks the minimum qsv binary needed, NOT the MCP server version
- After bumping
Cargo.toml version, omit --locked from cargo commands until Cargo.lock is regenerated