planner.json 3.11 KB
{
  "id": "planner",
  "label": "规划型 org node 的 work graph",
  "whenToUse": "宿主 org node 的职能是「把一句人类需求变成下游能照着干的约束」时用本骨架——典型是 org-planner,也适用于任何产出物是文档/规格/方案而不是可运行产物的节点。典型信号词:需求、规格、方案、拆解、定验收标准。本骨架最大的特点是它负责产出这次 task-goal 的验收契约(goal-benchmark / goal-test-data / goal-test-script 三选一或多选,动态选入,见 27-E2E §十一),这些产物写进 root run 的 artifacts/ 共享区,消费者是另一个 org node(org-validator)。若宿主节点是执行类(写代码/写内容/做运维)用 executor.json;若宿主节点是 org-validator 用 validator.json。",
  "ownerOrgNode": "org-planner",
  "dataContractNotes": "三份文档各由自己那一步 produces(brd / prd / sdd)。goal-benchmark 的主输入是 prd + sdd(见 goal-benchmark/agent.md「输入」),prd 的产出方隔了一个节点,所以用 needs 中继。planner-validator 的职责 A 要审三份产物是否完整、彼此是否矛盾,三个 kind 全部 needs。acceptance 写 produces 是因为它的产出方(goal-benchmark)就在本图里、消费方(planner-validator)也在本图里——这是任务级共享 kind 唯一该沿边声明的情形;反过来,别的图产出的 acceptance / contract 一律不声明,引擎按 task + kind 自动递(graph-engine 的 TASK_SHARED_KINDS),重复声明只是给提示词加一行噪声。contract.json 也不声明:产出侧按文件名就能认成 kind=contract。",
  "nodes": [
    { "nodeName": "org-planner-brd", "systemAgentId": "brd-planning" },
    { "nodeName": "org-planner-prd", "systemAgentId": "prd-planning" },
    { "nodeName": "org-planner-sdd", "systemAgentId": "sdd-planning" },
    { "nodeName": "org-planner-benchmark", "systemAgentId": "goal-benchmark", "writesArtifacts": true },
    { "nodeName": "org-planner-validator", "systemAgentId": "planner-validator" }
  ],
  "edges": [
    { "from": "org-planner-brd", "to": "org-planner-prd", "condition": "success", "produces": ["brd"] },
    { "from": "org-planner-prd", "to": "org-planner-sdd", "condition": "success", "produces": ["prd"] },
    { "from": "org-planner-sdd", "to": "org-planner-benchmark", "condition": "success", "produces": ["sdd"], "needs": ["prd"] },
    { "from": "org-planner-benchmark", "to": "org-planner-validator", "condition": "success", "produces": ["acceptance"], "needs": ["brd", "prd", "sdd"] },
    { "from": "org-planner-validator", "to": "org-planner-prd", "condition": "fail", "failReason": "input_underspecified", "edgeKind": "backward" },
    { "from": "org-planner-validator", "to": "org-planner-sdd", "condition": "fail", "edgeKind": "backward" },
    { "from": "org-planner-prd", "to": "org-planner-brd", "condition": "fail", "edgeKind": "backward" },
    { "from": "org-planner-sdd", "to": "org-planner-prd", "condition": "fail", "edgeKind": "backward" },
    { "from": "org-planner-benchmark", "to": "org-planner-sdd", "condition": "fail", "edgeKind": "backward" }
  ]
}