【Skill 创作】changelog-manager:让更新日志从"没时间写"变成"一句话搞定"

最近开源了几个项目,欢迎大家 star:二哥的开源项目

1、Skill简介

写了一个叫 changelog-manager 的东西,帮项目写更新日志用的。它懂 Keep a Changelog 规范,也懂语义化版本(SemVer),能从 git 提交记录里扒变更、手动加条目、发布版本归档,还能检查写得规不规范。

你只管说"我改了啥",它自己分类、排格式、归档,一张标准的 CHANGELOG.md 就出来了。

适合那些想给项目写 changelog 但一直拖着的开发者,特别是个人项目或者开源项目。


2、使用场景

我为什么想做它?

我手头同时维护了好几个项目。每次要发新版本,更新日志永远是我最后一个想起来、也最不想碰的事。经常这样:

  • 版本发出去了,changelog 还空着,用户问"这版本改了啥?"

  • 好不容易写了几条,格式各不一样 – 有的 ## 1.0.0,有的 ### Version 1.0.0,看的人头疼

  • 打开 git log 几十条 commit,哪些该写进 changelog?feat 和 fix 和 refactor 分别对应什么?

  • 加个功能是 Added,改个参数是 Changed,修个 bug 是 Fixed – 每次都要翻规范

  • 发布的时候手动整理,把 Unreleased 的内容复制粘贴、改日期、加链接,重复劳动

这个技能解决了什么

之前 之后
先查规范再看别人项目最后纠结格式 +init 直接生成标准模板
打开文件找位置手动编辑 +add 新增了XXX 一句话完事
手动筛 git log、翻译、分组 +generate 自动提取整理
复制粘贴改日期改链接 +release 1.2.0 全部自动
这个项目一种写法那个项目一种写法 统一按 Keep a Changelog + SemVer

适合谁

  • 个人开发者,想让项目有个像样的 changelog 但不想花时间学规范

  • 开源项目维护者,每次发版都得写 release notes,git log 又乱

  • 小团队,没有专门的 release manager,需要一个轻量的工作流

  • 任何嘴上说着"下次一定写"然后下次还是没写的人


3、创作过程

设计思路

核心逻辑来自 Keep a Changelog 规范的 Unreleased 机制,我管它叫"渐进式记录 + 发布时归档":


日常开发 → +add 追加到 [Unreleased] → 发布时 +release 归档为版本 → 循环

不用等发版的时候再使劲回忆"这个版本到底干了啥"。每次改完顺手加一条,积少成多。发布时自动把 Unreleased 里的东西归档,不用手动整理。

全程使用最新 SOLO开发,不叫MTC了,现在叫 Work了 :rofl:

生成后使用之前分享过的 skill-reviewer审查,然后再使用 skill-creator 优化。过程如下:





各种Agent 都可以使用,Trae IDE 实测:

五个快捷命令

覆盖从初始化到发布的整个流程:


+init → 初始化 CHANGELOG.md

+add → 追加变更到 [Unreleased],自动分类

+release → 发布版本,归档 Unreleased

+generate → 从 git log 提取变更

+check → 检查现有 CHANGELOG.md 写得规不规范

几个关键设计决策

1. 自动分类引擎

最难的部分是让 AI 准确判断一条变更属于哪类。我写了一份分类指南,里面有 6 个标准分类的边界案例、一个决策树(“这个变更是… 全新的?→ Added”),还有多分类条目的处理策略。

2. git 提交智能提取

+generate 是我觉得最有用的功能。它不是简单把 git log 贴上去,而是三步处理:

  • 过滤噪音:合并提交、chore、style、docs 这些不重要的直接跳过

  • 智能分类:根据 conventional commit 前缀(feat/fix/break…)映射到 changelog 分类

  • 自然语言转写:feat(auth): add jwt token refresh mechanism 变成 新增 JWT Token 自动刷新功能

我还整理了一份完整的提取规则和转写模板。

3. Plan-Validate-Handoff 模式

+generate 涉及批量写文件,搞不好会改乱。所以我做了三阶段的安全模式:

  • Plan:生成变更预览给用户看

  • Validate:用户确认(写到 Unreleased / 指定版本 / 取消)

  • Handoff:确认无误才写入

这样 AI 不会擅自改你的文件。

4. 验证闭环

定义了 5 层自检标准:格式正确、内容质量、版本一致性、触发测试集、输出可判定。每组输出都有结构化模板,机器也能判定。

用 SOLO 创作的感受

