bump-versionlisted
Install: claude install-skill snowzhaozhj/claude-devtools-rs
# bump-version
**触发**:用户显式 `/bump-version <new-version>` 或自然语言"bump 到 0.1.2 / 升版本 / 准备发 vX.Y.Z"。
**不触发**:任何没有明确版本号的场景。模型自主调用已禁用(`disable-model-invocation: true`)—— bump 版本是有副作用的发版动作,必须用户授权。
## 输入
- 新版本号(SemVer,形如 `0.1.1` / `1.2.3`)
约束:
- 必须是纯数字 `X.Y.Z`——**禁止** `0.3.0-rc.1` / `0.3.0-beta` 等含字母后缀(CLAUDE.md "发布与分支策略"段:Windows MSI bundler 不接受 pre-release 含字母)
- 若用户没给版本号:用 AskUserQuestion 问一次,不要自己猜
## 三处同步点(必须一致,否则 `just release-check` 拒)
1. `Cargo.toml` workspace 根:`[workspace.package]` 下 `version = "X.Y.Z"`
2. `src-tauri/Cargo.toml` 独立 manifest:`[package]` 下 `version = "X.Y.Z"`
3. `src-tauri/tauri.conf.json` JSON:`"version": "X.Y.Z"`
## 工作步骤
### 1. 读取当前版本
```bash
grep -E '^version\s*=' Cargo.toml | head -1 | sed -E 's/.*"([^"]+)".*/\1/'
grep -E '^version\s*=' src-tauri/Cargo.toml | head -1 | sed -E 's/.*"([^"]+)".*/\1/'
grep -E '"version":' src-tauri/tauri.conf.json | head -1 | sed -E 's/.*"version":[[:space:]]*"([^"]+)".*/\1/'
```
三处应当相等(`just release-check` 的前置不变量)。若不一致:**停下来**报告当前状态、让用户决策以谁为基准,再统一——不要强行 bump,可能覆盖别人未 push 的改动。
### 2. 用 Edit 工具改三处
**禁止用 `sed -i`**(BSD/macOS 需要空串参数,易出错;Edit 工具有 stale-read 保护)。
- `Cargo.toml` 的 `[workspace.package]` 段里 `version = "<old>"` → `version = "<new>"`
- `src-tauri/Cargo.toml` 的顶层 `[package]` 段里 `version = "<old>"` → `version = "<new>"`
- `src-tauri/tauri.conf.json` 的 `"version": "<old>",` → `"version": "<new>",`
### 3. 跑 `just release-check`
```bash
just release-check
```
该命令检查三处版本一致 + 工作树干净 + 跑 `just preflight`(fmt + li