# PROGRESS · 领域别名归并(2026-09-13) 工作树:`.worktrees/rectification-domain-alias-audit-20260913` 分支:`codex/rectification-domain-alias-audit-20260913` 任务书:`docs/tasks/TASK-rectification-domain-alias-audit-20260909.md` 基线:开工时 `origin/staging` @ `99127601` ## 开工回执 - 目标:健康 `health` ≡ `health_pressure`、职业焦点 `other` + `collect:occupation:` ≡ `occupation`,比较只走一处归并。 - 编号:任务书写 BUG-628,但该号已被「口述采集没有/记不清按钮」占用;当前最大 BUG-671,本单用 **BUG-672**。 - 串行:BUG-626 决策 1(holdout declined 归并)已在 staging。本单补 H3/H4/H5/H6/H7/H8/H9/O1,H1/H2/H10 改走同一函数。 - H8 口径:BUG-641 已删 Python `VOLUNTEER_ONLY`;D30 是否进入剩余分盘对照仍看 TS `remainingVargaSplits` 的 volunteered 集合。归并后账本 `health` 会让 D30 进入该集合。这是原设计,不是新行为。Skill 不 bump。 ## 已完成 - **5.1** `v9/domain-alias.ts`:`canonicalCollectDomain` / `sameCollectDomain` / `declinedHasDomain`。`method-followup.ts` 的 declined、reverse-verify、conflict、probeYearAlreadyCovered、holdout occupied/declined、`hasConfirmedHealth` / `declinedHealth` 薄封装都经它。`candidate-contrast-packet.ts` 的 D30 提及、账本 year 键、dated/volunteered 域同样归并。职业拒答(`other` + `collect:occupation:`)进入 `declined.has("occupation")`,事业未覆盖时职业方法记为已覆盖、不再派职业题。 - **5.2** Python `canonical_domain`;`_event_years`、`oos_blind_prompts.covered` 经它。`_probe_domains` 在 d30 剩余层时仍给出 `health_pressure`;账本 `health` 2024-10 阻断该年健康探针。 - **5.3** `frontend/tests/rectification-domain-alias-audit-20260913.test.ts` 锁 `method-followup.ts` 不得出现字面量 `"health"`。 - **5.4** BUG-672、CHANGELOG、CONTEXT 术语表、本文件、任务板改待验收。 ## 验收命令 - `./node_modules/.bin/tsc --noEmit`:0 错 - `npm run lint`:0 error(120 warning,既有) - 相关 TAP:`tests/rectification-*.test.ts`(排除 database)**1186 / 1186**;新文件 `rectification-domain-alias-audit-20260913.test.ts` 10/10 - Python:`tests/test_rectification_event_probes.py` 全文件通过(含 DomainAliasTests);`tests/test_rectification_v5_services.py` 40/40 - `next build --webpack`:`/` 仍 Static;`rootMainFiles` gzip-9 **130934 B**(与 `99127601` 相同,0.000%) - 未改 Skill、未改 DB、未改采用/确认门 - 未做登录态真机走查 本单状态:**待验收**。未 commit / 未 push。