关于 changelog-generator
changelog-generator 是一项将 Git 提交记录整理为面向用户的更新日志的技能,适用于发布说明和产品更新。它会归类变更、过滤内部噪声,并按指定风格组织内容。
主要功能
- 01扫描指定范围的 Git 历史
- 02按变更类型分类提交
- 03将技术描述改写为用户语言
- 04过滤内部提交和合并记录
- 05按规范格式整理日志
适用场景
- 01为新版本撰写发布说明
- 02汇总每周或每月产品更新
- 03准备应用商店更新文案
- 04维护公开产品更新页面
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dedalus-erp-pas/ foundation-skills --skill changelog-generator安装后在 Claude Code 中输入/changelog-generator确认已加载。
详细介绍
变更日志生成器
此技能可将技术性 Git 提交转化为精炼、易懂的变更日志,让客户和用户真正看得懂、愿意看。
适用场景
- 为新版本准备发行说明
- 创建每周或每月的产品更新摘要
- 记录面向客户的变更
- 为应用商店提交撰写变更日志条目
- 生成更新通知
- 创建内部发行文档
- 维护公开的变更日志/产品更新页面
此技能的功能
- 扫描 Git 历史记录:分析特定时间段内或不同版本之间的提交
- 对变更分类:将提交归入逻辑类别(新功能、改进、错误修复、重大变更、安全)
- 转换技术表达 → 用户友好表达:将开发者提交信息转换为客户易懂的语言
- 专业排版:创建清晰、结构化的变更日志条目
- 过滤无关内容:排除内部提交(重构、测试等)
- 遵循最佳实践:应用变更日志规范和品牌语气
使用方法
基本用法
在项目仓库中:
Create a changelog from commits since last release
Generate changelog for all commits from the past week
Create release notes for version 2.5.0
指定日期范围
Create a changelog for all commits between March 1 and March 15
使用自定义规范
Create a changelog for commits since v2.4.0, using my changelog
guidelines from CHANGELOG_STYLE.md
说明
创建变更日志时:
-
分析 Git 历史记录
- 使用
git log检索指定时间段内的提交信息 - 如果未指定范围,默认从上一个标签开始查找提交
- 查找提交规范(Conventional Commits、语义化版本标签)
- 使用
-
提交分类
- ✨ 新功能:新增能力或功能
- 🔧 改进:增强现有功能
- 🐛 错误修复:修正缺陷
- ⚠️ 重大变更:需要用户采取操作的变更
- 🔒 安全:与安全相关的修复或改进
- 📚 文档:文档更新(通常从面向用户的变更日志中排除)
- 🧹 内部变更:重构、测试、构建变更(从面向用户的变更日志中排除)
-
将技术表达转化为用户语言
- 关注用户体验发生了什么变化,而不是具体实现方式
- 使用主动语态和现在时
- 说明带来的好处,而非实现细节
- 将技术术语换成通俗语言
示例:
-
❌「重构身份验证服务,改用 JWT 令牌」
-
✅「登录体验更快、更安全」
-
❌「为 API 端点添加 Redis 缓存层」
-
✅「页面加载速度提升 50%」
-
❌「在搜索输入组件中实现防抖」
-
✅「现在输入时,搜索会即时响应」
-
排版变更日志
- 使用清晰的分节标题,并添加表情符号,便于快速浏览
- 优先列出影响最大的变更(新功能、重大变更)
- 功能名称使用粗体,然后用通俗语言进行说明
- 保持条目简洁(1–2 句话)
- 将相关变更归到一起
-
应用筛选条件
- 排除标记为
chore:、test:、docs:、refactor:的提交(面向用户的变更除外) - 跳过合并提交和版本号更新提交
- 将有关同一功能的多条提交合并为一个条目
- 移除仅供开发者使用的变更
- 排除标记为
-
补充背景信息
- 在标题中包含日期或版本号
- 如果是重要版本,添加简短介绍
- 为重大变更链接详细文档
- 适用时,附上迁移指南
示例
用户:「为过去 7 天的提交创建变更日志」
输出:
# Updates - Week of March 10, 2024
## ✨ New Features
- **Team Workspaces**: Create separate workspaces for different
projects. Invite team members and keep everything organized.
- **Keyboard Shortcuts**: Press ? to see all available shortcuts.
Navigate faster without touching your mouse.
## 🔧 Improvements
- **Faster Sync**: Files now sync 2x faster across devices
- **Better Search**: Search now includes file contents, not just titles
## 🐛 Fixes
- Fixed issue where large images wouldn't upload
- Resolved timezone confusion in scheduled posts
- Corrected notification badge count
灵感来源: Manik Aggarwal 在 Lenny's Newsletter 中分享的用例
变更日志最佳实践
写作风格
- 以用户为中心:说明用户体验发生了什么变化,而不是代码有什么变化
- 突出收益:先说明此变更的重要性
- 简洁:每个条目控制在 1–2 句话
- 便于浏览:使用格式帮助用户快速找到他们关注的内容
结构
- 分类保持一致:每次都使用相同的分类
- 重要内容优先:功能和破坏性变更排在错误修复之前
- 分类内按时间排序:最新的变更排在最前
- 层级清晰:有效使用标题、粗体和表情符号
内容指南
- 描述具体:「修复登录问题」→「修复使用 Google 账号登录失败的问题」
- 尽可能量化:「加载更快」→「页面加载速度提升 50%」
- 补充背景:说明进行重大更新的原因
- 链接详细信息:为复杂变更提供文档或迁移指南的链接
提示
- 在 Git 仓库根目录运行
- 指定日期范围以生成有针对性的变更日志
- 使用 CHANGELOG_STYLE.md 保持格式一致
- 发布前检查并调整生成的变更日志
- 将输出直接保存到 CHANGELOG.md
相关用例
- 创建 GitHub 发布说明
- 撰写应用商店更新说明
- 生成面向用户的电子邮件更新
- 创建社交媒体公告帖子
示例转换
技术提交 → 用户友好条目
| 技术提交 | 用户友好条目 |
|---|---|
| "Add OAuth2 support for SSO integration" | "单点登录:使用公司账号登录" |
| "Optimize database queries with indexes" | "仪表板加载速度提升 3 倍" |
| "Implement WebSocket connection for real-time updates" | "无需刷新即可即时查看变更" |
| "Add validation for email input fields" | "输入无效电子邮件地址时显示实用的错误提示" |
| "Fix memory leak in background sync worker" | "提升长时间使用期间的应用稳定性" |
分类示例
✨ 新功能
- 之前没有的新能力
- 功能上的重大新增
- 新集成或平台支持
🔧 改进
- 性能提升
- UI/UX 优化
- 扩展现有功能
- 更完善的错误提示
🐛 错误修复
- 修正现有功能
- 解决已报告的问题
- 修复边缘情况
⚠️ 破坏性变更
- 需要用户采取操作的变更
- 移除功能或 API
- 默认行为变更
- 需要执行迁移步骤
🔒 安全性
- 安全补丁
- 权限改进
- 身份验证增强
- 数据保护更新
评论
支持 Markdown