{ "nodes": [ { "id": "p0_input", "name": "P0 输入与边界", "owner": "agent-1", "depends_on": [], "outputs": ["facts", "constraints", "non_goals"], "parallelizable": false, "assumption": "PRD/BRD 与非目标先清晰归一" }, { "id": "m_model", "name": "M 模型", "owner": "agent-2", "depends_on": ["p0_input"], "outputs": ["01-M-模型设计.md", "model_contract"], "parallelizable": true, "assumption": "边界清晰时可与 V 并行" }, { "id": "v_view", "name": "V 视图", "owner": "agent-3", "depends_on": ["p0_input"], "outputs": ["02-V-界面与交互.md", "view_contract"], "parallelizable": true, "assumption": "页面与状态映射需基于需求边界" }, { "id": "c_controller", "name": "C 控制", "owner": "agent-2", "depends_on": ["p0_input", "m_model", "v_view"], "outputs": ["03-C-控制与接口.md", "controller_contract"], "parallelizable": false, "assumption": "M/V 明确后再汇总到接口" }, { "id": "p_process", "name": "P 流程", "owner": "agent-4", "depends_on": ["p0_input", "m_model"], "outputs": ["04-P-流程与状态流转.md", "process_contract"], "parallelizable": true, "assumption": "在 M 稳定后可并行于 C" }, { "id": "s_synthesis", "name": "S 约束聚合", "owner": "agent-5", "depends_on": ["m_model", "v_view", "c_controller", "p_process"], "outputs": ["05-实施约束与依赖.md", "sdd-mvcp-contract.json", "06-验收与测试锚点.md"], "parallelizable": false, "assumption": "等待关键链路完成后聚合" }, { "id": "q_gate", "name": "Q 质量门禁", "owner": "agent-1", "depends_on": ["s_synthesis"], "outputs": ["gate_report.md"], "parallelizable": false, "assumption": "反模式与字段约束必须通过" }, { "id": "u_units", "name": "U Unit 拆分与发布", "owner": "agent-1", "depends_on": ["q_gate"], "outputs": ["unit_matrix.json", "handoff_bundle.md"], "parallelizable": false, "assumption": "仅在约束包完成且通过门禁后拆分" } ], "loop_rules": [ { "from": "q_gate", "on_failure": { "m_model": ["缺字段", "模型约束冲突"], "v_view": ["事件未映射", "权限遗漏"], "c_controller": ["错误码缺失", "入参输出不齐"], "p_process": ["错误态缺失", "无补偿策略"] } } ], "agent_pool": ["agent-1", "agent-2", "agent-3", "agent-4", "agent-5"], "constraints": { "no_merge_without_contract": true, "gate_required": true, "max_loop_round": 2 } }