产品 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
5.3 KiB
5.3 KiB
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 拍板:记录优先,分歧如实呈现。
拍板依据(两条都写进记录,避免以后被当成随意决定):
- 我们的证据强度撑不起推翻书面记录。 20 例封存基准上,六题之后头名簇命中率是 0.80 / 0.55 / 0.35(±10 / ±30 / ±60 分钟窗,见
docs/research/cluster_width_2026_09_14.md)。宽窗里有一半以上概率排错头名。 - 但医院记录确实会错(事后补记、四舍五入到 5 分钟整、家属转述),所以不能反过来宣布校正结果无效——两者必须并列,只是默认值站在记录这边。
2. 决策记录
| 决策 | 内容 |
|---|---|
| D1 | 默认仍按出生记录时间排盘。 这在行为上已经成立:采用(accept)是用户主动动作,不采用就继续用填报时间。本单不改这条行为,只把它说清楚。 |
| D2 | 校正区间在冲突时标成「证据倾向」。 文案要点:①默认还是按你的出生记录时间排盘;②这些经历指向的是另一段时间,相差 N 分钟;③你可以改用校正结果,也可以继续用记录。 |
| D3 | 采用入口在冲突时改措辞:不是「采用」,而是**「改用校正结果」**,并在确认处再说一次"这会把之后的排盘从出生记录时间换成 hh:mm"。用户能一眼看懂自己在换什么。 |
| D4 | 系统永远不得表述为「你的出生记录错了」/「记录不准」,也不得反过来说「校正结果无效」。只陈述差值与各自依据。这条进 Skill 与 frontend/docs/VOICE.md。 |
| D5 | 不改打分、判据、置信度与确认门控;不改采用的技术流程;不动数据库。 |
3. 硬红线
tsc --noEmit0 错;npm run lint0 error;npm test失败数 = 基线 27 条;next build通过且/仍○ Static。- 新文案对照
frontend/docs/VOICE.md;改 UI 的提交同时更新frontend/DESIGN.md。 - 不得新增多余入口(产品偏好:多余入口宁可删除也不修)——「改用校正结果」复用既有采用按钮,只换措辞与确认文案。
- 不得把代表分钟说成已确认的出生分钟(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 与 VOICE(P1)
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、2 必做。
- 任务 3 可只改 references 不 bump,在进度记录里说明。
6. 开工前置命令
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)。