用途
Changelog 技能用于自动生成发布说明(release notes)和变更日志(changelog)。它通过分析两个版本之间的 git 历史、提交记录、合并的 PR/MR 以及标签,整理出结构化的更新内容。当用户提出“生成 changelog”“发布说明”等请求时使用。
主要能力
该技能覆盖从发现到发布的完整流程:
-
发现与上下文识别:检测版本策略,读取现有 changelog 文件(CHANGELOG.md、CHANGELOG、CHANGES.md、HISTORY.md、RELEASE_NOTES.md),检查各语言包版本文件(package.json、pyproject.toml、Cargo.toml、pom.xml、build.gradle、mix.exs、setup.py、composer.json、*.gemspec),列出已有标签,确定最新标签,检查发布分支,并计算变更范围(提交数量、日期区间)。若无标签则回退到首个提交。
-
收集变更:收集提交(含完整信息、单行摘要、文件变更、diff 统计、贡献者统计),收集合并的 PR(通过 gh CLI 或从合并提交中提取编号),收集合并的 MR(通过 glab CLI)。
-
分类变更:按约定式提交前缀分类,映射到用户可见标签,包括 feat(新功能)、fix(缺陷修复)、perf(性能)、security(安全)、breaking(破坏性变更)、refactor(重构)、docs(文档)、test(测试)、chore(维护)、ci(CI/CD)、style(代码风格)、deps/build(依赖)、revert(回滚)、deprecate(弃用)。若提交不符合约定式格式,则通过分析 diff 和提交信息关键词进行分类。同时检测破坏性变更,包括提交正文中的 BREAKING CHANGE、被移除的导出/端点、被移除的 API 路由、删除或重命名的数据库迁移、变更的配置/环境变量要求。
-
输出格式:提供四种格式。格式 A 为 Keep a Changelog(推荐用于库/开源项目),遵循 keepachangelog.com 格式,含 Added、Changed、Fixed、Security、Deprecated、Removed 等小节及对比链接。格式 B 为面向用户的发布说明(用于产品/应用),以终端用户视角撰写,含 Highlights、Improvements、Bug Fixes、Security、Breaking Changes、Upgrade Notes。格式 C 为面向开发者的发布说明(用于内部团队),技术细节详尽,含摘要、破坏性变更(API、数据库、环境变量)、按领域划分的变更、部署清单、回滚方案、贡献者、统计表。格式 D 为紧凑型 changelog(用于快速发布),以单段式列出功能、修复、安全、性能、基础设施、破坏性变更、新环境变量。
-
版本号升级建议:基于语义化版本规则,检测到破坏性变更建议 MAJOR 升级,有新功能建议 MINOR 升级,仅有缺陷修复建议 PATCH 升级,并给出对应的 shell 判断逻辑。
-
更新 changelog 文件:向现有 CHANGELOG.md 前置新条目,规则包括:永不覆盖、始终在头部下方前置新条目、保留历史条目、将 [Unreleased] 内容移入新版本、更新底部对比链接、匹配既有风格。
-
平台发布创建:提供 GitHub Release(含正式版、预发布、草稿)、GitLab Release、npm 发布、PyPI 发布的命令示例。
使用方式
该技能以结构化流程执行,通过 shell 命令(git、gh、glab、npm、python 等)收集信息并生成内容。用户只需提出生成 changelog 或发布说明的请求,技能即按上述步骤运行。
适用场景
- 开源库或项目需要维护 Keep a Changelog 格式的变更日志
- 产品/应用需要面向终端用户的发布说明
- 内部工程团队需要技术细节详尽的发布文档
- 高频发布团队需要紧凑型 changelog
- 需要根据变更内容建议语义化版本号
- 需要在 GitHub、GitLab、npm、PyPI 等平台创建发布
限制
资料中未提供该技能的具体安装方式、收费模式、价格、支持平台范围或效果保证等信息。