宽度超过 10 分钟或头名并列时不再出交付卡,改为按大运边界逐条问、 用类型芯片和年/月选择器录入。跳过的线换问法再问一次;答「这类事 都没有过」的不再问。用户说「没有了」仍立刻给目前范围。Skill 10.0.27。 BUG-740~743
58 lines
4.5 KiB
Markdown
58 lines
4.5 KiB
Markdown
# 进度 · 出卡精度门槛 + 引导式补经历(2026-09-16)
|
||
|
||
基线:`origin/staging` @ `20435a19`(任务书提交;代码基线其父 `071317f7`)。合入前需 rebase `317e9f18`(顶栏 preventScroll,staging 已快进 1 笔)。
|
||
分支:`codex/rectification-precision-gate-guided-collect-20260916`。
|
||
BUG:740~743(开工时最大号 BUG-739)。
|
||
|
||
相关单已合入 staging,本单在其上实现,未回退。
|
||
|
||
## 做了什么
|
||
|
||
- T1:`deliveryMaxWidthMinutes: 10` 写入 `references/rectification_policy.v1.json`,Python / TS 各读一次。`decideRectification` 的 tied_first / exhausted / offer 出卡都要 `precisionGateMet || userStopped || guidedCollectExhausted`。`user_uncertainty_too_high` 未动。`withholdAdoptOnUnnarrowedRange` 未动。`stillNeedNarrowing` / `datedMethodCollectOpen` 在门槛已达时不再挡住出卡。`decideFromDossier` 的宽度回退到候选分数并集,避免 inference 没有 `credible_range` 时门槛恒为假。
|
||
- T2:新增 `guided_collect_windows`(`min_boundary_days=0`、含小运与 D9/D10 那罗延),挂进 packet。未改 `MIN_BOUNDARY_DAYS` 与自动题生成。离线回放脚本 `scripts/research/guided_collect_holdout_replay.py`。
|
||
- T3:引导题排在自动题之后、定向七条线之前。录入卡 `event-date-picker.tsx` + `event-date-entry-card.tsx`。年份范围出生年到今年。删除自由文本邀请常量。常驻条加「已对照 N 件」。
|
||
- T4 / T4b:skipped 换问法再问一次;declined 不重问。存在性题改问整个领域。时间点负答案不关领域。`remainingTargetedDomains` 不再按分盘层剔除。只有 `target_domain` 的拒答也关闭该线。
|
||
- T5:Skill 10.0.27。hash `7e5417419ffad9bb34b78318f541484821bb22476655092047006b3a05aff020`。
|
||
- T6:回执文案对调已核实并随 T4 修(BUG-742)。性格题范围回弹代码路径已看到,真机未复现,记 BUG-743 investigating。
|
||
- T7:BUG_HISTORY / CHANGELOG / DESIGN / VOICE / 真机清单 / 本进度。
|
||
|
||
## 测试
|
||
|
||
### 前端
|
||
|
||
- `tsc --noEmit`:0 错。
|
||
- `npm run lint`:0 error(既有 warning 未顺手清)。
|
||
- 定向套件(本单相关):`rectification-guided-collect-20260916`、`rectification-precision-gate-20260916`、`rectification-eight-method`、`rectification-occupation-coverage-exit`、`rectification-probe-pool-exhausted-20260911`、`rectification-collect-stall`、`rectification-exhaustion-exit-20260906`、`rectification-tiebreak-before-card-20260914` 等 **fail=0**。
|
||
- `page.tsx`:只加 `birthDate` 一处 prop,`Home()` 的 `useState` / `useRef` 未增长。
|
||
- 全量 `npm test`:本机无 Docker、Windows 无 symlink 权限。与 holdout 并行时还出现过 `spawn UNKNOWN` / OOM,不能当回归清单。无 Docker 的失败与基线同类(compose 起不来、symlink EPERM)。
|
||
|
||
### Python
|
||
|
||
- `pytest tests/test_event_probes_guided_windows.py tests/test_rectification_event_probes.py tests/test_candidate_discriminator_contract.py tests/test_rectification_refresh_r3_r4.py`:**56 passed**。
|
||
- `run_quality_gate.py --profile quick`:卡在本机 venv 缺 `mcp` 包(`interpretation_source_inventory_gate`),与既有环境缺口一致,不是本单引入。
|
||
|
||
### T2 离线 holdout(不是合入门槛)
|
||
|
||
`minute_rectification_holdout_v4.json` 20 例,六题后按 `guided_collect_windows` 注入真值侧带月事件。550 s,错误 0。原始表 `docs/research/guided_collect_holdout_2026_09_16.json`。
|
||
|
||
| 半径 | 20 例达标 | 达标例所需件数中位 | 未达 |
|
||
| --- | ---: | ---: | ---: |
|
||
| ±10 | 3 | 0(六题后已经达标,没有靠引导件补上) | 17 |
|
||
| ±30 | 1 | 0 | 19 |
|
||
| ±60 | 0 | — | 20 |
|
||
|
||
没有一例是「六题后未达、再补引导件后达标」。Picasso / Freud 三档窗口数都是 0(年龄带把边界年裁掉)。产品据此决定要不要调 10 分钟门槛。
|
||
|
||
### 未测
|
||
|
||
- `next build` 首屏 gzip ±2%:本机未跑。选择器在校正对话里,不进 `/` 首屏。
|
||
- 真机清单:`docs/testing/rectification-guided-collect-20260916.md`,留给产品负责人。
|
||
- 历史校正会话打开:Skill 合同测了版本绑定;无登录态,浏览器级留给清单第 6 条。
|
||
|
||
## 偏离
|
||
|
||
- T2 离线 20 例三档都跑完,未用让步(只跑 ±10/±30)。
|
||
- T6 性格题回弹不阻塞合入。
|
||
- 选择器年份原先误写成 1950,已改成档案出生年→今年。
|
||
- 既有测试里「训练门开即出卡 / leftover 不再问」与 D1/D5 冲突的断言,已按「原值 / 新值 / 原因」改。
|