Files
Jyotisha/docs/tasks/PROGRESS-rectification-varga-resolution-research-20260930.md
T
Jesse_ChenandClaude Fable 5.1 c2c5140d47
Independent Staging Quality Gate / validate (push) Successful in 11m52s
Independent Staging Quality Gate / publish (push) Successful in 3m35s
docs(tasks): Claude acceptance for the varga-resolution research (BUG-1105 resolved, research stage)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-09-30 09:35:31 +08:00

6.1 KiB
Raw Blame History

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.py 17 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 与出口表)。