-
第六次真 CLI 冒烟 gapClosed=true:org 层契约落库 4 行(此前恒 0), 且那段文字真的进了 workgraph-planning 收到的提示词(52677 字节,第 746 行起)。 ## workflow 四路并行的产出 - **org 层两半一起接**(关键顺序):先接读回方 buildPlanningPrompt 的 ③bis 段 (org 边入边 → 上游绝对路径;出边 produces → 「你规划的子图必须有节点产出这些」), 再接声明方 orggraph-planning 模板。只补模板的话就是又一次「声明了没人读」—— org 图节点全是 subgraph,而 describeInputs 对 subgraph 直接返回空。 resolveInboundLines 从 describeInputs 抽出共用,两侧口径物理上不可能漂移。 - **清掉 404 死路径**:模板三处教的 POST /api/company/:id/work-graphs 从未注册。 真跑复验:agent 侧零调用,改为按新 Step 7 写项目根绝对路径,还自己 require validateWorkGraph 预检了一遍才交回,round=1 一次过。 - **四张骨架补 produces/needs**:从「靠模板文字施压」变成结构保证,每张过规则 6。 真跑里 agent 照抄了 planner.json 并跟着任务删掉 sdd 节点——是改编不是复制。 - **graph-seed 顺序依赖**:靠生产代码里已有的 GRAPH_SEED_ROOT 缝隙指向冻结快照。 不是「跑几次都绿」结案:构造了原先必红的 churn,修前 12 次 3 红、修后 15 次 0 红。 ## 我自己收的 4 条 major + 1 条 minor(都在 graph-engine.js) 复验挖出「引擎自己拼的提示词在教 agent 做模板明令禁止的事」,同一条提示词里对立: 1. 「已自行落库成功时回一行 workGraphId: wg_xxx」vs 模板「你永远拿不到真的 wg_ id, 永远别写」。agent 没有任何受支持的落库途径,写出来必是编的,而 extractPlannedGraph 优先匹配那个形状、查库查不到就整轮作废。删掉邀请,保留引擎解析真实 wg_ 的能力。 2. 内联图示例的边一个 produces 都没有——agent 唯一见过的「边长什么样」是零声明的。 3. 「端点尚未上线」暗示将来会上线,于是它还想去试一次。改成「不存在、也不会上线」。 4. indexNodeOutputs 收集 declared 不按 role 过滤,把出边的 needs 当成本节点的产出。 Chrome 走查实测:产品需求文档.md 落成 artifact,下游 prd 输入变 ⚠️。 更坏的一面是错标(brd_notes.md 命中中继 needs[brd] → 归因给错的产出方)。 1ea9efa 加的 role 列,这里正是它存在的理由。 5. (minor) contract.prev.json(retryNode 的契约快照)被索引成 artifact 噪声。 新增 guard:引擎提示词不许与模板对立(静态读源码,剔掉注释行—— 第一版把「解释为什么不许说某句话」的注释也扫进去了,量错了对象)。 测试 850 全绿(83 文件),既有断言未改。5 处变异精确变红后逐字还原。 Chrome 走查确认控制台正常分支(此前只验过降级分支):契约药丸、绝对路径、 needs 中继说明、tab 上的 ⚠️ 计数全部渲染,零 console 报错。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>