fix(rectification): keep collecting after family denial
Family "没有" was treated as adopt-ready once the training gate was open. Remaining dated domains still distinguish leftover minutes, so persist those questions instead of writing the adopt narration. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+18
-2
@@ -8333,11 +8333,11 @@
|
||||
- 影响面:`collectionYearFields`、`spokenFollowupForUser` 对 `collect_method_evidence`
|
||||
- 用户现象:家庭采集题写成「某年前后,家里如果有结婚、添丁或住院这类事,记得大概哪年就行。」既指定了年份又让用户报年份。
|
||||
- 触发条件:家庭轮转把 dated 探针的 `year_label` 拼进 `USER_COLLECT_QUESTION.family`。
|
||||
- 根因:`68f0759e` 为 BUG-414/418「带年份的口语问、不出无年份分盘选择卡」把 dated 探针年份塞进采集口语。`USER_COLLECT_QUESTION.family` 本身以「记得大概哪年就行」结尾,拼在一起自相矛盾。答「没有」后出采用卡本身不是缺陷(预算已满、家庭是最后一条必答覆盖线),本单不改该收口。
|
||||
- 根因:`68f0759e` 为 BUG-414/418「带年份的口语问、不出无年份分盘选择卡」把 dated 探针年份塞进采集口语。`USER_COLLECT_QUESTION.family` 本身以「记得大概哪年就行」结尾,拼在一起自相矛盾。本单只去年份前缀。家人拒答后若还有未问的财务/搬家/健康/职业采集,不得直接给结果——见 BUG-546(推翻本条原先「出采用卡不是缺陷」的收口)。
|
||||
- 修复:采集口语不再拼「某年前后,」。`probe_year` / `semantic_key` 仍留给计分与去重。不出无年份分盘选择卡的半边保留。
|
||||
- 验证:家庭采集口语等于 `USER_COLLECT_QUESTION.family`,同时 `probe_year > 0`。答完最后一道区分题后仍落家庭采集焦点,旁白不含探针年份。BUG-418 无年份分盘卡测试仍过。
|
||||
- 防复发:`collect_method_evidence` 口语不得加年份前缀。不得为去前缀而丢掉 `probe_year` 或放回无年份分盘选择卡。
|
||||
- 相关记录:BUG-414、BUG-418
|
||||
- 相关记录:BUG-414、BUG-418、BUG-546
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
@@ -8421,3 +8421,19 @@
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
## BUG-546 | 家人采集答「没有」后直接给结果,未继续收能区分分钟的经历
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-09-05
|
||||
- 最近更新:2026-09-05
|
||||
- 影响面:`buildMethodFollowupPlan`、`shouldSkipFollowupPersist`、`deferAdoption`、`isRemainingEvidenceCollect`
|
||||
- 用户现象:学业、感情、事业都已有带年份经历,家人题答「没有」后,助手直接给出代表分钟和采用旁白。剩下两三个分钟还分得开,财务、搬家、健康、职业都还没问。
|
||||
- 触发条件:训练门已开(至少 5 条带日期事件、2 个以上领域),家人采集拒答,剩余区分探针被标成 `no_split_among_active`,决策层 `canAdopt=true` / `sessionOutcome=adopt_representative`。
|
||||
- 根因:两层早退叠在一起。(1) `buildMethodFollowupPlan` 的 dated 补采集只在训练门未开时运行;门已开就跳到职业,再被 `deferAdoption` 清掉 `next_followup`。(2) `shouldSkipFollowupPersist` 见 `canAdopt` 且阻断方法已覆盖、当前题不是剩余区分题,就跳过写焦点、改写采用旁白。BUG-539 曾写「家人没有后出采用卡不是缺陷」,那是把采用能力门和「还有未问的经历域」混成一件事。
|
||||
- 修复:家人覆盖或拒答后**总是**走 `nextDatedCollectFollowup`(学业 → 财务 → 搬家 → 健康 → 感情/事业补洞)。`isRemainingEvidenceCollect` 覆盖这些域和职业口述。`deferAdoption` 与 `shouldSkipFollowupPersist` 都不得把这类采集早退掉。`canAdopt` 能力仍可开着;未答采集在场时采用卡仍按 BUG-544 不出。不放宽精确分钟确认门。职业仍不是 adopt 能力门槛。
|
||||
- 验证:`rectification-collect-stall` live five-evidence 家人拒答后持久化财务采集;`rectification-adopt-narration-20260904` 仅家人拒答仍问财务;`rectification-provisional-adopt` 1c / after-choice / B2 锁财务采集写焦点;`rectification-eight-method` 家人之后先财务再职业再占问。
|
||||
- 防复发:训练门已开不得跳过未用的 dated collect。`canAdopt` 不得单独构成跳过财务/搬家/健康/职业采集的理由。不得把 BUG-539「家人没有后采用」读成「未问完的经历域也可以结束」。
|
||||
- 相关记录:BUG-519、BUG-539、BUG-544
|
||||
- 复发自:BUG-519(采用早退把未用采集域一并吃掉);BUG-539 把该收口写成非缺陷
|
||||
- 修复版本:待发布
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# 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`。旧会话在部署前仍会按旧逻辑结束。
|
||||
@@ -52,6 +52,7 @@
|
||||
| `TASK-rectification-post-adopt-verify-20260904.md` | `PROGRESS-rectification-post-adopt-verify-20260904.md` | 采用后核对题重复已问题;核对卡「这题跳过」等于整案停止、已采用仍念"选一个先用着"、前端"没有拿到下一个问题";采用旁白承诺的 holdout/OOS 核对与实际计划不同源(原任务书 §4 错误);家庭采集题带年份前缀自相矛盾 | 待验收 | `codex/rectification-post-adopt-verify-20260904`(BUG-536~539) |
|
||||
| `TASK-rectification-quality-probe-dedupe-20260904.md` | `PROGRESS-rectification-quality-probe-dedupe-20260904.md` | 候选区分阶段同一道"上大学"题问两次:`pickProbe` 按种类取第一条质量探针无视 `semantic_key`(第二次答案绑到错的证据);引擎对毕业等学业 kind 也套"高考发挥"模板;同域同分组质量探针不去重 | 待验收 | `codex/rectification-quality-probe-dedupe-20260904`(BUG-540~541) |
|
||||
| — | `PROGRESS-rectification-adopt-card-anchor-20260905.md` | 采用卡钉在历史采集题下,最新旁白没有卡;单分钟交付旁白机器腔 | 待验收 | `codex/rectification-quality-probe-dedupe-20260904`(BUG-544~545) |
|
||||
| — | `PROGRESS-rectification-family-collect-continue-20260905.md` | 家人答「没有」后直接给结果,未继续收能区分分钟的经历 | 待验收 | `codex/rectification-quality-probe-dedupe-20260904`(BUG-546) |
|
||||
| `TASK-api-not-configured-mislabel-20260904.md` | — | 16 处路由把数据库瞬断(部署切换窗口)兜底翻译成 503「服务尚未配置」;改为仅配置错误用该文案,其余 `service_unavailable`,收敛为共享 helper | 待执行 | `codex/api-not-configured-mislabel-20260904`(BUG-542 起) |
|
||||
| `TASK-rectification-ux-20260902.md` | `PROGRESS-rectification-ux-20260903.md` | 会话面空白假死与交互摩擦 | 已验收 | `d159f08e`(09-03 在新基线重做后合入,BUG-505~509) |
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
# Staging 人肉复核 · 家人说没有之后继续采集(2026-09-05)
|
||||
|
||||
给产品负责人。不要把真实案例里的年份、事件或候选分钟写进任何记录。
|
||||
|
||||
对应 BUG-546。测之前先做第 0 条。本单部署前,旧会话仍可能在家人「没有」后直接给结果。
|
||||
|
||||
## 0. 确认测的是新版本
|
||||
|
||||
浏览器打开 `https://staging.jyotisha.chat/api/health`,看 `deployment.gitCommit` 前 8 位是否等于本单合入 staging 后的提交。不一致 = 先别测。
|
||||
|
||||
## 1. 家人「没有」之后要继续问(P0)
|
||||
|
||||
1. 新建生时校正。
|
||||
2. 先说清学业、感情、事业各一件记得住大概年份的事,把区分卡答完,直到出现家人那题:「家里如果有结婚、添丁或住院这类事,记得大概哪年就行。」
|
||||
3. 回答「没有」。
|
||||
|
||||
- ✅ 预期:下一句是还没问过的带年份经历。学业/感情/事业都有了的话,应是「钱的方面,还记得哪年收入明显变过、有过大笔支出,或欠过债吗?」不是采用旁白,也不是「再问下去也分不开」。
|
||||
- ❌ 失败:直接出现「我按你说的经历认真分析过了,下面是这次的结果。」或时间卡。
|
||||
|
||||
## 2. 这题还没答时不要出时间卡(P0 · 叠 BUG-544)
|
||||
|
||||
家人答「没有」后,财务(或下一域)口述题还在:
|
||||
|
||||
- ✅ 预期:这题下面没有采用卡。
|
||||
- ❌ 失败:口述题还在,旁边或上面已经出现「当前可能的出生时间」。
|
||||
|
||||
## 3. 钱、搬家、身体也可以说没有(P1)
|
||||
|
||||
对财务、搬家、身体依次答「没有」或补一件带年份的事:
|
||||
|
||||
- ✅ 预期:按这个顺序往下问,问完这些才会问「你平时主要做什么工作?」。全部问完或都说没有之后,才允许出现这次的结果。
|
||||
- ❌ 失败:财务才说没有就给结果。
|
||||
Reference in New Issue
Block a user