Repository navigation
docs(acceptance): show owner scope reconciliation before supersession - #8581
huangruiteng merged 1 commit into
Conversation
Signed-off-by: xiaobaifly7 <196511160+xiaobaifly7@users.noreply.github.com>
songoow
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · GPT-6 Astra Pro · OpenAI · self_reported
评审提交:7e70952f71e8fc32458db6ccff54616295424f1b,基准 dc145b3044cc61fbba7403adb4dd900482c9ebdd。已读完整 4 文件(+276/-1)、作者声明、原验收 schema/owner/终态调用链及直接更正指导,并亲自执行文档中的 JSON 和真实 CLI。
动机 / Motivation
已获明确更正授权的本地 owner,需要替代过时 Todo,同时保留原目标、已验收工作和最终检查。 旧指导没有完整说明检查范围协调:直接 supersede 会因未验证受阻,只删 binding 仍把旧任务留在 all_advancement;新示例明确审阅整个 selected_work 配置后,再用真实 lease 替代旧任务。 本轮在真实 File 和 SQLite CLI 中复现两种旧路径的拒绝,再按文档 JSON 完成预览、应用、同操作重放和替代;保留工作与累计要求不变,新产物仍须通过实际检查。 这次只补齐既有 owner 工作流的文档、CLI 帮助和可执行例子,不新增授权,不撤销不可变成果要求,也不证明真实 Goal 或模型已经完成交付。
改动思路 / Approach
将完整、可执行的例子放在已有验收参考中,再从工作流与 CLI 帮助引用它,能够修复实际操作缺口并继续由现有 typed owner、CAS 和 lease 维护权威。 本 PR 的运行时代码改动仅是 argparse 帮助文本;范围协调、重复操作恢复、终态验证与不可变成果记录均复用原实现。
这里要修复的是两个不同条件:Todo 是否属于 owner 指定的检查范围,以及该范围内的 Todo 是否绑定并通过检查。删 binding 只会产生 unbound,并不会撤回范围。示例要求 owner 明确保留 parser、当前替代任务、最终检查和完整 validator 配置,再把 obsolete Todo 从范围与绑定同时移除。它同时说明,改成 selected_work 后未来 Todo 不会自动进入;这是一项需审阅的覆盖变化,不能由 Agent 自行当成“修掉阻塞”。
具体改动 / Changes
关键内容与实际 owner
- 完整参考例子 给出可执行且有界的实际产物检查,保留 accepted/current/final 三类工作,明确公共 inspect 不包含 argv,不能据此重建完整配置;原配置、pins/oracles、更正来源和回执必须一并保留。扩展 selected_work 文档不混用 compact outcome authoring 的
outcome_id。 - 配置 owner 没有改动:先处理既有 operation receipt,再在当前 provider revision 上验证完整文档与显式范围,记录 owner 确认的绑定,最后沿原 CAS 提交。文档正确使用 provider_revision 而非数值 contract revision;丢响应原样重试,确认冲突后重新审阅并新建操作。
- CLI 帮助 和 工作流指导 指向同一完整例子。省略
--agent-id选择已有可信本地 owner 角色,不等于身份认证或产生授权;只有明确现有授权才可走此路径。 - 文档执行测试 直接读取 Markdown 中的 JSON,只替换 Python 可执行文件。它通过真实 File/SQLite authority,先复现 validation_required 与 unbound,再验证 planned/applied/replayed、实际 lease pair 的 supersede,以及保留 outcome_requirements、原已完成任务和仍未完成的当前/最终任务。
依据 基准 scope/schema 契约 和现有配置 owner:explicit_retained_scope implemented,完整保留受影响范围外的检查与工作;owner_cas_replay implemented,明确授权、provider CAS 与固定操作身份;legal_supersession implemented,原 raw lease 路径即可使用已有 successor;immutable_outcome_history implemented,配置可执行检查不撤销累计的不可变要求;real_goal_completion out_of_scope,例子不声明真实项目完成或模型遵从。
对主干的风险 / Risks
最强风险是读者把“去掉阻塞”理解成删除验收、自动收缩所有工作,或错误地宣称已解决不可变要求之间的冲突。正文同时限定原目标与未受影响验收有效、完整 owner 审阅、未来 Todo 不再自动覆盖,并明确矛盾的持久化要求仍是 unresolved;supersession 只记录过时历史,不验证新产物、不代替后续 claim/lease/检查,也不完成 Goal。新帮助文本只有简要示例,因此保留到这份完整参考的链接是必要的。
PASS 本轮 42 项 Python 测试,覆盖文档两种 canonical backend 及整组既有 owner/陈旧写入/终态防逃逸案例。另执行独立记录脚本,File 和 SQLite 各 27 次真实 CLI 调用:文档工作流完成后新增 Todo 不进入 selected_work;把已覆盖 Todo 改成 blocker 再尝试完成,返回 goal_acceptance_stale 且保持 open。恢复不是停在错误回执:原例子真实完成 owner 配置、旧任务替代,缺新产物时 verify 失败,写入符合要求的产物后才通过。
PASS 实际 CLI 帮助的基准/候选对照:原有参数与帮助段落保持,新增加 owner scope 示例和链接;该固定基准 beff0f3e55d1 到 PR base 的相关 CLI/owner/schema 文件未变。PASS quick premerge 的 6 项直接检查、maintainability、语义扫描、CLI output budget 和 public boundary。远端 build 红色及部分等待检查仍保留,原因未充分归因,不能用本地通过声明 CI 已修复。
本 PR 不改变渲染组件、文档框架或页面布局,视觉检查不适用。没有执行 PostgreSQL、安装版宿主或真实生产 Goal;本次验证是一次性公开 fixture 上的实际现有 owner 工作流,不外推为实际模型会遵从每条指导。
我的整体评价 / Verdict
交付判断 goal_achieved:原先容易误用的 owner 协调步骤现在可从帮助直接找到,并有执行文档本身的回归保护。长程连续性为 preserved,已接受工作、历史、真实检查和 immutable outcomes 未被偷换;操作体验为 improved,明确区分 scope、binding 与通过检查三件事。
这 276 行主要是完整参考和可执行例子,生产仅 +12/-1 的帮助文本,没有另建 owner 或通用状态机制,规模与操作风险相称。没有发现需要阻断该 SHA 的问题;远端 CI 和仓库既有合入门禁仍须独立满足。
English verdict: APPROVE at 7e70952f71e8fc32458db6ccff54616295424f1b. The runnable owner-authorized reconciliation preserves retained work and checks, uses the existing CAS/replay and lease owners, and clearly separates executable coverage from immutable outcome requirements. It does not confer new authority or establish completion of a real Goal.
Goal And Delivered Outcome
all_advancementstill leaves it held as unbound. Guidance does not show the complete owner update.selected_workreplacement preserving accepted parser work, the current successor, final checks and bindings, followed by exact lease-fenced supersession. Workflow guidance and CLI help link to the same example.main. Related to Persist user corrections to success criteria before dependent work #8199's existing additive-requirement boundary; no issue is closed.Author Declaration
Implemented against
172fe40f220af6ca03a46583034b055bb67277a6; the documentation repair requested in this PR is the outcome basis.docs/reference/goal-acceptance-observations.md#owner-check-scope-reconciliation;acceptance_contract.tsgoal_acceptance.pyhelptest_owner_check_scope_example.pyoutcome-refinement.mdand reference boundaryScope And Continuation
Complete within this documentation/help scope. No successor or other unmerged CLI change is required: the example uses the already-supported raw lease key/version. English and Chinese guidance live in the same reference, with a Chinese entry link; no paired RFC changes.
Conservative policy: scope narrowing requires existing explicit local-owner authorization and review of the complete replacement, including all unaffected validators, pins/oracles and work associations. It deliberately excludes obsolete work and stops automatic coverage of future Todos. Preserve the original configuration, correction source, reviewed document and native receipt. Retrying an uncertain operation keeps its original ID and provider revision; a confirmed conflict requires current readback and a newly reviewed operation. Supersession does not verify successor output or complete the Goal. This recipe does not retire, overwrite or resolve contradictory persisted additive outcome requirements; those remain explicitly unresolved unless a supported owner amendment actually reconciles them. Omitting
--agent-idselects the trusted local-owner role and is not authentication.Validation
7e70952f71e8fc32458db6ccff54616295424f1b(the committed content tested locally).python -m pytest -q tests/control_plane/test_owner_check_scope_example.py— 2 passed, one each on disposable canonical File and SQLite stores. The only document substitution is the active Python executable.goal_acceptance_validation_requiredfor bound obsolete work andgoal_acceptance_unboundafter binding-only replacement. Explicit owner scope reconciliation then permits raw lease-fenced supersession, preserving accepted work, open successor/final work and outcome requirements. Artifact verification fails before current/final output exists and passes only after matching output is written.tests/control_plane/test_goal_acceptance_cli.py: owner configure/validation/disable, Agent denial/stale owner write, and bound-work terminal escape prevention. 30 unrelated cases deselected.git diff --check; workflow/help link and documentation anchor validation; staged bilingual RFC diff check.python -m loopx.cli goal-acceptance --help; full replacement schema, provider-revision/operation guidance and documentation target are present.The scripted journey establishes executable guidance and retained authority boundaries, not future model compliance or completion of a real Goal.
Frontend / Visual Evidence
Type of Change
LoopX Area
Technical Direction
Existing owner-authorized executable acceptance and direct-correction workflow. No new semantic vocabulary, capability or provider.
Shared-authority RFC fixture impact
N/A: no migration, provider promotion, runtime-routing or compatibility-projection claim. File/SQLite are disposable correctness arms for the existing owner workflow.
Boundary Checklist
No upstream merge or local integration merge is requested or performed.