关于 version-update
version-update 是用于同步更新 Node、Rust 和 Python 项目语义版本的技能。它会查找包含版本号的文件、应用目标版本并检查差异;只有收到请求时才执行 Git 操作。
主要功能
- 01检测 Node、Rust 和 Python 技术栈
- 02查找版本文件及代码中的版本标记
- 03递增或设置语义版本
- 04同步更新已发现的版本文件
- 05通过脚本支持按请求提交和推送
适用场景
- 01跨支持的技术栈递增项目版本
- 02在多个清单中设置相同版本
- 03提交前检查版本变更
- 04在明确请求提交后推送
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alpoxdev/ hypercore --skill version-update安装后在 Claude Code 中输入/version-update确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
SKILL.ko.mdassets/evals/version-update-cases.jsonlscripts/git-commit.shgit-push.shstack-detect.shversion-apply.shversion-bump.shversion-current.shversion-find.sh详细介绍
版本更新技能
面向 node、rust 和 python 的跨技术栈语义化版本更新,支持直接执行可选的 git 操作。
<output_language>
默认使用韩语撰写所有面向用户的交付内容、已保存的产物、报告、计划、生成的文档、摘要、协调说明、提交/消息草稿和验证说明,即使此规范技能文件是用英文编写的。
保留源代码标识符、CLI 命令、文件路径、架构键、JSON/YAML 字段名、API 名称、软件包名称、专有名词以及引用的源文摘录,并使用其规定语言或原始语言。
仅在用户明确要求、现有目标产物为保持一致性必须使用其他语言,或机器可读契约要求使用精确的英文词元时,才使用其他语言。如果存在本地化模板或参考资料(例如 *.ko.md 或 *.ko.json),则优先用于面向用户的产物。
</output_language>
- 更新 node、rust 和 python 中承载版本号的文件,使其使用同一个语义化版本。
- 确保发现的清单文件和内联版本标记保持同步。
- 用户要求执行提交和推送操作时,使用此技能提供的直接 git 辅助脚本。
<instruction_contract>
| 字段 | 契约 |
|---|---|
| 意图 | 更新受支持项目文件中的同步语义化版本。 |
| 触发条件 | 在用户要求提升/设置版本时激活,尤其是用户要求更新版本并可选提交时。 |
| 范围 | 负责技术栈检测、版本文件发现、目标版本计算、版本应用、差异审查,以及用户要求的 git 操作。 |
| 权限 | 用户和项目指令优先于此技能;发现的版本文件、语义化版本规则、脚本输出和差异均为依据。 |
| 依据 | 使用 bash 辅助脚本、目标参数解析和 git diff,然后再执行 git 写入操作。 |
| 工具 | 使用 bash scripts/*.sh 辅助脚本和本地文件编辑;仅在用户要求时使用此技能的直接 git 辅助脚本。 |
| 循环 | 无。每个请求只执行一轮:检测技术栈、发现版本文件、读取当前版本、计算目标版本、应用更改、审查差异,然后停止。仅在用户要求再次更改版本时重新调用。 |
| 输出 | 使用韩语报告当前版本、目标版本、已更改的文件、提交/推送状态和注意事项。 |
| 验证 | 确认所有预期版本文件均已统一更改,审查差异,并且仅在用户要求时执行可选的 git 步骤。 |
| 停止条件 | 版本文件更新并完成审查后停止;或在用户要求的 git 步骤完成或有依据表明受阻后停止。 |
</instruction_contract>
<trigger_conditions>
| 用户意图 | 激活 |
|---|---|
| “将此软件包升级到 1.4.0” | 是 |
| “更新版本并提交” | 是 |
| “提升此 crate 的修订版本号” | 是 |
| “只创建一个 git 提交” | 否 |
| “重写此发布操作手册” | 否 |
</trigger_conditions>
<supported_targets>
package.jsonCargo.tomlpyproject.tomlsetup.py- python
__version__声明 - 内联
.version('x.y.z')代码模式
</supported_targets>
## 可用脚本| 脚本 | 用途 |
|---|---|
bash scripts/stack-detect.sh | 检测技术栈(node、rust、python) |
bash scripts/version-find.sh [--plain] | 查找包含版本号的文件 |
bash scripts/version-current.sh [file] | 提取当前 semver(`file |
bash scripts/version-bump.sh <current> <type> | 计算下一个 semver |
bash scripts/version-apply.sh <new> [files...] | 将版本号应用到查找到的/选定的文件 |
bash scripts/git-commit.sh "msg" [files] | 直接提交指定的版本更新文件 |
bash scripts/git-push.sh | 在用户明确请求后直接推送 |
<git_integration>
- 如果用户只要求处理版本号,则在检查版本文件和审阅差异后停止。不要提交或推送。
- 如果用户要求提交,则运行
bash scripts/git-commit.sh "chore: bump version to x.y.z" [files...],且只包含version-update更改的文件,除非用户要求使用其他提交消息。 - 如果用户要求推送,则仅在提交成功且用户明确要求推送后运行
bash scripts/git-push.sh。 - 按顺序执行 git 写入操作。
</git_integration>
<version_rules>
| 参数 | 操作 | 示例 |
|---|---|---|
+1 / +patch | 补丁版本 +1 | 0.1.13 -> 0.1.14 |
+minor | 次版本 +1 | 0.1.13 -> 0.2.0 |
+major | 主版本 +1 | 0.1.13 -> 1.0.0 |
x.y.z | 显式设置 | 0.1.13 -> 2.0.0 |
</version_rules>
工作流
# 1) detect stack(s)
bash scripts/stack-detect.sh
# 2) find version-bearing files
bash scripts/version-find.sh
# 3) read current version
bash scripts/version-current.sh
# output: <file>|<version>
# 4) compute next version
bash scripts/version-bump.sh 1.2.3 +minor
# -> 1.3.0
# 5) apply to all discovered files (or selected files)
bash scripts/version-apply.sh 1.3.0
# 6) review the final diff and changed file list
git diff --stat
git diff
# 7) optional commit only when explicitly requested
bash scripts/git-commit.sh "chore: bump version to 1.3.0" package.json
# 8) optional push only when explicitly requested
bash scripts/git-push.sh
<stack_targets>
| 技术栈 | 主要文件 | 其他模式 |
|---|---|---|
| Node | package.json | 代码中的 .version('x.y.z') |
| Rust | Cargo.toml([package].version) | 代码中的 .version('x.y.z') |
| Python | pyproject.toml、setup.py、.py 文件中的 __version__ | 代码中的 .version('x.y.z') |
</stack_targets>
| 类别 | 要求 |
|---|---|
| 输入 | 将 ARGUMENT 解析为版本升级规则或显式 semver |
| 查找 | 应用更新前运行 bash scripts/version-find.sh |
| 当前状态 | 计算目标版本前,使用 bash scripts/version-current.sh 读取当前版本 |
| 一致性 | 确保所有查找到的版本文件保持同步 |
| Git 范围 | 仅提交版本更新文件集 |
| 安全 | 除非用户另有要求,否则使用规范的提交消息(chore: bump version to x.y.z) |
| Git | 仅在用户要求进行 git 写入时使用 bash scripts/git-commit.sh 和 bash scripts/git-push.sh,并按顺序执行 |
<scope_boundaries>
version-update负责版本查找、目标版本计算、文件更新、差异审阅以及用户要求的 git 操作。- 仅提交由
version-update更改的文件。
</scope_boundaries>
正向触发示例
- “将此仓库从 0.8.2 升级到 0.9.0 并提交”
- “提高这个 Python 包的补丁版本”
- “将 package.json 和 Cargo.toml 更新为 2.0.0”
负向触发示例
- “为这些文档更改创建 git 提交”
- “总结我们的发布流程”
边界触发示例
- “只更新版本,不要提交”
触发条件检查:
- 至少保留 3 个有效的正向触发示例
- 至少有 2 个负向触发示例不在适用范围内
- 至少有 1 个边界示例明确区分提交与不提交
执行清单:
- 使用
bash scripts/version-current.sh确认当前版本 - 通过
bash scripts/version-bump.sh计算目标版本(或验证显式指定的 semver) - 使用
bash scripts/version-apply.sh更新所有目标文件 - 检查
git diff - 按要求提交时,使用
bash scripts/git-commit.sh,且只提交版本更新文件 - 仅在成功提交后,按要求使用
bash scripts/git-push.sh推送
禁止事项:
- 未读取当前版本就开始更新
- 存在多个版本文件时只更新一个文件
- 提交版本更新文件集以外的文件
- 对受保护分支执行强制推送