SOLO 的 Skill 机制有几个地方我用着顺手:

  • frontmatter 定义触发条件,精确控制什么时候该调用这个技能

  • references 目录做渐进式信息加载,主文件不用写太长

  • 触发测试集做回归验证,改 description 字段之后跑一遍就知道有没有误触发


4、使用步骤

第一步:初始化


+init 我的博客项目

在当前目录生成标准 CHANGELOG.md。

第二步:日常记录变更

每次改完东西,一句话加进去:


+add 新增了文章搜索功能,支持按标题和标签搜索

+add 修复了评论提交后页面不自动刷新的问题

+add 升级 React 从 17 到 18

它会自动判断属于 Added 还是 Fixed 还是 Changed,写进 Unreleased 对应的区块。

第三步:从 Git 生成

如果你一直在用 conventional commit,可以偷懒:


+generate

它提取上次 tag 到现在的提交,过滤掉噪音,按分类分组给你预览,你确认后写入。

第四步:发布版本


+release 1.0.0

自动把 Unreleased 内容归档到新版本,填上当天日期,根据变更类型建议版本号,更新底部链接,再建一个新的空 Unreleased 区块。

第五步:检查规范性


+check

读取 CHANGELOG.md,检查格式、日期、分类名称、版本链接这些,出一个检查报告。


5、效果展示

以前


# 更新记录

## v1.0

- 加了登录

- 修了bug

- 改了UI

现在


# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),

and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [1.0.0] - 2026-05-29

### Added

- 用户登录与注册功能,支持邮箱和 GitHub OAuth 两种方式

- 文章搜索功能,支持按标题和标签进行搜索

### Changed

- 首页布局重新设计,提升信息密度和加载速度

- 默认每页显示数量从 10 调整为 20

### Fixed

- 修复评论提交后页面不自动刷新的问题

- 修复 Safari 浏览器下登录页面样式错位

[Unreleased]: https://github.com/user/repo/compare/v1.0.0...HEAD

[1.0.0]: https://github.com/user/repo/releases/tag/v1.0.0

从 git log 到 changelog

如果你用 conventional commit,+generate 的效果是这样的:


Git 提交记录:

feat: add user avatar upload

fix: resolve mobile nav display issue

feat: add draft auto-save

chore: update dependencies

fix: fix image upload timeout

+generate 处理后:

### Added

- 支持用户头像上传功能

- 新增文章草稿自动保存

### Fixed

- 修复移动端导航栏显示异常

- 修复图片上传偶尔超时的问题

chore 那条被自动过滤了


6、Skill 链接


7、总结与思考

最大的收获

好的 Skill 不是替人做决定,而是帮人消除做决定的负担。

写 changelog 这件事本身不难,难的是"每次都要想格式怎么对齐、分类怎么选、日期用什么格式"。这些小决定一个个堆起来,就成了"算了下次再说"。

这个 Skill 做的就是把这些规范的东西塞给 AI,用户只管说"我做了什么",剩下的事情自动搞定。

觉得做得还行的地方

  1. "渐进式记录 + 发布归档"这个工作流 – 把写 changelog 从发版前的苦差事变成了日常顺手的事

  2. git 提交智能提取 – 不是简单贴 commit message,是真的过滤、分类、翻译

  3. 验证闭环 – 5 层自检标准加触发测试集加输出模板,不是光能跑就行

  4. 边界处理 – 比如有人说"帮我写个日志",这个"日志"可能是 changelog 也可能是运行日志,这种情况下 Skill 不会瞎猜,会先问清楚

后面想加的

  • 从 GitHub Issues / Pull Requests 直接生成变更条目

  • 中英文双语 changelog

  • 跟 GitHub Release API 打通,发布时自动创建 Release

  • 自定义输出模板,有些团队有自己的格式

想听听你们的反馈

  • 你实际用下来,哪一步最卡?

  • +generate 从你的 git log 提取得怎么样?有没有分错类或者漏掉的?

  • 如果让你用一句话形容"写更新日志"这件事的痛点,你会说什么?


3 个赞


二哥给你来一票

5 个赞

感谢兄弟! :face_blowing_a_kiss:

5 个赞

跟着优秀的哥哥学习

4 个赞

相当于IDE的版本控制提交更新内容的补全吗?

2 个赞

投票了投票了支持一下

2 个赞

就是生成项目的更新日志,按 Keep a Changelog的标准写,最近又更新了一下,用得很舒服

3 个赞