Version Decider

Version Decider 将您当前的版本和代码变更转换为一个明确且有标准支持的 SemVer 发布推荐。

elisabeth15501
2026年10月13日
0 收藏
78 下载

安装与下载

1 ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install version-decide

2 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/
工作区 {'/skills/'}

优先级:工作区 › 全局 › 内置

3 提示词安装

将此提示词复制到 Openclaw 即可自动安装。

请帮我使用 Clawhub 安装 skill-version-decide。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

更倾向于下载?

获取包含原生技能文件的ZIP压缩包。

下载技能 (.zip)

基本信息

名称 Version Decider
Slug version-decide
创建者 elisabeth15501
创建时间 2026-10-13 05:48:05
更新时间 2026-10-13 05:48:05
收藏数 0
使用量 78
浏览量 6

安装指南

  1. ClawHub CLI 从源直接安装技能的最快方式。
    npx clawhub@latest install version-decide
  2. 手动安装 将技能文件夹复制到以下位置之一
    全局模式
    ~/.openclaw/skills/
    工作区
    /skills/
    优先级:工作区 > 本地 > 内置
  3. 提示词安装 将此提示词复制到 OpenClaw 即可自动安装。
    请帮我使用 Clawhub 安装 version-decide。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
    更倾向于下载?
    获取包含原生技能文件的ZIP压缩包。
    下载技能 (.zip)

什么是

Version Decider 帮助开发者(尤其是初学者)在无需盲目猜测的情况下选择下一个发布版本。它检查当前项目版本,评估公共 API 及拟议变更,并使用确定性的 Python 脚本计算出一个包含具体原因和相关 SemVer 条款的推荐结果。
作为 Openclaw Skills 的一部分,它处理主版本(major)、次版本(minor)、修订号(patch)和无发布决策,以及 0.x 版本控制和 alpha、beta、release-candidate 的推进。它会询问不确定的兼容性风险,而不是假定变更安全,并且不会将 SemVer 规则应用于 CalVer 项目。

应用场景

确定包含新功能、修复或破坏性变更的发布是否需要主版本、次版本或修订号更新。
在 0.x 开发期间选择版本,包括次版本更新代表破坏性边界的情况。
推进或评估 alpha、beta 或 release-candidate 版本。
检查废弃弃用(deprecation)、API 变更、依赖项要求或行为变更是否影响兼容性。
确定仅包含文档、测试、格式化或 CI 的变更是否需要发布。
获取包含合理理由和标准条款的单一推荐以支持发布决策。
不适用于 CalVer、查找现有发布版本、在没有发布决策的情况下查找当前项目版本、包安装问题或通用发布规划。

工作原理

收集发布上下文。 检查项目文件或 Git 标签以获取当前版本;建立公共 API 边界;收集变更和目标生态系统或渠道。缺少细节时提出询问,而不是进行猜测。
检查兼容性风险。 审查公共导出、函数签名、先前成功的调用、配置和默认值、最小依赖要求以及缩小的类型或字段。如果破坏状态不明确,请提出有针对性的问题。
对变更进行分类。 应用技能的决策规则:破坏性变更为主版本(major),兼容的公共新增功能和弃用为次版本(minor),兼容的修复和内部改进为修订号(patch),仅文档或类似变更可能不需要发布。对于批量变更,主版本优先于次版本,次版本优先于修订号。
使用决策引擎计算。 运行 scripts/semver_check.py 执行版本算术运算。Agent 不会手动计算版本号;如果脚本失败,它会报告错误而不是捏造结果。
返回一个可操作的答案。 给出推荐结果,解释具体变更和适用的 SemVer 条款,说明需要的任何假设或确认,并提供相关的下一个命令。如果项目使用 CalVer 或需要人工决策(例如确认 1.0.0 的 API 稳定性),则停止。

配置指南

该技能需要 Python 3 及其内置的 scripts/semver_check.py 决策引擎。SKILL.md 没有指定单独的安装命令或要求安装任何包。请保持技能的脚本和引用供 Agent 使用,然后提供项目和发布变更细节。版本探测是只读的;如果无法识别当前版本,Agent 应当主动询问。
版本探测命令示例:
cat package.json 2>/dev/null | grep '"version"'
cat pyproject.toml 2>/dev/null | grep -i version
git tag --sort=-v:refname 2>/dev/null | head -5
通过技能脚本运行算术计算,使用实际的当前版本和变更描述:
python scripts/semver_check.py analyze 1.2.3 --changes "feat: add JSON output" "fix: handle empty input"
对于后续计算或解释,脚本还支持如下命令:
python scripts/semver_check.py next 1.3.0 --level minor
python scripts/semver_check.py check 1.3.0
python scripts/semver_check.py explain
使用 --lang en|zh|auto 选择本地化的 CLI 消息。auto 会检查 LC_ALL、LC_MESSAGES 和 LANG,然后降级回 English。Openclaw Skills 工作流不发起网络调用、不安装任何包,也不修改项目。

