SuperAPI AI 工具集

release

通用与其它

查看项目

更新于 10-15 20:29

技能介绍

用途:自动完成一次项目发版,包括推断版本上下文、生成变更日志、升级版本号并打 git 标签。它通过读取 git 历史与项目结构来适配不同仓库,而非硬编码假设。

主要能力:

  1. 上下文收集:用 git tag --sort=-v:refname | head -20 推断标签格式(如 v1.2.3、1.2.3、name-v1.2.3)、版本方案(semver、calver 或自定义)与当前版本;用 git log <last-tag>..HEAD --oneline --no-decorate 查看上次发布以来的提交;扫描常见版本文件(package.json、pyproject.toml、Cargo.toml、VERSION、SKILL.md frontmatter 等)。
  2. 判断升级级别:按 conventional commit 前缀建议——feat 为 minor,fix/docs/chore/refactor/test/ci 为 patch,正文含 BREAKING CHANGE 或类型后带 ! 为 major,取最高级别信号。
  3. 生成变更日志:按提交类型分组,使用可读标题(New Features、Bug Fixes、Documentation、Other Changes),去掉前缀、保持一行一条、保留 SPEC-003 等工件 ID;若存在 CHANGELOG.md 则置顶插入,否则询问是否创建及位置。
  4. 升级版本并提交打标签:仅修改版本值,然后 git add、git commit -m "release: v1.5.0"、git tag -a <tag> -m "Release <tag>"。
  5. 询问是否推送:git push && git push --tags,未经确认不推送。

使用方式:在用户要求发版时调用。开始前若存在 .agents/release.override.skill.md,需先读取,其指令优先于本技能,可收窄默认值、指定版本文件位置、设置标签格式或增加发布前后步骤。执行前会先给出发布计划(当前版本、建议版本、变更日志预览、待更新文件、待创建标签),等待用户确认、调整或中止。

适用场景:任意使用 git 的仓库发版,包括首次发布、预发布版本(如 1.5.0-alpha.1)、monorepo 多版本流。

限制与边界:无标签时需询问用户格式;提交不符合 conventional commit 时不强制分组,改为平铺列表;工作区有未提交改动时会警告并询问继续或中止;多版本流仓库需询问发布哪个包;版本文件存在多个相似字符串且含义不明时需询问用户而非猜测。