关于 update-changelog
update-changelog 是依据仓库证据更新 `docs/CHANGELOG.md` 的技能,避免凭猜测编写。它核对发布说明、标签和提交记录,并按项目现有风格撰写简洁条目。
主要功能
- 01匹配现有变更日志格式和语气
- 02确定最新尚未记录的版本
- 03依据发布说明、标签、历史和差异
- 04纳入用户可见变更及相关修复
- 05核对日期、版本和 Markdown 结构
适用场景
- 01为 `docs/CHANGELOG.md` 添加最新发布条目
- 02使变更日志与 GitHub Releases 内容一致
- 03依据提交历史和代码差异总结标签
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ alibaba/ page-agent --skill update-changelog安装后在 Claude Code 中输入/update-changelog确认已加载。
详细介绍
更新变更日志
根据仓库中的事实证据更新 docs/CHANGELOG.md,而不是凭猜测。
适用场景
- 将最新版本条目添加到
docs/CHANGELOG.md - 将变更日志文本与 GitHub Releases 保持同步
- 从 git 历史或代码差异中总结最新标签的变更
默认约定
- 措辞保持简洁
- 除非用户明确要求补充更早的版本,否则只添加最新缺失的版本
- 优先使用 GitHub 来源,尤其是 Releases 和标签元数据
- 当发布内容只有少量明确条目时,跳过
Features/Improvements/Bug Fixes标题
操作流程
1. 阅读本地风格
- 打开
docs/CHANGELOG.md - 匹配现有的语气、列表符号、章节顺序和日期格式
2. 确定目标版本
- 读取根目录
package.json中的版本号,并与变更日志顶部条目进行比较 - 查找目标版本的上一个标签
- 如果最新版本已被记录,则停止操作并报告无需更新变更日志
3. 收集证据
按以下顺序优先参考这些来源:
- GitHub 发布说明
GH_PAGER=cat gh release view v<version> --repo <owner>/<repo> --json tagName,name,publishedAt,body
- 标签日期
git log -1 --format=%cs v<version>
- 标签之间的提交历史
git --no-pager log --format='%h %s' --no-merges v<previous>..v<version>
- 当提交标题含糊不清时,查看差异范围
git --no-pager diff --name-only v<previous>..v<version>
git --no-pager diff --stat v<previous>..v<version>
- 仅当面向用户的变更仍不清楚时,才直接阅读相关文件
4. 筛选变更日志应包含的内容
应包含:
- 面向用户的功能
- 重要的行为变更
- 提升可靠性、兼容性或开发者体验的 bug 修复
- 仅当实质改变了受支持的配置或入门流程时,才包含小幅文档更新
除非明确要求,否则应排除:
- 纯版本号升级
- 常规依赖更新
- 对可见影响为零的内部重构
- 机械性的格式噪音
5. 选择结构
- 如果发布内容有 1 到 3 个明确要点,则直接在版本标题下写平铺的列表项
- 如果发布内容包含多个不同条目,则使用简短的标题,例如
### Features、### Improvements和### Bug Fixes - 如果分类会使条目变长或变杂乱,则不要强行分类
6. 撰写条目
- 仅添加或更新所请求的发布条目
- 列表项保持简短具体
- 复用邻近条目中已有的项目术语
- 避免营销式语言
- 不要逐字复制嘈杂的 GitHub 发布文本
7. 验证
- 检查日期、版本号和标签边界
- 确保 Markdown 结构与邻近条目一致
- 确认除非有要求,否则没有添加中间版本
完成检查
- 最新请求的版本已被记录
- 措辞简洁,并与周围的变更日志保持一致
- 条目有 GitHub 发布、git 历史或代码差异作为证据支撑
- 低信号的内部变更已被排除
评论
支持 Markdown