Files
Jyotisha/docs/tasks/PROGRESS-rectification-covered-domain-recollect-20260908.md
T
Jesse_ChenandCursor 7ca6ade244
Independent Staging Quality Gate / validate (push) Successful in 11m33s
Independent Staging Quality Gate / publish (push) Successful in 7m49s
fix(rectification): stop re-asking covered domains after adopt (BUG-590, BUG-591)
Yearless-to-collect now skips domains already confirmed, declined, or asked; adopt-exhausted turns skip leftover collect persist. Collect focus collisions only retry with :next when collect_retry is set.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 12:27:40 +08:00

45 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PROGRESS · 已覆盖领域再采集(2026-09-08
工作树:`.worktrees/rectification-covered-domain-recollect-20260908`
分支:`codex/rectification-covered-domain-recollect-20260908`
任务书:`docs/tasks/TASK-rectification-covered-domain-recollect-20260908.md`
基线:`origin/staging` @ `43fd8875`
本单状态:**待验收**。本提交交付到 staging。
未改:采用门、确认门、`MIN_SEPARATION_LEAD``_relative_support``minute_step=1``SCORE_DELTA`、四选项合同、Skill 版本(仍 10.0.15)。
## 做了什么
- **决策 1** `method-followup.ts` 职业覆盖后的 yearless→采集:遍历全部 `yearlessDiscriminators`,跳过拒答、`hasConfirmedDomain`(含 `health`/`health_pressure`)和已问过 `collect:<domain>:*` 的领域。全部跳过则 `next` 保持空。
- **决策 2** `shouldSkipFollowupPersist``canAdopt` 且(`nextAction === "ready_to_adopt"``sessionOutcome === "adopt_representative"`)且 `stopReason === "probe_pool_exhausted"` 时,`isRemainingEvidenceCollect` 只有该领域没有确认事件且未拒答才算剩余采集;否则跳过持久化、`terminalNote`
- **决策 3** `persistCollectFocus``focus_idempotency_conflict`:仅 `collect_retry === true``:next`,否则 `duplicate_focus``persistFocusAfterChoice` 不再为 `duplicate_focus` 读 dossier 重试。
- **决策 4** `holdoutFollowupFor` 的 occupied 归并 `health` / `health_pressure`
## 三栏(被触碰断言)
| 用例 | 原值 | 新值 | 理由 |
| --- | --- | --- | --- |
| 事故形状 yearless→采集 | `next_followup.domain = finance`(取 yearless[0]=D11 | `null` | 决策 1,财务已覆盖 |
| 同形状但迁居未覆盖 | finance | relocation | 守卫只跳过已覆盖领域 |
| idle persist 事故形状 | 财务采集焦点 / `:next` | `terminalNote: true`0 次 set-focus | 决策 1+2 |
| 非 retry 采集撞 id | 任何撞 id 都 `:next` | `duplicate_focus`RPC 一次 | 决策 3 |
| `collect_retry` 撞 id | `:next` | 仍 `:next` | 保留 BUG-462 retry |
| holdout 账本 `health` + oos `health_pressure` | `health_pressure` | `null` | 决策 4 |
## 测试
- `frontend` `./node_modules/.bin/tsc --noEmit`exit 0
- `npm run lint`0 error(仓库既有 warning 未清)
- 任务书指定 TS 切片(`tests/rectification-*.test.ts` + `agent-voice-copy-contract.test.ts`,排除 database):**1006 passed / 0 failed**
- Docker `database-rectification-*.test.ts`:本机未跑,记 blocked
- `block_scan` 壁钟(BUG-570 P2):既有缺口,本单不声称全量 Python 门通过
- 浏览器七领域真人走查:无登录态,记环境缺口,见 `docs/testing/rectification-scenarios-20260907.md` §6
## 偏离
1. 任务书写 `nextAction === "adopt_representative"`。实现同时认 `ready_to_adopt``sessionOutcome === "adopt_representative"`,因为公开 nextAction 是前者。
2. 验收形状扩在 `rectification-occupation-coverage-exit.test.ts`,没有新建文件。
3. idle 夹具按解析后账本算 `evidenceLedgerFingerprint`,避免 RPC `summary` 与内存账本对不上把快照判成过期、决策掉回 `collect_evidence`
4. `rectification-eight-method.test.ts`yearless D24 在 CLASSIC_COVERAGE 已有学业时,不再锁「再问一遍学业」;改为收未覆盖的财务。