关于 changelog
changelog 是一项根据 Git 历史创建或更新变更日志的技能,可供项目维护者记录面向用户或开发者的版本变化。它会按功能类型归类提交,并区分开发中、Insiders 和 Stable 阶段。
主要功能
- 01从 Git 历史生成变更日志
- 02按功能类型归类提交
- 03区分开发、Insiders 与 Stable 阶段
- 04提供用户版和开发者版格式
适用场景
- 01汇总上个版本之后的提交
- 02为新版本创建完整变更日志
- 03分别整理用户说明和技术细节
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ processcube-io/ processcube.agent.skills --skill changelog安装后在 Claude Code 中输入/changelog确认已加载。
详细介绍
技能:changelog
根据 Git 历史记录创建或更新变更日志,按版本分组,并按功能类型分类。
触发条件
/changelog- 创建或更新变更日志- “创建变更日志”“更新变更日志”“自……以来有什么变化”
参数
如果用户未提供,请询问以下信息:
-
目标受众(也决定默认文件)
- 用户 →
Changelog.md(简化内容,描述带来的益处) - 开发者 →
Changelog-Dev.md(技术内容,包含提交详情)
- 用户 →
-
模式
- 更新(默认):仅添加自上一条记录以来的新变更
- 重新创建:从指定时间点开始创建完整的变更日志
-
时间范围(仅在“重新创建”时)
- 示例:“自 2025 年 3 月以来”“自 v2.3.0 以来”
工作流
1. 检查现有变更日志
# Prüfen ob Changelog existiert
ls Changelog.md Changelog-Dev.md 2>/dev/null
如果变更日志存在:
- 确定最后记录的状态(版本或提交)
- 在标记
## 🔮 In Entwicklung之后查找最后一个已知提交 - 或将最后记录的 Insiders/Stable 版本作为参考
2. 收集 Git 数据
# Tags mit Datum abrufen
git for-each-ref --sort=-creatordate --format='%(refname:short) %(creatordate:short)' refs/tags
# Letzten Tag ermitteln
git describe --tags --abbrev=0
# Commits seit letztem Tag (für "In Entwicklung")
git log $(git describe --tags --abbrev=0)..HEAD --pretty=format:"%h %ad %s" --date=short
# Commits seit bestimmter Version
git log v2.3.0..HEAD --pretty=format:"%h %ad %s" --date=short
3. 对提交分类
分析提交消息并归入相应类别:
| 类别 | 关键词 |
|---|---|
| 新功能 | Add, Feat, Feature, New, Implement |
| 错误修复 | Fix, Bugfix, Hotfix, Resolve |
| 性能 | Performance, Optimize, Speed |
| 技术 | Bump, Update, Refactor, Chore, Deps |
忽略:
- 合并提交(“Merge branch”“Merge pull request”)
- 发布提交(“Release v”“Bump version”)
- WIP 提交、构建修复
4. 分配版本
**重要:**功能会按顺序经历以下阶段:
🔮 In Entwicklung → 🧪 Insiders → ✅ Stable
(Ausblick) (Early Adopter) (Alle Nutzer)
- 一个功能只能列在一个阶段中
- 如果已进入 Stable,则之前一定处于 Insiders
- 如果已进入 Insiders,则之前一定处于开发中
- 每个章节只显示相较于上一版本的新增变更
5. 更新变更日志
更新时:
- 读取现有文件
- 使用新提交更新“In Entwicklung”章节
- 发布新版本时,将“In Entwicklung”移至“Insiders”,或将“Insiders”移至“Stable”
- 保存文件
重新创建时:
- 创建包含所有版本的完整模板
默认文件
| 目标受众 | 文件 | 内容 |
|---|---|---|
| 用户 | Changelog.md | 描述带来的益处,不包含技术细节或提交哈希 |
| 开发者 | Changelog-Dev.md | 技术细节、提交哈希、PR 编号、破坏性变更 |
输出模板(用户)
# Changelog [Projektname]
---
## 🔮 In Entwicklung (Ausblick auf nächstes Release)
*Diese Features sind nach [LETZTER_TAG] hinzugekommen und werden im nächsten Release enthalten sein.*
### Neue Funktionen
- Feature-Beschreibung aus Anwendersicht
### Fehlerbehebungen
- Fix-Beschreibung aus Anwendersicht
---
## 🧪 Insiders vX.Y.Z-insiders.N (DD.MM.YYYY)
*Vorschau-Version mit neuen Features gegenüber Stable vX.Y.Z.*
### Neue Funktionen (gegenüber vX.Y.Z)
- Feature-Beschreibung
---
## ✅ Stable vX.Y.Z (DD.MM.YYYY)
*Stabile Version - enthält alle Features aus vX.Y.Z-insiders.1 bis vX.Y.Z-insiders.N.*
### Neue Funktionen (gegenüber vX.Y-1.Z)
- Feature-Beschreibung *(seit insiders.N)*
### Fehlerbehebungen (gegenüber vX.Y-1.Z)
- Fix-Beschreibung *(seit insiders.M)*
---
## Release-Prozess
Features durchlaufen drei Phasen, bevor sie alle Nutzer erreichen:
🔮 In Entwicklung → 🧪 Insiders → ✅ Stable (Ausblick) (Early Adopter) (Alle Nutzer)
| Phase | Zielgruppe | Beschreibung |
|-------|------------|--------------|
| 🔮 **In Entwicklung** | Entwickler | Ausblick auf kommende Features. Noch in keinem Release enthalten. |
| 🧪 **Insiders** | Early Adopter | Vorschau-Versionen zum Testen neuer Features vor dem Stable-Release. |
| ✅ **Stable** | Alle Nutzer | Produktionsreife Version. Features sind vollständig getestet und freigegeben. |
**Hinweis:** Jeder Abschnitt listet nur die Änderungen, die **neu** in dieser Phase sind.
输出模板(开发者)
# Changelog (Entwickler)
---
## 🔮 In Entwicklung
*Commits seit [LETZTER_TAG]*
### Neue Funktionen
- `abc1234` Feature X hinzugefügt (#123)
### Fehlerbehebungen
- `def5678` Bug Y behoben (#456)
### Technische Änderungen
- `ghi9012` Dependency Z aktualisiert
---
## 🧪 Insiders vX.Y.Z-insiders.N (DD.MM.YYYY)
### Breaking Changes
- Beschreibung der Breaking Changes
### Neue Funktionen
- `abc1234` Feature-Beschreibung (#123)
### Fehlerbehebungen
- `def5678` Fix-Beschreibung (#456)
---
## ✅ Stable vX.Y.Z (DD.MM.YYYY)
*Enthält Insiders .1 bis .N*
### Breaking Changes
- Beschreibung
### Commits
- Liste aller Commits seit letzter Stable
示例
示例 1:更新变更日志(默认)
用户:“更新变更日志”
操作步骤:
- 检查
Changelog.md是否存在 - 确定最后记录的状态
git log [LETZTER_STAND]..HEAD --pretty=format:"%h %ad %s" --date=short- 对新提交分类
- 更新“In Entwicklung”章节
示例 2:面向开发者的变更日志
用户:“创建开发者变更日志”
操作步骤:
- 检查
Changelog-Dev.md是否存在 - 收集包含提交哈希和 PR 编号的 Git 历史记录
- 记录技术细节和破坏性变更
- 保存到
Changelog-Dev.md
示例 3:记录新版本发布
用户:“我们发布了 v2.4.0-insiders.3”
操作步骤:
- 读取 Changelog.md
- 将“In Entwicklung”中的内容移至“Insiders v2.4.0-insiders.3”
- 创建新的空白“In Entwicklung”章节
- 添加日期
提示
- 对于较长的提交消息,使用第一句话
- 仅在开发者变更日志中保留 PR 编号(#123)
- 将相关提交分组(例如,为某个功能提交的多个提交)
- 提交较多时,使用
head命令限制输出 - 更新时,始终以现有变更日志为基础
评论
支持 Markdown