Plan 实质化与工作账本

wesgine Plan 系统的步骤完成验证机制——done 与工作发生过同构。


核心原则(INV-PE-15)

步骤标记 done 需要有实际工作发生过。

判据是 session ledger:PlanStep.Substantiated ∪ PlanWorkThisTurn。


实质化机制

引擎在工具执行开始时给全部 open 步骤(pending + in_progress)盖章:

execute 开始
 └── stampPlanWork()
     └── 遍历 open 步骤
         └── 标记 Substantiated = true

引擎无法把 grep 归属到某一步——禁止 first-pending-only。


记账可以跨轮次

先做完多步工作(read / grep / exec),下一轮批量补标 done:

Turn 1: read → grep → exec  (全部 open 步骤被 stamp)
Turn 2: plan(update, task_id=0, done)  ← 合法
        plan(update, task_id=1, done)  ← 合法
        plan(update, task_id=2, done)  ← 合法

complete 收口

plan(action=complete) 收口剩余 open 步骤为 done。

不是终止 Run(INV-PE-12),而是声明所有步骤已完成。


与 Nudge 的关系

场景行为
end_turn + pending 步骤Nudge 提醒(最多 3 次)
Nudge 引导 update 补标先前工作的 Substantiated 允许
complete 后 pending 残留complete 自动收口

已删除的机制


已知权衡

实质化验「调用存在」不验「调用成功/属于哪一步」。

这是有意设计——引擎无法准确归因工具调用到具体步骤。


相关文档