mcpField
U
update-changelog

update-changelog

github.com/mitsuhiko开发3.2k125 次安装4 周前更新
代码仓库

关于 update-changelog

用于整理仓库变更日志的技能,可将版本基线之后的重要用户可见变更更新到 Unreleased 部分。它会对照 Git 提交和现有变更日志,并遵循仓库原有格式。

主要功能

  1. 01根据指定版本或最新标签确定基线
  2. 02检查基线之后的提交
  3. 03核对现有变更日志条目
  4. 04将重要变更添加到 Unreleased
  5. 05保留变更日志原有格式

适用场景

  1. 01记录自最近一次发布以来的用户可见变更
  2. 02向现有 Unreleased 部分补充遗漏内容
  3. 03在缺少 Unreleased 部分时创建该部分

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mitsuhiko/agent-stuff --skill update-changelog

安装后在 Claude Code 中输入/update-changelog确认已加载。

详细介绍

更新仓库变更日志,记录上次发布与当前版本(main)之间尚未纳入的变更。如果不存在 CHANGELOG.md,则使用 CHANGELOG。

分步流程

1. 确定基准版本

如果未提供基准版本,请使用最新的 git 标签。可通过 git describe --tags --abbrev=0 查找。

2. 查找 git 提交

使用以下命令收集提交信息:

# Get the baseline version (if not provided)
git describe --tags --abbrev=0

# Get all commits since the baseline version
git log <baseline-version>..HEAD
3. 更新变更日志

阅读现有的变更日志文件(CHANGELOG.md;如果不存在,则使用 CHANGELOG),检查是否有尚未纳入的变更,并将它们添加进去。始终只将变更添加到“Unreleased”部分。如果尚无该部分,则按照现有变更日志的格式在顶部添加(例如,## Unreleased 或 ## [Unreleased])。

编写变更日志的基本规则

内容指南
  • 重点记录会影响用户的重要变更(功能、修复、破坏性变更)
  • 有可用的拉取请求编号时请注明(#NUMBER),但不要写原始提交哈希
  • 忽略无关紧要的变更(拼写修正、内部重构、小幅文档更新)
  • 适当归类相关变更
  • 按重要性排序:先列破坏性变更,再列功能,最后列修复
风格指南
  • 使用有效的 Markdown 语法
  • 每条以过去时动词或描述性短语开头
  • 条目应简洁明了,同时提供足够的信息来理解变更
  • 使用项目符号(* 或 -)列出各项变更
  • 使用反引号标记代码引用(例如,`foo.cleanup`)
格式示例
## 2.13.0

* Added multi-key support to the `|sort` filter.  #827
* Fix `not undefined` with strict undefined behavior.  #838
* Added support for free threading Python.  #841

## 2.12.0

* Item or attribute lookup will no longer swallow all errors in Python.  #814
* Added `|zip` filter.  #818
* Fix `break_on_hyphens` for the `|wordwrap` filter.  #823
* Prefer error message from `unknown_method_callback`.  #824
* Ignore `.jinja` and `.jinja2` as extensions in auto escape.  #832
正例与反例

正例:

  • 修复了 TypeScript SDK 中导致 CJS 配置错误的问题。
  • 添加了检查点写入时延长声明超时的支持。
  • 改进了任务声明过期时的错误报告。

反例:

  • 修复了问题(过于笼统)
  • 更新了依赖项(无关紧要,除非修复了安全问题)
  • 重构了内部代码结构(内部变更,不影响用户)
  • 修正了注释中的拼写错误(无关紧要)

注意事项

  • 如果当前变更日志已有包含内容的“Unreleased”部分,请在其中追加,而不要替换
  • 保留现有变更日志的风格和格式(标题、项目符号样式、排序和间距)
  • 如果仓库使用其他默认分支名称,请将其视为“当前版本”,而不是 main
  • 如果不确定某项变更是否重要,宁可将其纳入

评论

支持 Markdown