executor-fanout.json 2.56 KB
{
  "id": "executor-fanout",
  "label": "执行型 org node 的 work graph(fan-out / fan-in 起手式)",
  "whenToUse": "宿主 org node 是执行类,且这次任务能拆成多个互不依赖、可并行推进的分支时用本骨架——27-REQ R-6 第 6 步描述的就是它:拆分 → 并行实现 + 各自自测(自测失败只回退本分支)→ fan-in 汇合整合 → 集成测试 → 本层验收。典型信号词:多个模块、多个页面、多个接口、可以同时做。汇合节点有多条入边,引擎按「全部入边条件都满足才置 ready」处理(27-P3/P4 §四.D.1)。分支数按实际任务增减,本文件给的是 2 条;任务只有一个交付物就别用它,用 executor.json。",
  "ownerOrgNode": "{{orgNode}}",
  "nodes": [
    { "nodeName": "{{orgNode}}-split", "systemAgentId": "{{splitAgent}}" },
    { "nodeName": "{{orgNode}}-impl-a", "systemAgentId": "{{implAgent}}" },
    { "nodeName": "{{orgNode}}-impl-b", "systemAgentId": "{{implAgent}}" },
    { "nodeName": "{{orgNode}}-test-a", "systemAgentId": "{{testAgent}}" },
    { "nodeName": "{{orgNode}}-test-b", "systemAgentId": "{{testAgent}}" },
    { "nodeName": "{{orgNode}}-merge", "systemAgentId": "{{mergeAgent}}" },
    { "nodeName": "{{orgNode}}-integration", "systemAgentId": "{{integrationAgent}}" },
    { "nodeName": "{{orgNode}}-validator", "systemAgentId": "{{validatorAgent}}" }
  ],
  "edges": [
    { "from": "{{orgNode}}-split", "to": "{{orgNode}}-impl-a", "condition": "success" },
    { "from": "{{orgNode}}-split", "to": "{{orgNode}}-impl-b", "condition": "success" },
    { "from": "{{orgNode}}-impl-a", "to": "{{orgNode}}-test-a", "condition": "success" },
    { "from": "{{orgNode}}-impl-b", "to": "{{orgNode}}-test-b", "condition": "success" },
    { "from": "{{orgNode}}-test-a", "to": "{{orgNode}}-merge", "condition": "success" },
    { "from": "{{orgNode}}-test-b", "to": "{{orgNode}}-merge", "condition": "success" },
    { "from": "{{orgNode}}-merge", "to": "{{orgNode}}-integration", "condition": "success" },
    { "from": "{{orgNode}}-integration", "to": "{{orgNode}}-validator", "condition": "success" },
    { "from": "{{orgNode}}-test-a", "to": "{{orgNode}}-impl-a", "condition": "fail", "edgeKind": "backward" },
    { "from": "{{orgNode}}-test-b", "to": "{{orgNode}}-impl-b", "condition": "fail", "edgeKind": "backward" },
    { "from": "{{orgNode}}-integration", "to": "{{orgNode}}-merge", "condition": "fail", "edgeKind": "backward" },
    { "from": "{{orgNode}}-validator", "to": "{{orgNode}}-split", "condition": "fail", "edgeKind": "backward" }
  ]
}