datai/docs/archive/skill/0009-changelog-archiving.md

427 lines
9.7 KiB
Markdown
Raw Normal View History

---
name: 0009-changelog-archiving
description: 变更记录与归档,更新 CHANGELOG.md 和 docs/changelog/
---
# 技能:变更记录与归档 (Changelog & Archiving)
## 元数据 (Metadata)
- **name**: changelog-archiving
- **description**: 变更记录与归档,更新 CHANGELOG.md 和 docs/changelog/
- **version**: 1.0.0
- **author**: SSOT Architect
- **lastUpdated**: 2026-01-15
## 触发与定位 (Triggers & Scope)
### 触发条件 (Triggers)
当以下情况发生时AI 应当"觉醒"本技能:
1. **代码变更完成**: 完成代码编写后,需要记录变更
2. **功能发布**: 功能开发完成,准备发布
3. **Bug 修复**: 修复 Bug 后,需要记录变更
4. **代码重构**: 重构代码后,需要记录变更
5. **工作流阶段 6**: 用户进入工作流的"变更记录与归档"阶段
### 定位范围 (Scope)
- **适用模块**: 所有 Datai 项目模块
- **影响文件**: `CHANGELOG.md`, `docs/changelog/`, `docs/index.md`
- **相关技能**: skill-execution-logging, skill-retrospective
## 核心指令集 (Instructions)
### 架构约束 (Architecture Constraints)
1. **CHANGELOG.md 规范**:
- 基于 [Keep a Changelog](https://keepachangelog.com/) 格式
- 按版本组织变更记录
- 包含变更类型Added, Changed, Deprecated, Removed, Fixed, Security
2. **变更记录必须包含**:
- 版本号(遵循语义化版本规范)
- 变更日期
- 变更类型
- 变更描述
- 相关需求或 Bug ID
- 相关 ADR ID
3. **必须同步更新 docs/index.md**:
-`docs/index.md` 中标注该需求已完成
- 更新需求状态为 Completed
- 更新最后更新日期
### 业务逻辑 SOP (Business Logic SOP)
#### 步骤 1: 分析代码变更
```markdown
## 代码变更分析
### 变更类型
- [ ] Added - 新增功能
- [ ] Changed - 功能变更
- [ ] Deprecated - 废弃功能
- [ ] Removed - 移除功能
- [ ] Fixed - 修复 Bug
- [ ] Security - 安全修复
### 变更范围
- [ ] 前端变更
- [ ] 后端变更
- [ ] 数据库变更
- [ ] API 变更
- [ ] 文档变更
### 影响评估
- [ ] 向后兼容性
- [ ] 数据迁移
- [ ] 配置变更
- [ ] 依赖变更
```
#### 步骤 2: 确定版本号
```markdown
## 版本号确定
### 语义化版本规范
- 主版本号MAJOR不兼容的 API 变更
- 次版本号MINOR向下兼容的功能性新增
- 修订号PATCH向下兼容的问题修正
### 版本号决策
**当前版本**: [当前版本号]
**新版本**: [新版本号]
**变更理由**:
[变更理由说明]
```
#### 步骤 3: 更新 CHANGELOG.md
```markdown
# 变更日志
所有项目重要变更都将记录在此文件中。
格式基于 [Keep a Changelog](https://keepachangelog.com/)
## [Unreleased]
### Added
- 新增功能列表
### Changed
- 变更列表
### Deprecated
- 废弃的功能
### Removed
- 移除的功能
### Fixed
- 修复的问题
## [1.1.0] - 2026-01-15
### Added
- 新增用户批量导入功能 (REQ-001)
- 新增 CSV 文件解析功能 (REQ-001)
- 新增导入错误日志记录 (REQ-001)
### Changed
- 优化用户查询性能 (ADR-002)
- 改进错误处理机制 (ADR-002)
### Fixed
- 修复导入文件编码问题 (Bug-001)
- 修复用户数据验证问题 (Bug-002)
### Security
- 增强文件上传安全性 (Security-001)
### Related
- Requirements: [REQ-001](docs/requirements/REQ-001.md)
- ADR: [ADR-001](docs/decisions/adr/ADR-001.md)
- Session: [20260115-TaskName](docs/sessions/20260115-TaskName.md)
## [1.0.0] - 2026-01-10
### Added
- 初始版本发布
- 新增用户管理功能
- 新增权限管理功能
```
#### 步骤 4: 创建详细变更记录
```markdown
---
name: CHANGELOG-20260115
description: 详细变更记录
---
# 变更记录: 2026-01-15
## 元数据 (Metadata)
- **Date**: 2026-01-15
- **Version**: 1.1.0
- **Type**: [Feature Release/Bug Fix Release/Security Release]
- **Related Requirements**: [REQ-001](../requirements/REQ-001.md)
- **Related ADRs**: [ADR-001](../decisions/adr/ADR-001.md)
- **Session**: [20260115-TaskName](../sessions/20260115-TaskName.md)
## 变更摘要
### 新增功能
- [功能1]: [功能描述]
- [功能2]: [功能描述]
### 功能变更
- [变更1]: [变更描述]
- [变更2]: [变更描述]
### Bug 修复
- [Bug1]: [Bug 描述]
- [Bug2]: [Bug 描述]
## 详细变更
### 新增功能
#### 功能 1: [功能名称]
**需求**: [REQ-XXX](../requirements/REQ-XXX.md)
**ADR**: [ADR-XXX](../decisions/adr/ADR-XXX.md)
**描述**:
[功能详细描述]
**实现**:
- [实现细节1]
- [实现细节2]
**测试**:
- [测试用例1]
- [测试用例2]
**影响**:
- [影响范围]
- [向后兼容性]
### 功能变更
#### 变更 1: [变更名称]
**ADR**: [ADR-XXX](../decisions/adr/ADR-XXX.md)
**描述**:
[变更详细描述]
**变更前**:
[变更前的状态]
**变更后**:
[变更后的状态]
**影响**:
- [影响范围]
- [向后兼容性]
- [数据迁移]
### Bug 修复
#### Bug 1: [Bug 名称]
**Bug ID**: [Bug-XXX]
**Session**: [20260115-TaskName](../sessions/20260115-TaskName.md)
**描述**:
[Bug 详细描述]
**复现步骤**:
1. [步骤1]
2. [步骤2]
3. [步骤3]
**修复方案**:
[修复方案描述]
**验证**:
[验证方法]
## 代码变更
### 新增文件
- [文件1](../../path/to/file1.java) - [说明]
- [文件2](../../path/to/file2.java) - [说明]
### 修改文件
| 文件 | 变更类型 | 变更说明 |
|------|----------|----------|
| [文件1](../../path/to/file1.java) | [修改/重构] | [变更说明] |
| [文件2](../../path/to/file2.java) | [修改/重构] | [变更说明] |
### 删除文件
- [文件1](../../path/to/file1.java) - [说明]
## 数据库变更
### 新增表
- [表名] - [说明]
### 修改表
| 表名 | 变更类型 | 变更说明 |
|------|----------|----------|
| [表名] | [新增字段/修改字段/删除字段] | [变更说明] |
### 数据迁移
- [迁移脚本1] - [说明]
- [迁移脚本2] - [说明]
## 配置变更
### 新增配置
- [配置项] - [说明]
### 修改配置
| 配置项 | 旧值 | 新值 | 说明 |
|--------|------|------|------|
| [配置项] | [旧值] | [新值] | [说明] |
### 废弃配置
- [配置项] - [说明]
## 依赖变更
### 新增依赖
- [依赖1] - [说明]
- [依赖2] - [说明]
### 升级依赖
| 依赖 | 旧版本 | 新版本 | 说明 |
|------|--------|--------|------|
| [依赖] | [旧版本] | [新版本] | [说明] |
### 移除依赖
- [依赖1] - [说明]
## 相关文档 (Related Documents)
- [需求文档](../requirements/REQ-XXX.md)
- [ADR 文档](../decisions/adr/ADR-XXX.md)
- [会话记录](../sessions/20260115-TaskName.md)
- [复盘文档](../retros/20260115-Review.md)
```
#### 步骤 5: 更新 docs/index.md
```markdown
### 📝 需求文档 (Requirements)
| 文档 | 状态 | 描述 | 更新日期 |
|------|------|------|----------|
| [REQ-001](requirements/REQ-001.md) | ✅ Completed | [需求描述] | 2026-01-15 |
```
### 工具调用 (Tool Usage)
1. **文件读取工具**:
- 使用 `Read` 工具读取 `CHANGELOG.md`
- 使用 `Read` 工具读取 `docs/index.md`
2. **文件更新工具**:
- 使用 `SearchReplace` 工具更新 `CHANGELOG.md`
- 使用 `SearchReplace` 工具更新 `docs/index.md`
3. **文件创建工具**:
- 使用 `Write` 工具创建详细变更记录
## 错误陷阱与验证 (Anti-Patterns & Checklist)
### 常见错误 (Anti-Patterns)
1. **错误**: CHANGELOG.md 格式不规范
- **后果**: 难以追踪变更历史
- **修正**: 使用 Keep a Changelog 格式
2. **错误**: 变更描述过于简单
- **后果**: 无法理解变更的具体内容
- **修正**: 必须详细描述变更内容、影响和相关文档
3. **错误**: 忘记更新 docs/index.md
- **后果**: 需求状态未更新,违反 SSOT 原则
- **修正**: 必须同步更新需求状态
4. **错误**: 版本号不符合语义化版本规范
- **后果**: 版本管理混乱
- **修正**: 必须遵循语义化版本规范
5. **错误**: 缺少相关文档链接
- **后果**: 无法追溯变更的上下文
- **修正**: 必须包含需求、ADR、Session 等相关文档链接
### 验收清单 (Acceptance Checklist)
- [ ] CHANGELOG.md 已更新
- [ ] 变更类型已明确
- [ ] 版本号已确定
- [ ] 变更描述已详细记录
- [ ] 相关文档已链接
- [ ] 详细变更记录已创建
- [ ] 代码变更已记录
- [ ] 数据库变更已记录
- [ ] 配置变更已记录
- [ ] 依赖变更已记录
- [ ] docs/index.md 已更新
- [ ] 需求状态已更新
### Correct vs Incorrect 对比
#### Correct 示例
```markdown
## [1.1.0] - 2026-01-15
### Added
- 新增用户批量导入功能 (REQ-001)
- 支持 CSV 格式导入
- 单次最多导入 1000 条记录
- 提供详细的错误信息
- 新增导入错误日志记录 (REQ-001)
- 记录导入失败的详细原因
- 支持错误日志导出
### Changed
- 优化用户查询性能 (ADR-002)
- 使用索引优化查询
- 减少数据库查询次数
### Fixed
- 修复导入文件编码问题 (Bug-001)
- 支持多种文件编码格式
- 自动检测文件编码
### Related
- Requirements: [REQ-001](docs/requirements/REQ-001.md)
- ADR: [ADR-001](docs/decisions/adr/ADR-001.md)
- Session: [20260115-TaskName](docs/sessions/20260115-TaskName.md)
```
#### Incorrect 示例
```markdown
## [1.1.0] - 2026-01-15
### Added
- 新增批量导入功能
- 新增日志记录
### Changed
- 优化查询性能
### Fixed
- 修复文件编码问题
```
**问题**: 变更描述过于简单,缺少相关文档链接,无法追溯变更的上下文。
## 相关文档 (Related Documents)
- [工作流提示词](../prompts/03-创建工作流提示词.md#阶段-6-变更记录与归档-changelog)
- [执行与记录技能](./0008-execution-logging.md)
- [闭环复盘技能](./0010-retrospective.md)
- [Keep a Changelog](https://keepachangelog.com/)