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

5.3 KiB
Raw Blame History

TASK · 记录与校正区间冲突时:记录优先,分歧如实呈现 — 2026-09-14

  • 基线:origin/staging @ c5fbee56BUG-690 已实现,尚未部署staging 当前跑 cf972f40)。
  • 分支:codex/rectification-record-conflict-copy-20260914worktree .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 errornpm 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.tsreportedTimeOffsetCopyhospital_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-691resolved);防复发条:记录与校正冲突时默认站在记录一边,但两者必须并列;系统不得宣布任何一方无效。
  • CHANGELOG.md 一行;PROGRESS-rectification-record-conflict-copy-20260914.mddocs/testing/ 清单:造一个有医院记录、校正区间不含该分钟的案子,检查文案与按钮。

5. 让步顺序

  1. 任务 1、2 必做。
  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)。