docs(docs): 新增 AI 协作文档使用指南
This commit is contained in:
211
docs/architecture/issues/README.md
Normal file
211
docs/architecture/issues/README.md
Normal file
@@ -0,0 +1,211 @@
|
|||||||
|
# AI 协作文档使用指南
|
||||||
|
|
||||||
|
> 本文档是 15 AI + coord 使用 `issues/` 目录体系的唯一指南。
|
||||||
|
> 关联:[ai-allocation.md](../ai-allocation.md)、[matrix.md](./matrix.md)、[coord.md](./coord.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. 目录结构
|
||||||
|
|
||||||
|
```
|
||||||
|
docs/architecture/issues/
|
||||||
|
├── README.md # 本文件(使用指南)
|
||||||
|
├── coord.md # coord 仲裁汇总
|
||||||
|
├── workline.md # 总工作安排(15 AI 甘特图)
|
||||||
|
├── matrix.md # 上下游对接总矩阵
|
||||||
|
├── objections/ # 各模块问题/异议(AI 提请,coord 仲裁)
|
||||||
|
│ ├── [模块名]_issue.md # 15 个模块各一个
|
||||||
|
│ └── cross_issue.md # 跨模块问题
|
||||||
|
├── worklines/ # 各模块工作排期(AI 自己写)
|
||||||
|
│ └── [模块名]_workline.md # 15 个模块各一个
|
||||||
|
└── contracts/ # 各模块对接契约(我提供什么 + 我消费什么)
|
||||||
|
└── [模块名]_contract.md # 15 个模块各一个
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. 三类文档职责
|
||||||
|
|
||||||
|
| 文档 | 位置 | 维护方 | 何时读 | 何时写 |
|
||||||
|
| --------------- | ------------- | ---------------------- | ------------------------------------------------ | -------------------------------- |
|
||||||
|
| **contract.md** | `contracts/` | 各 AI 维护 | 开发前(了解上下游接口)+ 集成时(确认就绪信号) | 开发前(定义接口)+ 接口变更时 |
|
||||||
|
| **workline.md** | `worklines/` | 各 AI 自己写 | 开发前(规划)+ coord 汇总时 | 开发前(规划全阶段)+ 进度更新时 |
|
||||||
|
| **issue.md** | `objections/` | 各 AI 提请,coord 仲裁 | 遇到问题时 | 遇到问题追加条目 |
|
||||||
|
| **coord.md** | 根目录 | coord | 查仲裁结论 | coord 仲裁后写入 |
|
||||||
|
| **matrix.md** | 根目录 | coord | 查全局依赖 + 就绪信号 | coord 汇总 |
|
||||||
|
| **workline.md** | 根目录 | coord | 查总排期 | coord 汇总 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. 各 AI 必做清单(按顺序)
|
||||||
|
|
||||||
|
### 3.1 开发前(必做)
|
||||||
|
|
||||||
|
1. **读自己的 contract.md**:`contracts/[你的模块名]_contract.md`
|
||||||
|
- §1 我提供什么:明确自己要实现的接口
|
||||||
|
- §2 我消费什么:明确依赖哪些上游 + mock 策略
|
||||||
|
- §3 就绪信号:明确自己的就绪标志
|
||||||
|
|
||||||
|
2. **读 matrix.md**:了解全局依赖关系
|
||||||
|
- §1 服务依赖图:你在哪条链路上
|
||||||
|
- §7 Mock 策略汇总:你消费的上游用什么 mock
|
||||||
|
|
||||||
|
3. **写自己的 workline.md**:`worklines/[你的模块名]_workline.md`
|
||||||
|
- §2 全阶段甘特图:覆盖 P2-P6 所有任务
|
||||||
|
- §3 详细任务:每个阶段的交付物/依赖/验收标准
|
||||||
|
- §4 依赖与就绪信号
|
||||||
|
|
||||||
|
4. **读 coord.md**:查看是否有影响你的仲裁结论(ARB-XXX)
|
||||||
|
|
||||||
|
### 3.2 开发中
|
||||||
|
|
||||||
|
1. **用 mock 开发**:按 contract.md §4 的 mock 策略,消费上游 mock
|
||||||
|
2. **遇到问题时**:在 `objections/[你的模块名]_issue.md` 追加条目
|
||||||
|
3. **接口变更时**:更新自己的 `contracts/[你的模块名]_contract.md`
|
||||||
|
|
||||||
|
### 3.3 开发完成后(必做)
|
||||||
|
|
||||||
|
1. **更新 matrix.md §8 就绪信号跟踪表**:将自己的状态从 ⏳ 改为 ✅
|
||||||
|
2. **更新自己的 workline.md**:标记任务完成
|
||||||
|
3. **通知 coord**:模块就绪,可合并到 `release/integration` 集成
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. 全并行开发模式
|
||||||
|
|
||||||
|
**核心原则**:各 AI 一口气完成自己模块从 P2 到 P6 的所有代码,开发期间用 mock,最后统一集成测试。
|
||||||
|
|
||||||
|
```
|
||||||
|
各 AI 独立开发(全并行) coord 协调
|
||||||
|
│ │
|
||||||
|
读 contract.md 维护 proto 契约
|
||||||
|
写 workline.md 仲裁异议(objections/)
|
||||||
|
用 mock 开发 汇总就绪信号(matrix.md §8)
|
||||||
|
│ │
|
||||||
|
▼ ▼
|
||||||
|
交付:完整代码 + 就绪信号 交付:契约 + 仲裁 + 总矩阵
|
||||||
|
│ │
|
||||||
|
└────────► 统一集成测试 ◄──────┘
|
||||||
|
(release/integration)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4.1 Mock 策略(见 matrix.md §7)
|
||||||
|
|
||||||
|
| 消费方类型 | Mock 方式 | 切换真实时机 |
|
||||||
|
| ------------ | -------------------------- | ------------------- |
|
||||||
|
| gRPC 调用 | grpc-mock 拦截 + 固定 JSON | 上游就绪信号 ✅ |
|
||||||
|
| GraphQL 调用 | MSW 拦截 + 固定 response | BFF GraphQL 就绪 ✅ |
|
||||||
|
| Kafka 事件 | 本地 Kafka mock producer | 发布方就绪信号 ✅ |
|
||||||
|
| HTTP 调用 | MSW / fetch mock | 上游就绪 ✅ |
|
||||||
|
|
||||||
|
### 4.2 就绪信号(见 matrix.md §8)
|
||||||
|
|
||||||
|
每个 AI 完成后,在 matrix.md §8 将自己的状态改为 ✅:
|
||||||
|
|
||||||
|
| 模块 | 就绪信号 | 状态 |
|
||||||
|
| ---------------- | ------------------------------------------- | ------- |
|
||||||
|
| iam | gRPC 50052 + 12 RPC + HealthService SERVING | ⏳ → ✅ |
|
||||||
|
| api-gateway | :8080 可访问 + JWT 验签 | ⏳ → ✅ |
|
||||||
|
| ...(15 个模块) | ... | ⏳ → ✅ |
|
||||||
|
|
||||||
|
### 4.3 统一集成测试(见 matrix.md §9)
|
||||||
|
|
||||||
|
所有模块就绪后,按 matrix.md §9 检查清单进行集成测试:
|
||||||
|
|
||||||
|
- 认证链路(前端 → gateway → iam → JWT)
|
||||||
|
- GraphQL 链路(前端 → BFF → 业务服务 gRPC)
|
||||||
|
- 事件链路(业务服务 → Kafka → msg → push-gateway)
|
||||||
|
- MF 链路(Shell + Remote 加载)
|
||||||
|
- 推送链路(msg → push-gateway → WebSocket)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. 遇到问题怎么办
|
||||||
|
|
||||||
|
### 5.1 问题类型与处理
|
||||||
|
|
||||||
|
| 问题类型 | 处理方式 |
|
||||||
|
| ---------------- | ---------------------------------------------------------------- |
|
||||||
|
| 上下游接口不明确 | 读对方 contract.md → 仍有疑问在 `objections/cross_issue.md` 追加 |
|
||||||
|
| 工作量过大 | 在 `objections/[你的模块]_issue.md` 追加,请求 coord 重新评估 |
|
||||||
|
| 前置依赖缺失 | 在 `objections/[你的模块]_issue.md` 追加,标注阻塞 |
|
||||||
|
| 编号冲突 | 在 `objections/[你的模块]_issue.md` 追加,标注冲突项 |
|
||||||
|
| 跨模块问题 | 在 `objections/cross_issue.md` 追加 |
|
||||||
|
|
||||||
|
### 5.2 issue 追加格式
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
### ISSUE-[编号]-[AI标识]:[标题]
|
||||||
|
|
||||||
|
- **提请方**:aiXX
|
||||||
|
- **日期**:YYYY-MM-DD
|
||||||
|
- **类型**:契约不明确 / 工作量超批 / 前置依赖缺失 / 编号冲突 / 其他
|
||||||
|
- **描述**:[详细描述问题]
|
||||||
|
- **建议方案**:[AI 的建议]
|
||||||
|
- **状态**:待 coord 仲裁
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.3 coord 仲裁流程
|
||||||
|
|
||||||
|
1. 各 AI 在 `objections/` 追加条目
|
||||||
|
2. coord 审阅后,在 `coord.md` 写入仲裁结论(ARB-XXX)
|
||||||
|
3. coord 在对应 `objections/[模块名]_issue.md` 更新状态为"已裁决(见 coord.md §N)"
|
||||||
|
4. 相关 AI 按仲裁结论执行
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. 分支配合
|
||||||
|
|
||||||
|
| 分支 | 用途 |
|
||||||
|
| --------------------- | -------------------------- |
|
||||||
|
| `feat/<module>-aiXX` | 你的开发分支,所有提交在此 |
|
||||||
|
| `feat/coord-coord` | coord 维护契约/文档/共享包 |
|
||||||
|
| `release/integration` | 集成测试,coord 合并各模块 |
|
||||||
|
|
||||||
|
**规则**:
|
||||||
|
|
||||||
|
- 你只能在 `feat/<module>-aiXX` 分支上 `git add` + `git commit`
|
||||||
|
- **禁止** `git checkout -b` / `git switch` / `git branch` / `git merge` / `git push origin main`
|
||||||
|
- 模块就绪后通知 coord,由 coord 合并到 `release/integration`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. 各 AI 文件清单
|
||||||
|
|
||||||
|
| AI | contract.md | workline.md | issue.md |
|
||||||
|
| ---- | -------------------------------------------------------- | -------------------------------------------------------- | ------------------------------------------------------ |
|
||||||
|
| ai01 | [api-gateway](./contracts/api-gateway_contract.md) | [api-gateway](./worklines/api-gateway_workline.md) | [api-gateway](./objections/api-gateway_issue.md) |
|
||||||
|
| ai02 | [push-gateway](./contracts/push-gateway_contract.md) | [push-gateway](./worklines/push-gateway_workline.md) | [push-gateway](./objections/push-gateway_issue.md) |
|
||||||
|
| ai03 | [teacher-bff](./contracts/teacher-bff_contract.md) | [teacher-bff](./worklines/teacher-bff_workline.md) | [teacher-bff](./objections/teacher-bff_issue.md) |
|
||||||
|
| ai04 | [student-bff](./contracts/student-bff_contract.md) | [student-bff](./worklines/student-bff_workline.md) | [student-bff](./objections/student-bff_issue.md) |
|
||||||
|
| ai05 | [parent-bff](./contracts/parent-bff_contract.md) | [parent-bff](./worklines/parent-bff_workline.md) | [parent-bff](./objections/parent-bff_issue.md) |
|
||||||
|
| ai06 | [iam](./contracts/iam_contract.md) | [iam](./worklines/iam_workline.md) | [iam](./objections/iam_issue.md) |
|
||||||
|
| ai08 | [core-edu](./contracts/core-edu_contract.md) | [core-edu](./worklines/core-edu_workline.md) | [core-edu](./objections/core-edu_issue.md) |
|
||||||
|
| ai09 | [content](./contracts/content_contract.md) | [content](./worklines/content_workline.md) | [content](./objections/content_issue.md) |
|
||||||
|
| ai10 | [msg](./contracts/msg_contract.md) | [msg](./worklines/msg_workline.md) | [msg](./objections/msg_issue.md) |
|
||||||
|
| ai11 | [data-ana](./contracts/data-ana_contract.md) | [data-ana](./worklines/data-ana_workline.md) | [data-ana](./objections/data-ana_issue.md) |
|
||||||
|
| ai12 | [ai](./contracts/ai_contract.md) | [ai](./worklines/ai_workline.md) | [ai](./objections/ai_issue.md) |
|
||||||
|
| ai13 | [teacher-portal](./contracts/teacher-portal_contract.md) | [teacher-portal](./worklines/teacher-portal_workline.md) | [teacher-portal](./objections/teacher-portal_issue.md) |
|
||||||
|
| ai14 | [student-portal](./contracts/student-portal_contract.md) | [student-portal](./worklines/student-portal_workline.md) | [student-portal](./objections/student-portal_issue.md) |
|
||||||
|
| ai15 | [parent-portal](./contracts/parent-portal_contract.md) | [parent-portal](./worklines/parent-portal_workline.md) | [parent-portal](./objections/parent-portal_issue.md) |
|
||||||
|
| ai16 | [admin-portal](./contracts/admin-portal_contract.md) | [admin-portal](./worklines/admin-portal_workline.md) | [admin-portal](./objections/admin-portal_issue.md) |
|
||||||
|
|
||||||
|
**跨模块问题**:[cross_issue.md](./objections/cross_issue.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. 快速开始(每个 AI 的第一步)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. 切换到你的分支(由人类决策者创建,AI 只切换)
|
||||||
|
git checkout feat/<你的模块名>-aiXX
|
||||||
|
|
||||||
|
# 2. 读你的 contract.md(了解接口)
|
||||||
|
# 3. 读 matrix.md(了解全局依赖)
|
||||||
|
# 4. 读 coord.md(了解仲裁结论)
|
||||||
|
# 5. 写你的 workline.md(规划全阶段任务)
|
||||||
|
# 6. 开始用 mock 开发
|
||||||
|
# 7. 遇到问题在 objections/ 追加
|
||||||
|
# 8. 完成后在 matrix.md §8 更新就绪信号
|
||||||
|
# 9. 通知 coord 合并到 release/integration
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user