fix(rectification): emit finer dated probes on refresh only (BUG-664/665)
After six dated answers, refresh can use 30-day same-year windows plus pratyantar and D9/D10 Narayana. First-round probe rules stay at 45 days. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -10324,3 +10324,35 @@
|
||||
- 相关记录:BUG-629、BUG-651、BUG-661
|
||||
- 复发自:BUG-629(性格题降权后没有可选入口)
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-664 | 刷新阶段同年换运间隔可收到 30 天,首轮仍是 45 天
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-09-13
|
||||
- 最近更新:2026-09-13
|
||||
- 影响面:`scripts/rectification/event_probes.py` `_boundary_windows` / `_union_boundary_dates` / `discriminating_event_probes`
|
||||
- 用户现象:六道带年月题答完后,刷新经常立刻 `no_new_probes`,即使剩余候选的同年换运只差三十多天。
|
||||
- 触发条件:训练门已开、带年月池空、`refresh_probes=true`、剩余候选上存在 30–44 天的同年边界。
|
||||
- 根因:生产 `MIN_BOUNDARY_DAYS=45` 对首轮和刷新共用。离线 20 例测量里,只把刷新阈值降到 30 平均多 1.0 个独立划分、头名不降;首轮保持 45。
|
||||
- 修复:新增 `REFRESH_MIN_BOUNDARY_DAYS=30`。仅 `request.refresh_probes is True` 时传给 `_union_boundary_dates`;首轮调用签名与阈值不变。不改 `EXISTENCE_NEARBY_YEARS`、R1/R2、`SCORE_DELTA`。
|
||||
- 验证:`tests/test_rectification_refresh_r3_r4.py`:40 天同年窗首轮不出、刷新出 `dasha_boundary`。既有 `tests/test_rectification_event_probes.py`、`tests/test_candidate_discriminator_contract.py` 首轮断言不放宽。
|
||||
- 防复发:默认 `MIN_BOUNDARY_DAYS` 必须仍是 45;不得把研究脚本接到 API;刷新仍走 distinguish 合同。
|
||||
- 相关记录:BUG-653、BUG-657、BUG-665
|
||||
- 复发自:BUG-653(刷新已按剩余候选出题,但边界阈值与首轮相同)
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-665 | 刷新阶段并入 pratyantar 与 D9/D10 上升 Narayana 边界
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-09-13
|
||||
- 最近更新:2026-09-13
|
||||
- 影响面:`scripts/rectification/event_probes.py` `_vim_start_dates` / `_union_boundary_dates`
|
||||
- 用户现象:六道带年月题答完后,本命上升相同、D9/D10 或第三级换运已不同时,刷新仍无新的带年月题。
|
||||
- 触发条件:`refresh_probes=true`,剩余候选 Vimshottari pratyantar 或 D9/D10 上升 Narayana 有可分辨边界。
|
||||
- 根因:首轮并集只用 Vimshottari MD/AD 与本命上升 Narayana。`_vim_start_dates(..., include_pratyantar=)` 已存在但刷新默认仍为 false。离线测量 R4 单独 +1.084 独立划分,头名不降。
|
||||
- 修复:仅刷新阶段 `include_pratyantar=True`,并对剩余候选 D9/D10 上升再算 Narayana 边界并入并集。首轮不传这些参数,`_vim_start_dates` 调用保持原签名以免旧 mock 失败。本命上升 Narayana 与 MD/AD 不变。
|
||||
- 验证:`tests/test_rectification_refresh_r3_r4.py`:pratyantar 与 D9 上升不同时刷新出新年月、首轮不出。研究脚本 `scripts/research/probe_supply_after_six.py` 仍离线。
|
||||
- 防复发:不得对首轮打开 pratyantar 或分盘 Narayana;不得全局改 `MIN_BOUNDARY_DAYS`。刷新 0 题时仍走定向补事(BUG-654 / BUG-661),不得报「没有拿到下一个问题」。
|
||||
- 相关记录:BUG-653、BUG-654、BUG-661、BUG-664
|
||||
- 复发自:BUG-653(刷新只复用首轮边界层)
|
||||
- 修复版本:待发布
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
# 进度 · 刷新阶段放宽换运边界 R3 + R4(2026-09-13)
|
||||
|
||||
## 范围
|
||||
|
||||
- 分支:`codex/rectification-refresh-r3-r4-20260913`(基于 `origin/staging` @ `530f260f`)
|
||||
- 任务单:`docs/tasks/TASK-rectification-refresh-r3-r4-20260913.md`
|
||||
- 研究结论:`docs/research/probe_supply_after_six_2026_09_13.md`;只实现 R3 + R4
|
||||
- BUG-664:刷新 `MIN_BOUNDARY_DAYS` 45→30
|
||||
- BUG-665:刷新并入 pratyantar 与 D9/D10 上升 Narayana
|
||||
- 不实现 R1/R2;不改 `EXISTENCE_NEARBY_YEARS`、`SCORE_DELTA`、确认门、性格题计分(BUG-629)
|
||||
- 研究脚本 `scripts/research/probe_supply_after_six.py` 保持离线
|
||||
- Skill 不升版:用户路径仍是「刷新带年月题 → 定向补事 → 目前范围」,只是刷新可能多几道同类题;10.0.25 口径已覆盖
|
||||
|
||||
## 完成
|
||||
|
||||
- T1 `REFRESH_MIN_BOUNDARY_DAYS=30`;仅 `refresh_probes is True` 时传入 `_union_boundary_dates`。首轮仍调用 `_union_boundary_dates(reps, birth_date=..., lo=lo, hi=hi)`,`MIN_BOUNDARY_DAYS` 仍为 45。
|
||||
- T2 仅刷新:`include_pratyantar=True`(首轮不把该关键字传给 `_vim_start_dates`,以免旧 mock 失败);D9/D10 上升 Narayana 与本命上升并集。
|
||||
- T3 `tests/test_rectification_refresh_r3_r4.py`:40 天同年窗、pratyantar、D9 上升不同;年份用 2019,避开搬家/婚恋年龄下限与邻近年封锁。
|
||||
- T4 BUG-664/665、CHANGELOG、本文件、任务板、手测 0b/0c 补「刷新有题则先出带年月题」。
|
||||
|
||||
## 验收(本机,未部署)
|
||||
|
||||
- `tests/test_rectification_refresh_r3_r4.py`:4 passed
|
||||
- `tests/test_rectification_refresh_r3_r4.py` + `tests/test_rectification_event_probes.py` + `tests/test_candidate_discriminator_contract.py`:51 passed
|
||||
- `tests/test_rectification_*.py`:171 passed / 0 failed
|
||||
- `run_quality_gate.py --profile quick`:738 passed / 1 skipped / 1 failed
|
||||
- 失败项:`test_block_scan_seven_events_finishes_within_fifteen_seconds` 壁钟 46.2s > 15s
|
||||
- 与本单无关(未改 `block_scan`);任务板 `TASK-rectification-capability-fix-20260907.md` 已记为 P2 间歇红
|
||||
- 未做登录态真机 0b(无本地会话)
|
||||
|
||||
## 未做
|
||||
|
||||
- 未把研究脚本接到 API
|
||||
- 未改首轮出题、未实现 R1/R2
|
||||
- 未升 Skill 10.0.26
|
||||
- 未做登录态真机 0b(无本地会话)
|
||||
@@ -178,7 +178,7 @@
|
||||
| `TASK-rectification-after-pool-empty-decision-20260913.md` | — | 决策单草案:六道带年月题问完、引擎刷新无新题后,定向补事是开放式口述题,体感死板。给出 A 逐条点选 / B 放宽引擎出题(先离线量收益)/ C 参考题可选入口 / D 文案 四个方案,建议 A+D(+C) | 已拍板 2026-09-13:A+D+C 进 `TASK-rectification-targeted-collect-cards-20260913.md`,B 进研究单 | — |
|
||||
| `TASK-rectification-targeted-collect-cards-20260913.md` | `PROGRESS-rectification-targeted-collect-cards-20260913.md` | 定向补事改逐条点选卡(有/没有/记不清 → 有则口述年月;没有不计分只防复问;全没有出卡)+ 文案说清剩余候选与线 + 卡下「再答两道参考题」入口(BUG-661~663,Skill 10.0.25) | 待验收 | `codex/rectification-targeted-collect-cards-20260913` |
|
||||
| `TASK-rectification-probe-supply-research-20260913.md` | — | 研究单:六题后引擎在剩余候选上再出带年月题的四种放宽规则,20 例公开 AA 数据离线量收益,有收益才立实现单 | 已合入(离线测量,不改线上) | `b063c668` |
|
||||
| `TASK-rectification-refresh-r3-r4-20260913.md` | — | 刷新阶段 R3(MIN_BOUNDARY_DAYS 45→30)+ R4(pratyantar 与 D9/D10 上升 Narayana);首轮出题不变。即使放宽仍有 0 题例子,定向补事另线保留(BUG-664/665) | 待领取 | — |
|
||||
| `TASK-rectification-refresh-r3-r4-20260913.md` | `PROGRESS-rectification-refresh-r3-r4-20260913.md` | 刷新阶段 R3(MIN_BOUNDARY_DAYS 45→30)+ R4(pratyantar 与 D9/D10 上升 Narayana);首轮出题不变。即使放宽仍有 0 题例子,定向补事另线保留(BUG-664/665) | 待验收 | `codex/rectification-refresh-r3-r4-20260913` |
|
||||
|
||||
## 命名与归档
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
期望:
|
||||
|
||||
- 第六题答完不得直接出卡;先出现新的带年月题(家人 / 财务 / 迁居等换运边界),或一张定向补事点选卡(先问有没有)
|
||||
- 若剩余候选只在 D9/D10 或更短的同年换运上有差别,第六题后仍应先看到带年月选择题,而不是立刻跳到「结过婚或订过婚吗?」;仍无题才走定向补事
|
||||
- 刷新后若引擎给出新的带年月题,下一张卡必须真正出现;不得只是决策选中了探针、落库被拒后停在「没有拿到下一个问题」
|
||||
- 答一件家人事后应重算并回到带年月题;答「没有了 / 就这些」后才出卡
|
||||
- 卡片标题为「目前范围 …(对照了 N 件经历)」,卡下有「还能再收窄:如果记得 …」
|
||||
@@ -41,7 +42,7 @@
|
||||
|
||||
期望:
|
||||
|
||||
- 第六题答完必须看到定向补事点选卡(例如「结过婚或订过婚吗?」);旁白写剩余范围和候选个数,不得写「能把两端钟点分开」;题干种类必须能写入焦点表,不得静默失败
|
||||
- 第六题答完必须看到下一问:优先新的带年月选择题;引擎没有新题时才是定向补事点选卡(例如「结过婚或订过婚吗?」);旁白写剩余范围和候选个数,不得写「能把两端钟点分开」;题干种类必须能写入焦点表,不得静默失败
|
||||
- 引擎若没有新的带年月题,界面走定向补事或已有载体;同一候选集、同一已答数下引擎刷新只调用一次,不得反复打约 20 秒的刷新
|
||||
- 引擎若有新题,下一问必须出现;不得「GET 已有探针、界面没有下一问」
|
||||
- 刷新不得把候选集改空或换成另一套 `candidate_set_id`
|
||||
|
||||
Reference in New Issue
Block a user