# PROGRESS · 家人拒答后继续采集(2026-09-05) 工作树:`.worktrees/rectification-quality-probe-dedupe-20260904` 分支:`codex/rectification-quality-probe-dedupe-20260904` 基线:本分支已合入 staging 的 `329f8a21`(采用卡锚点)。未改 `.gitea/workflows/**`、未动迁移、未升级依赖、未 bump Skill(仍 10.0.14)、未改 `page.tsx`。 | 任务 | 状态 | BUG | | --- | --- | --- | | 家人答「没有」后继续收能区分分钟的经历 | 完成 | BUG-546 | ## 编号 开工时最大号 BUG-545。本单 **BUG-546**。未占用预留的 BUG-542。 ## 实现要点 - `buildMethodFollowupPlan`:家人覆盖或拒答后总是 `nextDatedCollectFollowup`,不再要求训练门未开。 - `isRemainingEvidenceCollect`:dated 顺序域 + 职业口述。 - `deferAdoption` / `shouldSkipFollowupPersist`:这类采集不得因 `canAdopt` 早退。 - `canAdopt` 能力仍可开;未答采集在场时采用卡按 BUG-544 隐藏。不放宽精确分钟确认门。 ## 断言变更 | 项 | 原值 | 新值 | 原因 | | --- | --- | --- | --- | | live five-evidence 家人拒答后 | 采用旁白 / 职业采集 | 财务口述「钱的方面…」 | 训练门已开仍要收未用带年份域 | | 家人拒答 persist stem | 职业 | 学业(revision5 尚无学业证据) | dated 顺序:家人之后先学业 | | `adopt_representative` 计划 | `next_followup` null,采集进 deferred | 本轮仍问剩余经历采集 | 采用能力 ≠ 结束采集 | | 八方法家人之后 | 职业 → 占问 | 财务 → … → 职业 → 占问 | 与 `DATED_COLLECT_ORDER` 对齐 | | 精度层 / D24 观察(经典八法已覆盖) | 直接 D5/D4 观察 | 先财务采集 | 未用带年份域优先于精度层 | | B2 `buildNextUserAction` | `ask_method_followup` | 仍 `adopt_representative` | 能力层跟 sessionOutcome;真正下一问由 persist 写财务焦点 | ## 测试 | 命令 | 结果 | | --- | --- | | collect-stall / collect-direction / provisional-adopt / range-offer / adopt-narration / coverage-collect | 64/64 | | eight-method + adopt-flow-fix + answer-choice + 上列 | 163/163 | | `tsc --noEmit` | 0 错 | | 改动文件 eslint `--quiet` | 0 error | | `page.tsx` | 未改 | 未做浏览器真人走查。清单:`docs/testing/rectification-family-collect-continue-20260905.md`。旧会话在部署前仍会按旧逻辑结束。 ## BUG-547 · 现成区分卡优先于口述补采集 工作树:`.worktrees/rectification-family-collect-continue-fix-20260905` 分支:`codex/rectification-family-collect-continue-fix-20260905` 基线:`origin/staging` @ `309c7424`(含 BUG-546 的 `998406ce`)。修复提交:`cd704a92`。未改 `.gitea/workflows/**`、未动迁移、未升级依赖、未 bump Skill(仍 10.0.14)、未改 `page.tsx`。 | 任务 | 状态 | BUG | | --- | --- | --- | | 补采集让位于可渲染区分卡 | 完成 | BUG-547 | | 无区分卡时仍走 dated 补采集 | 完成 | BUG-546 保留 | ### 编号 开工时最大号 BUG-546。本单 **BUG-547**。未占用预留的 BUG-542。 ### 实现取舍 在 `if (!next)` 链里,家人之后先看 yearless / 精度层能否拿出 `choice_frame`,有卡才问卡;没有卡才 `nextDatedCollectFollowup`。精度层抢在采集前必须训练门已开,避免 `lagna_frame` 借走无关探针、在 holdout 未齐时改成区分题。没有把 dated 分支整段挪到 `d4_refine` 之后,因为精度层在没有探针时也会生成无框 `distinguish` 题,整段后移会把 BUG-546 的八方法财务采集再改回去。 ### 断言变更 | 项 | 原值 | 新值 | 原因 | | --- | --- | --- | --- | | `career evidence alone still does not cover occupation` 下一问 | `occupation` | `d2_finance` | 家人已覆盖且无区分卡,BUG-546 继续收未用带年份域;职业仍 uncovered | | `training gate open does not mint yearless…` 下一问 | `occupation` | `d2_finance` | yearless 存在/质量卡被丢掉后没有可渲染区分卡,先财务采集 | `distinguish follow-up copy forbids competing-chart ranking` 未改断言。新增无探针对照:同样证据集、没有搬家探针时下一问仍是财务采集。 ### 测试 | 命令 | 结果 | | --- | --- | | choice-card + occupation-coverage-exit | 55/55 | | eight-method + choice-card + occupation | 117/117 | | collect-stall / collect-direction / provisional-adopt / range-offer / adopt-narration / adopt-flow-fix / eight-method / choice-card / occupation / agent-voice | 192/192 | | `npx tsx --test tests/rectification-*.test.ts tests/agent-voice-copy-contract.test.ts` | 895 项;产品失败 0。整包曾出现 1 次 Docker 迁移夹具失败(`v9 agent api migration…`),单测重跑 1/1 通过 | | `tsc --noEmit` | 0 错 | | 改动文件 eslint `--quiet` | 0 error | | `page.tsx` | 未改 | 未做浏览器真人走查。旧会话在部署前仍会按 `998406ce` 把现成区分卡挤掉。