关于 update-changelog
用于整理仓库变更日志的技能,可将版本基线之后的重要用户可见变更更新到 Unreleased 部分。它会对照 Git 提交和现有变更日志,并遵循仓库原有格式。
主要功能
- 01根据指定版本或最新标签确定基线
- 02检查基线之后的提交
- 03核对现有变更日志条目
- 04将重要变更添加到 Unreleased
- 05保留变更日志原有格式
适用场景
- 01记录自最近一次发布以来的用户可见变更
- 02向现有 Unreleased 部分补充遗漏内容
- 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