# AI 协作文档体系重构设计 > 日期:2026-07-09 > 状态:已批准,已实现 > 关联:[president-final-rulings.md](../../architecture/president-final-rulings.md)、[ai-work-orchestration.md](../../architecture/ai-work-orchestration.md) --- ## 1. 背景与问题 ### 1.1 原始问题 Edu 项目有 16 个 AI 协作开发微服务架构。此前的协作文档存在两个核心问题: 1. **issues.md 单文件多 AI 写入冲突**:70+ 问题由多个 AI 追加到同一文件,导致编号严重冲突(ISSUE-024/025/028~~031/032~~036/044~048 多处重复),文件结构混乱(3 个 `## 2.` 标题,章节标题与 issue 标题合并)。 2. **coord 集中规划批次不符合全并行需求**:原模式按 6 批次串行推进(批次 0→1→2→...→5),各 AI 等待批次信号才能开始。用户决定改为**全并行模式**:各 AI 一口气完成自己模块从 P2 到 P6 的所有代码,开发期间用 mock,最后统一集成测试。 ### 1.2 用户需求 - 模块问题和模块 workline 分子文件夹存放 - coord 的 coord.md 和 workline.md 位置不变(留根目录) - workline 由各模块 AI 自己详细规划(不是 coord 规划) - 需要一份上下游对接契约文档,支持全并行开发期间用 mock --- ## 2. 设计方案 ### 2.1 目录结构 ``` docs/architecture/issues/ ├── coord.md # coord 仲裁汇总(不变) ├── workline.md # coord 总工作安排(不变) ├── matrix.md # 新增:上下游对接总矩阵 ├── objections/ # 各模块问题/异议(AI 提请,coord 仲裁) │ ├── [模块名]_issue.md # 15 个模块各一个 │ └── cross_issue.md # 跨模块问题 ├── worklines/ # 各模块工作排期(AI 自己写,覆盖 P2-P6 全阶段) │ └── [模块名]_workline.md # 15 个模块各一个 └── contracts/ # 各模块对接契约(我提供什么 + 我消费什么 + mock 策略) └── [模块名]_contract.md # 15 个模块各一个 ``` **命名冲突解决**:外层文件夹保持 `issues/`(coord.md/workline.md 位置不变),内层"模块问题"子文件夹改名为 `objections/`(语义更准确:AI 提请的异议),避免 `issues/issues/` 路径。 ### 2.2 三类文档职责 | 文档类型 | 子文件夹 | 维护方 | 内容 | | ---------------- | ------------- | ---------------------- | ---------------------------------------------- | | issue(异议) | `objections/` | 各 AI 提请,coord 仲裁 | 遇到问题时追加条目,coord 仲裁后更新状态 | | workline(排期) | `worklines/` | 各 AI 自己写 | 全阶段甘特图 + 详细任务 + 依赖与就绪信号 | | contract(契约) | `contracts/` | 各 AI 维护,coord 汇总 | 我提供什么 + 我消费什么 + mock 策略 + 就绪信号 | **coord 根目录文件**: - `coord.md`:coord 仲裁结果汇总(各 AI 提请异议后,coord 在此写入仲裁结论) - `workline.md`:coord 总工作安排(16 AI 甘特图 + 批次概览 + 各 AI 工作清单链接) - `matrix.md`:coord 汇总的上下游对接总矩阵(服务依赖图 + gRPC/GraphQL/Kafka/HTTP 矩阵 + mock 策略 + 就绪信号跟踪) ### 2.3 全并行开发模式 **核心原则**:各 AI 一口气完成自己模块从 P2 到 P6 的所有代码,开发期间用 mock,最后统一集成测试。 **工作流**: 1. 各 AI 读取自己的 `contract.md` 了解上下游接口 2. 各 AI 在 `workline.md` 详细规划全阶段任务 3. 开发期间消费上游的 mock(见 contract.md §4 mock 策略) 4. 上游就绪后在 `matrix.md` §8 更新就绪信号 5. 所有模块就绪后统一集成测试(见 matrix.md §9 检查清单) **Mock 策略**(见 matrix.md §7): - gRPC 调用:grpc-mock 拦截 + 固定 JSON - GraphQL 调用:MSW 拦截 + 固定 response - Kafka 事件:本地 Kafka mock producer - HTTP 调用:MSW / fetch mock ### 2.4 contract.md 模板结构 ```markdown # [模块名] 对接契约 ## §1 我提供什么(对外接口) - 1.1 gRPC 接口(如有) - 1.2 HTTP 端点(如有) - 1.3 GraphQL schema(如 BFF) - 1.4 Kafka 事件发布(如有) - 1.5 错误码前缀 ## §2 我消费什么(依赖上游) - 2.1 gRPC 调用(同步)+ mock 策略 - 2.2 Kafka 事件订阅(异步)+ mock 策略 - 2.3 HTTP 调用(如有)+ mock 策略 ## §3 就绪信号 - 3.1 我依赖的上游就绪标志 - 3.2 我的就绪标志(供下游消费) ## §4 Mock 策略 - 4.1 我提供的 mock - 4.2 我消费的 mock ``` --- ## 3. 实现清单 ### 3.1 文件创建(共 48 个文件) | 类型 | 数量 | 位置 | | ----------- | -------------------------- | ----------- | | contract.md | 15 | contracts/ | | workline.md | 15(4 个已有 + 11 个新建) | worklines/ | | issue.md | 16(15 模块 + 1 跨模块) | objections/ | | matrix.md | 1 | 根目录 | | **合计** | 47 + matrix.md = 48 | | ### 3.2 文件迁移 - 旧 `issues/[模块名]_workline.md`(4 个)→ 迁移到 `worklines/` 子文件夹,更新路径引用 - 旧文件删除 ### 3.3 文档更新 - `coord.md` §3:更新仲裁流程指向 `objections/` 子文件夹 - `workline.md`:更新维护规则指向 `worklines/` 子文件夹 + 全并行模式说明 - `issues.md`(旧):添加迁移说明指向新流程 - `ai-work-orchestration.md` §9.2:指向新流程 --- ## 4. 验收标准 - [ ] `docs/architecture/issues/` 下有 3 个子文件夹(objections/ worklines/ contracts/) - [ ] 每个子文件夹有 15-16 个 `.md` 文件 - [ ] `coord.md` 和 `workline.md` 在根目录 - [ ] `matrix.md` 在根目录 - [ ] 所有路径引用正确(`../coord.md` 而非 `./coord.md`) - [ ] 旧 `issues/[模块名]_workline.md` 文件已删除 - [ ] `issues.md` 顶部有迁移说明