数据架构

Version Decider 不会生成或修改项目文件。它读取本地项目版本信息并评估用户提供的变更描述;其 Python 决策引擎执行确定性的版本算术计算。
信息 角色
当前版本 从项目元数据或 Git 标签中读取;如果缺少则绝不盲目假设。
公共 API 边界 定义哪些兼容性变更会影响依赖者。如果未明确说明,技能会在推荐版本之前要求用户进行定义。
变更列表和兼容性解答 用于将变更评级为主版本(major)、次版本(minor)、修订号(patch)或无(none)的输入。
生态系统或发布渠道 指导特定生态系统的解释;仅当用户未指定时才假定 npm 语义,并会说明该假设。
CLI 结果 脚本计算下一个版本并提供决策级别和理由。CLI JSON 键保持 English;本地化值取决于选定的语言。JSON 报告和日志保持 English。
技能文件与引用分类
scripts/semver_check.py — 必需,无依赖的决策与算术引擎。
references/decision-tables.md 和 references/decision-tables.zh.md — 评级规则、确认清单、边界情况和模糊地带。
references/standards-comparison.md 和 references/standards-comparison.zh.md — SemVer、Conventional Commits、PEP 440、Cargo、Go 和 CalVer 的标准参考。
locales/en.json 和 locales/zh.json — 面向用户的文本表。
references/i18n-plan.md — 本地化实现指导。
scripts/test_semver_check.py 和 scripts/measure_skill.py — 维护工具,不属于发布决策流程的一部分。
技能元数据还标识了用于版本控制和语义化版本控制主题的名称、slug、版本、摘要和标签。不会读取任何密钥、网络配置或无关的环境变量。

高级特性

确定性、零依赖的 Python 算术确保相同的输入产生相同的版本结果。
强制执行单一推荐,并要求 Agent 检查当前版本,对不确定的破坏性变更进行询问,引用具体的 SemVer 条款,并避免手动计算。
处理 0.x 语义、显式的 0.x 到 1.0.0 毕业、预发布递进、构建元数据以及特定生态系统的细节(如 Python PEP 440 预发布表示法)。
analyze
、
check
、
next
、
explain
compare
的 CLI 操作,以及用于预发布阶段、构建元数据、在预发布版本链内变基(rebase)和语言选择的标志。
对批量变更应用主版本优先于次版本、次版本优先于修订号的优先级规则,并区分弃用与后期的 API 移除。
仅使用
LC_ALL
、
LC_MESSAGES
LANG
进行自动输出语言选择;它不发起网络调用,且没有任何项目修改副作用。
包含 37 个回归测试和一个用于维护的独立技能合规性测量助手;两者均未在运行时发布决策工作流中使用。


name: version-decide slug: version-decide
version: 1.0.0
displayName: Version Decider
summary: Decides the next SemVer version number from code changes, for beginner developers. Outputs a single, unambiguous version recommendation.
tags: [versioning, semver, semantic-versioning, release-decision, version-management, 版本号, 语义化版本]
description: 'Decide the NEXT SemVer version number from the SCOPE OF CODE CHANGES for an upcoming release, and output a single, unambiguous recommendation with cited standard clauses. Use only when the user is deciding which version to assign to a release they are about to cut (e.g. "what version should this release be", "major or minor or patch", "what to bump in 0.x", "how to advance alpha/beta/rc", "is this breaking"). NOT for: looking up an already-published version, asking the install command, CalVer/date-based versioning, or general release/project-management questions. Ships a deterministic arithmetic core: same input always yields the same output.' when_to_use: |
Typical triggers: "Next release adds a new character and a new feature — what version should it be?"
"1.2.3 — which version fits next?"
"0.3.1 — minor or patch?"
Explicitly NOT for (do not mis-trigger):

  • CalVer / date-based versioning (version IS the release date, e.g. 26.04, 2026.08.19) — confirm the scheme before anything else
  • Only asking "when was v1.5.0 released" — that is a lookup, not a release decision
  • Asking the install command "how do I install v2" — that is package management, not version decision
  • Asking what the current version of some project is — just read it, this skill is not needed
  • Generic "should I release now" / project-management or roadmap questions — that is release planning, not version numbering allowed-tools: Read, Grep, Glob, Bash(python*), AskUserQuestion
    disable-model-invocation: false
    user-invocable: true