13 KiB
13 KiB
代码编纂工作流(Code Compilation Workflow)
本文档定义了所有项目修改需求的标准执行流程。自 2026-04-28 起生效,后续所有项目修改必须严格按此流程执行。
流程概览
┌─────────────────────────────────────────────────────────────────────────────┐
│ 阶段 0: 记录时间戳 │
│ 记录当前时间: {Year}-{Mon}-{Day}-{Hour}-{Min}-{Sec} │
├─────────────────────────────────────────────────────────────────────────────┤
│ 阶段 1: 工程分析 │
│ 阅读或创建 "./工程分析" 文件夹,确保项目整体分析文档存在且最新 │
├─────────────────────────────────────────────────────────────────────────────┤
│ 阶段 2: 需求分析 │
│ 将用户提出的需求整理写入 "./工程分析/需求分析-{timestamp}.md" │
├─────────────────────────────────────────────────────────────────────────────┤
│ 阶段 3: 实现方案(需人工审核) │
│ 编写 "./工程分析/实现方案-{timestamp}.md",完成后提交用户确认 │
│ ⚠️ 未经用户审核确认,不得进入下一阶段 │
├─────────────────────────────────────────────────────────────────────────────┤
│ 阶段 4: 测试方案(需人工审核) │
│ 编写 "./工程分析/测试方案-{timestamp}.md",完成后提交用户确认 │
│ ⚠️ 未经用户审核确认,不得进入下一阶段 │
├─────────────────────────────────────────────────────────────────────────────┤
│ 阶段 5: 执行前准备 │
│ 阅读 "./工程分析/经验记录.md",避免重复犯错 │
├─────────────────────────────────────────────────────────────────────────────┤
│ 阶段 6: 方案执行 │
│ 按审核通过的实现方案执行代码修改 │
├─────────────────────────────────────────────────────────────────────────────┤
│ 阶段 7: 经验沉淀 │
│ 在 "./工程分析/经验记录.md" 中按四段式记录关键问题 │
│ A. 具体问题 B. 产生原因 C. 解决方案 D. 后续如何避免 │
├─────────────────────────────────────────────────────────────────────────────┤
│ 阶段 8: Gitea 备份 │
│ 提交代码到 Gitea 仓库,commit 格式: "{timestamp} - {修改简述}" │
├─────────────────────────────────────────────────────────────────────────────┤
│ 阶段 9: 项目重新部署 │
│ 重新构建并部署本项目 │
└─────────────────────────────────────────────────────────────────────────────┘
各阶段详细规范
阶段 0: 时间戳记录
每次执行流程前,首先获取当前时间戳:
date "+%Y-%m-%d-%H-%M-%S"
# 输出格式示例: 2026-04-28-22-55-15
此时间戳将贯穿整个流程,用于统一命名所有相关文档。
阶段 1: 工程分析
目标: 确保对项目现状有全面理解。
行动项:
- 确认
./工程分析/目录存在 - 阅读
项目整体分析.md,确认其内容是否反映当前项目状态 - 如项目结构发生显著变化,更新
项目整体分析.md - 阅读
AGENTS.md(项目根目录)获取最新技术栈信息
阶段 2: 需求分析
目标: 将用户原始需求转化为结构化、可执行的需求文档。
输出文件: ./工程分析/需求分析-{timestamp}.md
文档模板:
# 需求分析 - {timestamp}
## 需求来源
- 提出时间: {timestamp}
- 需求类型: [功能新增 / 缺陷修复 / 性能优化 / 代码重构 / 文档更新]
## 原始需求描述
{用户原始需求的完整记录}
## 需求拆解
### 需求 1: {子需求标题}
- **详细描述**:
- **优先级**: [P0-阻塞 / P1-高 / P2-中 / P3-低]
- **影响范围**: {涉及的文件/模块}
- **验收标准**: {明确的完成标准}
### 需求 2: ...
## 约束条件
- 技术约束: {如兼容 React 19、TailwindCSS 4 等}
- 业务约束: {如中文界面、深色主题等}
- 时间约束: {如有}
## 风险评估
| 风险点 | 影响 | 缓解措施 |
|--------|------|----------|
| {风险} | {高/中/低} | {措施} |
阶段 3: 实现方案
目标: 制定详细的代码修改计划,确保方案可行且最小侵入。
输出文件: ./工程分析/实现方案-{timestamp}.md
文档模板:
# 实现方案 - {timestamp}
## 对应需求
- 需求分析文档: `需求分析-{timestamp}.md`
## 方案概述
{总体技术思路和目标}
## 修改文件清单
### 文件 1: `{文件路径}`
- **修改类型**: [新增 / 修改 / 删除]
- **修改内容**: {具体说明}
- **关键代码逻辑**: {伪代码或关键实现要点}
### 文件 2: ...
## 新增依赖
| 依赖名 | 版本 | 用途 |
|--------|------|------|
| {name} | {ver} | {用途} |
## 兼容性分析
- 与现有功能的冲突: {分析}
- 回滚策略: {如需回滚,步骤是什么}
## 预估工作量
- 代码编写: {时间}
- 测试验证: {时间}
- 文档更新: {时间}
审核要求:
- 完成后必须停止,等待用户阅读并确认
- 用户确认后,方可进入下一阶段
- 如用户提出修改意见,更新方案后重新提交审核
阶段 4: 测试方案
目标: 定义如何验证修改的正确性和稳定性。
输出文件: ./工程分析/测试方案-{timestamp}.md
文档模板:
# 测试方案 - {timestamp}
## 对应实现方案
- 实现方案文档: `实现方案-{timestamp}.md`
## 测试范围
- {说明哪些功能需要测试}
## 测试用例
### 用例 1: {用例标题}
- **前置条件**:
- **操作步骤**:
- **预期结果**:
- **通过标准**:
### 用例 2: ...
## 回归测试
- [ ] 现有功能 A 不受影响
- [ ] 现有功能 B 不受影响
- [ ] 构建无错误 (`npm run build`)
- [ ] 类型检查无错误 (`npm run lint`)
## 测试环境
- 浏览器: {Chrome / Firefox / Edge}
- 分辨率: {1920x1080 等}
- 测试数据: {说明}
审核要求:
- 完成后必须停止,等待用户阅读并确认
- 用户确认后,方可进入下一阶段
阶段 5: 执行前准备
目标: 避免重复犯错,吸取历史经验。
行动项:
- 阅读
./工程分析/经验记录.md - 检查是否有与当前需求相关的历史经验
- 如有相关经验,在实现方案中标注注意事项
阶段 6: 方案执行
目标: 按审核通过的方案执行代码修改。
执行原则:
- 最小修改原则: 只修改方案中列出的文件,不做计划外的改动
- 逐步验证原则: 每完成一个文件的修改,进行局部验证
- 保持风格一致: 严格遵循 AGENTS.md 中的代码风格约定
- 中文界面原则: 所有新增 UI 文本必须使用中文
执行步骤:
- 按文件清单逐个修改
- 每次修改后运行类型检查:
npm run lint - 全部修改完成后运行构建:
npm run build - 根据测试方案执行测试用例
阶段 7: 经验沉淀
目标: 将本次执行过程中遇到的问题和解决方案沉淀为组织知识。
输出文件: ./工程分析/经验记录.md(追加模式)
记录格式:
## {timestamp} - {需求简述}
### A. 具体问题
{清晰描述遇到的具体问题}
### B. 产生问题原因
{分析问题产生的根本原因}
### C. 解决问题方案
{详细说明解决步骤和方法}
### D. 后续如何避免问题
{给出可操作的预防措施}
记录时机:
- 执行过程中遇到任何非预期问题,均应记录
- 即使问题未导致阻塞,但有参考价值,也应记录
- 如执行过程完全顺利,可记录 "本次执行顺利,无异常问题"
阶段 8: Gitea 备份
目标: 将修改后的代码安全备份到 Gitea 仓库。
操作命令:
# 确认当前分支
git branch
# 添加所有变更
git add .
# 提交(commit message 格式: "{timestamp} - {修改简述}")
git commit -m "{timestamp} - {修改简述}"
# 推送到远程
git push origin main
注意事项:
- 确保
node_modules/和dist/不在提交范围内(检查.gitignore) - 提交前确认没有遗漏的文档文件(
工程分析/目录下的文档必须一并提交) - 推送成功后,向用户汇报备份完成
阶段 9: 重新部署
目标: 将修改后的代码部署到运行环境。
部署步骤:
# 1. 安装依赖(如有新增)
npm install
# 2. 生产构建
npm run build
# 3. 生产模式启动
npm start
验证:
- 确认服务在端口 3000 正常启动
- 访问
http://localhost:3000验证应用可正常访问 - 验证修改的功能是否生效
文档命名规范
| 文档类型 | 命名格式 | 示例 |
|---|---|---|
| 需求分析 | 需求分析-{YYYY-MM-DD-HH-MM-SS}.md |
需求分析-2026-04-28-22-55-15.md |
| 实现方案 | 实现方案-{YYYY-MM-DD-HH-MM-SS}.md |
实现方案-2026-04-28-22-55-15.md |
| 测试方案 | 测试方案-{YYYY-MM-DD-HH-MM-SS}.md |
测试方案-2026-04-28-22-55-15.md |
| 经验记录 | 经验记录.md(唯一文件,持续追加) |
经验记录.md |
| 项目分析 | 项目整体分析.md(唯一文件) |
项目整体分析.md |
流程执行检查表
每次执行流程时,使用以下检查表确保无遗漏:
- 阶段 0: 已记录时间戳
{timestamp} - 阶段 1: 已阅读/更新
项目整体分析.md - 阶段 2: 已创建
需求分析-{timestamp}.md - 阶段 3: 已创建
实现方案-{timestamp}.md并通过用户审核 - 阶段 4: 已创建
测试方案-{timestamp}.md并通过用户审核 - 阶段 5: 已阅读
经验记录.md - 阶段 6: 已按方案执行所有修改
- 阶段 7: 已更新
经验记录.md - 阶段 8: 已完成 Gitea 备份提交
- 阶段 9: 已重新部署项目
特殊情况处理
紧急修复(Hotfix)
如遇到生产环境紧急缺陷需要立即修复,可简化流程:
- 仍然记录时间戳
- 创建简版需求分析(说明紧急性)
- 口头/即时通讯确认方案(跳过书面方案审核)
- 执行修复
- 事后补全: 24 小时内补全实现方案和测试方案文档
- 更新经验记录并提交备份
纯文档修改
如需求仅涉及文档更新(如修改 README):
- 可跳过测试方案阶段
- 执行修改后直接备份
多次小修改合并
如同一时间段内有多个相关小需求:
- 可共用同一个时间戳
- 在需求分析中列出所有需求项
- 方案文档中分节说明各需求的实现
本工作流由 AI 助手建立,经用户审核后生效。后续任何流程变更需经双方确认后更新本文档。