Files
wecom_it_smart_desk/docs/00-产品开发流程与文档管理规范.md
T
Simon 44e77dcb0e chore(docs): docs/ 目录全面重新编号 + 重组
**重构前**(旧编号 02-11):
- docs/02-产品需求/      → 00 产品规划/PRD
- docs/03-技术架构/      → 01-05 子目录散落
- docs/04-原型设计/      → 01-02 产品设计(HTML 原型)
- docs/05-原型设计/      → screens/
- docs/06-测试素材/      → 02-E2E / 03-功能 / 04-版本测试
- docs/07-项目管理/      → 任务说明书/日报/计划
- docs/08-安全审计/      → 审计报告
- docs/09-堡垒运维/      → toolbox / deploy
- docs/10-项目管理/      → 任务说明书(重复)
- docs/11-历史归档/      → deploy-nas-archived

**重构后**(新编号 00-07,语义化):
- docs/00-产品开发流程与文档管理规范.md
- docs/00-版本迭代总览.md
- docs/01-产品文档/      (PRD/原型/认证/会话/AI 服务/坐席/集成)
- docs/02-技术文档/      (技术方案/架构图/重构记录/前端改造/实现配置)
- docs/03-测试文档/      (E2E/功能用例/版本报告/缺陷单)
- docs/04-运维文档/      (部署运维/运维指南)
- docs/05-运营文档/      (品牌推广/用户手册)
- docs/06-安全审计/      (审计报告)
- docs/07-项目管理/      (任务说明书/日报/计划/看板)

**净收益**:
- 目录编号与产品文档管理规范对齐(按文档阶段 01-07 编号)
- 消除 02-产品需求 与 10-项目管理 的编号重叠
- 子目录按文档类型分组(如 01-产品文档/00-产品规划、01-产品文档/01-认证与登录)
- 把运维/安全/项目管理从 0X 散落改为 04/06/07

合计 494 文件 + 78495 行 / - 14076 行
2026-08-03 18:46:55 +08:00

57 KiB
Raw Blame History

IT智能服务台 - 产品开发流程与文档管理规范

版本: v1.13 日期: 2026-08-03 状态: [已评审] 作者: Simon 变更说明:

  • v1.11 → v1.12:新增 §14 大需求重构的文档化策略(2026-07-28 管理后台 IA 重构经验)
  • v1.12 → v1.13:新增 §16 技术方案偏离时的"增量更新章节"治理(基于 2026-08-03 voice_asr.py P0 安全巡检 + 文档-代码不一致修复经验),涵盖:① §16.1 技术方案与实际部署偏离的场景识别;② §16.2 §10 增量更新章节模板;③ §16.3 多策略功能(如语音输入的"手机 JS-SDK / PC 百度 ASR / Web Speech"三分支)的文档化要求;④ §16.4 API 端点调用方分析强制检查项;⑤ §16.5 运营/配置/运维文档与代码一致性核查清单模板

一、流程定义

1.1 阶段划分

┌────────────────────────────────────────────────────────────────────────────┐
│                      产品开发标准流程(需求→设计→技术→测试→运维→运营)       │
├────────────────────────────────────────────────────────────────────────────┤
│  【阶段1】  【阶段2】  【阶段3】  【阶段4】    【阶段5】    【阶段6】        │
│   需求定义   设计验证   技术实现   测试验证     运维运营     运营分析        │
│  ────────   ────────   ────────   ────────    ────────    ────────        │
│  业务问题    低保真原型  技术方案    测试用例     部署方案     运营报告        │
│  竞品分析    高保真原型  接口设计    功能测试     监控告警     采用率分析      │
│  可行性评估   交互验证   数据库设计   回归测试     运维手册     用户反馈        │
│  PRD撰写     用户测试    详细设计    性能/安全测试 数据看板     推广复盘        │
│  需求评审     设计评审   技术评审    测试报告     故障排查     KPI回流需求     │
│                                                                    │
│       │          │          │          │            │            │           │
│       ▼          ▼          ▼          ▼            ▼            ▼           │
│   产出:PRD   产出:原型图  产出:技术   产出:测试    产出:运维    产出:运营报告  │
│                         文档        报告+缺陷单   文档                        │
└────────────────────────────────────────────────────────────────────────────┘

1.2 阶段依赖

阶段 前置条件 可并行 产出
阶段1 需求定义 业务目标 竞品分析 PRD
阶段2 设计验证 需求确认 技术预研 原型图
阶段3 技术实现 设计确认 - 技术方案
阶段4 测试验证 开发完成提测 性能压测预排 测试用例、测试报告、缺陷单
阶段5 运维运营 测试通过、上线审批 监控看板预配置 部署方案、运维手册、故障排查
阶段6 运营分析 上线运行一段时间 - 运营报告、采用率、用户反馈、KPI

1.3 各环节的关键定位

环节 不是什么 是什么
测试验证 开发的附属、上线前的"过场" 质量闸门——未通过验收标准不得上线
运维运营 上线后的"甩锅环节" 稳定保障——部署/监控/手册三件套齐备方可发布
运营分析 可有可无的"报表" 价值闭环——验证需求是否达成业务目标,KPI 回流需求

核心逻辑:需求定义"做什么"→设计验证"长什么样"→技术实现"怎么造"→测试验证"造得对不对"→运维运营"稳不稳"→运营分析"用得好不好"。测试是质量的守门员,运维是稳定的保障者,运营是价值的验收员,三者都向前回溯(缺陷回到开发,指标回到需求)。


二、文档目录结构

2.0 项目根目录结构(代码与配置)

基于 2026-07-27 整理实践

wecom_it_smart_desk/                    # 项目根目录
├── src/                                 # 源代码(统一管理)
│   ├── backend/                         # Python FastAPI 后端
│   ├── frontend-agent/                  # 坐席工作台前端 (Vue3 + TS)
│   ├── frontend-h5/                    # H5 员工端前端
│   ├── frontend-admin/                   # 管理后台前端
│   └── frontend-terminal/               # 终端管理前端
│
├── configs/                            # 配置文件
│   ├── .env                           # 主环境配置
│   ├── .env.example                   # 环境配置模板
│   ├── .env.production                # 生产环境配置
│   ├── .env.nas                      # NAS 配置
│   └── .dockerignore
│
├── packages/                           # 当前部署包(最新版本)
│   ├── h5_dist.tar.gz                # H5 部署包
│   ├── frontend-agent-dist.tar.gz       # 坐席端部署包
│   └── frontend-admin-dist.zip        # 管理端部署包
│
├── archives/                          # 历史归档(无活跃引用)
│   ├── h5-dist-v*.tar.gz            # 旧版本前端
│   ├── agent-dist-v*.tar.gz          # 旧版本坐席端
│   └── backend-*.tar.gz              # 旧版本后端
│
├── scripts/                           # 脚本工具
│   ├── deploy/                       # 部署脚本
│   ├── debug/                        # 调试/测试脚本
│   └── fix/                         # 修复脚本
│
├── docs/                              # 项目文档(按本规范管理)
├── tools/                             # 辅助工具
├── nginx/                             # Nginx 配置
├── ops-tools/                         # 运维工具
│
├── docker-compose.yml                 # Docker 配置(生产)
└── docker-compose.dev.yml            # Docker 配置(开发)

2.0.1 目录整理规则

