mcpField
K
keep-a-changelog

keep-a-changelog

github.com/morzecrew开发160 次安装11 周前更新
代码仓库

关于 keep-a-changelog

用于维护变更日志的技能,可协助 Agent 更新 `## [Unreleased]`,并按要求准备版本章节。它遵循仓库规则,区分面向用户的变更与内部工作;验证脚本只检查格式,不会编辑文件。

主要功能

  1. 01维护 Unreleased 章节
  2. 02按要求准备版本章节
  3. 03遵循仓库特定的变更日志规则
  4. 04识别影响使用者的变更
  5. 05验证格式但不编辑文件

适用场景

  1. 01记录影响用户的行为变更
  2. 02按仓库规则检查变更日志
  3. 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 标题;其重大变更标记表示必须在条目中明确指出重大变更。若没有该技能,则从差异中读取相同信号:公共符号被移除或更改,就属于重大变更,不论提交主题写了什么。

评论

支持 Markdown