SuperAPI AI 工具集

release-skills

部署与运维

查看项目

更新于 10-15 12:28

技能介绍

用途

Release Skills 是一个通用发布工作流技能,用于自动化项目的版本发布流程。它能够自动检测项目配置、分析变更、确定版本号、生成多语言变更日志,并创建发布提交与标签。适用于 Node.js、Python、Rust、Claude Plugin 以及通用项目。

主要能力

  • 自动检测项目配置:扫描并识别版本文件(package.json、pyproject.toml、Cargo.toml、marketplace.json、VERSION/version.txt)以及变更日志文件(CHANGELOG*.md、HISTORY*.md、CHANGES*.md)。
  • 多语言变更日志:根据文件名后缀识别语言(en、zh、ja、ko、de、fr、es),使用内置的章节标题翻译,以目标语言自然撰写变更描述,日期格式统一为 YYYY-MM-DD。
  • 变更分析与分类:基于 git 日志,按约定式提交类型(feat、fix、docs、refactor、perf、test、style、chore)分类变更,并检测破坏性变更(BREAKING CHANGE)。
  • 版本递增判断:按优先级规则确定版本递增方式——用户指定标志优先,其次破坏性变更触发主版本递增,feat 提交触发次版本递增,否则为补丁版本递增。
  • 第三方贡献者归属:通过合并提交与 PR 作者信息识别第三方贡献者,在变更日志条目末尾追加 (by @username) 归属。
  • 按技能/模块分组提交:分析提交影响的文件,按技能/模块分组,检查并更新相关 README,然后分别提交。
  • 用户确认:在创建发布提交前,通过 AskUserQuestion 让用户确认版本递增选项与是否推送到远程。
  • 发布提交与标签:暂存版本文件与变更日志,创建 chore: release v{VERSION} 提交,创建 v{VERSION} 标签,并按用户确认推送。

使用方式

快速开始:直接运行 /release-skills,自动检测项目配置。

可用选项:

标志 说明
--dry-run 预览变更而不执行
--major 强制主版本递增
--minor 强制次版本递增
--patch 强制补丁版本递增

示例用法:

/release-skills              # 自动检测版本递增
/release-skills --dry-run    # 仅预览
/release-skills --minor      # 强制次版本递增
/release-skills --patch      # 强制补丁版本递增
/release-skills --major      # 强制主版本递增(需确认)

工作流步骤:

  1. 检测项目配置(版本文件、变更日志、语言)。
  2. 分析自上一个标签以来的变更(git log、git diff)。
  3. 确定版本递增。
  4. 生成多语言变更日志。
  5. 按技能/模块分组变更。
  6. 分别提交每个技能/模块。
  7. 生成变更日志并更新版本文件。
  8. 用户确认(版本递增与推送选项)。
  9. 创建发布提交与标签。

配置

可在项目根目录放置可选的 .releaserc.yml 文件覆盖默认配置,包括版本文件路径、变更日志文件与语言、章节映射、提交消息格式、标签格式以及发布提交中包含的额外文件。

适用场景

当用户请求以下操作时触发此技能:

  • "release"、"发布"、"create release"、"new version"、"新版本"
  • "bump version"、"update version"、"更新版本"
  • "prepare release"
  • "push to remote"(存在未提交变更时)

注意:即使用户说 "just push" 或 "直接 push" 且存在未提交变更,仍应先执行上述所有步骤。

限制

  • 版本文件路径与变更日志检测依赖项目结构,未提供时按优先级自动检测。
  • 第三方贡献者归属依赖 GitHub CLI(gh)获取 PR 作者与仓库所有者信息。
  • 破坏性变更检测基于提交消息中的 BREAKING CHANGE 标记或公共 API 移除、导出重命名、接口变更。
  • 发布提交不添加 Co-Authored-By 行。
  • 其他未在资料中说明的功能、收费、价格、平台或效果暂未提供。