宽度超过 10 分钟或头名并列时不再出交付卡,改为按大运边界逐条问、 用类型芯片和年/月选择器录入。跳过的线换问法再问一次;答「这类事 都没有过」的不再问。用户说「没有了」仍立刻给目前范围。Skill 10.0.27。 BUG-740~743
4.5 KiB
4.5 KiB
进度 · 出卡精度门槛 + 引导式补经历(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 冲突的断言,已按「原值 / 新值 / 原因」改。