From ef2fafd473420ae84da9b3ddf281b768392135f3 Mon Sep 17 00:00:00 2001 From: Lex Date: Mon, 17 Aug 2026 14:06:33 +0800 Subject: [PATCH] feat(policy): verify-to-delivery doctrine in the Verdict Disposal Contract MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Router's judgment charter lacked the positive obligation behind every disposal: implementation is not the finish line. Encode it as the contract's leading principle (bilingual key prompt): after implementation, keep iterating verification until the delivery bar the user demanded is genuinely met, and the Router owns every judgment on that loop — replan when evidence is insufficient, flow reorganization (extend/replan) when the outcome deviates, a new DAG when the graph is exhausted. Neither a completed node nor a green build closes the loop; only the user's delivery standard does. --- .../core/src/plugin/command/orchestration-policy.md | 10 ++++++++++ packages/core/test/plugin/command.test.ts | 3 +++ 2 files changed, 13 insertions(+) diff --git a/packages/core/src/plugin/command/orchestration-policy.md b/packages/core/src/plugin/command/orchestration-policy.md index 648c4a0c7..bf3a6a23f 100644 --- a/packages/core/src/plugin/command/orchestration-policy.md +++ b/packages/core/src/plugin/command/orchestration-policy.md @@ -253,6 +253,16 @@ Declare `output_schema` for gates and arbiters and normalize `verdict` to `ACCEP ## Verdict Disposal Contract +**持续核验至上线标准 · Verify to the delivery bar.** Implementation is not the +finish line: after implementation, keep iterating verification until the +delivery bar the user demanded is genuinely met — 实现之后,持续迭代核验,直至 +达成用户要求的上线标准。The Router owns every judgment on that loop: verdict +`replan` when the evidence is insufficient, reorganize the flow (a correction +wave via `extend`, a reshape via `replan`) when the outcome deviates, and a +new DAG when the current graph is exhausted. Neither a completed node nor a +green build closes the loop on its own — only the user's delivery standard +does. + A gate, arbiter, or auditor verdict is a work order, not a summary. When a checkpoint reports `REVISE`, `REJECT`, or `BLOCKED`, the parent MUST dispose of it in the same wake turn with exactly one of: diff --git a/packages/core/test/plugin/command.test.ts b/packages/core/test/plugin/command.test.ts index eb33b78df..445fa131c 100644 --- a/packages/core/test/plugin/command.test.ts +++ b/packages/core/test/plugin/command.test.ts @@ -150,6 +150,9 @@ describe("CommandPlugin.Plugin", () => { expect(CommandPlugin.OrchestrationPolicyContent).toContain("The parent conversation owns") expect(CommandPlugin.OrchestrationPolicyContent).toContain("MUST NOT perform executable leaf work") expect(CommandPlugin.OrchestrationPolicyContent).not.toContain("## Execution Mode Selection") + expect(CommandPlugin.OrchestrationPolicyContent).toContain("持续核验至上线标准 · Verify to the delivery bar") + expect(CommandPlugin.OrchestrationPolicyContent).toContain("keep iterating verification until the") + expect(CommandPlugin.OrchestrationPolicyContent).toContain("only the user's delivery standard") expect(CommandPlugin.WorkflowContent).toContain("One `task` child") expect(CommandPlugin.WorkflowContent).toContain("One `workflow` DAG") expect(CommandPlugin.DagFlowContent).toMatch(/one consolidated\s+graph/)