Offline holdout replay shows refresh-only R3+R4 add discriminative dated probes; R1/R2 do not meet the gate. Co-authored-by: Cursor <cursoragent@cursor.com>
3.1 KiB
3.1 KiB
TASK · 刷新阶段放宽换运边界(R3 + R4)(2026-09-13)
- 基线:以合入研究结论时的
origin/staging为准 - 分支:
codex/rectification-refresh-r3-r4-20260913,基于origin/staging - 执行方:coding agent;验收:Claude
- BUG 编号起点:BUG-664(开工时核对
docs/BUG_HISTORY.md最大号;661–663 留给定向补事单) - 决策来源:
TASK-rectification-probe-supply-research-20260913.md测量结论有收益;只实现刷新阶段 R3 + R4。研究原文:docs/research/probe_supply_after_six_2026_09_13.md。 - 不改首轮出题、不改计分、不改确认门。
1. 为什么做
20 例公开 AA holdout 里,问满 6 道带年月题且剩余 ≥2 的 12 例:生产刷新平均还能出 1.75 道题。相对生产再放宽:
| 方案 | 相对生产多出题 | 相对生产多出独立划分 | 头名 |
|---|---|---|---|
| R1 去掉邻近年封锁 | +0.083 | +0.084 | 不降 |
| R2 同域同年换家族再问 | +0.75 | +0.25 | 不降 |
| R3 刷新 MIN_BOUNDARY_DAYS 45→30 | +1.25 | +1.0 | 不降 |
| R4 pratyantar + D9/D10 Narayana | +1.5 | +1.084 | 不降 |
| R3+R4 | +1.75 | +1.5 | 不降 |
R1/R2 达不到「平均多 ≥1 道有分辨力的独立划分」。R2 的额外题大多是同一 yes/no 划分。本单不实现 R1/R2。
即使 R3+R4,仍有例子刷新 0 题。方案 A 定向补事是另一条线,不在本单。
2. 实现范围
- T1(BUG-664)R3:仅当
request.refresh_probes is True时,_boundary_windows/_union_boundary_dates使用MIN_BOUNDARY_DAYS=30;首轮出题保持 45。 - T2(BUG-665)R4:仅刷新阶段,
_vim_start_dates(..., include_pratyantar=True);对剩余候选的 D9 / D10 上升再算 Narayana 边界并并入_union_boundary_dates。本命上升 Narayana 与 Vimshottari MD/AD 保持原样。 - T3 测试:刷新剩余 ≤5 时,45 天内、跨年、pratyantar、D9/D10 上升不同的边界可以出题;首轮
refresh_probes缺省路径题量与现网一致。不得把研究脚本接到生产。 - T4 记录:BUG-664/665、CHANGELOG、PROGRESS;Skill 若用户可见题变多则升补丁号。
3. 硬红线
- 不得改
EXISTENCE_NEARBY_YEARS默认值,不得按事件家族拆同一年的题。 - 不得改
SCORE_DELTA、收敛门、无年月题计分(BUG-629)。 - 刷新仍走
discriminating_event_probes的 distinguish 合同:必须一组会发生、一组不会。 - 研究脚本
scripts/research/probe_supply_after_six.py保持离线,不进 API。
4. 验收
- 首轮出题回归:未开
refresh_probes的既有 event_probes 测试断言不放宽。 - 刷新用例:剩余 5 个候选、已问 6 个 semantic_key 时,R3 能收入 30–44 天的同年边界;R4 能收入 pratyantar 或 D9/D10 上升不同而产生的新年月题。
- 真机:方案 A 之前的「六题后 no_new_probes」序列,在剩余候选 D9/D10 或第三级换运有差时,应出现至少一道新的带年月选择题;若仍无题,走定向补事,不得报「没有拿到下一个问题」。