Files
Pre_Seg_Server/工程分析/代码编纂工作流.md

377 lines
13 KiB
Markdown
Raw Blame History

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