用途
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 # 强制主版本递增(需确认)
工作流步骤:
- 检测项目配置(版本文件、变更日志、语言)。
- 分析自上一个标签以来的变更(git log、git diff)。
- 确定版本递增。
- 生成多语言变更日志。
- 按技能/模块分组变更。
- 分别提交每个技能/模块。
- 生成变更日志并更新版本文件。
- 用户确认(版本递增与推送选项)。
- 创建发布提交与标签。
配置
可在项目根目录放置可选的 .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 行。
- 其他未在资料中说明的功能、收费、价格、平台或效果暂未提供。