← ClaudeAtlas

bump-versionlisted

同步 bump workspace 版本号三处(Cargo.toml / src-tauri/Cargo.toml / src-tauri/tauri.conf.json)→ 跑 `just release-check`(版本一致 + preflight + lock 同步)。**只在**用户显式 `/bump-version <new>` 或自然语言"bump 版本 / 升版本号 / bump 到 X.Y.Z / 发 vX"时触发——模型不能自主调用,因为这是发版动作必须用户授权。完整发版流程见 `release-runbook` skill。
snowzhaozhj/claude-devtools-rs · ★ 0 · Data & Documents · score 69
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