fix(rectification): treat a yes discriminator as covering that domain's collect

A choice-card yes/weak_yes already told us the domain happened, so skip the same-domain "which year" collect without writing the ledger.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-09-05 16:07:27 +08:00
parent 2dc6194671
commit 988d97ae62
9 changed files with 263 additions and 9 deletions
@@ -0,0 +1,37 @@
# PROGRESS · 区分卡答「发生了」视为该领域采集已覆盖(2026-09-05)
工作树:`.worktrees/rectification-probe-answer-covers-domain-20260905`
分支:`codex/rectification-probe-answer-covers-domain-20260905`
基线:`origin/staging` @ `2dc61946`(任务书)。未改 `.gitea/workflows/**`、未动迁移、未升级依赖、未 bump Skill(仍 10.0.14)、未改 `page.tsx`
| 任务 | 状态 | BUG |
| --- | --- | --- |
| 点选 A/B 覆盖该领域采集,不写账本、不动门 | 完成 | BUG-549 |
## 编号
开工时最大号 BUG-548。本单 **BUG-549**。未占用预留的 BUG-542。
## 产品取舍
任务书决策 2 允许否决「答 C/D 后仍可马上问同领域采集」。本单**保留原文**:C/D 不算覆盖。区分卡谈的是那一个年份窗口;采集问的是别的年份。隔一轮只是把同一问推迟,会把调度混进覆盖判定,也不减少信息差。未加「除了刚才那次以外」文案。
`decideFromDossier` 里只用来算 `methodCoverageAll` / `datedMethodCollectOpen` 的轻量 `buildMethodFollowupPlan` 仍只看账本,训练门与确认门输入不变。出题计划通过 `rectificationFollowupCatalog.answeredProbes` 透传。`adopt-narration.ts` 不调用 `buildMethodFollowupPlan`,无需改。
## 实现要点
- `domainsAnsweredYes`:用 `eventProbes`(外加同类型的 clarification / collection 探针)按 `semantic_key` / `probe_id` 回查 `domain`;回查不到忽略,不从前缀拆领域。
- `relationshipCovered` / `careerCovered` / `familyCovered``datedCollectDomainBlocked` 叠加 `answeredYes`
- `classified_from: "evidence"` 不算覆盖。
## 测试
| 命令 | 结果 |
| --- | --- |
| collect-direction + choice-card | 52/52 |
| `npx tsx --test tests/rectification-*.test.ts tests/agent-voice-copy-contract.test.ts` | 898 项;pass 898fail 0cancelled 0skipped 0 |
| `npx tsc --noEmit` | 0 错 |
| 改动文件 eslint `--quiet` | 0 error |
| `page.tsx` | 未改 |
未做浏览器真人走查。清单:`docs/testing/rectification-probe-answer-covers-domain-20260905.md`。旧会话在部署前仍会按旧逻辑再问一遍。
+1 -1
View File
@@ -54,7 +54,7 @@
| — | `PROGRESS-rectification-adopt-card-anchor-20260905.md` | 采用卡钉在历史采集题下,最新旁白没有卡;单分钟交付旁白机器腔 | 已验收通过(浏览器走查欠) | `codex/rectification-quality-probe-dedupe-20260904`BUG-544545 |
| — | `PROGRESS-rectification-family-collect-continue-20260905.md` | 家人答「没有」后直接给结果,未继续收能区分分钟的经历 | 已由 cd704a92 修正并验收通过 | `codex/rectification-quality-probe-dedupe-20260904`BUG-546 |
| `TASK-rectification-family-collect-continue-fix-20260905.md` | `PROGRESS-rectification-family-collect-continue-20260905.md` | `998406ce` 修复单:家人之后的 dated 补采集无条件抢在现成区分卡之前(choice-card A/B 卡用例回归),另两条顺序断言缺三栏说明 | 已验收通过(浏览器走查欠) | `cd704a92`BUG-547 |
| `TASK-rectification-probe-answer-covers-domain-20260905.md` | | 区分卡答 A/B 后紧接着又问同领域"哪年…"采集题:点选答案只进推断层不写账本,计划层领域覆盖只看账本;改为 yes/weak_yes 视为该领域采集已覆盖(不写账本、不动门) | 待执行 | `codex/rectification-probe-answer-covers-domain-20260905`BUG-549 |
| `TASK-rectification-probe-answer-covers-domain-20260905.md` | `PROGRESS-rectification-probe-answer-covers-domain-20260905.md` | 区分卡答 A/B 后紧接着又问同领域"哪年…"采集题:点选答案只进推断层不写账本,计划层领域覆盖只看账本;改为 yes/weak_yes 视为该领域采集已覆盖(不写账本、不动门) | 待验收 | `codex/rectification-probe-answer-covers-domain-20260905`BUG-549 |
| `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-505509 |