Files
Jyotisha/docs/tasks/TASK-rectification-record-conflict-copy-20260914.md
T
Jesse_ChenandClaude Fable 5 d92a696768 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
2026-09-14 15:24:58 +00:00

83 lines
5.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.
# 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)。