feat(rectification): 出卡加精度门槛,补经历改成系统点名
Independent Staging Quality Gate / validate (push) Failing after 6m28s
Independent Staging Quality Gate / publish (push) Skipped

宽度超过 10 分钟或头名并列时不再出交付卡,改为按大运边界逐条问、
用类型芯片和年/月选择器录入。跳过的线换问法再问一次;答「这类事
都没有过」的不再问。用户说「没有了」仍立刻给目前范围。Skill 10.0.27。

BUG-740~743
This commit is contained in:
jesse-ux
2026-09-16 18:35:27 +08:00
parent 317e9f1886
commit cfb41daf3d
75 changed files with 4763 additions and 383 deletions
+69 -4
View File
@@ -10705,8 +10705,8 @@
- 根因:`rangeNarrowHint``targetedCollectPool` 时传入空的 `declinedTopics`,有意忽略拒答。
- 修复:传入真实 `declinedTopics`。一条都不剩时写「能问的都问完了」,不再暗示还有没问的线。
- 验证:`frontend/tests/rectification-tiebreak-before-card-20260914.test.ts`
- 防复发:交付文案不得列出已拒答或已回答的线
- 相关记录:BUG-661、BUG-662
- 防复发:交付文案不得列出已答「没有发生过」的线。跳过的线按服务器计划最多再问一次,不在交付文案里当还开着的线列出。2026-09-16 产品修改防复发口径,见 `TASK-rectification-precision-gate-guided-collect-20260916.md` D4
- 相关记录:BUG-661、BUG-662、BUG-741
- 复发自:无
- 修复版本:待发布
@@ -10737,8 +10737,8 @@
- 根因:BUG-687 把空池收口写成终局句。采集线关闭不等于校正结束:交付后 Case 仍是 `candidate_ready`,输入框不禁用,新的带年月证据会改账本指纹并让快照过期。缺的是邀请;过期快照若仍带着 `tied_first` 停止原因,缺口状态机会继续停在 `delivered`
- 修复:空池文案改为不限领域的补充邀请:先请记得确切哪一天的事,再退年月;举七条线之外的例子;不承诺定到分钟。并列且线已关闭时,邀请出现在交付卡正文,不躺在浅色说明里。快照因新证据过期时,决策不再把 `tied_first` 等耗尽停止原因带进采集,缺口才不会停在交付态。
- 验证:`frontend/tests/rectification-open-collect-invite-20260914.test.ts`
- 防复发:采集线关闭不等于校正结束;交付卡必须给出不限领域的补充邀请,且补充必须可见地生效。不得把邀请写成「再说一件就能定到分钟」。不得把已经拒答的线再列一遍(BUG-687)。
- 相关记录:BUG-687、BUG-646、BUG-651、BUG-653、BUG-688、BUG-590
- 防复发:采集线关闭不等于校正结束。2026-09-16 起自由文本邀请删除,改为系统点名的引导题 + 年/月选择器(BUG-740)。不得把已经答「没有发生过」的线再列一遍(BUG-687)。
- 相关记录:BUG-687、BUG-646、BUG-651、BUG-653、BUG-688、BUG-590、BUG-740
- 复发自:BUG-687(空池收口写成终局句)
- 修复版本:待发布
@@ -11550,3 +11550,68 @@
- 相关记录:BUG-732(引入这条真实库合同但未在有 Docker 的机器上跑)
- 复发自:无
- 修复版本:待发布
## BUG-740 | 精度未达仍出交付卡,卡下只有自由文本邀请
- 状态:resolved
- 首次发现:2026-09-16
- 最近更新:2026-09-16
- 影响面:`decideRectification``guided_collect_windows`、引导采集池、范围交付卡
- 用户现象:30 分钟窗给了 5 件带年月经历后直接出卡,区间 20 分钟、5 候选并列约 26%/26%/20%。卡下是「你要是还记得确切哪一天的事,不限领域,说出来我接着算」。
- 触发条件:七条定向线关闭、自动题池空、头名并列。
- 根因:`tied_first` 耗尽分支没有任何宽度或领先度条件。自动题池空之后没有有方向的题源。
- 修复:出卡须宽度 ≤10 分钟且前两名相对可能性差 >3 个百分点且不并列;未达时按引擎边界窗口逐条点名,用类型芯片 + 年/月选择器录入。用户说「没有了」仍按现行规则出卡。自由文本邀请删除。
- 验证:`frontend/tests/rectification-precision-gate-20260916.test.ts``frontend/tests/rectification-guided-collect-20260916.test.ts``tests/test_event_probes_guided_windows.py`
- 防复发:耗尽/offer 出卡必须过 `precisionGateMet`,除非用户停止或引导题源已空。不得再把自由文本邀请当作精度未达时的下一步。
- 相关记录:BUG-689、BUG-653、BUG-654、BUG-687
- 复发自:BUG-689(空池邀请没有方向,且没有精度门槛)
- 修复版本:待发布
## BUG-741 | 「跳过」和「没有发生过」同样永久关闭整条线
- 状态:resolved
- 首次发现:2026-09-16
- 最近更新:2026-09-16
- 影响面:`targetedDomainClosed`、定向存在性题、时间点题
- 用户现象:点「这条先跳过」或「记不太清楚」后,那条线再也不会出现。时间点题答「那个时候没发生」后,整条感情线也被当成没有。
- 触发条件:定向存在性题选 C/D;或 `source=event_probe` 的年月是非题选「明确没有发生」。
- 根因:`declined``skipped` 同样写入关闭集合。存在性题干只覆盖一两个例子却按整个领域记「没有」。时间点负答案没有与领域关闭隔离。
- 修复:`declined` 永久关闭;`skipped` 换一种更具体的问法再问一次,再次跳过才关闭。存在性题问整个领域、任何时间,B 写成「这类事都没有过」。时间点题的负答案不关领域。
- 验证:`frontend/tests/rectification-guided-collect-20260916.test.ts`
- 防复发:关闭集合不得把一次跳过当成拒绝。时间点题不得写入会让 `targetedDomainClosed` 判定领域关闭的状态。七条线一张表,不得按单个领域写死。
- 相关记录:BUG-687、BUG-643、BUG-740
- 复发自:无
- 修复版本:待发布
## BUG-742 | 定向存在性题 B/C/D 回执文案与状态对调
- 状态:resolved
- 首次发现:2026-09-16
- 最近更新:2026-09-16
- 影响面:`targetedCollectExistenceAck``RECTIFICATION_USER_COPY.collectDeclinedAck` / `collectSkippedAck`
- 用户现象:答「没有发生过」听到「记下了,这方面先跳过」。
- 触发条件:定向存在性题选 B。
- 根因:B 落 `declined`、C/D 落 `skipped` 是对的;回执把 declined 写成「先跳过」。不是 D 落成 declined。
- 修复:B 回「记下了,这条按没有发生过记」;C/D 回「记下了,这题先放着,后面换个问法再问一次」。
- 验证:`frontend/tests/rectification-guided-collect-20260916.test.ts` 断言两句回执。
- 防复发:declined 回执不得写「跳过」;skipped 回执不得写「没有发生过」。
- 相关记录:BUG-741
- 复发自:无
- 修复版本:待发布
## BUG-743 | 性格题 ±1 写入 posterior_score,可能把卡在 8 分边界的簇推过线
- 状态:investigating
- 首次发现:2026-09-16
- 最近更新:2026-09-16
- 影响面:`applyProbeOutcome``unionStillValidRange`
- 用户现象:性格题答完后范围从 20 分钟弹到 28 分钟,下一题又缩回。
- 触发条件:未淘汰簇落后头名刚好 8 分,性格题给其中一侧 ±1。
- 根因(代码路径已确认,真机未复现):`varga_style``PROBE_WEIGHT.yearless = 0.5``SCORE_DELTA` 写进同一份 `posterior_score``unionStillValidRange``peak - posterior_score < MIN_SEPARATION_LEAD`。风格题只该改排序。本轮不改打分,未改并集规则。
- 修复:无。已排除:性格题不会淘汰(`yearless` 不增加 `strong_conflict_count`)。未排除:并集是否因此扩/缩。
- 验证:未附回归。不得为收口编根因。
- 防复发:风格微调若并入范围计算,必须用一份不含风格分的分数做并集。
- 相关记录:BUG-651、BUG-629、BUG-740
- 复发自:无
- 修复版本:无