| name | biannian |
| description | 扫描自上次 tag 以来的 git log,按三省六部语境归类变更,输出结构化 CHANGELOG 条目 |
Skill: 编年
适用 Agent:太子(Lead)
加载时机:皇上输入 /biannian 时,或发版前
功能
自动生成变更日志,将 git 历史翻译为三省六部语境下的结构化记录。
执行流程
第一步:确定范围
git describe --tags --abbrev=0 2>/dev/null || echo "无历史 tag,扫描全部提交"
git log <last-tag>..HEAD --oneline --no-merges
若无历史 tag,扫描全部提交历史。皇上也可指定范围(如 /biannian v0.1.0..v0.2.0)。
第二步:分类归档
太子阅读每条 commit message,按以下类别归类:
| 类别 | 图标 | 含义 | 示例 |
|---|
| 新旨意 | 📜 | 全新功能或模块 | 新增 Skill、新增 Hook |
| 修缮 | 🔧 | 优化改进现有功能 | 调整流程、优化格式 |
| 封驳修正 | 🔍 | 因门下审议驳回而修改 | 修复一致性、补充约束 |
| 平叛 | ⚔️ | 修复 bug 或异常 | 修复脚本错误、修正逻辑 |
| 典章 | 📝 | 文档与规范变更 | 更新 README、修改 Skill 定义 |
| 科举 | 📋 | 测试与验证 | 添加检查、验证流程 |
| 基建 | 🏗️ | 基础设施变更 | CI/CD、配置文件、依赖 |
第三步:输出 CHANGELOG 条目
## [版本号或日期] — 编年史
### 📜 新旨意
- {commit 摘要} ({short hash})
- ...
### 🔧 修缮
- {commit 摘要} ({short hash})
- ...
### 🔍 封驳修正
- ...
### ⚔️ 平叛
- ...
### 📝 典章
- ...
### 📋 科举
- ...
### 🏗️ 基建
- ...
空类别不显示。
第四步:呈报与确认
太子将编年史条目呈给皇上审阅。皇上确认后可选择:
- 追加到 CHANGELOG.md(若存在)
- 仅查看不写入
- 修改后再写入
约束
- 不修改 git 历史,仅读取
- 分类基于 commit message 语义判断,无法判断时归入"修缮"
- 写入 CHANGELOG.md 前必须经皇上确认
- 合并提交(merge commits)默认跳过
- 编年仅处理 git 历史的结构化归类与 CHANGELOG 输出,文档撰写与规范维护仍属礼部职责