Files
Jyotisha/docs/tasks/TASK-rectification-targeted-collect-cards-20260913.md
T

6.0 KiB
Raw Blame History

TASK · 定向补事改成逐条点选卡 + 文案 + 参考题入口(2026-09-13

  • 基线:origin/staging @ 4e93ca15(代码 5d54d059,已部署;含 BUG-646660Skill 10.0.24
  • 分支:codex/rectification-targeted-collect-cards-20260913,基于 origin/staging
  • 执行方:coding agent;验收:Claude
  • BUG 编号起点:BUG-661(开工时核对 docs/BUG_HISTORY.md 最大号,应为 660
  • 决策来源:TASK-rectification-after-pool-empty-decision-20260913.md,产品负责人 2026-09-13 拍板:做 A + D,顺带 C;B 单独研究单TASK-rectification-probe-supply-research-20260913.md),不与本单混做。
  • 不改引擎计分、不改确认门;Skill 若改用户可见流程升 10.0.25(本单预计要升:定向补事的问法变了)。

1. 现状(2026-09-13 真机,5d54d059

六道带年月题答完 → 刷新 no_new_probes → 落下定向补事口述题:「还有4条线能把 04:51 和 05:06 分开:哪年结婚或订婚、哪年收入明显变过、哪年搬家、家里哪年添丁。记得哪件说哪件,年月大概就行。」范围 04:48–05:07,5 簇,头名 32%。流程正确但体感死板:一道开放题堆四条线,没有可点的东西;「04:51 和 05:06」是范围两端而不是剩余候选的说明。

2. 决策记录(产品负责人 2026-09-13)

  1. A:定向补事拆成一次一条的点选卡。每条线先问「有没有」(有 / 没有 / 记不清),答「有」再口述年月;答「没有」记为该线近年无事(不计分,只用于不再问);答「记不清」同「没有」处理但话题状态记 skipped;所有线都问完仍无新事 → 出「目前范围」卡(现有 S3)。
  2. D:题干与卡下提示说清「现在还剩 04:48–05:07 里 N 个候选,能把它们分开的是这几条线」;不再写「04:51 和 05:06」这类范围端点。
  3. C:「目前范围」卡下加入口「再答两道参考题微调排序」,点了才出 D9 / D10 性格卡,按 BUG-629 的 tie_break(±1、不淘汰、不改 can_adopt)。不点不出。
  4. 「没有」的信息价值:不计分、不淘汰、不进引擎;只在账本话题里记 collect:targeted:<domain> declined,防复问;与 BUG-629「无年月否定不参与打分」一致。
  5. 四条线都「没有」后直接出卡:接受(现有行为)。

3. 硬红线

  • 不改 SCORE_DELTAMIN_ACCEPTANCE_*、收敛门;性格题不得回到计分池(BUG-629 防复发)。
  • 每条线只问一次;「有」之后的年月追问只问一次,答不出则该线记 skipped。
  • 焦点落库走服务端(persistServerOwnedFocus),target_kind 走 BUG-656 的映射;不得再出现「决策有题、库里无题」(BUG-652 / 657 不变量测试照跑)。
  • 文案禁词照旧(领域、任何领域、做不了、材料不够、还差 N 件、才会变、这次给出、最终)。
  • 既有测试总数不降;改断言写原值 / 新值 / 原因;记录只用脱敏领域 + 年月。

4. 任务分解

  • T1 逐条点选(BUG-661collection-question-pool.ts targetedCollectPool 改为按 remainingLayers → REMAINING_LAYER_DOMAIN 逐条产出 {domain, existence_prompt, year_prompt},排除已覆盖 / 已 declined / 已 skipped 的线;method-followup.ts targetedCollectFollowup 产出带 choice_framecollect:targeted:<domain>(选项 A 有 / B 没有 / C 记不清,scoring:false);answer-choice.ts 处理:A → 落 collect:targeted:<domain>:year 口述焦点(题干「大概哪年几月?」);B → 话题 declined、下一条;C → 话题 skipped、下一条;口述年月 → 走现有 batch 写证据 → 引擎重算 → 回到 S2。验收:§1 序列六题答完后出第一条卡「结过婚或订过婚吗?」;答 B → 下一条卡;答 A → 「大概哪年几月?」;答「2022 年 5 月」→ 账本多一条 relationship 事件、引擎重算、出现新的带年月题或范围句变化;四条都 B → 「目前范围」卡;全程不出现「没有拿到下一个问题」。
  • T2 文案(BUG-662rangeNarrowHint / 定向卡题干 / 时间轴行:「现在还剩 04:48–05:07 里 5 个候选,能把它们分开的是这几条线:…」;卡下提示「还能再收窄:如果记得…」保留。agent-voice-copy-contract 加禁词「能把 HH:MM 和 HH:MM 分开」(正则)。验收:文案合同测试。
  • T3 参考题入口(BUG-663rectification-range-delivery.tsx 卡下入口「再答两道参考题微调排序」→ 点击调用 set-focus 落 D9 / D10 varga_style 卡(复用 BUG-629 tie_break 路径);答完刷新卡,can_adopt 不变。验收:不点不出;点后出 D9 卡、答后 rounds.kind=tie_break、头名可变但无淘汰。
  • T4 Skill 10.0.25 + 记录SKILL.md 与 references/conversation-strategy.md 里「定向补事」改为逐条点选;registry;case-status.ts;部署后先验 10.0.24 历史可打开(BUG-621);BUG-661663 入历史;CHANGELOGPROGRESSdocs/testing/rectification-scenarios-20260907.md 加场景 0d。

5. 让步顺序

T3 可拆下一单;T1 + T2 不可省。

6. 开工前置命令

git fetch origin --prune
git worktree add -b codex/rectification-targeted-collect-cards-20260913 .worktrees/rectification-targeted-collect-cards-20260913 origin/staging
grep -o "^## BUG-[0-9]*" docs/BUG_HISTORY.md | sort -t- -k2 -n | tail -1   # 应为 660
cd frontend && npm test -- tests/rectification-collection-question-pool.test.ts tests/rectification-probe-pool-exhausted-20260911.test.ts tests/rectification-replay-20260911.test.ts tests/rectification-yearless-probe-downgrade-20260909.test.ts tests/agent-voice-copy-contract.test.ts

7. 验收口径

  • 前端 tsc --noEmit 0 错、npm run lint 0 error、相关套件 fail=0、测试总数 ≥ 基线;next build/ 仍 Static、首屏 gzip ±2%。
  • Skill 升版后 skill-registry.test.ts 通过,旧版本哈希不变。
  • 部署后真机按 §4 T1 验收序列走一遍。