biannian

扫描自上次 tag 以来的 git log,按三省六部语境归类变更,输出结构化 CHANGELOG 条目

SKILL.md

GitHub

Skill: 编年

适用 Agent:太子(Lead) 加载时机:皇上输入 /biannian 时,或发版前

功能

自动生成变更日志,将 git 历史翻译为三省六部语境下的结构化记录。

执行流程

第一步:确定范围

# 获取最近的 tag
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(若存在)
  • 仅查看不写入
  • 修改后再写入

约束

  1. 不修改 git 历史,仅读取
  2. 分类基于 commit message 语义判断,无法判断时归入"修缮"
  3. 写入 CHANGELOG.md 前必须经皇上确认
  4. 合并提交(merge commits)默认跳过
  5. 编年仅处理 git 历史的结构化归类与 CHANGELOG 输出,文档撰写与规范维护仍属礼部职责