docs(tasks): record wins by default when it falls outside the rectified range

产品 2026-09-14 拍板:用户有医院记录而校正区间不含那一分钟时,记录优先、分歧
如实呈现。依据写进任务书:holdout 上六题后头名命中只有 0.80/0.55/0.35,不足以
推翻书面记录;但医院记录也确有抄录误差,所以不能反过来否定校正结果。行为上
「记录优先」已经成立(不点采用就继续用填报时间),本单只做文案与入口:冲突时
校正区间标成证据倾向,采用按钮改成「改用校正结果」,并禁止任何「记录不准」
或「校正无效」的表述。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155nFCgCHtoA7jhSDGmZmMu
This commit is contained in:
Jesse_Chen
2026-09-14 15:24:58 +00:00
co-authored by Claude Fable 5
parent c5fbee56a6
commit d92a696768
2 changed files with 84 additions and 0 deletions
+2
View File
@@ -186,6 +186,8 @@
| `TASK-rectification-tiebreak-hold-exit-fix-20260914.md` | `PROGRESS-rectification-tiebreak-hold-exit-20260914.md` | **P0 回归修复单**:BUG-686 的风格题前置把耗尽与收口路径的交付也压住了,`npm test` 由 27 红涨到 33(6 条「该交付却不交付」)。后续 `6fd7925a` 只改断言把它们改绿:4 条文案放宽可接受,2 条实质弱化(「恰好一条交付闸」退化成短路、参考题确认语被算作出口载体)必须恢复;行为层根因未动。hold 要带出口、不得作用于 exhausted/closed-ceiling,最多 hold 一次(BUG-688)。尚未部署,未影响线上 | 待验收 | `codex/rectification-tiebreak-hold-exit-20260914` |
| `TASK-rectification-record-conflict-copy-20260914.md` | `PROGRESS-rectification-record-conflict-copy-20260914.md` | BUG-690 的 D4 收口:产品 2026-09-14 拍板**记录优先、分歧如实呈现**——默认仍按出生记录时间排盘(行为已成立),校正区间标成「证据倾向」,采用入口在冲突时改成「改用校正结果」;系统不得宣布记录错或校正无效(BUG-691) | 待执行 | `codex/rectification-record-conflict-copy-20260914` |
| `TASK-rectification-birth-time-provenance-20260914.md` | `PROGRESS-rectification-birth-time-provenance-20260914.md` | 与上游流程对照发现的缺口(上游 R2):录入时已问「医院记录 / 家人记得大概 / 只知道时段」并落库 `birth_time_source`,但整条校正链只在放宽窗口时用过一次,决策与文案一律不看它——家人推算的时间和出生证在系统里等同对待,输出还直接称「你的出生时间」。本单把来源标签接进投影并分档措辞(BUG-690) | 待验收 | `codex/rectification-birth-time-provenance-20260914` |
| `TASK-rectification-precision-adaptive-boundary-research-20260914.md` | `PROGRESS-rectification-precision-gate-research-20260914.md` | **研究单**:出题闸门 `MIN_BOUNDARY_DAYS=45`(刷新 30)不看证据精度,而出生时间每差 1 分钟大运边界只平移约 1.1 天——20 分钟窗内的候选边界全挤在三周内被整批丢掉,这就是「六题后出不来题」的算术原因。量闸门按年/月/日分档(G0–G4)的收益,并必测答错容忍度(±3/±7/±14 天偏移下真值是否被挤出) | 待执行 | `codex/rectification-precision-gate-research-20260914` |
@@ -0,0 +1,82 @@
# TASK · 记录与校正区间冲突时:记录优先,分歧如实呈现 — 2026-09-14
- 基线:`origin/staging` @ `c5fbee56`BUG-690 已实现,**尚未部署**staging 当前跑 `cf972f40`)。
- 分支:`codex/rectification-record-conflict-copy-20260914`worktree `.worktrees/rectification-record-conflict-copy-20260914`
- 关联:BUG-690(来源标签,本单是它的 D4 收口)、上游流程纪律 R2、BUG-587(不得把代表分钟说成已确认分钟)。
- 串行:只改文案层与采用入口措辞;不改打分、判据、采用逻辑。
## 1. 背景与产品拍板
BUG-690 把出生时间来源分成三类并分档措辞,但**留了一个问题没定**:用户有医院记录、而校正区间不含那一分钟时,产品态度是什么。当前实现只并列陈述:
```
出生记录时间 04:40。目前范围不含这一分钟,相差 8 分钟
```
**产品负责人 2026-09-14 拍板:记录优先,分歧如实呈现。**
拍板依据(两条都写进记录,避免以后被当成随意决定):
1. **我们的证据强度撑不起推翻书面记录。** 20 例封存基准上,六题之后头名簇命中率是 0.80 / 0.55 / 0.35(±10 / ±30 / ±60 分钟窗,见 `docs/research/cluster_width_2026_09_14.md`)。宽窗里有一半以上概率排错头名。
2. **但医院记录确实会错**(事后补记、四舍五入到 5 分钟整、家属转述),所以不能反过来宣布校正结果无效——两者必须并列,只是默认值站在记录这边。
## 2. 决策记录
| 决策 | 内容 |
| --- | --- |
| D1 | **默认仍按出生记录时间排盘。** 这在行为上已经成立:采用(accept)是用户主动动作,不采用就继续用填报时间。本单**不改这条行为**,只把它说清楚。 |
| D2 | **校正区间在冲突时标成「证据倾向」。** 文案要点:①默认还是按你的出生记录时间排盘;②这些经历指向的是另一段时间,相差 N 分钟;③你可以改用校正结果,也可以继续用记录。 |
| D3 | **采用入口在冲突时改措辞**:不是「采用」,而是**「改用校正结果」**,并在确认处再说一次"这会把之后的排盘从出生记录时间换成 hh:mm"。用户能一眼看懂自己在换什么。 |
| D4 | **系统永远不得表述为「你的出生记录错了」/「记录不准」**,也不得反过来说「校正结果无效」。只陈述差值与各自依据。这条进 Skill 与 `frontend/docs/VOICE.md`。 |
| D5 | 不改打分、判据、置信度与确认门控;不改采用的技术流程;不动数据库。 |
## 3. 硬红线
1. `tsc --noEmit` 0 错;`npm run lint` 0 error`npm test` 失败数 = 基线 27 条;`next build` 通过且 `/``○ Static`
2. 新文案对照 `frontend/docs/VOICE.md`;改 UI 的提交同时更新 `frontend/DESIGN.md`
3. 不得新增多余入口(产品偏好:多余入口宁可删除也不修)——「改用校正结果」复用既有采用按钮,只换措辞与确认文案。
4. 不得把代表分钟说成已确认的出生分钟(BUG-587 红线维持)。
## 4. 任务分解
### 任务 1 · 冲突文案(P0)
- `frontend/src/lib/rectification-agentic/birth-time-provenance.ts``reportedTimeOffsetCopy``hospital_record` + 落在范围外时,按 D2 三要点出文案(现在只有前半句)。
- 验收标准:行为单测——`hospital_record` + 记录在范围外 → 文案含「默认仍按…排盘」与「可以改用校正结果」两层意思,且**不含**「记录不准 / 记录错了 / 以证据为准」这类措辞(正则锁);记录落在范围内时文案不变。
### 任务 2 · 采用入口措辞(P0)
- 冲突状态下交付卡的采用按钮文案改成「改用校正结果」,确认处补一句"之后的排盘会从出生记录时间 hh:mm 换成 hh:mm"。
- 非冲突状态(无记录、或记录落在范围内)维持现有「采用」措辞。
- 验收标准:行为单测覆盖两种状态的按钮与确认文案;`agent-voice-copy-contract.test.ts` 同步补例。
### 任务 3 · Skill 与 VOICEP1
- `skills/jyotish-birth-time-rectification/references/candidate-comparison.md`:在 BUG-690 新增的「出生时间来源标签」一节后面补冲突处置规则(D1–D4)。
- `frontend/docs/VOICE.md` 增一条禁止措辞。
- Skill 若 bump,旧 Case 仍绑旧版本,并验历史 Case 能打开(BUG-621 教训)。
### 任务 4 · 记录
- `docs/BUG_HISTORY.md` 新增 **BUG-691**`resolved`);防复发条:**记录与校正冲突时默认站在记录一边,但两者必须并列;系统不得宣布任何一方无效。**
- `CHANGELOG.md` 一行;`PROGRESS-rectification-record-conflict-copy-20260914.md``docs/testing/` 清单:造一个有医院记录、校正区间不含该分钟的案子,检查文案与按钮。
## 5. 让步顺序
1. 任务 1、2 必做。
2. 任务 3 可只改 references 不 bump,在进度记录里说明。
## 6. 开工前置命令
```bash
git fetch origin --prune
git worktree add -b codex/rectification-record-conflict-copy-20260914 \
.worktrees/rectification-record-conflict-copy-20260914 origin/staging
cd .worktrees/rectification-record-conflict-copy-20260914
ln -s /workspace/Jyotisha/.venv .venv
cd frontend && npm ci
```
## 7. BUG 编号起点
- 起点 **BUG-691**(当前最大号 690)。