Files
Jyotisha/docs/tasks/PROGRESS-rectification-varga-resolution-research-20260930.md
T

55 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` 中对方的记录保留不改。