Repository navigation
refactor(explore): unify 5-stage methodology kernel, multi-point yardstick fidelity, counterfactual & evolutionary search - #8516
Conversation
…research operators Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…/SQLite smokes Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · max
评审 head b36bea80a65c2f331b8b19a74892f975e28cbb4d,实际目标 main d3ac3bd8d69821ae5843b7cef5fdb6dcbc7cae74。合并演练保留了 main 新增的 summary/gates snapshot 方法。
- [P2] 按可比量纲聚合反事实估计。 同一
task_id下输入 +1 accuracy point 和改善 1000 ms 的两对记录,CLI 在全局和by_task都报mean_tau_b=500.5。方向转换只改变符号。请按 metric、单位、输入与评测版本、冻结终点及比较范围分组;跨组汇总需要显式的共同量纲。 - [P2] 以实际运行身份排除重复配对。 同一对 treatment/control 只改
pair_id后提交六次,CLI 计为六场胜利,sign-flip p 从 1 降到 0.03125,边际墙钟从 20 秒变成 120 秒。请按冻结 checkpoint 和稳定的 arm 运行身份拒绝或排除重放,再计算样本、成本和 p 值。 - [P2] 把缺失的时间和行动证据保留为未知。 保留 fork 时间,把一侧
decision_context_latest_at与两侧行动签名设为null。默认 strict 模式仍返回all_pairs_identification_valid=true,并把action_diverged=null的记录分类为diverged_with_gain。已知未来时间会被拒绝。请让缺失时钟保留未验证状态,并独立报告终点差值与行动采用。 - [P2] 用已知成本下界淘汰超额路线。 剩余预算 100 tokens,基线已知工作需要 150,评测成本为
null。CLI 把基线记为feasible_with_unknown_bounds,用收益 0.3 淘汰可行的 20-token 候选。把评测成本填成 15 后才判基线超额。请保留总量未知,并用已知非负成本的下界先判定可行性。 - [P2] 限制当前轮次校准到实际引用的测量。 SQLite 的真实
explore turn-context读回中,旧 finding 有 A、B、C 三条代理测量,当前决策只引用 A、B。新yardstick_fidelity仍加入result:uncited-preview-c,报 3 组和order_reversed。请在进入多点校准前复用逐条测量的引用与工作窗口校验。 - [P2] 让历史视图尊重测量撤回。 在同一 SQLite Goal 追加
refuted更新撤回一条测量。打包页面上,同一个 Yardstick 的研究历程仍显示 7 组、τb 0.43,已保存结论显示 6 组、τb 0.60。请让当前校准共用 canonical 折叠结果;若要显示历史时点的校准,明确使用并标注对应的记录前缀。 - [P2] 保留未知机制,避免凭候选 ID 生成跨机制方案。 六个已测候选都缺少方法记录和显式映射。CLI 仍报告六个机制岛,并给出两个
combine_orthogonal_mechanisms配对。请保留候选分数,将未知机制与有证据的机制区分,跨机制建议需有方法记录或显式映射。
动机
做长期研究的 Agent 用当前 Yardstick 选下一步,用剩余预算安排原生确认,再用同起点结果判断路线是否值得保留。研究者也会在工作区复核这些依据。原有入口保留精确作用域和同 Todo 的两点比较。新 head 复用多个编解码规则,并新增多点校准、预算规划、成对估计和种群建议,校准进入普通轮次和工作区读回。真实 CLI 和打包页面都能读出新结果。复现表明这些结果会混合不可比尺度、重复计算同一运行、采纳未引用或已撤回的测量,并误判已知超额的路线。本次验证限于本地合成数据、源码 CLI 和打包工作区。原生评测、模型采用、真实收益、生产部署和执行授权各有独立验收。先守住测量可比性、独立运行身份、引用与撤回语义和已知预算下界,再用同一数据确认普通轮次及工作区的读回。
改动思路
共有的测量定义、摘要与引用窗口适合复用现有 TypeScript owner。当前增量把多个独立研究判断和两个不同读回集合一起送入生产入口,已证实的不一致会改变后续选择。先交付能经普通轮次与工作区核对的同一份校准结果。预算、反事实和演化分析可在各自满足可比性及失败用例后独立验收,沿用现有 Explore 调用和权限。
原路径由 Explore 记录与折叠测量,Yardstick 根据作用域、引用和工作身份给出当前建议。新入口复用测量 profile 和摘要格式,再计算校准与规划结果。最重要的验收是同一份合格证据能否驱动相同的选择。应在数据进入算子前处理引用、撤回、匹配量纲和重复运行,让终端、普通轮次与工作区沿用同一规则。
具体改动
关键内容讲解
stage_methodology_operator.ts提供严格启用判断、作用域匹配和有界投影。File 与 SQLite 的原有首次读取、旧记录兼容和关闭态测试已运行。新多点校准需要复用已有逐条测量准入,当前只继承了 finding 级窗口。budgeted-plan、counterfactual-eval和evolutionary-plan都通过真实 CLI 和 TypeScript Effect runtime 产出建议。正向配对、已知未来时间拒绝、未知 token 总量和无执行授权标记均可观察。失败用例需继续区分已知超额、缺失证据和已观察到的有效结果。- 已保存结论的服务端折叠与研究历程的浏览器计算都复用了校准数学,选入的记录集合不同。原始事件保留用于回顾,当前 badge 应明确显示是哪个时间窗口的结果。
按实际 main d3ac3bd8d69821ae5843b7cef5fdb6dcbc7cae74 的 docs/architecture/rfcs/target-yardstick-stride-decisions-v0.md 核对 5.5 Ordinary Turn and full replan 与 5.8 Budgeted multi-step research planning。现有开关和普通轮次的可选记录仍在,5.8 的精确范围、终点确认与证据适用性尚有上述缺口。长期收益判断还沿用研究计划的完整成本与同状态匹配。
语义与 CI 对齐
新的 (v0) 词表把数值分析和建议公开为 typed outputs。现有调用依赖冻结作用域、原始证据身份和未知值语义,当前输出在这些输入下不一致。修复后应重跑四条 CLI 的反例、File/SQLite 的普通轮次读回、工作区撤回及恢复,并复跑标准本地 premerge。
对主干的风险
实际合并演练涉及 32 个文件,+5113/-698,两次提交均有 DCO。head 上 180 项 TS、53 项 Python、控制面 typecheck、Dashboard/Chat 构建以及 6 项直接检查和 19 项 premerge 所选检查通过。相同 Python 旧路径在 main 通过 50 项。main 的 TS 对照中,170 项通过,两项摘要清单因已存在的 benchmark activation 消费者条目失败;head 已校正清单。上述反例均已从真实入口复现。
我的整体评价
现有共享 profile、摘要与纯计算值得保留。需要先修复可比范围、分支运行身份、未知证据、预算下界及两个读回入口使用的记录。已验证的行为只能支持本地建议态分析,长期效果仍需匹配预算的后续证据。
工作区首屏保留研究历程与记录状态。读到已保存结论后,折叠标题就能看到配对数,展开时先读到校准值和待核实候选,再看指标版本与来源。桌面和 390×844 窄屏的长中英文内容可继续滚动阅读。空态、源损坏与刷新恢复在实际打包页面复核。截图使用隔离 SQLite 与合成材料。安装态、Lark、远端来源和真实长程研究结果未验证。
English verdict: REQUEST_CHANGES — enforce comparable, independent pairs and keep budget feasibility and Yardstick readback tied to eligible evidence.
| losses, | ||
| }, | ||
| estimand_summary: { | ||
| mean_tau_b: tauValues.length ? round6(tauValues.reduce((a, b) => a + b, 0) / tauValues.length) : null, |
There was a problem hiding this comment.
[P2] 按可比量纲聚合反事实估计。 同一 task_id 下输入 +1 accuracy point 和改善 1000 ms 的两对记录,CLI 在全局和 by_task 都报 mean_tau_b=500.5。方向转换只改变符号。请按 metric、单位、输入与评测版本、冻结终点及比较范围分组;跨组汇总需要显式的共同量纲。
| `pairs[${idx}]`, | ||
| ); | ||
| const pairId = opaqueRef(pairRow.pair_id, `pairs[${idx}].pair_id`); | ||
| if (seenPairIds.has(pairId)) { |
There was a problem hiding this comment.
[P2] 以实际运行身份排除重复配对。 同一对 treatment/control 只改 pair_id 后提交六次,CLI 计为六场胜利,sign-flip p 从 1 降到 0.03125,边际墙钟从 20 秒变成 120 秒。请按冻结 checkpoint 和稳定的 arm 运行身份拒绝或排除重放,再计算样本、成本和 p 值。
| if (treatment.workspace_isolation_id === control.workspace_isolation_id) { | ||
| violations.push("shared_workspace_interference"); | ||
| } | ||
| if (forkAt !== null) { |
There was a problem hiding this comment.
[P2] 把缺失的时间和行动证据保留为未知。 保留 fork 时间,把一侧 decision_context_latest_at 与两侧行动签名设为 null。默认 strict 模式仍返回 all_pairs_identification_valid=true,并把 action_diverged=null 的记录分类为 diverged_with_gain。已知未来时间会被拒绝。请让缺失时钟保留未验证状态,并独立报告终点差值与行动采用。
| let tokenFeasible: boolean | null = null; | ||
| if (tokenBudget === null) { | ||
| if (!unknownDims.includes("tokens")) unknownDims.push("token_budget"); | ||
| } else if (totalTokens !== null) { |
There was a problem hiding this comment.
[P2] 用已知成本下界淘汰超额路线。 剩余预算 100 tokens,基线已知工作需要 150,评测成本为 null。CLI 把基线记为 feasible_with_unknown_bounds,用收益 0.3 淘汰可行的 20-token 候选。把评测成本填成 15 后才判基线超额。请保留总量未知,并用已知非负成本的下界先判定可行性。
| const multiPointFidelity = decision.proxy | ||
| ? evaluateScopedYardstickFidelity({ | ||
| node_id: source.node_id, | ||
| findings: scopedFindings, |
There was a problem hiding this comment.
[P2] 限制当前轮次校准到实际引用的测量。 SQLite 的真实 explore turn-context 读回中,旧 finding 有 A、B、C 三条代理测量,当前决策只引用 A、B。新 yardstick_fidelity 仍加入 result:uncited-preview-c,报 3 组和 order_reversed。请在进入多点校准前复用逐条测量的引用与工作窗口校验。
| read.events.forEach((ev, idx) => { | ||
| if (ev.event_kind !== "finding" || !ev.node_id) return; | ||
| const list = byNode.get(ev.node_id) ?? []; | ||
| list.push({ |
There was a problem hiding this comment.
[P2] 让历史视图尊重测量撤回。 在同一 SQLite Goal 追加 refuted 更新撤回一条测量。打包页面上,同一个 Yardstick 的研究历程仍显示 7 组、τb 0.43,已保存结论显示 6 组、τb 0.60。请让当前校准共用 canonical 折叠结果;若要显示历史时点的校准,明确使用并标注对应的记录前缀。
| const mechanismId = | ||
| mechanismOverrides.get(m.candidate_ref) ?? | ||
| methodId ?? | ||
| `candidate:${m.candidate_ref}`; |
There was a problem hiding this comment.
[P2] 保留未知机制,避免凭候选 ID 生成跨机制方案。 六个已测候选都缺少方法记录和显式映射。CLI 仍报告六个机制岛,并给出两个 combine_orthogonal_mechanisms 配对。请保留候选分数,将未知机制与有证据的机制区分,跨机制建议需有方法记录或显式映射。
…rdstick-fidelity-counterfactual-20261111 Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…gets Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> (cherry picked from commit e145961d716608bb63bca977b1774545f481310e) Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
cocolord
left a comment
There was a problem hiding this comment.
Reviewer: model_agent, GPT-5, OpenAI, self_reported
动机 / Motivation
Explore、Stride、Yardstick 结果的调用方以及 Personal Workspace 前端消费者会依赖共享 methodology verifier 判断输入是否只提供建议而不携带执行权限。当前实现会拒绝根级 should_run,却会接受 nested.should_run 或 nested.admin_bypass;合入后,一个表面 advisory-only 的嵌套 payload 可以穿过共享校验并进入前端信任边界。在 exact head a666843 上,嵌套 should_run/admin_bypass 的反例返回 valid=true 且 violations 为空,现有测试只覆盖根级字段。本评审不否定多点 Yardstick、反事实或演化搜索方向,也不要求在本 PR 中完成全部方法论路线图。
改动思路 / Approach
PR 试图把六类研究与决策算子收敛到一个五阶段 typed methodology operator,并让 CLI、控制面与 Personal Workspace 共同消费规范化结果。这个方向可以减少重复 codec、truncation 与 finding-order 规则;但共享 verifier 同时成为 authority 边界。当前 verifyStageMethodologyOperator 递归遍历 payload,却只在 depth 为零时应用 forbidden-key 规则,因此结构收敛反而把一个根级检查漏洞扩散到所有消费者。当前 PR 边界至少必须先让协议与 verifier 在任意嵌套层级一致。
具体改动 / Changes
关键代码讲解
stage_methodology_operator.ts 的递归 walker 负责检查 advisory-only、不授予执行权限以及禁止的 authority 字段;当前 depth === 0 条件让 nested should_run 与 admin_bypass 绕过检查。stage-methodology-operator-contract-v0.md 则承诺拒绝 forbidden authority fields,没有把约束限定在根级。Dashboard 的 chat.ts 使用同一 verifier 校验前端接收的 fidelity 数据,所以这不是只影响内部测试的局部问题。现有 methodology_operator_invariants.test.ts 只证明根级 should_run 被拒绝,没有覆盖嵌套对象。
对主干的风险 / Risks
阻塞风险是 guidance 与 obligation 的边界被结构位置改变:payload 顶层仍显示 advisory_only=true、grants_execution_authority=false,嵌套对象却能携带执行或管理词汇并被判定有效。最小修复是递归拒绝 forbidden keys;如果协议本意仅限制根级,则必须同步收窄协议并明确嵌套语义,同时增加 nested should_run 和 admin_bypass 两条负向测试。当前另有七条未解决 review threads,且 exact head 没有成功 merge gate;修复后要重新执行完整 exact-head review,不能沿用旧 head 的入口和加载结论。
我的整体评价 / Verdict
方向有潜在正收益,但当前共享协议的 authority 校验不安全,不能以“内部方法论重构”降级处理。请先闭合递归校验、协议文本和负向测试,再重新验证默认入口、共享 vocabulary、前端投影及其余 unresolved threads。当前结论只针对 a666843,不授予合入权限。
English verdict: REQUEST_CHANGES - a666843. The shared verifier accepts nested should_run/admin_bypass authority fields despite the protocol promise; fix recursive rejection and add negative tests before a full exact-head re-review.
songoow
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · GPT-6 Astra Pro · OpenAI · self_reported
评审最新 head:a666843742bb908bc956e2ebda9b34913ca10305;对照 main/base:beff0f3e55d1f70eceebbd8e78c11f1cff34643b;pi 对照源码:earendil-works/pi@682c7b93。
本轮先审阅 b36bea8,发布前发现新提交,已检查增量并在 a666843 重跑相关测试和独立反例。新提交修复了原有七条意见对应的代码路径,也修复了本轮发现的两个预算反例。当前仅将下面两项保留为新增阻断意见。
新增阻断意见
| 优先级 | 问题与触发条件 | 最新 head 的实际影响 |
|---|---|---|
| P2 | 并列最优仍按候选名称判断 cliff:权威分数 100/100/100/90、proxy 2/3/4/1,只重命名候选 | 没有任何逆序对也会输出 frontier_bias_cliff;同一个 proxy-only 候选随之从待确认变成隔离 |
| P2 | 排序前舍入六位小数:同机制延迟 400/300/100 ns,分别以秒和纳秒输入 | 以秒输入时将最慢候选选为 island champion,淘汰最快候选;换成纳秒后选择恢复正常 |
两项均通过 canonical Explore 记录、Python transport、Effect RPC 和真实 CLI 复现;并列问题同时验证了 File 与 SQLite。修复建议和具体输入见 inline comments。
动机 / Motivation
这项改动面向使用 Explore 记录实验、在普通工作轮次选择下一步、并在工作区复核证据的 Agent 和研究者。
原有路径已能在当前任务的引用和时间窗口内比较两组测量;本 PR 增加多点代理校准、预算路线分析、成对反事实统计和候选群体建议,并把校准结果送入轮次上下文与工作区。
可观察的增量是现有 CLI 和工作区能够读取这些分析;最新 head 的真实入口反例证明,部分分类和选择仍会被候选名称和计量单位错误改变。
本次验收范围是共享语义、建议计算和读回的正确性;自动执行研究计划、真实工作区隔离和匹配预算的长程收益仍需各自的执行与实验依据。
当前仍需修正本文两个选择不变量反例,再由现有 Stride、Todo、Quota owner 验证建议的实际采用和结果。
近期演进有一条清楚的主线:#8202 把 Yardstick 放进普通 work Turn;#8261 加入范围内的成对测量;#8382 一线修复强化引用与原始证据窗口;#8385 把测量反馈接入 Stride;#8353 将 joint-choice guidance 接入普通工作,同时保留 unchanged work。本 PR 的价值在于沿用这些准入、时序和作用域语义,扩充可用的分析能力。
改动思路 / Approach
公共 profile、摘要、证据窗口和有界投影适合继续由现有 TypeScript owner 共享;专用数学计算可以保留为显式调用的建议算子。
本 PR 的可验收边界是共享方法论工具、算子目录及建议计算器;新提交已统一关键读回的合格证据选择,自动编排和效果推广继续走既有 owner 与后续验收。
对照 pi,最有价值的是实际调用时序与单一状态投影。当前 pi 的 agent-loop 在 provider request 前执行 prepareRequest,在轮次末处理 finishTurn,并处理 abort、steering 与 continuation;SessionManager.buildSessionProjection 统一 branch、compaction、context edits 与源 entry 身份,AgentSession 每次请求重新使用这份投影。
| 对比边界 | pi 当前实现 | LoopX 与本 PR |
|---|---|---|
| 执行生命周期 | 可执行的请求、工具、轮次与扩展 hooks | 沿用已有 host、admission 和 settlement;本 PR 的五阶段字段是目录描述 |
| 规范输入 | 同一 session projection 应用 context edits 并保留来源 | 新 head 让两点比较与多点 fidelity 共用逐测量准入,History 复用 canonical presentation |
| 长程继续 | 会话续跑与扩展干预具有明确时序 | Goal/Todo/Stride/Quota/lease owner 负责跨轮次、跨会话控制 |
| 新研究方法 | 本次核对的 agent-core 不内置这些研究算子 | fidelity 接入普通轮次和工作区,其余三类提供显式分析入口 |
这是不同职责的对比。LoopX 的 pi adapter 已处理 agent_settled、abort 暂停与 session shutdown;新算子结果的采用应继续由既有 owner 决定,并覆盖 quota 拒绝、用户中止、session replacement 和建议重放。
StageMethodologyOperatorDescriptor 没有执行回调,listStageMethodologyOperators 返回静态目录,输出 verifier 校验 advisory flags、数值与大小。应按这个实现边界理解“五阶段 kernel”;无需为名称额外增加 dispatcher。这是范围说明,当前阻断依据是上面两项可复现的选择错误。
具体改动 / Changes
实现与最新修复
- 公共语义:共享 profile、digest、证据窗口和 bounded projection,既有 capture/Stride 合约仍由原 owner 接收。新 head 把
includeMeasurement同时传入两点比较与多点校准,修复了普通轮次的选样分歧。 - 数值与传输:四个专用 TypeScript 算子经
quantitative_planning.py和只读 Effect RPC 暴露。预算分析没有预约 evaluator slot,反事实分析没有创建真实隔离工作区,演化分析没有实际执行 crossover/mutation;这些输出依赖输入声明的适用范围。 - 工作区:保存结果使用批量 presentation;研究历程删除了组件内独立选样,改为完整读取后使用 canonical history projection,并按 result_id 折叠当前版本。这是本轮 pi 对比所强调的单一投影原则的实际改进。
- 契约与文档:反事实描述已收窄为 checkpoint、workspace 身份和观测时间等输入检查;crossover 改为需另行验证的组合建议。真实模型采用与长程收益继续需要匹配任务、预算和完整成本的实验。
原有七条线程的源码复核结果如下。这里的“已修复”针对各条原反例的代码路径;GitHub 线程目前仍未 resolve,完整打包 UI 未在本轮重新做视觉验收。
| 原意见 | 最新 head 的修复 |
|---|---|
| 跨量纲聚合 | 按 task + 可比 scope 聚合,不可比的全局均值与 p 值保留 null |
| 重复配对 | 检查已接纳的 workspace 身份,仅 identification-valid 行进入统计 |
| 缺失时间与行动证据 | 缺时间进入 strict 拒绝;缺行动签名独立报告 action_unobserved |
| 未知分量遮蔽已知超额 | 保留未知总量,同时用 knownTokenFloor 判断已知超额 |
| 未引用测量进入普通轮次 | 两点比较与多点校准复用同一逐测量准入函数 |
| 历史视图忽略撤回 | 复用 currentFindings 和 canonical presentation;不完整读取不展示当前校准 |
| 未知机制被伪造成机制岛 | 保留 null 和候选分数,未知机制不生成岛、交叉与定向 mutation |
本轮旧 head 发现的两个预算问题也已在最新 CLI 确认修复:基线收益区间恒为 1、候选恒为 2 时,p*=0 且归为 viable_direct_continuation;100 分钟预算、baseline 20+60 分钟、替代 probe 30 分钟时,正确返回不可逆,不再建议 probe_then_decide。
与现有设计约束的对应
依据 docs/architecture/rfcs/target-yardstick-stride-decisions-v0.md,固定版本 beff0f3e55d1f70eceebbd8e78c11f1cff34643b:
| 条目 | 当前判断 |
|---|---|
| §5.1 | 继续复用现有语义 owner;静态目录没有新增执行权限 |
| C4、C5 | 并列证据仍被数组位置误判为 cliff,名称不变性尚未满足 |
| C12 | 相关关闭态、严格布尔与历史兼容测试通过,未发现新增默认调度授权 |
| §5.8、C14 | 本轮两个预算反例及原成本下界问题已有修复;这一结论限于对应输入与代码路径 |
| §5.9 | 实际采用与匹配预算收益属于后续实验,当前 CLI 结果不替代该证据 |
对主干的风险 / Risks
最新 head 的验证:
| 检查 | 结果与边界 |
|---|---|
| 相关 TypeScript suites | PASS,182/182;Yardstick、Stride、Explore、公共不变量与数值算子 |
| 控制面 typecheck | PASS |
| 三组 Python suites | PASS,53/53;test_work_yardstick_cli.py、test_chat_explore_results.py、test_quantitative_planning_cli.py;258.97 秒 |
| 并列排名与精度反例 | FAIL(被审逻辑);最新 head 的真实 CLI 仍复现 |
| 两个预算反例 | PASS;最新真实 CLI 已确认修复 |
| 当前 main 既有 TS 对照 | PASS,155/155;不包含本 PR 新增测试 |
| 最新远端 CI | 尚未全部完成,不声明全绿 |
| 完整打包 UI、安装态、真实研究收益 | UNVERIFIED(本轮) |
原 head 的远端 CI 有四个具体失败,本轮使用相同命令在原 head 与当前 main 均复现相同原因:writer dependency 提前导入、缺少原始 decision capture、两处 settlement_progress 缺失。这个本地 Python 3.12.14 对照说明它们并非原 PR head 独有;额外的 CI Python 3.11/WindowsPath 内部异常没有据此解决,也不能把旧 CI 状态套到新 head。
相对当前 base,实际 PR 为 35 文件、+5333/-711。最新提交已经并入当前 main,保留了 summary/gates snapshot 方法;旧稿中关于 behind 与遗漏方法的待办已撤下。通过的既有测试不能覆盖仅改名字或换单位的语义反例,这两类不变量应补入回归测试。
我的整体评价 / Verdict
支持保留公共语义归并、规范证据投影与显式分析入口。最新修复明显收窄了原有缺口;当前仍建议 Request changes,原因限于两项会实际改变校准和候选选择的数值正确性问题。修复后重跑候选重命名、等比例换单位的独立反例,再完成最新 CI 资格检查。
本轮检查了工作区组件及数据来源的改动,未独立重建并视觉验收完整打包页面。完整页面的桌面与窄屏可读性、真实模型采用、部署态行为及长程效果未在本轮重新验证。
pi 对比得到的后续方向是:继续让消费者读取同一份可追溯状态,由已有续跑 owner 采用建议,并把建议、实际执行、确认结果和完整成本连接起来。当前公共工具与目录的价值可以独立成立;长程研究效果需要后续实测。
English verdict: REQUEST_CHANGES — head a666843; two remaining real-CLI correctness failures in tied-rank fidelity and unit-sensitive evolutionary selection. The seven prior findings have targeted source fixes, and both additional budget counterexamples now pass. Current-head CI and outcome qualification remain separate.
| const biasCliff = n >= 4 | ||
| && concordance.kendall_tau_b !== null && concordance.kendall_tau_b > 0 | ||
| && ((frontierConcordance.kendall_tau_b !== null && frontierConcordance.kendall_tau_b < 0) | ||
| || (proxyBest !== null && pairedAll.findIndex(p => p.candidate_ref === proxyBest) >= Math.ceil(n / 2))); |
There was a problem hiding this comment.
[P2] 按真实并列名次判断 frontier cliff,避免候选名称决定失真状态。
在同一 scope 中输入 (candidate, authoritative, proxy) 为 (b,100,2)、(c,100,3)、(d,100,4)、(z,90,1),两指标均越高越好,proxy 选中的 d 是权威指标的并列最优,且 discordant_pairs=0。最新 head a666843 的 File/SQLite 的真实 yardstick-fidelity CLI 却返回 frontier_bias_cliff;只把 d 改名为 a,测量全部不变,就变成 aligned_in_tested_scope。新提交已扩展 frontier cutoff 的 ties,并把并列 best 保留为 null,但这里仍将按 ID 排序后的数组下标当成权威名次。该误判还让 evolutionary-plan 将同一个 proxy-only 候选从 confirm_before_breeding 改成 quarantined_proxy_cliff。
请在这条 cliff 分支也保留 ties,用严格的权威效用比较或并列名次判断是否落后;补充仅重命名候选不改变校准和 quarantine 的回归用例。
| methodId ?? | ||
| previous?.mechanism_id ?? | ||
| null; | ||
| const utility = round6(authoritative.higher_is_better ? m.value : -m.value); |
There was a problem hiding this comment.
[P2] 候选排序完成后再舍入指标,保持单位变换下的选择一致。
这里的 6 位小数舍入发生在 island champion、elite 排序和 tie 判断之前。三个候选均显式属于同一已知机制,延迟分别为 a=4e-7、b=3e-7、z=1e-7 秒,higher_is_better=false、elite_limit=2。最新 head a666843 的真实 evolutionary-plan CLI 选择最慢的 a 为 champion,elites 为 a/b,淘汰最快的 z;只将单位换成纳秒并把值换成 400/300/100,就恢复成 z/b。以秒计时三个 utility 均被舍入为零,随后按 ID 排序。
请用原始方向归一化值进行比较、选择及 tie 判断,仅在展示时舍入;如需噪声容忍,应有显式且带单位的 tolerance。补充等比例换单位后的候选选择一致性测试。
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Remove the now-unused exception for the replaced matcher. Keep the canonical consumer pin and its invariant. Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · max
本次评审对应提交 40913c0cbf36fe99f90f190426098b297ebb75f4。
[P2] 相同执行 arm 改换 workspace 标签后仍被计作独立样本。 已有讨论
动机 / Motivation
研究 Agent 根据同一 checkpoint 的后续结果比较策略,并在普通轮次和个人工作区复核 Yardstick 证据。主干提供普通轮次和两点比较;没有这组多点校准和定量分析入口。本次把 profile、证据窗口与只读建议共用的规则放进 TypeScript owner,并让多点校准进入真实轮次和工作区读回。当前 head 区分量纲、未知行动与错误终点,排除未引用的第四条代理测量和已撤回值,识别已知超额的 150-token 基线。新提交拒绝嵌套权限字段,保留细小数值差和并列排名。同一个 checkpoint 下只保留原 treatment/control arm ID、结果和成本,给后五行换 pair ID 和 workspace ID。严格 CLI 把六份记录计成六场胜利,精确 sign-flip p 从 1 变为 0.03125,边际墙钟从 20 变成 120 秒。同一 arm ID 放在一对的两侧也通过。本次用合成证据与已打包入口核对当前行为。
改动思路 / Approach
沿用当前 TypeScript 证据和规则 owner。当前提交可交付精确校准和多个只读分析入口。反事实估计仍需补全运行身份核验。 同一 owner 处理作用域、时间与成本。当前 workspace 去重会拒绝原样重复。稳定 arm ID 仍只写入结果,未用于识别两个独立运行。
具体改动 / Changes
关键代码讲解
35 个文件,+5,405/−711。当前提交对主干的同步只在此前合入预演之外移除了一条 digest-owner 测试例外。已核验 ordinary-turn-evidence-scope、current-calibration-readback 和 budget-and-unobserved。independent-matched-arms 仍缺稳定运行去重。主干契约 §5.5 主干契约 §5.8
混合 points/ms 时各自输出 +1 和 +1,000,跨范围总体均值和 p 值为空。缺时间和错误 terminal boundary 拒绝。缺行动保留 action_unobserved 和可用的终点差值。150 已知 tokens 加未知评测成本仍超过 100,20-token 候选可行。File 和 SQLite 都仅纳入三条被引用的代理记录。当前测试中的六个未知机制保留分数,机制岛和交叉建议均为零。嵌套权限字段会被拒绝,并列分数也不再产生错误偏置警报。识别校验 预算判定 轮次证据窗口
对主干的风险 / Risks
同一个 checkpoint 下只保留原 treatment/control arm ID、结果和成本,给后五行换 pair ID 和 workspace ID。严格 CLI 把六份记录计成六场胜利,精确 sign-flip p 从 1 变为 0.03125,边际墙钟从 20 变成 120 秒。同一 arm ID 放在一对的两侧也通过。 主干没有新命令。当前提交已修复相同 workspace 重放,两个稳定 arm ID 经不同 workspace 标签仍可重复计入。旧讨论保留这个问题的范围和修复方向。
语义与 CI 对齐
当前 head 的 184 项 TypeScript 和 53 项 Python 测试通过,类型检查、Ruff 与本地 canary 通过。主干合入预演也用真实 CLI 重现同一反例。两次打开的旧打包界面均按规范展示撤回后的证据,该次截图和当前提交的两个读回组件源码一致,当前合入预演继续读回三条被引用的测量。
我的整体评价 / Verdict
请求修改。把稳定运行身份与 workspace 校验放在同一个 counterfactual validator 中,并增加原 arm 换 workspace、同 arm 双侧和正常独立配对三条对照。此前在打包 Chat 的桌面与 390 像素窄屏观察到,撤回一条测量后两处均显示六组及 τb 0.60。本轮两个读回组件源码字节一致,当前合入预演的 SQLite 读回复验通过。图像来自先前提交的隔离 SQLite 打包界面。当前提交的安装态、Lark 和实际研究收益待验证。
English verdict: REQUEST_CHANGES. Relabeling workspaces still makes the same two execution arms count as six independent pairs, inflating sign-flip significance and marginal cost.
songoow
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · GPT-6 Astra Pro · OpenAI · self_reported
本轮复审 head 40913c0cbf36fe99f90f190426098b297ebb75f4,实际 base 6d6439c0148c04c9f4c2dd71a74db151a9b33424,并对照 main cf807b55f08eba73f21fd781c492fc02608a0fa9。前一轮两项数值阻断及 cocolord 指出的嵌套权限字段已经修复;最新 head 仍有一项独立复现的 P2,属于原重复配对线程尚未覆盖的运行身份范围。本次引用既有线程,不重复创建 inline。
动机 / Motivation
这项改动面向使用 Explore 记录实验、在普通工作轮次选择下一步,并在工作区复核证据的 Agent 和研究者。 原有路径能在当前任务的引用与时间窗口内比较两组测量;本 PR 增加多点代理校准、预算路线分析、配对反事实统计和候选群体建议,并将校准结果送入现有轮次上下文与工作区。 前轮阻断的并列误判、单位敏感排序及嵌套权限字段已修复;本轮最新 head 的真实 CLI 仍接受同一 checkpoint 下重复使用的 arm 身份,造成重复样本、p 值和成本累计。 本次验收共享语义、建议计算和读回正确性;不要求新增调度器,不把 JSON 标签当作物理隔离证明,也不把分析输出或绿色测试等同于真实研究收益。 当前剩余阻断是反事实独立运行身份的核验;修复后应通过既有执行与结算 owner 验证实际采用、独立观测及完整成本。
近期项目从 普通 work Turn 的 Yardstick,发展到范围内的成对测量、引用与证据窗口、测量反馈进入 Stride,并保留没有新证据时继续 unchanged work。这次共享语义与规范投影的价值,是让新增分析也服从这些已经存在的边界。
改动思路 / Approach
公共 profile、摘要、证据窗口和有界投影继续由现有 TypeScript owner 共享;四个专用数学计算保留为显式调用的建议算子,目录的五阶段字段不等同于一个新的执行器。 当前可验收边界是共享方法论工具、算子目录、纯建议计算及既有读回;自动编排、真实执行身份与物理隔离的产生、quota/lease/settlement 和效果推广继续走各自 owner,不能由 advisory 输出授予。
沿用前轮固定的 pi@682c7b93 源码对照:agent-loop 把请求准备、工具、轮次结束、abort 和 continuation 放在可执行的生命周期中;SessionManager 统一 session projection 与来源。这是固定版本的职责比较,不声称 pi 最新版本没有变化。
| 边界 | pi 固定版本 | LoopX 与本 PR |
|---|---|---|
| 请求与会话生命周期 | 执行请求、工具、轮次 hooks 和 continuation | 已有 Host/admission/settlement/pi adapter 继续负责;新五阶段目录没有执行回调 |
| 规范输入 | 统一 session projection 与 source entry | 两点与多点比较共用逐测量准入,History 复用 canonical current findings |
| 长程研究控制 | 会话与扩展提供接入点 | Goal/Todo/Stride/Quota/lease 保留跨轮次权限,新增算子只返回建议 |
| 效果证据 | 实际执行与消息可追溯 | 还需把建议、真实独立执行、确认结果及完整成本连接起来;输出 p 值本身不能完成这一步 |
四个算子经薄 Python transport 与只读 Effect RPC 抵达 TypeScript owner。Fidelity 进入现有普通轮次与工作区;budget、counterfactual、evolution 仍由显式命令调用。复用这个结构即可,不需要因为目录名称再增加 dispatcher 或另一套执行状态。
具体改动 / Changes
当前相对实际 base 为 35 文件,+5405/-711。本轮先完整验证 1cef9623 的修订,再在发布前发现 40913c0c:35 个 PR 文件中 32 个字节一致,其余是已合入 main 的 Chat queue 重试、Effect handler 补充,以及移除一条旧 digest 测试例外;本 PR 的数学 owner、Python transport、相关测试和读回组件没有再次变化。当前 main 对实际 base 在这 35 个路径也没有新增语义差异。
关键代码讲解
verifyMethodologyOperatorOutput现在递归检查对象与数组中的禁止权限字段,不能把should_run/admin_bypass藏到子对象里。控制面用例和浏览器数据运输的负例覆盖了这条边界。biasCliff改为与权威效用 cutoff 作严格比较,权威值相同就不因 ID 排序位置变成更差名次。前轮仅重命名候选的 File/SQLite 反例现在保持 aligned,proxy-only 候选保持待确认。evaluateEvolutionaryPopulation的 utility 与组合 utility 不再提前 round6。400/300/100 ns 按秒或纳秒输入都选 z/b,champion 为最快的 z;本轮还核对了多机制 crossover 的排序回归。evaluateCounterfactualContinuations仍只使用 workspace 字面 ID 检查同侧与跨 pair 复用,arm_id解析后只写入结果。它还没有把同一 source execution 的身份和统计样本对应起来,下面的反例由这里直接传到 p 值与成本累计。
规范依据为现有 Yardstick/Stride RFC,以及本 PR counterfactual contract §3。§5.1、C4-C5、C12 的共享 owner、并列/未知、关闭态边界已保留;§5.8-C14 的已知成本下界、确定性收益与完整 fallback 反例已修复,但全剩余时域编排仍属于后续资格;§5.9 的真实采用与匹配预算收益不在这组纯建议计算的交付范围。新配对算子的 paired-execution-identity 仍未满足。
原有七条意见中,跨量纲聚合、缺失时钟/行动、已知成本下界、未引用测量、撤回后的当前投影、未知机制均保留了对应修复。重复 workspace 也确实会被拒绝/排除;本轮不能再把这个较窄的修复描述为所有执行重放都已排除。前轮额外预算对照同样保持:固定收益 1→2 时 p*=0;100 分钟内先做30分钟替代 probe,再回退20+60分钟 baseline,不被标为可逆。
对主干的风险 / Risks
P2:按同一 checkpoint 下的稳定执行身份排除重复配对。 最新真实 CLI 保留同一 task、checkpoint、source digest、两个 arm ID、行动、终点和成本,只为副本更换 pair_id 与 workspace_isolation_id,严格模式和 audit 模式都把它们纳入独立样本。另一个对照把同一 arm ID 放到 pair 两侧,也得到 identification_valid=true。
| 当前 head 的实际 CLI 输入 | 接纳样本/胜利 | exact sign-flip p | 边际 wall_seconds |
|---|---|---|---|
| 原始一对 | 1 | 1 | 20 |
| 原 arm 六份副本,只换 pair/workspace 标签 | 6 | 0.03125 | 120 |
| 原 workspace 不变,仅换 pair 标签,audit | 1,另一对排除 | 1 | 20 |
| 六对具有不同 arm 与 workspace 的独立声明 | 6 | 0.03125 | 120 |
最后一行是正向对照,第三行证明已有 workspace 修复有效;失败在于第二行无法与真正的新执行区分。这不是要求 arm 名称全局唯一:另测不同 checkpoint 下复用 arm 标签,当前正常接受,应继续保留。修复应在同一 task/checkpoint/source 范围核对稳定执行身份和 pair 两侧的不同执行,并让 strict 拒绝、audit 排除重复记录后再统计。如果 arm_id 被设计为策略标签,应明确提供独立的稳定 run identity,避免拿重标记后的 workspace 当作新的运行证据。JSON 校验也不能代替物理隔离验收。
我已独立完成 8 个最新 head 的公共 CLI 对照,经 Python → Effect RPC → 实际 TypeScript owner,输入为可复现的合成文档。建议把原 arm 换 workspace、同 arm 双侧、真正独立运行和跨 checkpoint 标签复用这组对照加入既有 test_quantitative_planning_cli.py,不用新增执行器或持久去重库。
验证与版本边界
| 验证 | revision | 结果 |
|---|---|---|
| digest owner、methodology、quantitative 三组 TS | 40913c0 | PASS 28/28,含 tie、单位、递归权限回归 |
| 控制面 typecheck、diff check | 40913c0 | PASS |
| 运行身份反例与正/负对照 | 40913c0 | 8 次实际 CLI 完成;上述产品识别不变量 FAIL |
| 相关完整 TS suites | 1cef962 | PASS 184/184;保留原 head 标记,不冒充当前整套重跑 |
| 三组完整 Python API/CLI/File/SQLite suites | 1cef962 | PASS 53/53,362.96 秒;数学 owner、transport 与测试源码在当前 head 相同 |
| Dashboard+Chat build、新 SSR 数据运输 smoke | 1cef962 | PASS;覆盖 valid、quarantined、unmeasured 与 nested authority 拒绝 |
| 桌面及390像素窄屏截图 | 作者 a666843 捕获,本轮打开检查 | 当前读回组件源码相同;不是新 head 的浏览器运行 |
| 当前远端全部 CI、安装态、真实研究收益 | 当前 | UNVERIFIED,不把旧 CI 结论套到当前 head |
语义与 CI 对齐
本 PR 扩展了已有研究分析词汇,仍为 advisory-only;递归权限校验已修复。当前问题是被标为 identification-valid 的观测是否真是独立的原执行,不是缺少目录注册或新的语义枚举。绿色正向测试不会消除重复观测造成的统计错误。最小修复落在已有 counterfactual validator,重跑上面的公共 CLI 对照即可直接验证。
我的整体评价 / Verdict
建议 REQUEST_CHANGES,本轮只保留运行身份这一项阻断。前轮我提出的候选重命名与单位转换问题已关闭于代码层面,嵌套权限字段也已修复;这些修正和 canonical projection 的统一应保留。长程研究目前仍会被重复样本的显著性和成本误导;工作区体验与证据一致性则已有实际改进。35文件的共享工具及显式算子范围可以成立,修复不需要增加新的调度框架。
已打开检查作者提供的 a666843 桌面 1200×854 与窄屏 390×844 截图:5 组配对、τb 0.40、前沿 -1.00 和待核实候选可读,窄屏长文本换行。当前读回组件源码与该截图版本一致,复用的是注明来源的静态视觉证据。 具体来源是作者的撤回后桌面图和窄屏图。这两张截图没有单独覆盖默认折叠态;本轮没有成功完成新 head 的浏览器 paint/交互验收。安装态、真实模型采用、物理隔离实验及长程收益也未验证。 pi 对照所支持的方向仍是同一份可追溯状态、明确的执行时序,以及建议到真实执行结果的闭合;当前统计身份漏洞正位于这条连接上。
English verdict: REQUEST_CHANGES — exact head 40913c0. Previous tie, precision and nested-authority findings are fixed; relabeling workspaces still admits repeated execution-arm identities into independent-pair statistics and marginal costs.
…rdstick-fidelity-counterfactual-20261111 Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · max
本次评审对应提交 ca24e44d06f48dfcaf678d73f4b5f2f8bdcb9630。
[P2] 审计应按整批证据排除冲突配对。 审计模式保留最先出现的冲突配对:同一 treatment 对两个不同 control,只调换两行,平均效果从 +13 变为 −12,墙钟成本差从 +20 秒变为 −300 秒。 冲突判断
动机 / Motivation
用 Explore 决定是否继续某条研究路径的人,需要在固定预算和检查点上读到可信的效果与成本。旧版本按不同 workspace 标签接纳重复执行,同一胜例重放 6 次就会得到 p=0.03125。新版本在同任务、同冻结检查点内按执行身份拒绝重放;六个独立配对仍保留,单组重放不再放大样本。量化读回和确认预算已走通;合法独立配对仍可用于估计效果。这轮验证的是合成证据的计算与打包读回;不证明物理隔离、Agent 实际采用、付费评估或完整预算下的真实收益。但当同一执行配到两个对照,审计会随行序选出相反结论。
改动思路 / Approach
类型化研究判断继续由 Explore 与 WorkItems 所有者负责,Python 和界面复用现有传输与读回。本次保留这套结构;修复应限定在同批配对的身份冲突处理。 稳定 arm ID 可以防止换标签后把同一执行重复当成样本。CLI 只提交证据,由共享 TypeScript 所有者做计算;规划、成本与研究历程保持建议及读回。
具体改动 / Changes
关键代码讲解
以 docs/architecture/rfcs/target-yardstick-stride-decisions-v0.md @ 3ab96ca 为依据。§5.1、C4/C5/C12、§5.8/C14/C16 已覆盖,§5.9/PAIRED-EXECUTION-IDENTITY 的独立配对仍未满足;§9.2 的真实收益试验不在此切片。 量尺 按范围对齐代理与权威测量,预算 保留确认成本和未知值;历程 保留历史修订,与当前结论分开;新提交 把只有一次排序反转的代理领先者标为待确认,仍不纳入精英。本次修复 将任务、检查点和源摘要内的执行 ID 去重,堵住旧版复制样本的反例。新协议 要求审计排除无效配对及其成本。
对主干的风险 / Risks
同一 treatment 为 88 分、600 秒,两个 control 分别是 75 分、580 秒和 100 分、900 秒。只调换两行,审计就会选另一组;严格模式拒绝。后续研究可能据此选错路径。用 loopx explore counterfactual-eval --document INPUT.json --no-strict-identification 对比原序和反序即可复现。
语义与 CI 对齐
真实 CLI 和 Effect 运行时在新提交复现;72 项 Python 测试覆盖 File/SQLite(含两点反转与多点校准),类型检查、打包构建和诊断 smoke 通过。TypeScript 167/168 通过;唯一失败是基线也触发的 Steward 摘要归属检查,由独立 PR 处理。未查询托管 CI。
我的整体评价 / Verdict
沿用现有比较与读回,功能关闭时沿用原工作指引。请保留严格拒绝,修复审计的整批判定并反转相同两行复测样本、效果和成本。 打包工作区在前一个提交的桌面与 390 像素窄屏均读回 6 组配对;当前提交的界面和该读回路径一致并重新构建,展开能区分前沿相关性与待核实候选。 界面使用合成数据;真实采用和完整预算下的成果仍待验证。
English verdict: REQUEST_CHANGES. Relabelled replay and two-point proxy handling are fixed. Audit mode still chooses an outcome and marginal cost based solely on row order when two pairs share an execution. Resolve ambiguous overlaps before aggregating.
| violations.push("reused_run_workspace"); | ||
| } | ||
| if (treatmentExecution === controlExecution || acceptedExecutions.has(treatmentExecution) || | ||
| acceptedExecutions.has(controlExecution)) { |
There was a problem hiding this comment.
[P2] 审计应按整批证据排除冲突配对。 通过真实的 explore counterfactual-eval --no-strict-identification 提交同一冻结检查点的两行:同一 treatment(88 分、600 秒)分别配 control A(75、580 秒)和 B(100、900 秒)。只反转行序,先到的配对被保留,均值和墙钟成本差从 +13 / +20 秒 变成 −12 / −300 秒;严格模式拒绝。请先识别全批共享执行的冲突;如果没有可信的配对依据,就把相关冲突从统计和成本中一起剔除。完全相同的重放最多计一次,另保留独立配对作为正控。回归用例请反转同一输入集。
loopx-agent
left a comment
There was a problem hiding this comment.
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
Reviewer: model_agent · Gemini · Google DeepMind · self_reported
本次评审对应提交 ca24e44d06f48dfcaf678d73f4b5f2f8bdcb9630(目标基线 3ab96ca718575d5763d52e57345c9b8f4c09be4c)。
- [P2] 修复
due_obligation_only空心门控,并区分advisory_operator与stride_review结算契约角色(C5-NON-ESCALATION-ROLE)。BUILTIN_STAGE_METHODOLOGY_OPERATORS将stride_review登记为quiet_turn_policy: "due_obligation_only"且advisory_only: true,但evaluateMethodologyActivation仅判断silent_when_untriggered,未到期或未传入due_obligation_id时仍返回{active: true, reason: "active"};同时strideControlContract未传入obligationId,且其输出送入verifyMethodologyOperatorOutput直接报$.advisory_only: must be explicitly true失败,违背docs/architecture/rfcs/target-yardstick-stride-decisions-v0.md§5.5 不得将拒绝写回的结算门禁标为建议的约束。请在内核显式实现due_obligation_id激活判断、区分advisory_operator与settlement_obligation_contract角色,并将stride_policy.ts的引用校验对齐至requireOpaqueMethodologyRef(当前stride_policy.ts仍接受file:...引用)。 - [P2] 打通定量算子到 Stride
explore_basis与grow / switch / verify复盘契约的渐进式证据汇流(C14-SHARED-STRIDE-EVIDENCE)。 联合规范docs/architecture/rfcs/target-yardstick-stride-decisions-v0.md§5.8 & §6 规定不拆两套独立规划器,由底层标尺保真度、确认预算与搜索多样性共同支撑 Stride 复盘。当前projectStrideExploreBasis与strideControlContract在存在测量记录时仍与基线输出同构,既未投影待确认代理领先者风险与指向loopx explore budgeted-plan、loopx explore evolutionary-plan的冷路径details_command模板,也未在三轴指引中说明如何依据前沿偏置断崖、确认死线与机制岛饱和判断verify / switch / grow。请在不影响无数值测量普通 Goal 静默性的前提下补齐该有界汇流,不要在本 PR 中重构replan_*历史回放状态机。 - [P2] 非严格反事实审计应对共享执行身份的冲突配对做整批隔离,消除输入行序依赖(
C16-PAIRED-EXECUTION-IDENTITY)。 在evaluateCounterfactualContinuations的--no-strict-identification模式下,顺序更新acceptedExecutions会保留最先出现的共享 arm 配对、仅剔除后出现的一行:同一arm-treat-shared(88 分、600 秒)分别对照 75 分/580 秒与 100 分/900 秒时,仅调换两行顺序就使mean_tau_b从+13翻转为-12,边际墙钟从+20s翻转为-300s。请先在整批范围内标记重复工作区与执行身份,再将冲突双方统一归入contaminated_pairs。
动机 / Motivation
执行长程研究或算法优化任务的 Agent 与维护者,需要在普通工作轮次和周期性或停滞 Stride 复盘时刻判断当前代理指标是否仍然保序、剩余预算是否足够完成权威确认,以及当前机制路线是否已经饱和。 变更前,Explore 仅支持两点标尺对比,缺少多点前沿偏置检测、预算盈亏平衡核算、同起点反事实配对评估与机制岛多样性诊断:一旦代理指标在头部区间失真,Agent 会在停滞路线上反复消耗预算或错过确认窗口。 本 PR 新增五阶段方法论内核与四类定量探索算子,并在工作台研究页面展示多点校准与待核实代理候选。本轮基于本地 SQLite 真实 CLI、Node TypeScript 运行时与打包工作台验证:多点校准与默认关闭隔离已跑通,但内核门控与 Stride 结算契约之间仍存在上下游断层,且非严格反事实审计存在行序翻转缺陷。 同时保留边界——不将 Stride 硬门禁弱化为建议,也不在本 PR 中重写 replan_context 或 replan_semantics 历史回放层,真实长程任务采纳收益留待独立实验验收。 需在当前切片内补齐有测量记录时向 Stride explore_basis 的渐进式证据与冷路径命令汇流、修真 due_obligation_only 与结算契约角色门控,并修复非严格反事实审计的行序冲突隔离。
改动思路 / Approach
定量诊断算子属于产出有界定量证据的下层辅助算子,而 stride_review 与普通工作轮次属于消费证据并决定动作的上层契约。 合理边界是在本 PR 内用约百行增量打通有测量记录时向 Stride explore_basis 渐进披露风险摘要与冷路径命令、修真内核 due_obligation_only 与结算契约角色、对齐 requireOpaqueMethodologyRef 并修复反事实整批冲突隔离,对无数值分数的普通工程 Goal 保持完全静默;将 replan 历史回放瘦身留作后续独立小切片。
flowchart TD
G["Explore 观测与测量日志"] --> Y["yardstick_fidelity: 保序与前沿偏置断崖"]
G --> B["budgeted_continuation: 确认死线与 p* 门槛"]
G --> E["evolutionary_search: 机制岛饱和与正交组合"]
G --> C["counterfactual_continuation: 同起点配对审计 (需整批隔离冲突)"]
Y --> T["普通轮次 explore_turn_context (已接通)"]
Y -. "当前缺口: 缺冷路径指针与未确认代理告警" .-> S["到期/停滞 Replan: strideControlContract (grow / switch / verify)"]
B -. "当前缺口: 仅孤立 CLI, 未入 explore_basis" .-> S
E -. "当前缺口: 仅孤立 CLI, 未入 explore_basis" .-> S
图注(对应 exact head ca24e44d06f48dfcaf678d73f4b5f2f8bdcb9630,源码推导示意而非测试回执):展示 explore_turn_context.ts 已接通多点校准摘要,而 stride_policy.ts 尚未接入预算/演化冷路径与内核角色门控(文本源码层核对语法,未单独截图校验 GitHub Web 端渲染)。
具体改动 / Changes
关键代码讲解
对照基线已合入规范 docs/architecture/rfcs/target-yardstick-stride-decisions-v0.md @ 3ab96ca718575d5763d52e57345c9b8f4c09be4c:
-
多点标尺校准与两点反转确认(
C4-SCOPED-FIDELITY):evaluateScopedYardstickFidelity按工作窗口与引用集合对齐代理与权威测量,计算 Kendall$\tau_b$ 与frontier_bias_cliff;evaluateEvolutionaryPopulation将两点代理反转后的领先候选标为待确认并隔离在精英池之外。 -
预算延续规划与 CLI 暴露:
evaluateBudgetedContinuationPlan核算已知非负成本下界、确认死线与路线盈亏平衡概率,经quantitative_planning.py和explore_planning_commands.py暴露为budgeted-plan、counterfactual-eval、evolutionary-plan、methodology-operators。 -
五阶段内核与 Stride 衔接缺口(
C5-NON-ESCALATION-ROLE/C14-SHARED-STRIDE-EVIDENCE):stage_methodology_operator.ts将stride_review列为advisory_only: true,evaluateMethodologyActivation对due_obligation_only与explicit_invocation_only恒返回激活;stride_policy.ts仅替换了 4 处有界切片,未向复盘上下文提供预算/演化冷路径入口,且未通过verifyMethodologyOperatorOutput自检。 -
反事实配对身份去重(
C16-PAIRED-EXECUTION-IDENTITY):evaluateCounterfactualContinuations在严格模式下拒绝重放,但非严格审计模式按输入顺序贪心写入acceptedExecutions/acceptedWorkspaces,未整批剔除冲突对。 -
工作台读回界面:
WorkYardstickReadback与goal-research-history.tsx分离当前有效校准与历史修订。
对主干的风险 / Risks
- Stride 复盘对新定量算子失明,且内核契约自相矛盾:在启用 Yardstick 并出现
frontier_bias_cliff与cand:proxy_star时,Strideexplore_basis不含任何budgeted-plan/evolutionary-plan冷路径提示;调用方若使用verifyMethodologyOperatorOutput("stride_review", ...)校验strideControlContract会直接失败,或因due_obligation_only空心激活在obligationId=null时生成无法通过normalizeStrideDecision的最小示例。 - 反事实审计结果随输入顺序翻转:离线审计合并分支日志时,同一运行若误配两个对照,行序变化即可把
+13分净收益翻转为-12分损失。 - 验证与 CI 对齐状态:
PASS:SQLite 默认关闭隔离对拍(3ab96ca718与ca24e44d06输出指纹均为sha256:adce0808...);控制面tsc --noEmit通过;46 项 Python 定量规划与配额结算测试通过。FAIL(当前PR阻断反例):Node 运行时实测due_obligation_only空心激活、verifyMethodologyOperatorOutput("stride_review", ...)返回valid=false、stride_policy放行file:URI,以及loopx explore counterfactual-eval --no-strict-identification正反序翻转(sha256:08b9616b...vssha256:65f10b34...)。FAIL(基线既有无关项):content_digest_single_owner静态检查在基线3ab96ca718与 head 报同一 Steward 摘要例外;远端build作业作为非阻断诊断项记录。
我的整体评价 / Verdict
多点标尺校准、默认关闭零侵入隔离以及工作台当前/历史校准分离的方向扎实,适合保留在同一 TypeScript 控制面所有者下。合并前请收敛修复上述三项阻断问题:在 #8516 内补齐测量存在时向 Stride explore_basis 渐进披露风险摘要及冷路径指针、实现内核 due_obligation_only 与结算契约角色区分并统一 requireOpaqueMethodologyRef,以及非严格反事实审计整批隔离冲突执行;对无数值分数的普通工程 Goal 保持静默,不弱化 Stride 结算门禁,也不把 replan_* 历史回放重构混入本 PR。界面视觉核验方面,工作台前端组件在 a666843 至 ca24e44 间无代码改动,复用打包工作台桌面端(1200x854)与移动端窄屏(390x844)默认折叠及展开态实测:研究页在撤回单条测量后清晰呈现前沿偏置断崖、5 组配对、待核实代理领先候选 cand:proxy_star,主次层级可读且窄屏无横向溢出。 未核验范围限于真实长程付费评测下的多轮 Agent 自主采纳表现与 Mermaid 图在 GitHub 网页端的最终像素渲染。
English verdict: REQUEST_CHANGES on exact head ca24e44d06f48dfcaf678d73f4b5f2f8bdcb9630: fix the hollow due_obligation_only activation and advisory_only vs settlement-contract mismatch for stride_review (including requireOpaqueMethodologyRef parity), wire bounded progressive cues and cold-path details_command pointers from the new quantitative Explore operators into Stride explore_basis without disturbing non-numeric Goals or refactoring replan_* replay state, and quarantine both conflicting pairs batch-wide in non-strict counterfactual-eval audit mode so results never flip with input row order (SQLite default-off parity and tsc PASS; TS kernel/Stride and CLI row-order counterfactuals FAIL).
|
This pull request has merge conflicts with Choose the remote for the base repository, not an out-of-date fork. git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEADFor a same-repository clone whose Keep the DCO |
…-8516-review-repair-20261113 Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> # Conflicts: # loopx/control_plane/capabilities/explore_turn_context.ts # loopx/control_plane/work_items/yardstick_decision.ts
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · max
本次评审对应提交 5afb98cf8ea86dec244518042af8761a2b544099。
[P2] 区分到期必填的 Stride 决策和建议。 目录把到期的 stride_review 标为 advisory_only。真实 SQLite 结算拒绝省略 Stride 决策且未写入,补齐同次决策后成功;新共享校验器却因缺少 advisory_only 和 grants_execution_authority 标志拒绝这份已落盘决策。
动机 / Motivation
在研究历程里比较候选、并在到期复盘时提交续跑决策的操作者,需要分清已证实的结果、待确认的代理信号和必填决策。过去,审计同一冻结检查点的两行时,共享一次执行的配对会被先到先选;只调换输入顺序,效果差与时间差就可能翻转。新提交反转同一输入后都剔除两组冲突,均值未知、边际成本为零;六组独立样本仍保留。打包研究读回把前沿反转和待核实候选分开。对照输入为合成记录。当前证明的是同一检查点的样本识别、结算门禁和打包读回;未证明新方法被真实任务采用或改善相同预算下的成果。目录把到期的 stride_review 标为 advisory_only。真实 SQLite 结算拒绝省略 Stride 决策且未写入,补齐同次决策后成功;新共享校验器却因缺少 advisory_only 和 grants_execution_authority 标志拒绝这份已落盘决策。
改动思路 / Approach
研究计算与 Core 到期门禁可以共用范围、摘要和列表工具,各自保留决策所有权。 方法目录和输出校验需要表达这种角色差异。 配对先按冻结检查点和执行身份归组;不能唯一归属的配对一起排除。实际复盘仍由旧有义务判断。
具体改动 / Changes
关键代码讲解
评审基准 56fc2a1。按 RFC §5.5 和场景行:C4-C5-SCOPED-FIDELITY、C12-OFF-ISOLATION、PAIRED-EXECUTION-IDENTITY 已复验;C14-C16-PLANNING 有建议与待确认状态,真实采用与成本仍待验收;STRIDE-DUE-ROLE 仍缺。配对评估 在汇总之前排除冲突,把两组冲突的原序、反序和六组独立正控区分开。方法目录 同时说仅建议、到期才用;校验器 默认要求建议标志。Core 用原到期义务要求正式决策;研究读回 把成果指标、代理、范围、来源和确认代价放在可展开详情。
对主干的风险 / Risks
把真实到期决策当建议会让调用方绕过输入准备,或在进入 Core 前把正确决策当错误丢弃。已复验 Core 门禁仍有效。请保留现有写入和权限控制。
语义与 CI 对齐
同一隔离 SQLite 用例在实际 main 与新提交上都拒绝省略、接受补齐,并在新提交复现共享校验拒绝已落盘结果。真实配对 CLI 的冲突反转、六组独立正控通过;59 项 Python、76 项 TypeScript、类型检查、打包及 6 项直接检查和 19 项选中检查通过。未查询托管 CI。
我的整体评价 / Verdict
上一轮的冲突行序发现已关闭。请明确目录中的必填决策角色,以原次 Core 决策作回归输入,并保留无义务的安静路径。 在打包页面查看七条同题研究记录:桌面与 390 像素窄屏都先显示结果和简短提示,展开后能分辨六组配对、前沿反转和待核实候选,下滚可见成本和来源。 页面为合成记录;真实采用、产品装机和完整预算下的净成果仍待验证。
English verdict: REQUEST_CHANGES. The paired audit is order independent now. The methodology catalog labels a required due Stride decision advisory, and its verifier rejects the exact decision accepted and persisted by Core. Model advisory cues and required decisions separately.
| lightweight_guidance: | ||
| "At an admitted replan boundary, compare continuing vs. switching routes by complete marginal cost and decisive evidence.", | ||
| rollback_contract: "stateless_disable_preserves_history", | ||
| advisory_only: true, |
There was a problem hiding this comment.
[P2] 区分到期必填的 Stride 决策和建议。 目录把到期的 stride_review 标为 advisory_only。真实 SQLite 结算拒绝省略 Stride 决策且未写入,补齐同次决策后成功;新共享校验器却因缺少 advisory_only 和 grants_execution_authority 标志拒绝这份已落盘决策。 把 Core 的到期必填决策与可选建议分成不同的目录角色和验证路径;由已存在的到期义务决定何时要求决策。保留建议的无授权字段检查和原结算门禁。 回归用例应复用同一原次到期义务,检验缺少决策、合法决策、普通安静轮和建议越权字段。
|
This pull request has merge conflicts with Choose the remote for the base repository, not an out-of-date fork. git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEADFor a same-repository clone whose Keep the DCO |
Goal And Delivered Outcome
Long-horizon quantitative exploration and decision rules across
Yardstick,Stride, andExplorepreviously evolved as ad-hoc per-feature slices — duplicating metric-profile schemas, SHA-256/reference codecs, append-order finding reducers, and hot-path.slice(0, N)truncation blocks across separate TypeScript and Python modules, while restricting proxy calibration to 2-candidate reversals and lacking composable operators for budget-deadline confirmation reserves, checkpoint-paired counterfactuals, or diversity-preserving evolutionary selection.This PR delivers both deep anti-entropy consolidation (-698 lines of duplicated codecs, reducers, and historical doc sprawl) and the 5-Stage Composable Methodology Operator Kernel (
stage_methodology_operator_catalog_v0):stage_methodology_operator.ts,explore_measurements.ts):work_yardstick,stride_review,scoped_yardstick_fidelity,budgeted_continuation,counterfactual_continuation,evolutionary_population) onto one typed 5-stage contract (admission->compile_context->execute_verify->writeback_settle->feedback_evolve), guarded against the 5 recurringStride/Yardstickbug classes (strict boolean/quiet-turn silence, canonical replay-prefix & clock precedence, exact 7-key scope-tuple isolation, bounded cues withomitted_count+details_command, and runtime-enforcedadvisory_only: true/grants_execution_authority: false).yardstick_decision.ts,yardstick_fidelity.ts,evolutionary_search.ts, andexplore_measurements.ts; consolidates 4content_digest.tsconsumers (stride_policy.ts,yardstick_decision.ts,explore_execution_observation.ts,explore_result_page.ts) ontostage_methodology_operator.ts; replaces 13 hand-rolled truncation blocks acrossstride_policy.tsandexplore_turn_context.tswithprojectBoundedMethodologyItems; and restructuresloopx/capabilities/explore/README.{md,zh-CN.md}(At a Glance/Quick Startfirst, deduplicated quantitative contract).yardstick_fidelity.ts,loopx explore yardstick-fidelity):frontier_bias_cliffdetection, and unconfirmed proxy-winner auditing — wired intoexplore turn-context, batched V8work_item.yardstick.presentation(zero<WorkYardstickReadback />.budgeted_continuation.ts,loopx explore budgeted-plan):latest_safe_confirmation_start_minute) from remaining wall/token/eval-slot budgets, preservesnullbounds without zero-coercion, and computes exact break-even confirmation probabilitycounterfactual_continuation.ts,loopx explore counterfactual-eval):source_state_sha256identity, distinctworkspace_isolation_id, strict post-checkpoint temporal ordering, action divergence vs. outcome delta (evolutionary_search.ts,loopx explore evolutionary-plan):executed_method_idisland elitism, orthogonal mechanism crossover pairs, bottleneck mutation proposals, and automaticquarantined_proxy_cliffquarantine of unconfirmed proxy winners whenyardstick_fidelitydetects Goodhart reversal/cliff.Semantic Vocabulary Disposition
Checked via
scripts/generate_semantic_inventory.py --changed-from origin/main: zero collisions with existing registered value sets.EXPLORE_METRIC_PROFILE_KEYSconsolidates 4 prior copies intoexplore_measurements.ts; stage/operator/fidelity/budgeted/counterfactual/evolutionary status tuples define the explicitv0wire contracts documented indocs/reference/protocols/stage-methodology-operator-contract-v0.md.Validation
npm run -s typecheck:control-planenode --test tests/control_plane_ts/content_digest_single_owner.test.ts tests/control_plane_ts/yardstick_decision.test.ts tests/control_plane_ts/stride_policy.test.ts tests/control_plane_ts/stride_explore_pagination.test.ts tests/control_plane_ts/stride_comparison_selection.test.ts tests/control_plane_ts/methodology_operator_invariants.test.ts tests/control_plane_ts/quantitative_research_operators.test.ts tests/control_plane_ts/explore_*.test.ts180/180)cd apps/presentation/dashboard && npm run build && cd ../../.. && npx tsx apps/presentation/dashboard/smoke/explore-finding-diagnostics-smoke.tsuv run --extra test python -m pytest -q tests/control_plane/test_work_yardstick_cli.py tests/test_chat_explore_results.py tests/control_plane/test_quantitative_planning_cli.py53/53)uv run --extra test loopx canary premerge --from-git-diff --git-diff-base origin/main19/19,manual_holds=0)First-Screen Visual Evidence (Packaged Chat Bundle over Synthetic SQLite Goal)
b36bea80a6(rebased ontoorigin/mainbf8a66eb9c)loopx.chat_server.serve_chatbundle (loopx/web/chat) against an isolated synthetic SQLite Goal (kernel-throughput-study) populated with 11 mixed findings (confirmed,refuted,nullunmeasured values, a 4-pairaligned_in_tested_scopescope, and a 5-pair Goodhartfrontier_bias_cliffscope with unconfirmed proxy leadercand:proxy_star). No installed daemon or live benchmark experiment uplift is claimed.代理校准/Proxy calibrationfirst inside<WorkYardstickReadback />so expanding目标与衡量标准 · 前沿偏置断崖 (5 组配对)immediately surfaces 前沿偏置断崖 · 5 组配对 ·待核实代理领先候选:cand:proxy_starabove the composer fold on both desktop (1280x920) and mobile (390x844).Desktop (
1280x920) — Populated Saved Findings & Expanded<WorkYardstickReadback />Mobile (
390x844) — Narrow Viewport Wrapping & First-Fold Calibration ReadbackBoundary Checklist
yardstick_enabled=falseandexplore_mode=offemit zero cues or prompt bytes)advisory_only: trueandgrants_execution_authority: falseenforced across all 6 methodology operatorsReview fixes and validation at
a666843742The follow-up incorporates the seven review findings on the original head and two additional decision regressions. Counterfactual estimates group compatible metrics and reject reused runtime identities or missing timing. Unobserved first actions remain explicit. Turn-context uses only the measurements cited for that decision, while research history uses the canonical latest finding revision. Unknown methods retain their measured scores and yield no cross-mechanism proposal.
Budgeted planning uses known cost floors, preserves unestimated gains, and uses a baseline gain as a reference only when its cost fits the known budget. Yardstick includes every candidate tied at the top-K cutoff, so its frontier analysis is invariant to candidate naming at the cutoff.
beff0f3e55.Packaged Chat readback after a measurement withdrawal
A synthetic SQLite Goal began with six paired candidates. After withdrawing one measurement, the saved findings and research history both showed five pairs with Kendall tau-b
0.40. The original observation remains available in the record history. The captures use the packaged Chat bundle ata666843742and an isolated synthetic fixture.