docs(tasks): widen the tie-break decision to always precede the range card
产品在真机上指出「你平时做事」「感情里你倾向」这类性格题从没被问就出了卡。 D1 由「前两名分差 ≤1 才问」放宽为「带年月题问完、出交付卡之前,只要参考题可 用且没用过就先问两道」。性格题权重不变(不淘汰、只 ±1,09-09 决策与 BUG-629/ 651 防复发条维持),锚点要求也不放宽:该领域没有带年月事件时那道题本就不出现。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0155nFCgCHtoA7jhSDGmZmMu
This commit is contained in:
co-authored by
Claude Fable 5
parent
a6381e029b
commit
c139d5b674
@@ -184,7 +184,7 @@
|
||||
|
||||
| `TASK-rectification-targeted-card-dead-20260913.md` | `PROGRESS-rectification-targeted-card-dead-20260913.md` | **P0**:定向补事卡在快照投影里拿不到 `choice_card`(承接焦点分支不重建 `choice_frame`),卡片看得见点不动、流程停在采集等待态;模型还会把定向题改写成口述题(BUG-669~671)。先于 tie-break 修复单执行 | 待验收 | `codex/rectification-targeted-card-dead-20260913` |
|
||||
|
||||
| `TASK-rectification-tiebreak-before-card-20260914.md` | `PROGRESS-rectification-tiebreak-before-card-20260914.md` | **P0**:点「再答两道参考题」服务端 ok 但界面无反应(`requestTieBreak` 的 `loadCaseSnapshot()` 不带合并回调,新 turn 不入对话区)(BUG-685);产品拍板 A——前两名分差 ≤1 时先问参考题再出卡,卡上收起按钮(BUG-686);交付文案列出用户已拒答的线(BUG-687) | 待执行 | `codex/rectification-tiebreak-before-card-20260914` |
|
||||
| `TASK-rectification-tiebreak-before-card-20260914.md` | `PROGRESS-rectification-tiebreak-before-card-20260914.md` | **P0**:点「再答两道参考题」服务端 ok 但界面无反应(`requestTieBreak` 的 `loadCaseSnapshot()` 不带合并回调,新 turn 不入对话区)(BUG-685);产品拍板放宽版 A——出交付卡前只要参考题可用且没用过就先问两道(不看分差),卡上收起按钮(BUG-686);交付文案列出用户已拒答的线(BUG-687) | 待执行 | `codex/rectification-tiebreak-before-card-20260914` |
|
||||
|
||||
| `TASK-rectification-tied-first-premature-delivery-fix-20260914.md` | `PROGRESS-rectification-tied-first-fix-20260914.md` | **P0 回归修复单**:BUG-680 的 `tied_first` 早退被实现到 `coverageBlocks` 之前且无 `probe` 守卫 → 新案子答两题、区间还是整个开局窗口就宣布 `can_adopt`/代表分钟(BUG-683);交付态下仍出现死卡致 `delivered` 终态不触发、印「没有拿到下一个问题」(BUG-684 investigating) | 待验收 | `codex/rectification-tied-first-fix-20260914` |
|
||||
|
||||
|
||||
@@ -72,7 +72,9 @@ const open = targetedCollectPool(remainingLayers, evidence, [], splitTimes, cand
|
||||
|
||||
| 决策 | 内容 |
|
||||
| --- | --- |
|
||||
| D1 | **产品拍板(2026-09-14):采用方案 A —— 平局时先问参考题,再出卡。** 判据:候选前两名 posterior 分差 ≤ 1(含完全并列)且参考题可用(`tieBreakPersonalityAvailable`)。满足时**不出交付卡**,先连着问参考题(最多两道,沿用 BUG-667 一次连出 D9+D10 的既有行为);两道答完后重新评估:仍平局才出交付卡,并在卡上说明「这两分钟按现有信息分不开,参考题已经用过」。 |
|
||||
| D1 | **产品拍板(2026-09-14,放宽版 A):带年月的题问完、出交付卡之前,只要参考题可用且本轮没用过,就先问两道,再出卡。** 不再以「前两名分差 ≤ 1」为门槛——平不平局都问。满足条件时**不出交付卡**,先连着问参考题(最多两道,沿用 BUG-667 一次连出 D9+D10 的既有行为);两道答完(或参考题不可用)后再走交付,仍平局时在卡上说明「这两分钟按现有信息分不开,参考题已经用过」。<br>产品原话背景:用户在真机上认为「你平时做事」「感情里你倾向」这类题从没被问就出了卡,观感是没问完。本决策只改**问的时机**,不改性格题的权重。 |
|
||||
| D1b | **性格题仍然不淘汰候选,只做 ±1 排序微调**(2026-09-09 决策、BUG-629/651 防复发条维持)。不得为了把 26%/26% 拉开而让性格题参与淘汰。 |
|
||||
| D1c | **锚点要求不放宽。** 性格题要求该领域账本里有带年月事件作锚,无锚点的按既有逻辑丢弃(`unanchored_varga_style`,`method-followup.ts:1261`)。因此感情线没有带年月事件时,D9 关系风格题**本来就不会出现**,这是正确行为,不得为了凑满两道而绕过锚点检查;可用的不足两道就问几道算几道。 |
|
||||
| D2 | **参考题用过之后,卡上不再显示「再答两道参考题微调排序」按钮**;未用过且仍可用时(例如用户中途停止)保留按钮,但点击必须有可见结果(见 D3)。 |
|
||||
| D3 | **任何会产生新助手 turn 的前端动作,都必须把新 turn 并进对话区。** `requestTieBreak` 改用带合并回调的 `loadCaseSnapshot((turns) => …)`,与 `submitChoice` 同一套 `mergeTurnQuestions` / `appendUnseenAssistantTurns`。另外:服务端 `ok: true` 而界面无变化,属于必须消除的状态——本单加一条守卫测试。 |
|
||||
| D4 | **交付文案不得列出已拒答或已回答的线。** `rangeNarrowHint` 改为传入真实 `declinedTopics`;一条都不剩时改说「能问的都问完了」,不得再暗示还有没问的线。 |
|
||||
@@ -96,15 +98,17 @@ const open = targetedCollectPool(remainingLayers, evidence, [], splitTimes, cand
|
||||
- 行为单测:模拟 tie-break POST 返回 `ok/choiceReady/focusId` 且快照多出一条助手 turn + 一道参考题 → 断言 `messages` 增加了该 turn,且该 turn 携带 question(`mergeTurnQuestions` 生效)。
|
||||
- 行为单测:交付卡在场(`showSelectionCards` 为真)且存在未答的活动焦点时,缺口状态不得是 `idle`——必须有地方渲染这道题。
|
||||
|
||||
### 任务 2 · 平局先问参考题再出卡(BUG-686,P0)
|
||||
### 任务 2 · 出卡前先问参考题(BUG-686,P0)
|
||||
|
||||
- 决策层:在交付分支之前加判断——`separation.lead <= 1 && tieBreakAvailable && !tieBreakRoundsUsed` 时,返回"问参考题"而不是交付(复用既有 `tieBreakPersonalityFollowup` 与 `continueTieBreakRound` 通路,不新造机制)。
|
||||
- 两道答完(或参考题不再可用)后恢复既有交付路径;仍平局时交付卡文案加一句「这两分钟按现有信息分不开,参考题已经用过」。
|
||||
- 决策层:在交付分支之前加判断——`tieBreakAvailable && !tieBreakRoundsUsed` 时(不看分差),返回"问参考题"而不是交付(复用既有 `tieBreakPersonalityFollowup` 与 `continueTieBreakRound` 通路,不新造机制)。
|
||||
- 两道答完(或参考题不再可用、可用不足两道)后恢复既有交付路径;仍平局时交付卡文案加一句「这两分钟按现有信息分不开,参考题已经用过」。
|
||||
- 卡上按钮按 D2 收起。
|
||||
- 验收标准:
|
||||
- 行为单测:前两名 16 / 16、参考题可用、未用过 → 决策不是交付,`next_followup.choice_kind === "varga_style"`。
|
||||
- 行为单测:同样分数、参考题已用过两道 → 交付,且 `tie_break_available === false`(按钮不显示)。
|
||||
- 行为单测:前两名 16 / 14(lead = 2)→ 维持现有行为,不插参考题。
|
||||
- 行为单测:**前两名 16 / 14(lead = 2,不平局)、参考题可用且未用过 → 同样先问参考题,不出交付卡**(放宽版 A 的核心断言)。
|
||||
- 行为单测:参考题已用过两道 → 交付,且 `tie_break_available === false`(按钮不显示)。
|
||||
- 行为单测:该领域没有带年月锚点 → 该道性格题不出现,可用不足两道时只问可用的,不得绕过 `unanchored_varga_style` 丢弃逻辑。
|
||||
- 行为单测:性格题作答后候选**不得**被淘汰,排序变化不超过 ±1。
|
||||
- 回归:不得产生两条交付消息。
|
||||
|
||||
### 任务 3 · 文案不列已关闭的线(BUG-687,P1)
|
||||
@@ -120,8 +124,8 @@ const open = targetedCollectPool(remainingLayers, evidence, [], splitTimes, cand
|
||||
### 任务 5 · 记录
|
||||
|
||||
- `docs/BUG_HISTORY.md`:BUG-685、686、687 三条(686 记产品决策 A 与拍板日期);BUG-685 的防复发写明:**服务端返回 ok 而界面无变化,一律视为缺陷;任何新写 turn 的前端动作必须把 turn 并进对话区。**
|
||||
- `CHANGELOG.md` 一行(用户可感知:平局时会先问两道参考题再给范围卡);Skill 文案若有改动写明是否 bump。
|
||||
- `PROGRESS-rectification-tiebreak-before-card-20260914.md`;`docs/testing/` 清单:并列时先出两道参考题→再出卡;卡上不再有参考题按钮;卡上文案不再提已经答过的线。
|
||||
- `CHANGELOG.md` 一行(用户可感知:给范围卡之前会先问两道风格参考题);Skill 文案若有改动写明是否 bump。
|
||||
- `PROGRESS-rectification-tiebreak-before-card-20260914.md`;`docs/testing/` 清单:出卡前先出两道风格参考题(含不平局的案子)→再出卡;感情线没有带年月事件时该题不出现属正常;卡上不再有参考题按钮;卡上文案不再提已经答过的线。
|
||||
|
||||
## 6. 让步顺序
|
||||
|
||||
|
||||
Reference in New Issue
Block a user