类别 存放位置 说明
源代码 src/ 后端+前端统一管理
配置文件 configs/ 环境变量、Docker配置
当前部署包 packages/ 正在使用的部署包
历史归档 archives/ 旧版本、临时文件
部署脚本 scripts/deploy/ 部署相关脚本
调试脚本 scripts/debug/ 测试、调试脚本
修复脚本 scripts/fix/ 问题修复脚本
项目文档 docs/ 按本规范管理

2.0.2 部署配置路径更新

重要:目录结构变更后,部署配置需同步更新:

配置文件 需要更新的路径
docker-compose.yml context: ./src/backend
docker-compose.yml volumes: ./src/backend/app:/app/app
docker-compose.yml volumes: ./src/frontend-*/dist:...

2.1 标准结构(9 类 + 根治理文件)

docs/
├── 00-产品开发流程与文档管理规范.md     ← 本规范(治理文件,置顶)
├── 00-版本迭代总览.md                   ← 全局版本索引(治理文件,置顶)
│
├── 01-产品文档/
│   ├── 01-认证与登录/       (PRD+原型: 企微登录、OTP、SSO)
│   ├── 02-会话管理/         (PRD+原型: 消息、暂停恢复、存档)
│   ├── 03-AI服务/          (PRD+原型: 意图识别、路由、对话)
│   ├── 04-坐席工作台/       (PRD+原型: 消息框、截图、布局)
│   ├── 05-用户端H5/        (PRD+原型: H5界面、群聊、邀请)
│   ├── 06-审批与待办/       (PRD+原型: 审批流、代办)
│   ├── 07-知识库/           (PRD+原型: RAG、知识迭代)
│   └── 08-集成生态/         (PRD+原型: 第三方集成)
│
├── 02-技术文档/
│   ├── 技术架构/            (系统架构设计、类图/时序图、架构图)
│   ├── 实现配置/            (Dify Prompt、实施计划、审批模板等)
│   └── 重构记录/            (按版本拆分的重构方案,原 02-技术文档/重构记录)
│
├── 03-测试文档/
│   ├── 00-测试规范/
│   ├── 01-综合报告/
│   ├── 02-E2E测试/
│   ├── 03-功能测试用例/
│   ├── 04-版本测试报告/
│   └── 05-缺陷单/             (BUG 单独立落点:BUG-{模块}-{描述}-{序号}.md)
│
├── 04-运维文档/
│   ├── 运维指南/            (运维手册、故障排查)
│   └── 部署运维/            (部署指南、nginx配置、运维工具 toolbox、发布说明)
│
├── 05-运营文档/
│   ├── 用户手册/            (坐席/员工操作手册——运营过程中的物料)
│   └── 运营报告/            (运营周/月报、功能采用率、用户反馈、推广效果)
│
├── 06-安全审计/            (安全审计报告、漏洞扫描、CORS/CSP、集成安全分析)
│
├── 07-项目管理/            (任务说明书、SOP、状态看板、日报)
│
└── 08-历史归档/            (仅保留历史留痕、无活跃引用的文档)

2.2 类别边界规则(避免错放)

类别 包含 不包含(应放别处)
01-产品文档 PRD、原型图、设计说明(按子系统合并:PRD+原型放同一目录) 操作手册→05;技术方案→02
02-技术文档 架构设计、接口/DB设计、Prompt配置、实施计划、重构方案 部署手册→04;测试用例→03
03-测试文档 测试规范、用例、报告、缺陷 开发自测记录→02
04-运维文档 部署、监控、故障排查、运维SOP 业务运营报告→05
05-运营文档 用户手册、运营报告 技术运维→04
06-安全审计 安全审计、漏洞、合规 一般运维→04
07-项目管理 任务说明书、迭代、会议、看板 PRD→01
08-历史归档 仅历史留痕 仍被引用的→提升回主文档

2.3 命名规则

2.3.1 产品文档(01-产品文档)

文档类型 命名格式 示例
PRD PRD-REQ-[需求编号]-[功能名]-v[版本号].md PRD-REQ-会话-001-暂停恢复-v1.1.md
原型图 原型-REQ-[需求编号]-[功能名]-v[版本号].html 原型-REQ-会话-001-暂停恢复-v1.1.html

2.3.2 技术文档(02-技术文档)

文档类型 命名格式 示例 关联
技术方案 技术方案-REQ-[需求编号]-[功能名]-v[版本号].md 技术方案-REQ-会话-001-暂停恢复-v1.0.md 关联 PRD
架构设计 架构设计-[功能名].md 架构设计-知识库迭代.md 可关联 REQ
接口设计 API-[功能名].md API-会话管理.md 可关联 REQ
数据模型 数据模型-[功能名].md 数据模型-知识库.md 可关联 REQ
前端设计 前端设计-[功能名].md 前端设计-知识库迭代.md 可关联 REQ
Dify DSL备份 {应用标识}_{版本/日期}_{操作类型}.yml itdesk_main_2026-7-24_102740.yml 关联 Dify 应用

2.3.2.1 Dify DSL 备份文件命名规范

适用范围Dify 应用的 DSLDomain Specific Language)导出文件备份

应用 应用标识 示例
主应用(智能IT支持-员工咨询) itdesk_main itdesk_main_2026-7-24_102740.yml
分诊应用 triage triage_2026-7-20_v1.yml
审批意图应用 approval_intent approval_intent_2026-7-18.yml

保存位置02-技术文档/实现配置/dify_dsl/

2.3.3 其他文档

