用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Hoshino-Yumetsuki/kiro.rs --skill version-bump命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | version-bump |
| description | 升级项目版本号并提交git,支持patch/minor/major版本升级或指定具体版本号,自动从git log生成CHANGELOG |
| version | 1.2.1 |
| author | https://github.com/BenedictKing/kiro.rs/ |
| allowed-tools | Bash, Read, Write, Edit |
| context | fork |
当用户输入包含以下关键词时,自动触发版本升级流程:
patch: patch 版本 +1minor: minor 版本 +1, patch 归零major: major 版本 +1, minor 和 patch 归零2.1.0): 直接使用该版本号⚠️ 重要: 默认情况下,版本升级后必须创建 tag 并推送!只有推送 tag 才能触发 GitHub Actions 自动编译发布。除非用户明确说"不要 tag"或"--no-tag",否则始终创建并推送 tag。
--no-tag 或 "不要 tag": 不创建 git tag(仅提交版本变更)--push 或 "并推送"、"push": 推送 commit 到远程仓库(默认行为)⚠️ 每次版本升级必须同时修改以下所有位置,缺一不可!Rust 项目还必须同步检查并更新
Cargo.lock中当前包(如kiro-rs)的版本号,确保与发布版本一致。
| # | 文件 | 字段/内容 | 格式 | 示例 |
|---|---|---|---|---|
| 1 | VERSION | 整个文件内容 | v{major}.{minor}.{patch} | v1.0.1 |
| 2 | Cargo.toml | version = "..." (第3行) | {major}.{minor}.{patch} (无 v 前缀) | "1.0.1" |
| 3 | Cargo.lock | 当前包(如 kiro-rs)的 version = "..." | {major}.{minor}.{patch} (无 v 前缀) | "1.0.1" |
| 4 | CHANGELOG.md | ## [Unreleased] → ## [v{版本}] - 日期 | [v{major}.{minor}.{patch}] - YYYY-MM-DD | [v1.0.1] - 2026-02-08 |
cat VERSION
根据用户指定的升级类型计算:
| 当前版本 | 升级类型 | 新版本 |
|---|---|---|
| v1.0.0 | patch (默认) | v1.0.1 |
| v1.0.0 | minor | v1.1.0 |
| v1.0.0 | major | v2.0.0 |
| v1.0.0 | 2.1.5 | v2.1.5 |
# 更新 VERSION 文件
echo "v{新版本号}" > VERSION
# 更新 Cargo.toml 中的 version 字段(不带 v 前缀)
# 使用 Edit 工具将 version = "旧版本" 替换为 version = "新版本"
# Rust 项目额外要求:同步更新 Cargo.lock 中当前包(如 kiro-rs)的 version 字段
# 使用 Edit 工具将 Cargo.lock 中对应 [[package]] 段落里的 version = "旧版本" 替换为 version = "新版本"
前置检查(必须):
## [Unreleased] 区块## [Unreleased] 与下一个 ## [v 之间是否存在非空行)| 情况 | 行为 |
|---|---|
有 [Unreleased] 且有变更内容 | ✅ 正常替换为新版本号和日期 |
有 [Unreleased] 但下方无变更内容 | 进入 git log 自动生成 流程 |
无 [Unreleased] 区块 | 进入 git log 自动生成 流程 |
git log 自动生成流程:
当 CHANGELOG 中没有现成的变更内容时,从 git log 自动生成:
获取上一个版本 tag 到 HEAD 的提交记录:
git log v{上一个版本}..HEAD --pretty=format:"%h %s"
如果没有提交记录,❌ 中止流程,提示用户没有新的变更
按 Conventional Commits 的 type 将提交分组为 CHANGELOG 分类:
| type | CHANGELOG 分类 |
|---|---|
feat | 新增 |
fix | 修复 |
perf | 优化 |
refactor | 重构 |
docs | 文档 |
chore, ci, build | 其他 |
revert | 回滚 |
为每个提交生成简洁的 CHANGELOG 条目,参考已有 CHANGELOG 条目的风格(含加粗标题和详情描述)
在 CHANGELOG.md 顶部插入新版本区块(在第一个 ## [v 之前):
## [v{新版本号}] - YYYY-MM-DD
### 新增
- **功能标题** - 简要描述
### 修复
- **修复标题** - 简要描述
仅保留有内容的分类,跳过空分类
替换规则(有 Unreleased 时):
# 替换前
## [Unreleased]
# 替换后
## [v{新版本号}] - YYYY-MM-DD
cat VERSION
grep '^version' Cargo.toml
grep -A2 '^name = "kiro-rs"' Cargo.lock
cat CHANGELOG.md | head -20
git status
git diff --stat
检查工作区状态:
如果工作区有未提交的修改(除 VERSION、Cargo.toml、Cargo.lock 和 CHANGELOG.md 外),询问用户:
git add -A 提交所有修改提交信息规则:
chore: bump version to v{新版本号}# 包含所有修改
git add -A
git commit -m "{用户确认的提交信息}"
# 或仅提交版本文件
git add VERSION Cargo.toml Cargo.lock CHANGELOG.md
git commit -m "chore: bump version to v{新版本号}"
⚠️ 除非用户明确说"不要 tag",否则必须创建 tag!
git tag v{新版本号}
# 推送 commit
git push origin master
# 推送 tag(触发 GitHub Actions 自动编译发布)
git push origin v{新版本号}
用户输入: "升级版本号并提交" 或 "更新版本并推送"
自动执行流程:
v1.0.0v1.0.1v1.0.1用户输入: "升级 minor 版本"
自动执行流程:
v1.0.0v1.1.0用户输入: "版本号改为 2.0.0"
自动执行流程:
v1.0.0v2.0.0用户输入: "发布新版本并打 tag 推送"
自动执行流程:
v1.0.0v1.0.1v1.0.1用户输入: "给当前版本打 tag 并推送"
自动执行流程:
v1.0.0v1.0.0版本升级完成:
- 原版本: v1.0.0
- 新版本: v1.0.1
- 升级类型: patch
是否提交 git? (Y/n)
版本升级完成:
- 原版本: v1.0.0
- 新版本: v1.0.1
- 升级类型: patch
✅ Git commit 已创建
✅ Git tag v1.0.1 已创建
是否推送到远程仓库? (Y/n)
- 推送后将自动触发 GitHub Actions
- 自动编译 Linux/Windows/macOS 版本
- 自动发布到 GitHub Releases
当推送 v* 格式的 tag 时,会自动触发以下 workflow:
| Workflow | Runner | 产物 |
|---|---|---|
release-linux.yml | ubuntu-latest | kiro-rs-linux-amd64, kiro-rs-linux-arm64 |
release-macos.yml | macos-latest | kiro-rs-darwin-arm64, kiro-rs-darwin-amd64 |
release-windows.yml | windows-latest | kiro-rs-windows-amd64.exe, kiro-rs-windows-arm64.exe |
docker-build.yml | ubuntu-latest | Docker 镜像 (阿里云容器镜像服务, linux/amd64 + linux/arm64) |
每个 release workflow 使用独立的 concurrency group,确保三个平台并行编译:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false
${{ github.workflow }} 使用 workflow 名称作为前缀,避免不同平台的构建相互阻塞cancel-in-progress: false 确保发布构建不会被取消v{x}.{y}.{z}(无后缀)chore: bump version 格式master基于 SOC 职业分类