SuperAPI AI 工具集

write-release-notes

通用与其它

查看项目

更新于 10-16 08:10

技能介绍

用途:根据给定版本标签自动生成发布说明,先从 GitHub 获取发布元数据与每个关联 PR 的标题、描述,再整理成连贯的发布公告。

主要能力:脚本一次拉取发布元数据与 PR 详情,输出 RELEASE METADATA 与 PR DETAILS 两部分,后者每行一个 JSON,含 number、title、body、labels、author、mergedAt、url。随后按约定式提交前缀或标签归类为 Features、Bug Fixes、Performance、Refactors、Maintenance,Dependabot 等依赖升级归入 Maintenance,找不到的 PR 跳过。最终产出 Markdown,结构包含标题加版本与主题句、What's New、Highlights、Bug Fixes & Reliability、Under the Hood、Contributors 与完整更新日志链接。文稿强调以用户视角说明变化、避免营销化形容词、不写内部模块或函数名、不出现 PR 或 issue 编号。Contributors 只列外部贡献者,需排除 @tusharmath、@amitksingh1490、@laststylebender14 及机器人;无外部贡献者则省略该节。

使用方式:拉取数据执行 bash .forge/skills/write-release-notes/scripts/fetch-release-data.sh <version> [owner/repo],版本为发布标签(如 v1.32.0),仓库可选,默认用 gh repo view 检测当前仓库。写完后可校验长度:echo "<release notes>" | bash .forge/skills/write-release-notes/scripts/validate-release-notes.sh,输出 FAIL 需精简直到 PASS;精简顺序为先删 Under the Hood,再压缩 Bug Fixes,再缩短单条 PR 描述,最后删除影响力较小的 Highlights。若发布正文没有关联 PR,则回退到比较标签间的提交:gh api repos/<owner>/<repo>/compare/<prev_tag>...<version> --jq '.commits[].commit.message'。最终说明直接打印在对话中,除非用户明确要求,否则不写文件。

限制:结果长度需控制在 2000 字符以内;脚本会自动处理 gh CLI 的 ANSI 颜色码;未找到的 PR(未合并关闭、私有等)会被静默跳过。是否可离线运行、支持哪些 GitHub 认证方式等未提供。