SuperAPI AI 工具集

changelog-rules

写作与研究

查看项目

更新于 10-16 06:00

技能介绍

用途

changelog-rules 是一套共享的变更日志(changelog)约定与格式规则,被 /create-changelog 和 /update-changelog 引用。它本身通常不直接调用,而是作为这两个命令的规则依据,用于统一项目变更日志的写法与结构。

主要能力

文件与格式基础

变更日志保存在项目根目录的 CHANGELOG.md。格式基于 Keep a Changelog,使用这些约定的项目遵循语义化版本(Semantic Versioning)。文件顶部包含标题与说明,并引用 Keep a Changelog 与 Semantic Versioning 的链接。

变更是否值得记录(Changelog-Worthiness)

变更日志是给人看的,不是给机器看的。规则区分了应跳过与应包含的变更:

跳过纯内部变更:

  • 无用户可见影响的重构
  • 代码格式化、lint、空白调整
  • 测试新增或修改(除非表明修复了某个缺陷)
  • CI/CD 配置
  • 开发者工具(linter、编辑器配置)
  • 文档更新(README、注释、docstring)
  • 无行为变化的依赖升级

包含影响用户的变更:

  • 新功能或新能力
  • 现有行为的变更
  • 弃用或移除的功能
  • 缺陷修复
  • 安全补丁

条目格式

  • 使用祈使句现在时,结尾不加句号(例如 “Add dark mode support”)
  • 每个独立变更一条项目符号
  • 简洁但完整,包含足够上下文让用户理解影响

以用户为中心的写法

条目描述的是对用户而言发生了什么变化,聚焦结果与影响:

  • 以用户可见的动词开头:“Add”“Fix”“Improve”“Allow”“Prevent”“Show”“Check”。避免以开发者为中心的动词,如 “Enforce”“Implement”“Refactor”“Handle”“Register”。
  • 描述体验,而非机制。“Show grouped notifications: the list buckets items by source before rendering” 在冒号后带上了机制;“Show notifications grouped by the app that sent them” 只陈述用户得到什么。
  • 当变更预防问题或保护用户时,说明它为用户做了什么。

相对上一发布版本的净变化

条目描述的是相对于上一个已发布版本的变化:

  • 判断每条条目时,看上一版本的用户是否会观察到该变化。“No longer does X” 或 “removed the Y glitch” 中 X 或 Y 从未发布过,就是明显的破绽。
  • 正面措辞的条目也隐藏同样的陷阱。“Allow renaming saved filters straight from the list, so fixing a typo takes one click” 读起来像真实改进,但如果保存的过滤器本身就是在同一个未发布周期内引入的,它应归属于引入该功能的条目。
  • 在最终确定发布时,比较上一发布标签时的行为与当前行为:git show <last-tag>:<path>,文件移动时再加 git log --follow -- <path>。标签处存在某路径本身并不能说明问题,因为新行为常常落在原本就存在的文件中。
  • 当条目描述的行为在标签之后才出现时,将其改写为净能力、并入引入该行为的条目,或删除。
  • 每个净用户可见变化保留一条条目。

PR 与 Issue 引用

每条条目使用行内括号格式引用 PR 及关联的 GitHub Issue,编号升序并带链接:

- Add dark mode support ([#38](https://github.com/owner/repo/issues/38), [#42](https://github.com/owner/repo/pull/42))

发现 PR 关联 Issue 的命令:

gh pr view <number> --json closingIssuesReferences --jq '.closingIssuesReferences[].number'
  • 若无关联 Issue,只引用 PR
  • 若无 PR(例如从 git 标签回填),省略引用

变更类型

标准类型按此顺序排列(存在时):Added、Changed、Deprecated、Removed、Fixed、Security。空章节省略。

章节格式

  • Unreleased 章节始终位于顶部
  • 使用 ISO 8601 日期(YYYY-MM-DD)
  • 倒序排列(最新在前)
  • 每个章节标题与其内容之间空一行
  • 底部包含版本比较链接,由仓库远程 URL 推导
  • 检测项目使用 v 前缀标签(如 v1.0.0)还是裸标签(如 1.0.0),并在比较链接中匹配该约定

使用方式

该规则集通常不直接调用,而是由 /create-changelog 和 /update-changelog 引用。用户通过这两个命令创建或更新变更日志时,规则自动生效。

适用场景

适用于采用 Keep a Changelog 与语义化版本、需要统一变更日志写法的项目,尤其是使用 /create-changelog 和 /update-changelog 工作流的仓库。

限制

资料未提供该规则集的具体安装方式、平台支持、收费模式或效果数据,这些信息暂未提供。