最近开源了几个项目,欢迎大家 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了 ![]()
生成后使用之前分享过的 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 链接
-
Skill 仓库:changelog-manager
-
夸克网盘:zBVU:提取码:zBVU
7、总结与思考
最大的收获
好的 Skill 不是替人做决定,而是帮人消除做决定的负担。
写 changelog 这件事本身不难,难的是"每次都要想格式怎么对齐、分类怎么选、日期用什么格式"。这些小决定一个个堆起来,就成了"算了下次再说"。
这个 Skill 做的就是把这些规范的东西塞给 AI,用户只管说"我做了什么",剩下的事情自动搞定。
觉得做得还行的地方
-
"渐进式记录 + 发布归档"这个工作流 – 把写 changelog 从发版前的苦差事变成了日常顺手的事
-
git 提交智能提取 – 不是简单贴 commit message,是真的过滤、分类、翻译
-
验证闭环 – 5 层自检标准加触发测试集加输出模板,不是光能跑就行
-
边界处理 – 比如有人说"帮我写个日志",这个"日志"可能是 changelog 也可能是运行日志,这种情况下 Skill 不会瞎猜,会先问清楚
后面想加的
-
从 GitHub Issues / Pull Requests 直接生成变更条目
-
中英文双语 changelog
-
跟 GitHub Release API 打通,发布时自动创建 Release
-
自定义输出模板,有些团队有自己的格式
想听听你们的反馈
-
你实际用下来,哪一步最卡?
-
+generate从你的 git log 提取得怎么样?有没有分错类或者漏掉的? -
如果让你用一句话形容"写更新日志"这件事的痛点,你会说什么?






