test(rectification): lock holdout cards, style-kind scoring, and strong B conflicts
Ask-holdout now requires a renderable choice frame. Scoring uses the same effective contrast kind as rendering, because the engine-varga.d9/d10 fork was live. varga_style weak_yes counts as a strong conflict; existence weak_yes still does not. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+8
-8
@@ -6449,14 +6449,14 @@
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-08-28
|
||||
- 最近更新:2026-08-28
|
||||
- 最近更新:2026-08-29
|
||||
- 影响面:`ConflictProbe.choice_kind`、`conflictProbesFromContrast`、`applyProbeOutcome` / `directionFor`
|
||||
- 用户现象:D9/D10 风格点选里,选项是并列的盘面风格,不是“有/弱有”。选后一组只得一半分,更早分钟被系统性抬高。
|
||||
- 触发条件:剩余候选按 varga 风格分组出题;组 0 映射 `yes`(±2),组 1 映射 `weak_yes`(±1)。
|
||||
- 根因:`directionFor` 只看 `answer_class`。风格题复用 `weak_yes` 当第二组标签,却走了存在题的半权。
|
||||
- 修复:探针带显式 `choice_kind`。`varga_style` 各组满权 ±2,`unsure` 仍为 0。存在题 / `event_quality` 的 `weak_yes` 仍半权且一次作答不淘汰。缺字段的旧收据保持旧分。不改 `SCORE_DELTA` 数值。
|
||||
- 验证:`rectification-varga-style-weight` 锁定两组/三组风格等权、旧收据无 `choice_kind` 仍半权、replay 时 `candidate_set_id` 不变且 `revision` 单调。`rectification-distinguish-contract` 锁定存在题 `weak_yes` 半权。`rectification-coverage-collect` 锁定分数已拉开且家人/职业未覆盖时仍停在采集,且采集下一问是未覆盖的 blocking method;补齐或拒绝家人+职业后离开采集;`canConfirmExactMinute === false`。
|
||||
- 防复发:不得从 `semantic_key` 前缀猜测风格题权重。不得把存在题 `weak_yes` 改成淘汰或反向。旧收据缺 `choice_kind` 必须仍能加载。不得打开 unique-minute 门。
|
||||
- 根因:`directionFor` 只看 `answer_class`。风格题复用 `weak_yes` 当第二组标签,却走了存在题的半权。引擎若发来无 `style_options` 的 `varga.d9`/`varga.d10` 题,打分仍用原始 `choiceKind`,渲染已降为 `existence`。
|
||||
- 修复:探针带显式 `choice_kind`。`varga_style` 各组满权 ±2,`unsure` 仍为 0。存在题 / `event_quality` 的 `weak_yes` 仍半权且一次作答不淘汰。缺字段的旧收据保持旧分。不改 `SCORE_DELTA` 数值。`conflictProbesFromContrast` 改用 `effectiveContrastChoiceKind`,与渲染降级一致。
|
||||
- 验证:`rectification-varga-style-weight` 锁定两组/三组风格等权、旧收据无 `choice_kind` 仍半权、replay 时 `candidate_set_id` 不变且 `revision` 单调;`varga_style` 的 `weak_yes` 计入 `strong_conflict_count` 且连答 3 次可淘汰对面分组;引擎 `varga.d9`/`varga.d10` 无 `style_options` 时打分 `choice_kind` 与渲染 effective kind 一致。`rectification-distinguish-contract` 锁定存在题 `weak_yes` 半权。`rectification-coverage-collect` 锁定分数已拉开且家人/职业未覆盖时仍停在采集,且采集下一问是未覆盖的 blocking method;补齐或拒绝家人+职业后离开采集;`canConfirmExactMinute === false`。
|
||||
- 防复发:不得从 `semantic_key` 前缀猜测风格题权重。不得把存在题 `weak_yes` 改成淘汰或反向。`varga_style` 的 B 选项 `weak_yes` 必须与 A 一样计入强冲突。打分用的 `choice_kind` 必须等于渲染用的 effective kind。旧收据缺 `choice_kind` 必须仍能加载。不得打开 unique-minute 门。
|
||||
- 相关记录:BUG-419、BUG-410
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
@@ -6465,14 +6465,14 @@
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-08-28
|
||||
- 最近更新:2026-08-28
|
||||
- 最近更新:2026-08-29
|
||||
- 影响面:`holdoutStatusFromInference` / `holdoutStatusFromState`、`decideFromDossier`、holdout 点选卡
|
||||
- 用户现象:保留的 holdout 后来变成未知精度、没有年份后,决策仍要 `ask_holdout_validation`,出题计划却给不出可渲染卡片。
|
||||
- 触发条件:`stickyHoldoutEvents` 把已保留 holdout 钉住;该事件 `year === null` 或 `precision: "unknown"`;或 `validate_holdout` 时既没有 `oosBlindPrompts` 也没有带年份的 holdout。
|
||||
- 根因:holdout 状态只看 `usage === "holdout"`。能否出题看的是带年份的事件或 oos 提示。两套口径不一致。
|
||||
- 修复:抽出共用 helper:能问(oos 提示或 dated holdout)才是 `not_started`;否则 `unavailable`。`unavailable` 且用户未停走既有 `adopt_representative`,不当成 `passed`。带年份 holdout 追问补上存在题选项和 `probe_year`,好渲染 choice frame。不改 `applyHoldoutAnswer`,不改 stickiness。
|
||||
- 验证:`rectification-holdout-renderable` 锁定未知精度 sticky holdout 不进入 `ask_holdout_validation` 且可 `ready_to_adopt`;带日期 holdout 有可渲染 `choice_frame`;通过为 `validated_range`;失败路径不变;`nextAction === ask_holdout_validation` 时 followup 非空。`canConfirmExactMinute === false`。
|
||||
- 防复发:不得只凭 `usage === "holdout"` 打开核对。不得把 `unavailable` 当成已通过。不得打开 unique-minute 门。
|
||||
- 验证:`rectification-holdout-renderable` 锁定未知精度 sticky holdout 不进入 `ask_holdout_validation` 且可 `ready_to_adopt`;带日期 holdout 有可渲染 `choice_frame`;通过为 `validated_range`;失败路径不变;`nextAction === ask_holdout_validation` 时 followup 与 `choice_frame` 均非空。`canConfirmExactMinute === false`。
|
||||
- 防复发:不得只凭 `usage === "holdout"` 打开核对。不得把 `unavailable` 当成已通过。`ask_holdout_validation` 必须能渲染出卡(`next_followup` 与 `choice_frame` 均非空)。不得打开 unique-minute 门。
|
||||
- 相关记录:BUG-424、BUG-410
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
Reference in New Issue
Block a user