Files
octopus-workflow/core/checklists/dag-single-gate.md
T

7.7 KiB
Raw Blame History

单门三维审查 checklistreview-dag

单门 review-dag 替代 review-design-space + review-iteration-plan 双门(spec-02 §1 D-02)。 门内分层三维:TOPO(拓扑)、REQMAP(需求映射)、RELEASE(滚动放行)。 省的是编排开销,不省修订循环——三维各审独立风险面。

权威源:本文件判据逐行复制 dag-pipeline/spec-04 §1 三张表 (含 NFR: 前缀 / 里程碑边 / 里程碑节点豁免与 estimated_sessions 判据)。 若本文件与 spec-04 §1 不一致,以 spec-04 §1 为唯一权威源。 (spec-0N 前身为 dag-pipeline/03-design-0N-*2026-08-21 [org-internal #3072] phase 3 升格迁移,旧名仅保留墓碑占位以维持旧 URL 可达。)

TOPO — 拓扑维

检查项 判据
环检测 边方向图无环;有环 = BLOCKER
依赖正确性 每条边 from→to 方向正确(契约生产方先于消费方);缺边/错边 = MAJOR
大小均匀性 节点工作量分布均匀,无"巨型节点";巨型节点 = 单个 task 节点 size_attrs.estimated_sessions ≥ 2 → MAJOR(需拆分;INFO 豁免不适用)
粒度下限 每个 task 节点预估实现时长由 size_attrs.estimated_hours/estimated_sessions 承载(冻结字段,见 spec-02 §2.1);判据一律以 estimated_sessions 为准(两字段一致性不变量见 spec-02 §2.1,完整分档见 spec-03 §3 规则 3):字段不一致(`
里程碑位置 每个 cross_session_in ≥ 2 汇聚点已焊入里程碑(spec-03 规则 2);缺失 = BLOCKER
可执行性 每个 task 节点可被单个 session 独立实现(EXE 折叠项;里程碑节点无实现工作、由 verify 承担,不参与本判据)
页尺寸自检信号 {epic-slug}/dag 页首 > 页尺寸自检: 超限 标志(spec-02 §2.6)→ 以 INFO finding 记录于 synthesissummary = 页尺寸超限、子页已下沉 {subpages}),供 retrospective 统计与试点负责人核查;不改变任何门判据、不触发重派生(非 PASS/FAIL 判据)

REQMAP — 需求映射维

检查项 判据
需求覆盖 每需求至少一节点:需求登记表每条 REQ-F-{NNN} 被 ≥1 节点的 req_refs 引用(无"有需求无节点"遗漏)
节点溯源 每 task 节点至少一需求:每 task 节点 req_refs 非空且引用有效编号(无"有节点无需求"过度分解)
验收标准可证伪 每 task 节点 acceptance_criteria 可证伪且映射 test_id(CLR 折叠项:无"视情况而定";NFR: 前缀条目不参与本判据——其验证由 per-task review-code + 里程碑 verify 承担,见 spec-02 §2.9
AC 路径覆盖 每 task 节点验收标准覆盖正常路径、错误路径、边界场景三类(.octopus/archive/checklists/requirements-analysis.md TST 8.3/8.7 等价);缺错误/边界路径 = MAJOR(NFR: 前缀条目不参与本判据——其验证由 per-task review-code + 里程碑 verify 承担,见 spec-02 §2.9
契约↔节点一致性 每条 task 间跨 session 边的 contract_ref 与两端节点验收标准一致(里程碑边无 contract_ref、不参与本判据,见 spec-02 §2.1 / spec-03 §2

REQMAP 维仅审 task 节点milestone 节点无 req_refs/acceptance_criteria(只有 DoDspec-03 §3 规则 2(b)),由 spec-05 里程碑 DoD 承担,非评审对象(spec-08 §2 里程碑行 评审深度)——故「每 task 节点」均不含里程碑行,含里程碑的 DAG 不会在 REQMAP 维产生误报。

AC 下沉子页的读取路径:当节点 AC 细目因 {epic-slug}/dag 页尺寸预算超限下沉到 {epic-slug}/dag-nodes/{node-id} 子页时(spec-02 §2.6),reviewer 按 {epic-slug}/dag 页内 {node-id} → {epic-slug}/dag-nodes/{node-id} 指针读取子页核对「验收标准可证伪」「AC 路径覆盖」判据(子页 AC 与页内指针同源,均为冻结副本 {epic-slug}/dag 的一部分)。

RELEASE — 滚动放行维

检查项 判据
就绪规则 节点 ready 当且仅当其所有跨 session 入边源节点均处于各自类型的终结态(task 源节点 done、里程碑源节点 green;同 session 边不阻塞就绪)
依赖批放行 按依赖层分批放行:一层内互不依赖的节点同批 ready(最大化并行,见 spec-05 里程碑)
契约冻结范围 仅 task 间的跨 session 边进入 frozen;同 session 边与里程碑边不冻结(spec-02 §1 D-05;里程碑边 contract_state 不适用,见 spec-02 §2.1 / spec-03 §2
放行风险前移 高风险节点(breaking 契约 / 大 fan-out)前移至早期批次(RISK 折叠项)。操作化锚点:breaking 契约节点不得晚于其所在依赖层内其它非 breaking 节点的最早可用批次(同层内先于或等于);大 fan-out = 单节点跨 session 出边数 ≥ 3(取 cross_session_edge_count 阈值表 D3 档起点,spec-06 §2),此类节点同样适用「不晚于同层最早批次」规则——reviewer 按拓扑层序对批次划分做机械核对
估算合理性 task 节点 size_attrs.estimated_hours/estimated_sessions(冻结字段)已填写、取值在 TOPO「粒度下限」「大小均匀性」界内(两字段一致性不变量见 spec-02 §2.1),并支撑批次划分——同批并行节点由跨 session 边拓扑可达性决定(「依赖批放行」行);容量/并发上限属 Orchestrator 执行期资源配置、单门不审(§2.1 PAR 4.4 丢弃行,EST 折叠项)——reviewer 对照冻结 node schema 逐 task 节点核验该字段存在且取值合理(里程碑节点无实现工作、不填,见 spec-02 §2.1 / spec-03 §3

门收敛规则

规则
轮次上限 由评审深度派生(spec-06):D1≤2D2≤3D3≤3D4≤4
PASS 三维均 0 BLOCKER 且 0 MAJOR
WARN 0 BLOCKERMAJOR 在修订轮内关闭;MINOR/INFO 允许(收敛为 PASS
FAIL 任一维存在 BLOCKER
INFO 处理 INFO 不阻塞,记录供 retrospective 统计与试点负责人核查(review-dag 因 never_trim: true 结构性不可裁剪——gate-trim 元进程已退役,该字段自足于 dag: 块,见 spec-07 §5
部分重审 round 3 起(round 2 仍全维重审——三维共享 DAG 形状/字段副作用面,先以一轮全维重审建立干净基线,再于 round 3 起缩窄;与共享 review-artifact skill「round 2 起部分重审」的差异是有意的,因本门仅 3 维且互为副作用面)轮间只重审上一轮的 FAIL / WARN(含未关闭 BLOCKER 或 MAJOR 的维)/ UNRESOLVED 维(不省修订循环);维度需重审 = 该维 verdict 为 FAIL / WARN(含未关闭 BLOCKER 或 MAJOR/ UNRESOLVEDMINOR/INFO 维视为通过不复跑。任一维修订改变**共享 DAG 形状(节点/边集合)或共享字段(size_attrs、AC 文本、契约内容)**时,以该字段为判据输入的相关维随轮重验(三维互为副作用面)
输出 单门 synthesis(复用 synthesis.schema.jsondimensions 键为 TOPO/REQMAP/RELEASE+ commit status pipeline/review-dag