通用发布工作流
自动检测版本文件与多语言更新日志,一键完成版本号提升、提交、打标签并发布 GitHub Release。
证据表明该技能在关键操作前请求用户确认(第8步),支持--dry-run模式,并将输出限制在designs/目录及本地预览服务器。存在一些权限要求较高的情况,例如自动提交、推送和创建GitHub Release,但均需显式确认。未发现明显的数据泄露或过度行为。扣分原因:用户确认流程依赖AskUserQuestion工具的存在和正确实现,若缺少该工具可能回退到纯文本提示,但指令要求在所有运行时都需回退;此外,未明确指示在发布前检查敏感数据或凭据,也没有明确的回滚机制。
指令详细且结构化,但作为静态审查,无法验证关键路径的复制。存在多个shell命令(如git tag、git log、git diff、gh release)可能因环境差异而失败,但缺乏对这些失败的处理和反馈。在异常输入(如无标签、无更改、无匹配的changelog部分)情况下有少量处理,但失败反馈不够详细。扣分原因:由于静态审查限制,未达到满分;未提供测试套件来验证自身流程;错误处理可能不足,主要依赖shell命令的退出状态而非显式的条件检查。
技能明确定位为通用发布流程,支持多种项目类型和语言。触发词清晰(如“release”、“发布”),适合中文用户。环境适应:大部分操作依赖本地git和gh,但最终推送和GitHub Release依赖外部服务。扣分原因:边界条件声明不充分,如对复杂项目或无git仓库环境下的行为未明确说明;触发条件可能过于宽泛(如“push”可能误触发)。
文档层次清晰,有Quick Start、选项表、详细步骤、配置示例、dry-run示例和已知限制(如不重写公共lightweight tags)。有明确的许可证(MIT)和由Jim Liu维护的说明。扣分原因:未提供明确的版本历史或changelog;缺少关于技能自身安装和更新的说明;缺少FAQs和故障排除部分。
核心任务(版本发布和changelog生成)有详细步骤,输出格式清晰(如changelog格式、提交信息格式)。但作为静态审查,无法验证实际输出是否直接可用。扣分原因:未提供实际输出样本或用户反馈来证明有效性;涉及大量外部依赖(如gh、git),这些依赖可能不可用;生成的多语言changelog质量依赖模型能力,可能不完全可靠。
存在一些可验证的方面,如配置格式和命令示例,但缺乏实际执行证据。有部分测试(如gen-pptx的测试),但这些测试仅覆盖导出的某些部分,而非技能的核心工作流。扣分原因:由于静态审查,无法独立验证;测试覆盖不足;未提供第三方执行证据或用户反馈。
- 技能依赖gh命令和GitHub服务,在中国大陆网络环境下可能无法访问,导致发布功能受限;建议在离线或受限网络环境中明确声明。
- 自动提交、推送和创建Release前有确认步骤,但若用户未仔细阅读,可能造成意外发布;应提醒用户注意审查即将执行的命令。
- 未发现恶意代码,但技能允许自动执行git和gh命令,可能对仓库造成不可逆影响;建议在使用前备份仓库或在支持回滚的环境中使用。
这个 Skill 能做什么,适合哪些场景?
这是一个通用发布技能,适用于 Node.js、Python、Rust、Claude 插件及任意项目类型。它能自动检测版本文件和更新日志,根据提交记录智能决定版本号,并生成多语言(中、英、日等)的变更记录;同时支持将提交按模块拆分、创建带注释的标签、发布 GitHub Release,以及回填历史 Release。
扫描项目中的版本文件(package.json、pyproject.toml、Cargo.toml、marketplace.json、VERSION/complex)和更新日志文件(CHANGELOG*.md 等);分析最近标签以来的提交并归类为 feat/fix/docs 等类型;根据破坏性变更或用户参数决定版本升级类型;生成多语言变更记录并标注第三方贡献者;按模块/技能分组提交并自动更新相关的 README;创建发布提交和带注释标签;推送远端并发布 GitHub Release;也支持 --dry-run 预览和 --backfill-releases 回填历史 Release。
- 维护多个技能/模块的开源仓库,希望每次发版时自动分组提交并更新对应的 README。
- 团队使用中英日三种语言维护变更日志,希望发布时自动生成各语言版本的更新记录。
- 需要将现有 Git 标签补录为 GitHub Release 的维护者。
- 在 Claude Code 或 Codex 等本地代理中通过自然语言快速触发标准发布流程。
这个 Skill 有哪些优点和局限?
- 自动检测项目类型,无需手动配置即开即用。
- 内置多语言更新日志生成(zh/ja/ko/de/fr/es),并自动标注第三方贡献者。
- 支持可选的 .releaserc.yml 钩子,可将自定义打包/发布逻辑与通用流程解耦。
- 提供 dry-run 模式,安全预览所有变更。
- 支持回填历史 Release,便于迁移旧项目。
- 依赖 GitHub CLI (gh) 且需要认证,否则无法执行 GitHub Release 相关操作。
- 仅自动检测有限的项目类型(package.json、pyproject.toml 等),不支持的配置需通过 .releaserc.yml 手动指定。
- 发布流程要求保留历史版本标签,若仓库没有 v* 标签可能无法正常分析。
- README 中未提供自动化测试,可靠性依赖实际环境验证。
- 多语言更新日志仅支持预定义的语言代码映射,未覆盖所有地区变体。
如何安装这个 Skill?
该技能位于仓库的 .claude/skills/release-skills/ 目录,属于 baoyu-design 集合的一部分。可使用 npx skills add JimLiu/baoyu-design 安装整个集合(会自动检测代理),或手动将 .claude/skills/release-skills/ 文件夹复制到项目的 .claude/skills/ 目录。该集合采用 MIT 许可证,由 Jim Liu 维护。
如何使用这个 Skill?
在支持 Agent Skills 的客户端中,直接输入“发布”或“release”即可触发。例如在 Claude Code 中运行 /release-skills 开始自动检测项目配置。支持参数:--dry-run 预览、--major/--minor/--patch 强制版本类型、--backfill-releases 回填历史 Release。过程中会通过问答工具确认版本号和发布方式。
这个 Skill 与同类方案有什么区别?
与 semantic-release(开源社区常用)相比,本技能采用 Agent Skill 形式,可以融入自然语言交互流程,并直接支持多语言变更日志和按模块分组提交;但缺少 semantic-release 丰富的插件生态。