# PROGRESS · 生时校正区间交付卡(2026-09-07) 工作树:`.worktrees/rectification-stop-rescore-fix-20260907` 分支:`codex/rectification-range-delivery-card-20260907`(从 P0 停止后重算修复的未提交工作树切出) 任务书:`docs/tasks/TASK-rectification-range-delivery-card-20260907.md` 本单状态:**待验收**。未 commit、未 push、未部署。 未改:采用门、确认门、`MIN_SEPARATION_LEAD`、`_relative_support`、引擎、采用 RPC 校验、`adopted_credible_range` 落库。看盘板仍保留支持度。 ## 做了什么 - **4.1** `v9/divergence-panel.ts`:按活跃簇(2~3)和未问的 D9 / D10 / 月宿层投影对比列。文案只取 `D9_TYPE_TABLE` / `D10_TYPE_TABLE` 的 `userChoice` 与 nakshatra `traits`。`latest_result` / Case GET / `parseRectificationCandidateResult` 带 `range_delivery`。 - **4.2** `rectification-range-delivery.tsx` 替换四张分钟卡。动作「按这个范围用」(代表分钟或所选簇代表,UUID + `mode: "range"`)与「再补一件经历」(本地收起,不改状态)。`canShowRectificationSelectionCards` 语义不变。 - **4.3** 交付旁白去掉 `withProspectiveWindows` / 「候选 A 预测…」,改接 `deferredCareerWindow`。Skill §9 改口径,版本 **10.0.15**。 - **4.4** CHANGELOG、本文件、手测场景第 5 条、DESIGN / VOICE。 ## 三栏(被触碰断言) | 用例 | 原值 | 新值 | 理由 | | --- | --- | --- | --- | | 交付轮 UI | `RectificationCandidateCards` + 相对支持度 / 当前推荐 / 采用此时间 | 一张 `RectificationRangeDelivery` | 产品决策 1 | | 交付旁白 | `withProspectiveWindows` 三行候选预测 | `下一次事业变动的预测窗口留在采用后的核对阶段` | 决策 5 | | Skill | 10.0.14,「候选卡仍作 adopt 控件…相对支持」 | 10.0.15,区间交付卡,不写相对支持度 | 决策 6 | | 采用请求 | `{ sessionId, resultId, candidateId, requestId }` | 可选 `mode: "range"`,其余不变 | 决策 7,schema `.strict()` | ## 测试 - 任务书指定 TS 套件(`rectification-*.test.ts` + `consultation-*.test.ts` + `agent-voice-copy-contract.test.ts` + `skill-registry.test.ts`,排除 database):**1227 passed / 0 failed**(P0 同切片 1202) - `frontend` `tsc --noEmit`:0 - 本单改动文件 eslint:**0 error**(chat 上 2 条既有 hooks warning) - Docker `database-rectification-*.test.ts`:本机未跑,记 blocked ## 偏离 1. 任务书要求串行在 P0(BUG-581~582)合入并部署之后。用户要求同步代码并立即执行本单;P0 当时尚未部署,本单叠在同一工作树的 P0 修复之上切出 `codex/rectification-range-delivery-card-20260907`。 2. `range_delivery` 挂在 Case GET 与 `latestResultToolProjection`,不进 `overlayPublicDecision`,避免 `decision-from-dossier` ↔ `adopt-narration` 循环依赖。 3. 任务书写了 `v9/adopt-narration.ts` 旁白顺序;稳定/敏感句仍由既有 `withRangeReadingNarration` 插在 `adoptCue` 前,本单只替换预测窗口句。