diff --git a/docs/todo/system-design/27-p2-org-graph.md b/docs/todo/system-design/27-p2-org-graph.md index 461c927..a7e4492 100644 --- a/docs/todo/system-design/27-p2-org-graph.md +++ b/docs/todo/system-design/27-p2-org-graph.md @@ -233,7 +233,21 @@ if (bootstrap.status === 'hired_from_template') { | **T8** | 前端:复用 P3 画布组件渲染 org graph(或先上纯文本拓扑序占位) | `web/src/views/CompanyDashboard.vue` | T3(+ P3 的 T3 若要画布) | | **T9** | 测试:`org-graph-service.test.js`(四项校验各一条负例、幂等写入、软删除级联)+ e2e 扩展 | `server/tests/unit/org-graph-service.test.js` | T2, T3 | -**顺序**:T0 独立可先做(它是 `orggraph-planning` 的输入前提)。T1→T2→T3 是主干。T4 可最早并行。T5 依赖 T3/T4。T7 独立于 T5/T6,可并行。T8 视是否等 P3 画布决定。 +### 三个可独立验收的阶段 + +11 个任务按依赖收敛为 3 个阶段,**每个阶段都能单独验收、单独上线**: + +| 阶段 | 含 | 交付什么 | 怎么验收 | 是否涉及 agent | +|---|---|---|---|---| +| **A · 数据层** | T1 → T2 → T3、T7、T9 | schema 改造完成、`org-graph-service` 可读写、四个 API 端点通 | 手工 POST 一张合法图 → GET 读回;POST 一张非法图(有环 / 多入口 / 孤立节点 / 回退边未标注)→ 400 并报出违反 §3.3 哪一条 | ❌ 纯后端,不起任何 LLM | +| **B · 自动生成** | T4 → T5 → T5b → T6 | 模板库、`orggraph-planning` agent、元 agent 继承招聘分支、建公司自动触发 | `POST /create` 带 `company-goal` → 秒级返回且 `agents` 出现 `orggraph-planning` → 异步跑完后 `GET org-graph` 拿到一张合法图 | ✅ 端到端跑真实 agent | +| **C · 展示** | T8 | Company Dashboard 渲染 org graph | 有图的公司能看到拓扑;无图的公司显示空态不报错 | ❌ | + +**前置**:**T0(`company-goal` 字段)✅ 已实现**(commit `2255f09`)——它是阶段 B 的输入前提,不属于任何阶段,先做掉了。 + +**阶段内顺序**:A 内部 T1→T2→T3 是硬串行,T7/T9 依赖 T2 后可并行;B 内部 T4 可最早开工(不依赖任何代码),T5b 只依赖 T1 因此可以提到 A 阶段并行做。 + +**阶段间可以停**:只做完 A,系统就有了一个「能手工建图、能校验、能读」的 org graph;B 才让它自动化;C 只是让人看得见。**如果要最快看到端到端效果,A→B 两个阶段即可,C 可以无限期后延**(阶段 C 还依赖 P3 的画布组件,见 §4.5)。 ---