用途:根据指定旧标签(如 v0.0.1)以来的改动,生成符合 Keep a Changelog 标准、遵循语义化版本的发布说明,并更新仓库中的 CHANGELOG.md。输入参数为上一个标签 $ARGUMENTS。
主要能力与流程:收集 git log/git diff 信息,可选通过 gh pr list 获取已合并 PR;将变更按 Added、Changed、Deprecated、Removed、Fixed、Security 分类;依据语义化版本建议新版本号;按固定格式撰写条目,要求以祈使动词开头、含范围前缀与 PR 链接、破坏性变更标注 Breaking: 并附 Migration: 说明;更新 CHANGELOG.md 正文与底部对比链接,最后输出摘要。
必要用法与门控:运行前需确保目标标签存在,git tag -l "$PREV_TAG" 须打印一行匹配,git rev-parse "$PREV_TAG^{commit}" 须退出 0;若用 gh pr list 失败,则仅回退到提交主题与合并提交 URL,不得编造 PR 号或链接。更新后必须运行 Step 6 页脚校验(硬门控),对暂存区 CHANGELOG.md 执行两次 grep -q,分别确认新版本页脚行与 [Unreleased] 行指向正确,须打印验证成功并退出 0,否则回到第 5 步修正后重跑。
适用场景:需要规范化发布说明与变更日志的开源或团队仓库,尤其是使用 Conventional Commits 的项目(feat、fix、perf、security 等前缀可映射到对应分类)。
限制:CI/CD、纯文档、格式、测试、无用户可见影响的内部重构及合并提交应排除;不得虚构标签、PR 编号或链接;文档未提供安装方式、收费、平台与性能数据。