--- 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/)