Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
6.1 KiB
6.1 KiB
PROGRESS · 生时校正「盘型口径」研究(2026-09-30)
任务书:TASK-rectification-varga-resolution-research-20260930.md(BUG-1105)。执行:Claude fork 子代理。分支 codex/rectification-varga-resolution-research-20260930,基线 origin/staging @ c3162cdc。只 commit 不 push。
一句话
盘型口径在 v5 上成立:±10 六题后 D9 / D10 头段 = 真值 88% / 86%,占比 ≥ 0.6 留一法 92% / 90%;±30 只有约 1/4–1/3 用户能给可信分盘;±60 分盘 blocked(真值段保留低于基线)。按段选题在 ≤ ±30 有 +3~+7 例收益;提前停不过红线;「不用校正」出口只对只需 D1 的问题成立(三种策略均 0/77)。建议立实现单,要点在研究文档 §7。
结果文件
docs/research/rectification_varga_resolution_2026_09_30.md(结论、表、实现要点)docs/research/varga_resolution_baseline_2026_09_30.json(M0 两张表 + 每例区间)docs/research/varga_resolution_research_2026_09_30.json(M1–M3、稳健性,含每例)scripts/research/varga_resolution_lib.py、varga_resolution_probe.py;tests/test_varga_resolution_research.py(17 条:15 合成 + 2 复现锁数)
硬红线逐条
| # | 要求 | 结果 |
|---|---|---|
| 1 | 真值段保留 ≥ 76 / 76 / 75 | ±10、±30 所有盘 76 = 基线,过;±60 D9 / D10 / 组合 74 < 75,不过 → ±60 分盘写 blocked。提前停(0.7 / 0.8)在 ±10 D9 保留 75 < 76,不过 → 不作为停止条件 |
| 2 | 阈值-准确率留一法 + 全集对照 | 研究文档 §3.3 / §3.4 |
| 3 | 稳健性:答错 1 / 2 题、±7 天、LMT 单列 | §6;±7 天与基线逐格相同(出题与作答未变);LMT 7 例单列 |
| 4 | 生产代码零改动、对账、复跑一致 | git diff --name-only 只在 scripts/research/、tests/、docs/、references/(无);六题回放走线上 posterior_state 同一路径(fewer_probes_card_replay 逐例区间 0 差,见下);PYTHONHASHSEED=0 两次完整运行 cmp 逐字节一致 |
| 5 | 快速门与基线一致、隐私守卫 | 见「门禁」 |
| 6 | 负结果完整 | 提前停、±60、「不用校正」0/77、uniform 无收益、LMT 都写了 |
M0 复现
- 表 1(窗内几种上升)与任务书逐格一致。
- 表 2(交付区间盘型)与任务书逐格一致。复现时修了起点脚本两处口径:跨午夜端点(23:15 出生、端点 00:01–23:59)偏移按 1440 折回;并列时取区间内最早出现的段,并新增「并列」计数——±30 起「多数 = 真值」有 21–42 例是并列后取先出现的段,这一列不能当准确率读。
- 与起点脚本
v5_intervals.json逐例比区间端点:231 行 0 差。
门禁
- 开工基线:
test_scoring_research.py+test_holdout_v5_schema.py+test_rectification_validation_integrity_gate.py+test_repo_privacy_markers.py= 31 passed。 - 新增:
test_varga_resolution_research.py17 passed;隐私守卫 passed。 - 快速门:见文末(合并阶段补)。
耗时
- 上下文缓存冷启动(77 例 × 三档)约 3 分钟;完整 M0–M3 + 稳健性一次约 12 分钟(run1 11m53s,run2 11m35s)。任务书估计「六题回放约 1 小时一次」偏高:
compute_candidate_static_contexts有磁盘缓存后,回放本身只需秒级。
缺口
- 段级汇总的「质量」用的是线上簇分数(≥0)按簇内均摊;候选步长 2 分钟,段内奇数分钟按均摊补上。实现时若用逐分钟打分,数字会略有不同,需按实现重放。
- 按段选题的信息增益把「中性」候选当 ½ / ½ 的均匀硬币,与线上卡片更新(中性 delta 0)一致但不是唯一选择;只在 ≤ ±30 报收益。
- 提前停在 ±10 丢 1 例真值段:原因是答题不足时真值簇落后头名 ≥ 8 分;没有试「停后再多问一题」的变体。
- 开放集非盲测;封存盲测(
sealed_holdout_rerun.py)不受影响。
与另一会话 08:49 归档(staging bedb4d7b)的关系
- 该归档是同一任务书的部分执行:M0 首轮 + M1,M2/M3
not_started,第二次复跑未闭环,隐私扫描只覆盖提交子集。本分支为完整执行(M0–M3 + 稳健性,两次完整运行逐字节一致),合并时以本分支的varga_resolution_lib.py/varga_resolution_probe.py/ 测试为准。 - 两边表 1 的 D9/D10 段数在 ±30/±60 略有差异(如 ±30 D10 5.30 vs 5.60):对方按「连续段」计数(同一星座不连续再出现算两段),本分支按「不同上升星座数」计数;±10/±15 两边一致。
- 对方新增的
scripts/research/varga_resolution_m1.py依赖其自有 lib 的函数名,与本分支 lib 不兼容,随合并移除;artifacts/varga-resolution/两个 JSON 为其中间产物,一并移除;BLOCKED.md与pre_work_error_ledger.md中对方的记录保留不改。
Claude 验收(2026-09-30)
- 子代理在最后一步(确定性复跑 + 快速门)被会话限额中断,M1–M3 结果 JSON 未落盘。我用其脚本从头跑两遍(19m50s / 约 20 min,
PYTHONHASHSEED=0,共用缓存):research_A == research_B、baseline_A == baseline_B、baseline_A == 已提交 varga_resolution_baseline_2026_09_30.json,逐字节一致;research_A作为docs/research/varga_resolution_research_2026_09_30.json入库。 - 测试:
test_varga_resolution_research.py(17)+ 隐私守卫 + 完整性门禁 + 打分研究 + v5 schema = 48 passed;py_compile两个研究脚本通过。 - 快速门:Python 步 1001 passed / 1 skipped(与基线一致);
npm test步为 worktree 无node_modules的环境缺口,本单零前端改动。 - 范围:
git diff --name-only只在scripts/research/、tests/、docs/;冻结文件与引擎零改动。 - 合并:rebase 到
origin/staging时与另一会话 08:49 归档的部分研究(bedb4d7b)同名文件冲突,按上一节说明以本分支为准,移除其不兼容的varga_resolution_m1.py与artifacts/varga-resolution/。 - 结论:通过。研究结论成立,下一步写产品层实现单(按研究文档 §7 与出口表)。