文档类型 命名格式 示例
需求变更 变更-功能名-日期.md 变更-暂停恢复-20260719.md
测试用例 TC-功能名.md TC-暂停恢复.md
测试报告 TR-功能名-版本.md TR-暂停恢复-v1.1.md
缺陷单 BUG-{模块}-{描述}-{序号}.md(目录:03-测试文档/05-缺陷单/ 03-测试文档/05-缺陷单/BUG-AI-打印机安装路由错误-001.md
部署方案 DEPLOY-功能名.md DEPLOY-暂停恢复.md
监控告警 MON-功能名.md MON-暂停恢复.md
运维手册 OPS-功能名.md OPS-暂停恢复.md
用户手册 手册-角色.md 手册-坐席端.md
运营报告 运营报告-周期.md 运营报告-2026Q3.md
安全审计 SEC-主题-日期.md SEC-前端审计-20260615.md
任务说明书 任务说明书-编号-主题.md 任务说明书-78-审批流程.md
版本总览 00-版本迭代总览.md -

命名规则说明

  • 产品文档必须关联 REQ 编号(PRD、原型)
  • 技术文档建议关联 REQ 编号(技术方案必须关联,其他可选)
  • 存量文件允许保留原名(避免破坏内部引用),新文档按上表命名
  • 重命名需同步修正引用

2.4 重构记录拆分规则

02-技术文档/重构记录 不再单列。按版本迭代内容拆分:

  • 架构/技术方案部分02-技术文档/技术架构02-技术文档/重构记录
  • 需求/PRD 部分 → 并入对应 01-产品文档/子系统 的 PRD 版本历史
  • 全局版本索引00-版本迭代总览.md

2.5 历史归档分拣规则

08-历史归档 仅保留无活跃引用的历史留痕。新文档归档前必须分拣:

  • 仍被主文档引用(规范/PRD/技术方案引用了该文件)→ 提升回对应主文档(附录或引用)
  • 仅历史留痕、无活跃引用 → 留在归档
  • 归档文件命名保留 -archived-日期 后缀以便追溯

三、版本管理

3.1 版本号规则

 PRD-功能名-MAJOR.MINOR.PATCH
                     │    │    │
                     │    │    └─ Patch: 错别字修正、格式调整
                     │    │
                     │    └──── Minor: 新增非核心功能、UI调整
                     │
                     └────── Major: 核心功能变更、架构调整

3.2 文档状态

状态 标记 说明
草稿 [草稿] 正在编写中
待评审 [待评审] 等待评审
已评审 [已评审] 评审通过
已废弃 [已废弃] 已不推荐使用

四、变更管理

4.1 变更流程

需求变更
    │
    ▼
评估影响范围 ━━━━━━━━━━┓
    │                        │
    ▼                        ▼
 小变更              大变更(架构/核心)
    │                        │
    ▼                        ▼
更新PRD版本号           重新评审
+ 变更记录              + 重新设计
+ 通知相关人             + 技术方案更新

4.2 变更记录模板

## 变更记录

| 日期 | 变更人 | 变更内容 | 变更原因 | 影响范围 |
|------|---------|----------|----------|----------|
| 2026-07-19 | Simon | 新增版本回滚功能 | 用户反馈需要 | 需更新技术方案 |

4.3 文档更新时机

场景 需要更新的文档
新增功能(涉及UI PRD + 原型图 + 技术方案 + 测试用例
新增功能(纯接口) PRD + 技术方案 + 测试用例
功能调整 PRD(版本号) + 变更记录 + 原型图(视情况)+ 测试用例
UI优化 原型图
技术优化 技术方案
需求变更 PRD(版本号) + 变更记录 + 回归测试用例
提测 测试用例定稿 + 测试报告初版
发现缺陷 缺陷单 + 回归用例(修复后)
上线 部署方案 + 监控告警 + 运维手册
线上故障 缺陷单 + 运维手册(排查SOP补充)
运营复盘 运营报告 + 监控结论回流至 PRD 指标章节
归档 按 2.5 分拣:提升回主文档 或 留 08-历史归档

4.4 原型图必要性判断

需求类型 是否需要原型图 判断依据
涉及新页面/新组件/UI交互变化 需要 有用户可见的界面改动
纯后端 API / 数据逻辑 不需要 无 UI 变化
仅修改现有组件的显示逻辑 ⚠️ 视情况 参考现有原型是否有该元素

五、文档关联

5.1 引用关系

00-版本迭代总览.md(全局索引)
    │
    ├─ 引用 → 各版本 PRD / 技术方案 / 测试报告 / 发布说明
    │
PRD (01-产品文档)
    │
    ├─ 引用 → 原型图(01-02产品设计)
    │
    ├─ 引用 → 技术方案(02-技术文档)
    │           └─ 引用 → 接口设计 / 数据库设计
    │
    ├─ 引用 → 测试用例(03-测试文档)
    │           └─ 回流 → 缺陷单 → 回归用例
    │
    ├─ 引用 → 部署/监控/运维手册(04-运维文档)
    │
    ├─ 引用 → 安全审计(06-安全审计,涉及合规的需求)
    │
    └─ 运营指标回流 → PRD 指标章节(05-运营文档 闭环)

5.2 文档头部模板

# 功能名称

> **版本**: v1.0
> **日期**: 2026-07-19
> **状态**: [待评审]
> **作者**: Simon
> **关联文档**: 
>   - PRD: `01-产品文档/子系统/PRD-REQ-模块-序号-功能名-v版本号.md`
>   - 原型: `01-产品文档/子系统/原型-功能名.html`
>   - 技术: `02-技术文档/实现配置/xxx.md`
>   - 测试: `03-测试文档/04-版本测试报告/TR-xxx.md`
>   - 运维: `04-运维文档/部署运维/DEPLOY-xxx.md`

六、总结

流程原则

  1. 阶段清晰:需求 → 设计 → 技术 → 测试 → 运维 → 运营,顺序执行、向后回溯
  2. 依赖明确:前序产出作为后续输入
  3. 质量闸门:测试未通过验收标准不得上线;运维三件套齐备方可发布
  4. 价值闭环:运营指标未达预期回流需求
  5. 版本管理:每次变更更新版本号
  6. 变更记录:所有变更必须记录

核心规则

  • 需求确认后才开始设计
  • 设计确认后才开始技术方案
  • 技术方案评审后才开始开发
  • 开发提测后测试是质量守门员,不得"带病上线"
  • 测试通过后运维接手,部署/监控/手册三件套齐备方可发布
  • 上线后运营分析回流 PRD,形成需求→价值闭环
  • 重构记录按版本拆分,不单列目录
  • 历史归档先分拣,仍被引用的提升回主文档
  • 所有文档变更必须记录版本和变更内容

七、需求编号体系

7.1 需求编号与文档的关系

需求编号(主键)
    │
    ├── 关联 PRD 文档
    ├── 关联 技术方案 文档
    ├── 关联 测试用例 文档
    └── 关联 任务说明书

REQ-会话-001 ──┬──→ PRD-会话模块-暂停恢复.md
               ├──→ 技术方案-会话模块-暂停恢复.md
               ├──→ TC-会话模块-暂停恢复.md
               └──→ 任务说明书-会话-001.md

关系

  • 一对一:1个需求编号 → 1个核心PRD文档
  • 一对多:1个需求编号 → 多个关联文档(技术方案、测试用例等)

7.2 需求编号命名规则

[类型]-[模块]-[序号]

类型:
- REQ(需求/Requirement)——产品需求
- TASK(任务/Task)——开发任务
- BUG(缺陷/Bug)——缺陷修复

模块:
- 认证(认证与登录)
- 会话(会话管理)
- AI(AI服务)
- 坐席(坐席工作台)
- 用户(用户端H5)
- 审批(审批与待办)
- 知识(知识库)
- 集成(集成生态)

序号:3位数字,自动递增

7.3 需求编号全局唯一性(强约束)

⚠️ 强制要求:需求编号在项目范围内全局唯一

规则 说明
唯一性 同一REQ编号只能分配给一个需求,禁止重复使用
跨模块 序号在模块内递增,不同模块可使用相同序号(如REQ-会话-001和REQ-坐席-001
禁用历史编号 已使用过的REQ编号即使需求废弃也不能重新分配
技术文档关联 所有技术方案、测试用例、任务说明书必须关联REQ编号

违规处理

  • 新增需求时AI需校验REQ编号是否已存在
  • 代码commit message必须包含REQ编号
  • 上线审批需检查REQ编号关联的文档是否完整

7.3 编号示例

需求编号 含义
REQ-会话-001 会话模块第1个需求
REQ-审批-012 审批模块第12个需求
TASK-会话-001 会话模块第1个开发任务
BUG-消息-003 消息模块第3个缺陷

7.4 文档命名规范(增加需求编号)

# PRD 文档
PRD-[模块名]-[功能名].md
PRD-REQ-[需求编号]-[功能名].md  # 推荐

# 技术方案
技术方案-[模块名]-[功能名].md

# 测试用例
TC-[模块名]-[功能名].md

# 任务说明书
任务说明书-[需求编号]-[功能名].md

八、文档生命周期管理

8.1 新增 / 变更 / 删除判断

类型 判断依据 举例
新增 之前不存在、从未实现过的功能 "新增暂停恢复功能"
变更 已有功能的需求/技术调整 "修改暂停超时从24h改为8h"
删除 已有功能不再需要 "移除短信通知功能"

8.2 生命周期流程

需求进入 → 判断[新增/变更/废弃]
    │
    ├─ 新增 → 新建完整文档
    │
    ├─ 变更 → 在原文档中更新 + 追加变更记录
    │
    └─ 删除 → 标记"已废弃" + 扫描引用

8.3 变更记录模板

## 变更记录

| 日期 | 版本 | 变更内容 | 变更人 | 变更原因 |
|------|------|----------|--------|----------|
| 2026-07-19 | v1.1 | 新增暂停超时配置 | Simon | 用户反馈24h太长 |

8.4 废弃文档处理

  • 在文档头部标记状态:> **状态**: [已废弃]
  • 说明废弃原因和替代方案
  • 保留在原位置(不移动到归档,除非完全无引用)

九、输入环节模板体系

9.1 各环节标准模板

环节 模板 关键字段
业务需求入口 需求收集表 需求编号、类型标记、新增/变更/废弃
产品评审 PRD 评审表 关联需求编号、类型标记
设计评审 原型评审表 关联PRD、变更标记
技术评审 技术方案评审表 关联需求编号、关联PRD
测试评审 测试用例评审表 关联技术方案、变更标记
上线审批 上线checklist 文档完备性检查、需求编号关联

9.2 需求收集表模板

# 需求收集表

> **需求编号**: REQ-[模块]-[序号]  <!-- AI 自动生成 -->
> **需求名称**: 
> **需求类型**: [ ] 新增  [ ] 变更  [ ] 废弃
> **关联模块**: 
> **需求来源**: 
> **业务背景**: 

## 需求描述

## 预期收益

## 关联文档(若有)

9.3 任务说明书模板(增加关联字段)

# 任务说明书

> **关联需求编号**: REQ-[模块]-[序号]  <!-- 必填 -->
> **关联PRD**: 
> **需求类型**: [ ] 新增  [ ] 变更  [ ] 废弃

十、约束管理措施

10.1 用户直接修改的约束

问题场景

用户 → 直接找技术 → 修改参数 → 代码变更
                ↑
                没有产品评审,没有文档记录

约束流程

用户直接反馈
    │
    ▼
技术接收 → 立即转产品确认(强制)
    │
    ▼
产品评估 → 判断[新增/变更/废弃]
    │
    ▼
    ├─ 变更 → 更新PRD + 变更记录
    ├─ 废弃 → 标记已废弃
    └─ 拒绝 → 告知用户原因
    │
    ▼
技术执行 → 代码commit必须关联需求编号
    │
    ▼
上线审批 → 检查需求编号是否存在、文档是否更新

10.2 代码提交约束

# Commit message 格式
[REQ-会话-001] 添加暂停恢复功能

# 强制关联需求编号(必填)

10.3 上线审批检查项

检查项 说明
需求编号关联 commit message 必须包含 REQ-xxx
PRD 更新 对应的 PRD 文档是否已更新
变更记录 变更是否有变更记录
测试用例 是否有对应的测试用例

十一、AI/Skill 自动引导功能

11.1 Skill 可实现的功能

功能 实现方式
自动生成需求编号 根据模块+序号自动生成下一个编号
编号校验 检查编号格式是否正确、是否已存在
关联检查 检查需求编号是否关联了必要文档(PRD+技术方案+测试用例)
命名规范检查 正则匹配 PRD-[模块]-[功能].md,不符则警告
变更记录提醒 识别"变更"类型时,自动在文档末尾追加变更记录表格
引用检查 扫描被引用的文档是否标记为"已废弃"

11.2 Skill 无法完全自动化的环节

环节 需要人工
判断是新增还是变更 需理解业务上下文
确认废弃是否有风险 需人工评估
最终审批 需人工确认

11.3 自动引导流程

输入(需求/任务)
    │
    ▼
AI 检索历史文档库 ──→ 找到相关文档?
    │               │
    │              否 ──→ 建议新增文档
    │               │
    ▼               ▼
有相关文档 ──→ 一致性检查
    │              │
    │             是 ──→ 建议变更文档(追加变更记录)
    │              │
    │             否 ──→ 冲突警告(需人工确认)
    │
    ▼
生成/更新文档(强制填写需求编号)
    │
    ▼
技术执行 → commit message 关联需求编号
    │
    ▼
上线审批 → 自动检查文档完备性

十二、缺陷管理(BUG Tracking

12.1 缺陷管理流程

缺陷发现 → 评估优先级 → 创建缺陷单 → 修复 → 验证 → 关闭
                              ↓
                        回归测试用例

12.2 缺陷状态流转

状态 英文 说明 流转方向
待处理 Open 缺陷已确认,待指派 新建 → 指派
进行中 In Progress 正在修复中 指派 → 修复中
已修复 Fixed 代码已修复,待验证 修复中 → 验证
已验证 Verified 验证通过,缺陷关闭 验证 → 关闭
已关闭 Closed 缺陷修复并验证完成 -
延期 Deferred 暂不处理,推迟 指派 → 延期
无法复现 Can't Reproduce 无法复现,关闭 指派 → 无法复现

12.3 缺陷优先级定义

优先级 级别 说明 SLA(响应时限)
P0-Critical 致命 系统崩溃、数据丢失、业务中断 4小时内响应
P1-High 核心功能不可用、严重影响业务 24小时内响应
P2-Medium 功能异常但有绕过方案 3天内响应
P3-Low 轻微问题、UI样式、体验优化 下一迭代安排

12.4 缺陷编号规则

BUG-[模块]-[序号]

模块:
- AI(AI服务/意图识别/路由)
- 会话(会话管理)
- 坐席(坐席工作台)
- 用户(用户端H5)
- 审批(审批与待办)
- 知识(知识库)
- 集成(第三方集成)
- 运维(部署/运维问题)

序号:3位数字,自动递增

示例

  • BUG-AI-001 - AI模块第1个缺陷
  • BUG-会话-003 - 会话模块第3个缺陷

12.5 缺陷单模板

# 缺陷单:缺陷简要描述

> **缺陷编号**: BUG-[模块]-[序号]
> **状态**: [待处理/进行中/已修复/已验证/已关闭/延期/无法复现]
> **优先级**: [P0-Critical/P1-High/P2-Medium/P3-Low]
> **发现日期**: YYYY-MM-DD
> **发现人**: 
> **指派人**: 
> **修复人**: 
> **关闭日期**: 

## 基本信息

| 字段 | 内容 |
|------|------|
| 缺陷标题 | |
| 影响范围 | |
| 触发条件 | |
| 预期行为 | |
| 实际行为 | |

## 复现步骤

1. 
2. 
3. 

## 根因分析

## 修复方案

## 验证结果

| 验证项 | 结果 | 验证人 | 验证日期 |
|--------|------|--------|----------|
| 功能验证 | 通过/失败 | | |
| 回归测试 | 通过/失败 | | |

## 变更记录

| 日期 | 变更内容 | 变更人 |
|------|----------|--------|
| | | |

## 关联信息

- **关联需求**: REQ-[模块]-[序号](若有)
- **关联代码文件**: 
- **关联测试用例**: TC-[模块]-[缺陷编号]

12.6 缺陷跟踪表(轻量级管理)

缺陷管理采用双视图分离架构:跟踪表(横向汇总)在 07-项目管理/BUG 单(纵向闭环)在 03-测试文档/05-缺陷单/

# 缺陷跟踪表

| 缺陷编号 | 标题 | 状态 | 优先级 | 发现日期 | 修复人 | 预计完成 | 实际关闭 |
|----------|------|------|--------|----------|--------|----------|----------|
| BUG-AI-001 | 打印机安装路由错误 | 已验证 | P2 | 2026-07-20 | Simon | 2026-07-20 | 2026-07-20 | [03-测试文档/05-缺陷单/BUG-AI-001.md](../03-测试文档/05-缺陷单/BUG-AI-打印机安装路由错误-001.md) |

双视图协作

  • 缺陷跟踪表.md:横向视角(多缺陷状态汇总)
  • BUG-{模块}-{描述}-{序号}.md:纵向视角(单缺陷全生命周期)

禁止

  • 把 BUG 单放进 07-项目管理/(违反 § 2.2 类别边界规则)
  • 把缺陷跟踪表放进 05-缺陷单/(跟踪表属于项目管理工具)

12.7 缺陷管理与代码提交

# Commit message 格式
[BUG-AI-001] 修复打印机安装路由到前台的问题

# 强制关联缺陷编号(必填)

12.8 缺陷管理检查清单

步骤 操作 说明
1 创建缺陷单 填写基本信息、复现步骤
2 评估优先级 根据影响范围确定 P0-P3
3 指派修复人 明确责任人
4 代码修复 commit message 关联 BUG 编号
5 创建回归用例 确保修复不引入新问题
6 验证修复 功能验证 + 回归测试
7 更新缺陷单 填写验证结果,关闭缺陷

十三、文档整理实践指南(基于2026-07-19经验)

13.1 整理检查清单

步骤 操作 说明
1 扫描目录结构 使用 Get-ChildItem -Recurse 列出所有文件
2 检查命名规范性 PRD/技术方案是否包含 REQ 编号
3 检查头部模板 是否包含必填字段(版本、日期、状态、作者)
4 检查关联 技术方案是否关联 PRD,PRD 是否关联原型
5 更新引用路径 文档移动后必须更新所有引用
6 检查归档标记 历史文档使用 -archived-日期 后缀

13.2 常见问题与修复

问题 修复方法
REQ 编号格式错误(如 REQ-02-001 修正为 REQ-[模块]-[序号](如 REQ-会话-001
引用路径过时(如 docs/02-产品需求/ 更新为 01-产品文档/子系统/
技术方案缺少 REQ 编号 在头部添加 > **REQ编号**: REQ-[模块]-[序号]
文档放错目录 按 2.2 类别边界规则移动到正确目录
子目录编号不统一 统一使用 01-02-、... 前缀
BUG 单放错目录(如 07-项目管理/BUG-*.md 按 § 12.6.3 迁移至 03-测试文档/05-缺陷单/
BUG 单命名格式错误(如缺序号) 重命名为 BUG-{模块}-{描述}-{序号}.md(符合 ^BUG-.*-\d+\.md$

13.2.1 构建产物验证三证据链(基于 2026-07-28 经验)

适用场景:管理后台等需要企业微信扫码登录的端,agent-browser 无法自动 E2E 时,如何证明前端改造正确?

证据 验证方式 命令
编译层 npm run build 通过,无 TS 报错 npm run build 2>&1 | tail -10
产物层 chunk 含新功能字符串字面量(保留特征) grep -E "新功能|字符串" dist/assets/{Chunk-*.js}
部署层 服务器 HTTP 200 + 关键 API 200 curl -I http://{server}/itadmin/ && curl http://{server}:8000/admin/{endpoint}

禁止:用源码变量名验证产物(minify 后变量名消失)。改用:

  • 属性名(.in_progress / .session_id
  • CSS class.mode-card / .monitor-widget
  • Route name(字符串保留)
  • 字符串字面量(手动接单 / agents-assignment

13.3 引用路径更新原则

  1. 同步更新:文档移动或重命名后,必须更新所有引用该文档的地方
  2. 使用相对路径01-产品文档/02-会话管理/PRD-REQ-会话-001-暂停恢复-v1.1.md
  3. 避免死链接:更新后验证目标文档是否存在

13.4 部署配置同步铁律(基于2026-07-23经验)

修改 config.py 默认值 ≠ 配置生效,必须同步更新服务器 .env 文件。

场景 操作
修改 config.py 默认值 同步更新服务器 .env 文件(或确保 docker-compose.yml 有正确的默认值兜底 ${VAR:-默认值}
新增环境变量 同时更新 .env 文件、docker-compose.yml、config.py 三处
部署/重启前 核对 .env 与 config.py 的差异

违反后果:配置不生效,导致运行时使用旧值/默认值,引发难以排查的运行时异常(如本次 Dify 超时导致 [object Object] bug)。

13.5 归档文件处理

  • 归档文件命名:原文件名-archived-日期.后缀
  • 归档目录:08-历史归档/
  • 归档条件:无活跃引用(不被其他文档引用)
  • 归档前确认:仍有引用 → 提升回主文档;无引用 → 归档

13.6 Dify DSL 备份与变更管理规范

基于 2026-07-24 实践总结

13.6.1 Dify 应用维护流程

备份当前DSL → 本地修改 → 导入Dify控制台 → 点击发布 → 重启后端 → 验证

13.6.2 备份规范

项目 规则
备份位置 docs/02-技术文档/实现配置/dify_dsl/
命名格式 {应用标识}_{YYYY-M-D_HHMMSS}.yml
操作类型后缀 _BACKUP(常规备份)、_v版本号(特定版本)
变更日志 docs/02-技术文档/实现配置/dify变更日志.md

13.6.3 变更日志格式

## 2026-07-24
- 应用:智能IT支持-员工咨询
- 操作:导出DSL备份 / 修改Prompt / 导入发布
- 文件:itdesk_main_2026-7-24_102740.yml
- 备注:变更内容简要说明

13.6.4 关联技能

  • dify-deploy:Dify 应用维护工具集 skill,支持备份、导入、发布、重启、验证全流程

13.6.5 关键注意事项

场景 注意事项
修改前 必须先从 Dify 控制台导出当前 DSL 备份
导入后 必须点击「发布」按钮,否则更改不生效
发布后 必须重启后端容器(docker compose restart backend
验证 手动发送测试消息,确认 AI 回复符合预期

13.7 多路径代码同步铁律(基于 2026-07-27 经验)

场景:项目同时存在于中文路径与 ASCII 路径两处

路径 用途
D:\资料\03-项目开发\wecom_it_smart_desk\src\ 工作目录(中文)
D:\dev\wecom\src\ ASCII 构建路径(pnpm install 不卡死)

铁律

  • 修改源代码时必须两边都改(中文路径 + ASCII 路径)
  • build 用 ASCII 路径(中文路径下 pnpm install 卡死,建 junction 也无效)
  • 验证方法build 后查 dist/assets/*.css*.js 的 hash 变化(hash 变 = 源码改了)
  • 优化方向:未来考虑用 mklink /J 建符号链接(待评估)

违反后果build 用的是 ASCII 路径下的旧代码,部署后无效果。

13.8 前端小 UI 改造的 7 件套文档清单(基于 2026-07-28 经验)

适用Tab 收编 / Tab 拆分 / 页面合并 / 单组件重构等小 UI 改造。

按规范 §4.3"功能调整" + §5.1 引用关系,小 UI 改造也必须配套 7 件套:

# 文档 路径 必要度
1 PRD(版本号升级 + 变更记录) 01-产品文档/{子系统}/ 必须
2 原型图(同步改造) 01-产品文档/{子系统}/ 必须
3 技术方案 02-技术文档/ 必须
4 测试用例(覆盖 + 回归) 03-测试文档/03-功能测试用例/ 必须
5 任务说明书 07-项目管理/任务说明书/ 必须
6 版本迭代总览 00-版本迭代总览.md 必须
7 部署运维补充(含回滚预案) 04-运维文档/部署运维/ 必须

详细流程见 § 十五"前端模块收编/拆分流程"。


十四、大需求重构的文档化策略

基于 2026-07-28 管理后台 IA 重构三件套补齐经验总结 P0 三 bug + P1 单一真源 + P1-b Dashboard widget + P2-a/P2-c 两路由补全 + v1.2 分配模式 Tab 收编,跨越 5 次部署迭代,6 阶段全部闭环)

14.1 大需求识别标准

满足以下任一条件,应视为大需求,需要专门的文档化策略:

判定条件 说明
跨越多个阶段(P0+P1+P2 等) 每个阶段独立部署
跨越多次部署迭代 每次迭代可能持续数小时到数天
影响多个端(前端+后端+运维) 跨端改动需协调
涉及单一真源改造(IA 重构、配置化重构) 触动现有架构约定
涉及多个子系统(菜单+路由+组件+API) 跨子系统改动

14.2 铁律 1:第 1 个阶段就建任务说明书

不要等所有阶段上线后回溯补全任务说明书。

原因

  • 跨多阶段的需求,踩坑经验/技术决策/版本号一致性容易遗漏
  • 后续阶段实施时缺乏统一输入文档
  • 验收追溯不完整

正确做法

  • 在第 1 个阶段(哪怕只是 P0 bug 修复)就建任务说明书
  • 任务说明书覆盖全部 WBS 阶段(已知 + 计划)
  • 每个阶段上线后,任务说明书追加状态更新
  • 任务说明书 v1.0 → v1.1(最终闭环)→ v1.2(追加最后阶段)

14.3 铁律 2:文件名版本号 = 文档内容版本号

PRD 文件名必须跟实际版本号一致,否则引用混乱。

问题示例

  • 文档内容已是 v1.2,但文件名仍是 PRD-xxx-v1.0.md
  • 引用方写 PRD-xxx-v1.0.md,实际内容已是 v1.2,造成误导
  • 重命名时若不改引用,会出现"指向 v1.0 但内容是 v1.2"的诡异情况

正确做法

  • 文件名版本号必须 = 文档头部的 > **版本**: vX.Y 字段
  • 重命名文件时同步更新所有引用(grep 全文搜索)
  • 例:PRD-REQ-集成-002-管理后台-v1.0.mdPRD-REQ-集成-002-管理后台-v1.2.md

14.4 铁律 3:三件套版本对齐

PRD + 技术方案 + 任务说明书的版本号必须保持一致。

理由

  • PRD v1.2 描述 v1.2 变更,技术方案应该是 v1.2,任务说明书也应该是 v1.2
  • 不一致会导致引用方无法判断"哪个版本是当前权威"

操作

  • 三个文档使用同一版本号(按需求覆盖范围最高版本)
  • 整改时同步更新三个文件的版本号 + 引用链

14.5 铁律 4:子任务合并/扩展的归档规范

被合并/扩展的旧任务说明书应改名为 .v{X}.archive.md 保留作为历史参考。

理由

  • 保留完整的旧任务历史,便于后续追溯
  • 文件名后缀明确区分"在维护"和"已归档"
  • 避免误以为还在维护导致重复编辑

操作示例

原文件名:任务说明书-REQ-集成-002-分配模式Tab收编.md
归档后:  任务说明书-REQ-集成-002-分配模式Tab收编.v1.0.archive.md
新建:    任务说明书-REQ-集成-002-IA重构整体.md(覆盖整体 6 阶段)

14.6 铁律 5:整改记录建立独立索引文件

文档规范化整改应该建立独立的索引文件(04-运维文档/部署运维/00-文档规范化整改记录.md),记录每次整改。

格式

### 整改 #N · 触发需求 / 整改对象

| 项目 | 值 |
|------|------|
| 日期 | YYYY-MM-DD |
| 触发人 |  |
| 源需求 / 源文档 |  |
| 整改维度 | A 命名/位置 + B 关联引用 + C 命令铁律 + D 完整度 |
| 问题数 |  |
| 关键修复 | (逐项描述) |
| 归档动作 | (被替换的旧文档处理方式) |
| 引用同步 | (哪些文件的引用路径需更新) |
| ASCII 副本同步 | (中文路径 ↔ ASCII 副本) |
| 收益 |  |
| 教训 |  |
| 上线状态 | ✅ 已完成 / 🟡 待部署 / ... |

已知整改索引00-文档规范化整改记录.md):

  • 整改 #1-#6:覆盖部署文档 / BUG 单规范化 / BUG 单目录迁移 / 页面去重 / BUG-通用-002 / IA 重构三件套补齐
  • 详见 04-运维文档/部署运维/00-文档规范化整改记录.md

14.7 单一真源 menu.config.ts 模式(IA 重构关键技术决策)

适用于"菜单/路由/权限分散在多个文件"的情况:

menu.config.ts(单一真源)
  ├─ groups[]       // 5 个分组(顺序、图标、颜色)
  ├─ items[]        // 业务菜单
  ├─ subTabs[]      // 父子页签
  ├─ lockedItems[]  // 折叠区占位
  └─ rolesFilter    // 角色过滤字段

        ↓ 派生

Sidebar.vue       // v-for 渲染,零硬编码
router/index.ts   // meta.menuKey 反查

收益:新增菜单仅改 1 文件,自动出现在 Sidebar + router + 角色过滤三处。

14.8 6 阶段标准工作分解(WBS 模板)

阶段 内容 优先级 估时参考
P0 止血 bug 修复(路由/菜单/组件可点性等) P0 20 min
P1-a 单一真源配置(menu.config.ts / table.config.ts 等) P1 1.5 h
P1-b 业务功能补全(Dashboard widget / 详情页双视图) P1 2 h
P2-a 路由补全(顶级路由缺失) P2 30 min
P2-b 子路由补全(嵌套路由缺失) P2 30 min
v1.2 UI 收编/合并(独立页 → Tab 收编) P2 30 min

每个阶段独立部署、独立验证避免一次大爆炸式变更

14.9 跨项目铁律沉淀(候选)

铁律 说明
大需求第 1 阶段就建任务说明书 不要等所有阶段上线后回溯补全
文件名版本号 = 内容版本号 PRD 文件名必须跟实际版本号一致
三件套版本对齐 PRD + 技术方案 + 任务说明书使用同一版本号
子任务合并归档 旧任务说明书改名为 .v{X}.archive.md
整改记录建索引文件 00-文档规范化整改记录.md 记录每次整改
单一真源派生模式 menu.config.ts 派生 Sidebar + router,避免多源维护脱节
6 阶段分批部署 P0 → P1 → P1-b → P2-a → P2-b → v1.2,每次独立部署独立验证

十五、前端模块收编/拆分流程(基于 2026-07-28 分配模式 Tab 收编经验)

适用范围:前端模块的"独立页 → Tab 内嵌"或反之"Tab 内嵌 → 独立页"调整。这是一类小 UI 改造(不影响后端 API / 数据库),但涉及多文件联动 + 文档联动。

15.1 场景识别

场景 触发条件 典型例子
页面收编 一个独立页(如 /admin/assignment-mode)内容极薄(>50% 灰化占位),且与另一个页面(/admin/agents)有强上下文关联 分配模式 → 坐席管理 Tab
页面拆分 Tab 内嵌内容膨胀(>3 个 Tab 或 Tab 内有复杂配置),需要拆回独立页 阶段二/三分配策略可能膨胀
页面合并 两个独立页面功能高度重叠,可合并为一个带 Tab 的页面 快速回复模板 → 快速回复规则 Tab

15.2 决策矩阵:独立页 vs Tab 内嵌 vs 合并

评估维度 独立页 Tab 内嵌 合并
页面复杂度 内容丰富、独立性强 内容薄、强依赖其他页面数据 两页内容都属于同一业务域
未来扩展性 长期独立演进 短期共存,未来可拆可合 长期共存
上下文关联 与其他页面弱关联 强关联(如解锁条件依赖数据) 强关联
菜单负担 占独立菜单项(可接受) 节省菜单项 节省菜单项
回滚难度 拆 → Tab:需重做 UI;合 → Tab:低 独立 → Tab:低;Tab → 独立:中 独立 → 合:中;合 → 独立:高

推荐原则

  • 内容薄 + 强依赖 → Tab 内嵌(本次方案)
  • 内容薄 + 弱依赖 → 保持独立页
  • 内容丰富 + 强依赖 → 保持独立页Tab 切换不会降低复杂度)
  • 两个页面均属同一业务域 → 合并(但需谨慎评估回滚难度)

15.3 实施步骤(11 步标准流程)

基于 2026-07-28 分配模式 Tab 收编 80 min 实战提炼。

# 步骤 预计耗时 输出物
1 读源文件 + 画迁移映射(哪些行迁移、哪些保留) 5 min 迁移映射清单
2 目标页(Agents.vue)加 <el-tabs> 套层,原内容迁入 Tab 1 15 min 目标页模板改造
3 Tab 2 复制源页(AssignmentMode.vue)的模板 + 脚本(含 reactive、computed、API 调用) 15 min 第二个 Tab 内容
4 路由表删除源页路由项(/admin/assignment-mode 2 min router/index.ts
5 源页文件保留 + 顶部加停用注释(含 30 min 回滚步骤) 2 min AssignmentMode.vue 顶部注释
6 多路径同步铁律(中文路径 + ASCII 路径双改) 见 § 13.7
7 npm run build 验证(无 TS 报错、无 lint 警告) 5 min dist 目录
8 构建产物验证三证据链(见 § 13.2 补充) 5 min 见 § 13.2
9 部署到生产(v2_ops.py upload + 服务器解压 + docker restart wecom_it_nginx 15 min 生产 dist
10 (可选)agent-browser 端到端验证 10 min E2E 报告
11 API 兼容性 curl 验证(关键 API 200 OK 2 min API 验证报告

15.4 完整文档清单(按规范 §4.3 "功能调整" + §5.1 引用关系)

# 文档 路径 规范要求
1 PRD docs/01-产品文档/{子系统}/PRD-REQ-集成-002-xxx-v1.X.md §4.3"功能调整"+版本号+变更记录
2 原型图 docs/01-产品文档/{子系统}/原型-REQ-xxx-v1.X.html §4.3"原型图(视情况)"
3 技术方案 docs/02-技术文档/技术方案-REQ-xxx-xxx.md §4.3
4 测试用例 docs/03-测试文档/03-功能测试用例/TC-xxx-xxx.md §4.3"功能调整"+回归
5 任务说明书 docs/07-项目管理/任务说明书/任务说明书-REQ-xxx-xxx.md §3.1.3
6 版本迭代总览 docs/00-版本迭代总览.md(追加一行 + 经验总结) §5.1 引用关系
7 部署运维补充 docs/04-运维文档/部署运维/DEPLOY-xxx-xxx.md §4.3"上线" + 含回滚预案
8 commit message [REQ-集成-002] 分配模式 Tab 收编 §10.2 强制

重要:规范 § 4.3 "功能调整" 场景下,PRD、原型图、测试用例 必须 更新,技术方案与任务说明书 建议 配套(复杂改动必备)。

15.5 强约束(基于本次踩坑)

15.5.1 多路径代码同步铁律

场景:项目同时存在中文路径(D:\资料\03-项目开发\wecom_it_smart_desk\)与 ASCII 路径(D:\dev\wecom\),build 用 ASCII 路径。

操作 强制要求
修改源代码 两边都改(中文路径 + ASCII 路径)
验证方法 build 后查 dist/assets/*.css / *.js 的 hash 变化
优化方向 未来用 mklink 建符号链接(见 § 13.7)

15.5.2 构建产物验证三证据链

场景:admin 后端需企业微信扫码登录,无法用 agent-browser 自动 E2E;如何证明改造正确?

证据 方式 命令示例
编译层 npm run build 通过 npm run build 2>&1 | tail -10
产物层 chunk 含新功能字符串字面量 grep -E "agents-assignment|手动接单" dist/assets/Agents-*.js
部署层 服务器 HTTP 200 + 关键 API 200 curl -I http://10.90.5.110/itadmin/ && curl -I http://10.90.5.110:8000/admin/assignment-mode

禁止:用源码变量名验证产物(minify 后变量名消失)。

15.5.3 源页文件保留 + 停用注释

目的:未来回滚有迹可循(30 分钟可逆)。

源页(AssignmentMode.vue不删除,顶部加:

<!--
=============================================================================
[模块名] - v1.2 起停用仅供回滚
=============================================================================
说明本文件于 v1.2 起不再使用内容已迁移至 [目标页]  [Tab ]
回滚步骤 docs/04-运维文档/部署运维/DEPLOY-xxx-xxx.md § 回滚预案
=============================================================================
-->

15.5.4 路由删除 vs 保留

选项 适用场景
删除路由项 收编后源页已无意义(本次方案)
保留路由 + 重定向到目标页 旧链接仍可能访问(外部文档/聊天残留)

推荐:删除路由项(强制走新结构),但在变更日志中明确告知"旧路径已废"。

15.6 回滚预案必备要素

任何收编/拆分/合并 PR 必须包含 § DEPLOY 文档的"回滚预案"章节:

  1. 恢复路由(精确到行号或代码片段)
  2. 恢复菜单项(如涉及)
  3. 把内容搬回源页(列出搬移清单)
  4. 恢复目标页单一结构(列出删除的包装层)
  5. build + 部署命令(与正向流程相同)
  6. 归档文档(旧 PRD / 任务说明书状态改 [已废弃]

总耗时估算 ≤ 30 min(本次验证)。

15.7 跨项目铁律沉淀

铁律 说明
Tab 收编 vs 轻合并 vs 保持现状 内容薄 + 强依赖 → Tab 收编;内容薄 + 弱依赖 → 保持独立;内容丰富 → 独立页
多路径同步 中文路径 + ASCII 路径必须双改
构建产物验证三证据链 编译 + 产物 grep + 部署 HTTP
源页不删,加停用注释 30 min 可逆回滚
回滚预案必备 DEPLOY 文档 § 四
完整文档清单 PRD + 原型 + 技术方案 + TC + 任务说明书 + 版本总览 + DEPLOY(7 件套)

十六、技术方案偏离时的"增量更新章节"治理

基于 2026-08-03 voice_asr.py P0 安全巡检 + 文档-代码不一致修复经验总结 (场景:技术方案 v1.0 设计 H5 = 企微 JS-SDK / 坐席端 = Web Speech API 双路径,实际部署中 H5 PC/Mac 端企微用户改用"前端录音 + 后端 POST /api/voice/asr(百度 ASR)"作为第三条兜底分支,v1.0 漏写)

16.1 场景识别:什么时候触发"增量更新章节"

技术方案(v1.0)发布后,实际部署出现以下任一偏离时,必须走"增量更新章节"流程(禁止直接覆盖原版本内容):

场景 说明 典型例子
第三方 SDK/WebView 行为限制 企微 PC/Mac 客户端内置浏览器对 Web Speech API 不支持、JS-SDK 在桌面端挂起 语音输入 PC/Mac 兜底
性能/配额约束 实际跑出性能瓶颈导致必须改用其他方案 切换 ASR 供应商、换文件上传通道
跨端一致性需求 原本独立的方案在跨端测试中发现必须统一 路由前缀 /api/v1/ 统一化
安全合规补丁 加 auth、加审计、加加密 voice_asr.py 加 Depends(get_current_user)
环境适配分支 不同浏览器/客户端需要不同策略("多策略自动切换") 语音输入双策略

16.2 增量更新章节模板(§10 节)

技术方案文档应在末尾预留 ## 10. 增量更新记录(vX.Y 章节,使用以下模板:

## 10. 增量更新记录(vX.Y

> **更新日期**: YYYY-MM-DD
> **触发事件**: (安全巡检 / 性能告警 / 用户反馈 / 跨端测试发现 ...)

### 10.1 背景:vX.0 与实际部署的偏离
(用对比表说明设计 vs 实际的差异,列出哪些分支遗漏)

### 10.2 为什么必须有"X 兜底"
(解释第三方 SDK/WebView/性能约束的客观限制,说明为什么必须走其他路径)

### 10.3 实际技术方案
(流程图 + 关键文件清单)

### 10.4 关联的代码/配置变更
(列出本次同步修改的源文件路径)

### 10.5 编号冲突说明(⚠️ 待治理)
(如果涉及 REQ 编号与 PRD 冲突,记录并提出治理建议,**禁止**当下擅自重命名编号避免范围蔓延)

### 10.6 文档-代码一致性核查清单
(用表格列出所有相关文档的核查状态,强制一次扫一遍)

### 10.7 测试矩阵
(覆盖新分支的所有场景,含安全/性能/兼容性)

16.3 多策略功能的文档化要求

核心原则:技术方案文档必须列出所有生产环境会用到的技术路径,不止是"理想路径"。

对于"自动检测环境 + 多策略切换"的功能(如语音输入),技术方案必须:

必填项 说明
策略枚举表 列出所有可能环境(如:手机企微 / PC 企微 / Mac 企微 / 普通浏览器),每个环境的策略选型
策略优先级 明确优先级(如:企微 JS-SDK > 百度 ASR > 不显示按钮)
降级条件 每个策略的禁用/降级触发条件
不显示按钮 vs 显示禁用态 必须二选一并说明理由(项目惯例:降级策略须"不支持隐藏按钮",见 §60)
第三方 SDK/WebView 限制证据 注释中明确写明"哪些客户端不支持",避免后续重复排查

16.4 API 端点调用方分析强制检查项(基于 2026-08-03 voice_asr.py 教训)

⚠️ 强约束:判定某个 API 端点为"孤儿接口"或评估"加 auth 影响范围"前,必须完成以下 5 个来源的 grep 验证,任意一处命中即不能算孤儿

# grep 来源 命令模式
1 所有前端项目源码(含 composable/store/api/utils Grep -l "<endpoint 字符串>" src/frontend-*/src/
2 前端 apiClient 全局拦截器(决定加 auth 后的兼容性) Grep -l "interceptors|Bearer" src/frontend-*/src/api/
3 后端其他模块的反向调用 Grep -l "<endpoint 字符串>" src/backend/app/
4 测试用例(即使 AsyncMock 不走 HTTP 也算潜在生产调用意图) Grep -l "<endpoint 字符串>" src/backend/tests/
5 运维配置 + 文档注释(环境变量清单、技术方案增量更新) Grep -l "<endpoint 字符串>" docs/04-运维文档/

关键判断问句(每次必答)

"如果对这个端点加 auth,会破坏什么用户路径?"

答不出 = 没查够,禁止下结论。

反例(2026-08-03 教训)

  • 仅 grep /voice/asr 字符串找不到全部调用方
  • 必须顺藤摸瓜查到 useWecomVoice / useAudioRecorder / useSpeechRecognition 三个 composable
  • 必须看 InputBar.vue 的 voiceStrategy computed(多策略自动切换)
  • 必须看 api/index.tsinterceptors.request(自动注入 Bearer Token 决定加 auth 兼容性)

16.5 文档-代码一致性核查清单模板

触发场景:任何技术方案发布 +90 天、出现 P0/P1 巡检发现、文档与代码不一致修复时,必须做一次一致性核查。

文档类型 核查内容 命中关键词举例
运营手册(如 手册-坐席端.md × 技术方案矩阵是否真实 语音 / Web Speech / 百度 ASR / 企微 JS-SDK
配置清单(如 配置清单与环境变量.md 每个环境变量是否有"调用方"说明 BAIDU_* / WECOM_* / DIFY_*
架构设计(如 系统架构设计文档v2.md 模块描述是否包含多策略分支 "H5 端采用双策略 ..."
业务影响评估(如 PRD 是否包含"第三方 SDK/WebView 限制"章节 企微 / Chrome / Edge / Firefox
测试用例(如 TC-xxx.md 覆盖矩阵是否包含所有策略分支 移动端 / PC 端 / 普通浏览器

输出物:在技术方案的 §10.6 文档-代码一致性核查清单 中以表格形式列出,每行带 /⚠️/ 状态。

16.6 跨项目铁律沉淀(候选 → ~/.workbuddy/MEMORY.md

铁律 说明
增量更新章节模板 技术方案偏离时用 ## 10. 增量更新记录(vX.Y 治理,禁止覆盖原版本
多策略功能必须列全 策略枚举表 + 优先级 + 降级条件 + SDK 限制证据
API 调用方 5 来源 grep 端点安全审计/影响评估前必须多源验证
"加 auth 会破坏什么"必答题 答不出 = 没查够
文档-代码一致性核查清单 技术方案 §10.6 + 每次 P0/P1 巡检必做

文档结束