docs(research): measure precision-adaptive probe gates; no variant clears the bar
Independent Staging Quality Gate / validate (push) Failing after 13m3s
Independent Staging Quality Gate / publish (push) Skipped

20 public AA cases, raman/mean. Lowering MIN_BOUNDARY_DAYS narrows ±10 from
15 to 11 minutes but drops top-1 0.80→0.75; wider radii get wider ranges.
Varga sensitivity weights (V1/V2) match production; D60 (V3) hurts ±10.
Day-precision events offset ±7 never squeeze the true minute out. Production
45/30 gate and equal varga weights stay unchanged.
This commit is contained in:
jesse-ux
2026-09-15 09:04:03 +08:00
parent d92a696768
commit dfb572fc7f
7 changed files with 4138 additions and 1 deletions
@@ -0,0 +1,49 @@
# 进度 · 出题闸门按证据精度分档研究(2026-09-14)
## 范围
- 分支:`codex/rectification-precision-gate-research-20260914`(基于当时 `origin/staging`;任务书含 M1b 的 `b56147e5`
- 任务单:`docs/tasks/TASK-rectification-precision-adaptive-boundary-research-20260914.md`
- 结果:`docs/research/precision_gate_2026_09_14.md` + 同名 `.json`
- 脚本:`scripts/research/precision_gate_lib.py``scripts/research/precision_gate_sweep.py`(离线,不进 API
- 未改 `scripts/rectification/event_probes.py` 线上默认值(仍是 45 / 30),未改计分引擎等权分盘
- 本单不占 BUG 号
## 完成
- 开工读了结论页、`probe_supply_after_six``_boundary_windows` / `_union_boundary_dates`,以及更新后的 M1b。
- 离线测量:M0 精度三组、M1 G0G4、M1b V1/V2/V3(±10 才加 D60)、M2 ±3/±7/±14、M3 六题后再出题。闸门只在脚本里临时 patch。
- 全量 20 例 × ±10/±30/±60,错误 0,约 2.5 小时。
- 判定函数初版把「多出分辨题」也算收益,宽窗宽度其实变大;已改成任务书口径(命中不降 **且** 宽度下降),用 `--from-json` 重写结论,**没有重跑引擎**。
## 验收数字
口径 ayanamsa=`raman`、node mode=`mean`,步长 2 分钟。覆盖率三档都是 20/20,M2 挤出全是 0。
六题后线上口径(组 A,生产闸 G0):
| 半径 | 头名命中 | 宽度中位 | 六题后再出 |
| --- | ---: | ---: | ---: |
| ±10 | 0.80 | 15 | 3.25 |
| ±30 | 0.55 | 33 | 5.45 |
| ±60 | 0.40 | 56 | 5.75 |
放宽闸门(G1–G4)在 ±10:宽度 15→11,头名 0.80→0.75。±30/±60 宽度变宽(33→353756→5864)。
M1bV1/V2 与 V0 相同;V3 在 ±10 命中 0.80→0.70。
M0:日→月(B)与原样(A)在 ±10 相同;全部降成年(C)命中 0.80→0.75。
**判定:无收益,不立实现单。**
- `python -m pytest tests/test_precision_gate_research.py tests/test_rectification_refresh_r3_r4.py`16 passed
- 按盘贡献表空(V0 采集误走生产计分);不改变 V1=V2=V0、V3 降命中的结论
- 本机无项目 `.venv`,用 Anaconda Python 3.11.7 + swisseph。`run_quality_gate.py --profile quick` 若因 `mcp` 包缺口退出,与基线环境相同,不计入
## 未做
- 未改线上闸门或分盘权重
- 未把研究脚本接到 API
- 未立实现单
- 未做 PyJHora / VedAstro / jyotishganit 对照(本单不解释运势)
- 未 push
+1 -1
View File
@@ -190,7 +190,7 @@
| `TASK-rectification-birth-time-provenance-20260914.md` | `PROGRESS-rectification-birth-time-provenance-20260914.md` | 与上游流程对照发现的缺口(上游 R2):录入时已问「医院记录 / 家人记得大概 / 只知道时段」并落库 `birth_time_source`,但整条校正链只在放宽窗口时用过一次,决策与文案一律不看它——家人推算的时间和出生证在系统里等同对待,输出还直接称「你的出生时间」。本单把来源标签接进投影并分档措辞(BUG-690) | 待验收 | `codex/rectification-birth-time-provenance-20260914` |
| `TASK-rectification-precision-adaptive-boundary-research-20260914.md` | `PROGRESS-rectification-precision-gate-research-20260914.md` | **研究单**:出题闸门 `MIN_BOUNDARY_DAYS=45`(刷新 30)不看证据精度,而出生时间每差 1 分钟大运边界只平移约 1.1 天——20 分钟窗内的候选边界全挤在三周内被整批丢掉,这就是「六题后出不来题」的算术原因。量闸门按年/月/日分档(G0–G4)的收益,并必测答错容忍度(±3/±7/±14 天偏移下真值是否挤出 | 待执行 | `codex/rectification-precision-gate-research-20260914` |
| `TASK-rectification-precision-adaptive-boundary-research-20260914.md` | `PROGRESS-rectification-precision-gate-research-20260914.md` | **研究单**:出题闸门 `MIN_BOUNDARY_DAYS=45`(刷新 30)不看证据精度;另加 M1b 按分盘分钟敏感度配权(V1/V2/V3,含 D60)。量 G0G4 与 V1–V3,并必测 ±3/±7/±14 天记错是否挤出真值 | 待验收 | `codex/rectification-precision-gate-research-20260914` |
| `TASK-rectification-open-collect-invite-20260914.md` | `PROGRESS-rectification-open-collect-invite-20260914.md` | **P0**:固定七条采集线问完后只说「能问的都问完了」,用户不知道还能补经历、也不知道补了有用;而两轮研究证明补带年月经历是唯一有效手段。产品拍板:交付卡照出 + 卡上给不限领域的补充邀请(先要确切日期,再退年月;举七条线之外的例子),补完必须可见生效(BUG-689) | 待验收 | `codex/rectification-open-collect-invite-20260914` |