docs(research): measure why delivered range width equals the search window
Independent Staging Quality Gate / validate (push) Successful in 10m20s
Independent Staging Quality Gate / publish (push) Successful in 2m18s

Offline v4 holdout probe. Last round's width=window result was the
no-elimination metric; production still-valid ranges after six answers
are 15/33/56 minutes. Adjacent merge never fires under step-2 radii.
W1/W2 match baseline; W3 is uncertain after one coverage squeeze.
No production clustering or scoring defaults changed.
This commit is contained in:
jesse-ux
2026-09-14 22:11:47 +08:00
parent 963c147c58
commit cf972f4040
8 changed files with 36482 additions and 1 deletions
@@ -0,0 +1,42 @@
# 进度 · 交付区间宽度与簇合并研究(2026-09-14)
## 范围
- 分支:`codex/rectification-cluster-width-research-20260914`(基于 `origin/staging` @ `ada2cfb1`
- 任务单:`docs/tasks/TASK-rectification-cluster-width-research-20260914.md`
- 结果:`docs/research/cluster_width_2026_09_14.md` + 同名 `.json`
- 勘误:`docs/research/minute_resolution_2026_09_14.md` 追加「勘误(2026-09-14 簇宽度研究)」
- 脚本:`scripts/research/cluster_width_lib.py``scripts/research/cluster_width_probe.py`(离线,不进 API
- 未改 `candidate_contrast.py``scoring_service.py``active_rectification_event_engine.py`、确认门、`SCORE_DELTA`
- 本单不占 BUG 号
## 完成
- 开工读了上一轮 `minute_resolution_2026_09_14.md`、对照报告、`candidate_contrast.py` 全文。
- M0:上一轮 `width_median` 取全部公开簇并集,**不含淘汰**。六题回放虽调用 `apply_answer``summarize()` 仍读 `engine.width``remaining_count` 是代表分钟封顶 5。按线上 `unionStillValidRange`(未淘汰且落后头名不足 8 分的簇覆盖)重跑基线。
- M1v4 20 例 × ±10/±30/±60。合并次数全是 0(签名簇最多 46 < 64)。真值簇独立率 20/20。`md` 在 ±10 窗内 20/20 恒定。
- M2:W1 / W2 与基线相同(合并不触发)。W3 0.7/0.8 在 ±10、±60 收窄且覆盖不降,±30 挤出 1 例公开 AA(`chad_everett_1937_aa_v4_holdout`)。
- 判定:**不确定,不立实现单。**
## 验收数字
含淘汰的线上口径(六题最优答):
| 半径 | 无淘汰并集 | 六题后线上口径 | 区间覆盖 | 真值簇独立率 |
| --- | ---: | ---: | ---: | ---: |
| ±10 | 21 | 15 | 1.00 | 1.00 |
| ±30 | 61 | 33 | 1.00 | 1.00 |
| ±60 | 121 | 56 | 1.00 | 1.00 |
W3@0.8:±10 宽度 15→11 覆盖 1.00;±30 33→25 覆盖 1.00→0.95;±60 56→43 覆盖 1.00。
- `python -m pytest tests/test_cluster_width_research.py tests/test_minute_resolution_research.py tests/test_rectification_v5_services.py`63 passed
- 本机无项目 `.venv`,用 Anaconda Python 3.11.7 + swisseph 跑完全量 20 例,错误 0。`run_quality_gate.py --profile quick` 编译通过后在 `interpretation_source_inventory_gate.py` 因缺少 `mcp` 包退出 1——基线环境缺口(本机无 `.venv`),与本单无关,不计入。
## 未做
- 未改线上聚类或交付
- 未把研究脚本接到 API
- 未立实现单(W3 未过覆盖门)
- 未做 PyJHora / VedAstro / jyotishganit 对照(本单不解释运势)
- 未 push
+1 -1
View File
@@ -186,7 +186,7 @@
| `TASK-rectification-tiebreak-hold-exit-fix-20260914.md` | `PROGRESS-rectification-tiebreak-hold-exit-20260914.md` | **P0 回归修复单**:BUG-686 的风格题前置把耗尽与收口路径的交付也压住了,`npm test` 由 27 红涨到 33(6 条「该交付却不交付」)。后续 `6fd7925a` 只改断言把它们改绿:4 条文案放宽可接受,2 条实质弱化(「恰好一条交付闸」退化成短路、参考题确认语被算作出口载体)必须恢复;行为层根因未动。hold 要带出口、不得作用于 exhausted/closed-ceiling,最多 hold 一次(BUG-688)。尚未部署,未影响线上 | 待验收 | `codex/rectification-tiebreak-hold-exit-20260914` |
| `TASK-rectification-cluster-width-research-20260914.md` | `PROGRESS-rectification-cluster-width-research-20260914.md` | **研究单**:上一轮证明调权重改不动交付区间宽度——所有方案宽度中位数都等于整个搜索窗。先确认 sweep 的宽度口径是否含淘汰(M0),再画簇结构像(M1),最后量三个改法:放宽簇上限、按分差决定是否合并、交付区间改分位覆盖(M2)。真值覆盖率不得下降 | 待执行 | `codex/rectification-cluster-width-research-20260914` |
| `TASK-rectification-cluster-width-research-20260914.md` | `PROGRESS-rectification-cluster-width-research-20260914.md` | **研究单**:上一轮证明调权重改不动交付区间宽度——所有方案宽度中位数都等于整个搜索窗。先确认 sweep 的宽度口径是否含淘汰(M0),再画簇结构像(M1),最后量三个改法:放宽簇上限、按分差决定是否合并、交付区间改分位覆盖(M2)。真值覆盖率不得下降 | 待验收 | `codex/rectification-cluster-width-research-20260914` |
| `TASK-rectification-minute-resolution-research-20260914.md` | `PROGRESS-rectification-minute-resolution-research-20260914.md` | **研究单**:候选分不开的根因是打分尺度——窗口内恒定项 11.5 分 vs 随分钟变化项 2.125 分(≈5:1)。先修封存基准(v3 每例仅 3 件事且被标 invalidated)出 v4,再离线量五个改法:分盘除数、去底座、**KP 宫头子主计分(产品 09-14 拍板,推翻 BUG-325 一条红线)**、年精度事件改边际似然、聚类签名层对齐。有收益才立实现单 | 待验收 | `codex/rectification-minute-resolution-research-20260914` |