SuperAPI AI 工具集

release-notes-generator

通用与其它

查看项目

更新于 10-15 22:40

技能介绍

用途:在打 tag 或发布版本时,对比上一个 tag 到当前 HEAD 的 git 历史,按 conventional commit 分类生成标准化 Release Notes,并可生成 CHANGELOG.md。

主要能力:按 feat、fix、docs、refactor、chore、perf、test、security 等前缀分组变更;通过 commit 消息中的 BREAKING CHANGE: 或类型后的 ! 检测破坏性变更;根据变更类型建议版本号(有破坏性变更→major,有新功能→minor,仅修复→patch);使用 templates/release-notes.md 模板输出版本号、日期、分类变更列表与 diff 链接;可选创建 annotated tag 和 GitHub Release。

使用方式:触发词包括 /release-notes、changelog、release notes、版本文档等。命令形式:/release-notes(交互式自动建议版本号)、/release-notes v1.1.0(指定版本号)、/release-notes --dry-run(只生成不创建 tag)。核心步骤:用 git describe --tags --abbrev=0 获取最新 tag,用 git log ${PREV_TAG}..HEAD --oneline 与 git diff ${PREV_TAG}..HEAD --stat 对比变更,分类后生成 notes;如需发布,执行 git tag -a "$TAG" -m "$TAG" 与 gh release create "$TAG" --title "$TAG" --notes-file release-notes.md。

适用场景:创建 tag 或 release、汇总版本变更、生成 CHANGELOG.md、发布前检测破坏性变更、创建带说明的 annotated tag。

限制:不适用于仅查看 git log、修改已有 release notes、多仓库 changelog 生成,以及 CI/CD 自动化发布(可考虑 semantic-release 或 release-please)。无 conventional commit 前缀的提交需根据文件变更推断类型;版本号应遵循 semver;notes 宜精简并附 diff 链接。具体模板细节与完整参数以实际技能文件为准。