Repository navigation
fix(replan): give executable Todo link authoring example - #6771
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · reasoning_effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机
执行重规划的 Agent 需要把下一步计划对应到真实 Todo,供后续复盘读取,而不是只保存一段方向描述。
例如照抄 action:todo_id 后,即使后来实际完成了工作,读模型也无法将它关联到这份计划;新提示给出 retain:todo_<id>,并明确先核对真实 ID。
本次可观察的改进是送达的提示能够形成既有 reader 支持的工作引用,随后普通回写可以关联到原计划。
本 PR 不实现模型采用、研究收益、自动创建任务或额外执行权限。
这是一个有理由独立交付的前提修复。更大的研究验收仍包括真实模型是否使用提示、后续工作是否受决定影响及其完整成本和结果,不能用工作引用或测试数量替代。若不修,原本有效的 parser 会继续正确地忽略错误前缀,但使用者得到的指导仍不完整;放宽 parser 来接受 action: 则会把含糊历史文本升级成关联依据。补正既有指导比增加兼容解析分支更合适。
改动思路
以改动前的 docs/reference/protocols/goal-vision-replan-contract-v0.md 为规范,spec_revision 为 105c4bc15091afac832495167cb98a1389951a04。我按其中 Decision followthrough in replan context、Replan planning guidance、CLI Budget 和 Path Delta 四项分别核验:来源顺序与引用、关闭策略时的隔离、原预算、带证据的路线回写均保留。新文档中的动词表是对现有规则的解释,不拿新增文档为实现自行背书。
共享 authoring contract 和可选 stride 指导继续留在原 TypeScript owner;Python 的既有 reader 仍负责读取已支持的动词。这里保留两个实际消费者需要的提示,没有增加第二个语义判定器、协议字段或任务写入器。当前边界是修复工作关联的写作入口和验证后续读回;更大研究与模型采用仍由原工作承担。界面不增加表单、复制步骤或需要本人确认的新一轮交互,Agent 复用普通 Todo 读回即可填入 ID。
具体改动
完整差异为四个文件,新增 106 行、删除 1 行。visionAuthoringContract() 在共享 authoring_hint 中列出 activate/create/reopen/resume/retain,并把记录计划与创建、认领、执行权分开。stridePlanningGuidance() 将抽象前缀换成具体 retain 示例,保留不得虚构 ID、不得为规划额外造 Todo、先读实际后续工作等条件。协议在同一文件补齐中英文说明,既有历史描述仍可读但不会自动生成工作关联。
新增 CLI 测试经过真实 File/SQLite authority,走原准入、送达的 authoring contract、带证据回写、结算、后续普通工作和不可变历史读取;不是手写一个已经完成关联的结果。两个 store 的链路均返回原 Todo 的 ordinary evidence 引用,三次 Turn 结算保持三笔。literal action: 和说明文本不形成计划工作;关闭 stride 后没有 followthrough 投影。执行和 Goal 收益字段仍保持 unknown。
我独立执行了该文件的 8 项 CLI 测试,以及 vision checkpoint、stride policy、replan context 的 64 项 TS 测试,均通过。另外对基头和当前头直接调用生产 authoring/guidance 与既有 parser:十组动词、空 ID、超长 ID、描述和大小写/空白用例结果一致;去掉两处明确披露的提示修改后,其余 authoring 和启用策略指导完全相同,关闭策略返回同一个空指导列表。新增提示在普通 authoring 入口也会出现,这是共享说明的有意修正,不宣称关闭策略时整份提示字节不变。
对主干的风险
主要风险是把“已记录计划”误读成任务已经创建、被认领、获得权限或取得收益。现在提示明确要求普通写入/读回,实际写入、claim、准入和 settlement owner 均未改变。supported verbs 与既有 VISION_FRONTIER_TODO_DELTA_ACTIONS 逐项一致;不靠模糊 substring 推断动作,也没有把描述性历史迁移成事实。更具体的示例仍需替换 ID,测试只能证明该说明送达且可用于真实关联,不能证明模型会照做。
标准 premerge 的 14 项选择检查和 5 项直接检查通过,包含接口预算、语义清单、公私边界、Python 编译与 RFC 双语差异检查,没有剩余失败或 manual hold。本次没有改变 RFC 成对文件,协议中英文本已逐项对照。按现行 wait_for_ci=false 未查询、轮询或等待 CI。没有运行付费模型、修改历史记录或安装升级;模型理解、长期收益及后续研究仍是未测范围,而非本次提示修复的通过证据。
我的整体评价
未发现阻塞问题。准确提交 551403b2be17fc783c4020376269258db89e4dbb 修复了已说明的写作缺口,并通过真实后续工作链路证明了可关联性。保留既有 typed owner、parser 和默认关闭行为的做法合适;抽象新 helper 或把 action: 增列为合法动词都会扩大当前问题。邻近重构检查结论为无需新增抽象,后续若扩展动词应继续沿既有契约处理。交付边界、研究余项和未验证的模型采用均明确,因此认可这个独立增量。批准结论不代表 GitHub 自批准、合并授权、已安装生效或研究验收完成。
English verdict: APPROVE — 551403b. The shared guidance now gives an existing, intent-only Todo reference format. Eight real CLI tests, 64 relevant TS tests, a base/head parser and guidance comparison, and standard premerge passed. Model adoption and research utility remain unverified; no merge or upgrade is authorized by this review.
When an agent copies the
action:todo_idplaceholder literally, its later work is absent from planned-work followthrough: the existing reader recognizes concrete action verbs. Give the shared replan authoring contract an executableretain:todo_<id>example, use it in stride guidance, and document the supported verbs and intent-only boundary in English and Chinese.A real CLI regression follows the delivered example through admission, evidence-linked replan writeback, settlement and subsequent work on File and SQLite stores. Unsupported/descriptive entries stay unlinked; stride remains opt-in. No parsing, state, permission, or execution rules change. The future-facing pass reuses the existing TypeScript guidance owner without adding another abstraction. Model adoption and research utility remain untested.
Validation: 8 real CLI integration tests and 86 TypeScript tests passed; the full standard
loopx canary premerge --from-git-diff, semantic inventory advisory, public-boundary scan, and staged/head RFC bilingual checks passed. The first canary run required installing the checkout’s npm dev dependencies; the complete rerun passed.