关于 keep-a-changelog
用于维护变更日志的技能,可协助 Agent 更新 `## [Unreleased]`,并按要求准备版本章节。它遵循仓库规则,区分面向用户的变更与内部工作;验证脚本只检查格式,不会编辑文件。
主要功能
- 01维护 Unreleased 章节
- 02按要求准备版本章节
- 03遵循仓库特定的变更日志规则
- 04识别影响使用者的变更
- 05验证格式但不编辑文件
适用场景
- 01记录影响用户的行为变更
- 02按仓库规则检查变更日志
- 03按明确要求准备版本章节
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ morzecrew/ agent-skills --skill keep-a-changelog安装后在 Claude Code 中输入/keep-a-changelog确认已加载。
附带文件references/spec-and-workflows.mdscripts/validate_changelog.py
详细介绍
更新日志助手
更新日志是写给人的。一份好的更新日志能让读者不看差异就回答“升级对我有什么影响?”。Agent 维护 ## [Unreleased],并会在收到明确要求时准备版本章节;何时截版、打标签和发布,由人来决定。
格式、类别、重大变更、回滚、撤回发布、条目风格、本仓库的规范以及两种工作流,均见
references/spec-and-workflows.md——编辑文件前请先阅读。scripts/validate_changelog.py 会检查其中可机械化验证的部分:
python3 skills/keep-a-changelog/scripts/validate_changelog.py CHANGELOG.md
python3 skills/keep-a-changelog/scripts/validate_changelog.py --house-rules CHANGELOG.md
它不会编辑文件。它无法判断的,是以下全部内容。
哪些变更值得记录
只有对使用者有意义的变更才值得记录。判断标准:这会影响用户如何安装、导入、使用软件,或是否应该信任软件吗? 如果不会,就不要记录——即使它是本次发布中规模最大的变更。
通常应记录:公共 API 变更、新增或变更的行为、打包和安装变更、弃用、安全修复。
通常不应记录:测试变更、CI 和工作流更新、内部工具、仅涉及文档的变更、仅涉及格式和 lint 的变更、没有可观察影响的重构、琐碎的重命名。
根据仓库自身的布局确定产品代码的边界——即发布的代码所在位置(src/、cmd/ 加上 internal/、lib/、某个包目录)——并将其中的变更视为与用户相关的变更:公共 API 和命令、领域原语、契约和架构、行为,以及打包。切勿将一个仓库的布局边界套用到另一个仓库。
有两项判断验证器永远无法替你做:
- 变更主要属于哪个类别(当它同时符合两个类别时)。如果重写同时修复了一个 bug,当重写是重点时,应归为
Changed;当修复是重点时,则应归为Fixed。两者都列会让发布看起来比实际规模大一倍。 - 条目是否属实且描述了结果。 条目格式正确,却描述了实现而非效果,依然能通过所有检查,却仍然无法满足读者的需求。
每个标记为重大变更的提交(💥 / ! / BREAKING CHANGE: 页脚,参见
gitmoji-conventional)都必须生成一条明确说明该重大变更的记录,并暗示下一次发布应为 MAJOR 版本。
相关技能
gitmoji-conventional— 提交消息和 PR 标题;其重大变更标记表示必须在条目中明确指出重大变更。若没有该技能,则从差异中读取相同信号:公共符号被移除或更改,就属于重大变更,不论提交主题写了什么。