feat(rectification): post-adopt verdict says whether the adopted time still fits and offers 改用 HH:MM; renumber BUG-1170→1172 (BUG-1173)
Independent Staging Quality Gate / validate (push) Successful in 14m56s
Independent Staging Quality Gate / publish (push) Successful in 3m23s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
Jesse_Chen
2026-10-02 07:40:30 +08:00
co-authored by Claude Opus 5.5
parent 7a75e7f8ef
commit 6987875b84
17 changed files with 272 additions and 33 deletions
+18 -3
View File
@@ -15605,7 +15605,6 @@
- 复发自:无
- 修复版本:缓解随 `codex/consult-card-affliction-data-20261001`;其余无
<<<<<<< ours
## BUG-1160 | 普通对话没有「先看受冲、再看旺弱」的读法,模型默认「旺 = 好」
- 状态:resolved(文本层;2026-10-02 产品定年运 / 时运字数口径后全部领域生效)
@@ -15745,7 +15744,9 @@
- 决策日志(2026-10-02):产品 2026-10-02 决定(名人回测第一轮对照组误报 1→15;Claude 按卡片确定性计数核对,在场与缺席的父亲受冲信号数相同,盘分不出):事业清单去求职口吻、加「一生事业形态」首行(见 BUG-1162)。第二轮回测 16 / 18 → 12 / 18,仍未过 ≤ 3。剩余 12 份多是模型按 AL / A10 / 10 宫主落宫读形态时确实读不出公众型(乔布斯 A10 落 12 宫、奥巴马 10 宫主落 6 宫、Bush / Zidane 10 宫主落 1 宫),事业形态与盘面信号的对应需要占星口径决定,不是措辞问题。状态维持 investigating。提交 `066558a6`。
- 修复版本:`codex/consult-no-presupposition-backtest-20261001`(已部署 staging `f361365a`,2026-10-02 health 核对、/api/account 401;部分)
## BUG-1170 | 采用后答完核对题只说「前事核对到这里」,不说对不对得上
## BUG-1172 | 采用后答完核对题只说「前事核对到这里」,不说对不对得上
- 编号说明:首次推送(`42ff8291`)时记为 BUG-1170,与普通对话任务书 `TASK-consult-no-presupposition-and-backtest-20261001.md` 预留的 BUG-1170/1171 撞号,2026-10-02 改为 BUG-1172。
- 状态:resolved(2026-10-02 Claude 直接执行;产品 10-01 选 A)
- 首次发现 / 最近更新:2026-10-01 / 2026-10-02
@@ -15761,4 +15762,18 @@
- 复发自:无
- 修复版本:`codex/rectification-post-adopt-verify-20261001`。
>>>>>>> theirs
## BUG-1173 | 采用后核对题让盘型结论变了,回复不说采用的时间还在不在、也不给改选入口;一件对不上就劝改选
- 状态:resolved(2026-10-02 Claude 直接执行;产品 10-02 选 A;真库测试)
- 首次发现 / 最近更新:2026-10-02 / 2026-10-02
- 影响面:`v9/post-adopt-verdict.ts`(`adoptedMinuteLeavesChart`、`readoptOffer`)、`v9/divergence-panel.ts`(交付卡新字段 `readopt_minute`)、`v9/case-dossier-response.ts` + `v9/turn-question.ts::attachOfferResultToTurns`(卡片挂载位置)、`components/rectification-segment-delivery.tsx`(按钮)。
- 用户现象(产品提问「假如盘型有变你怎么做」):BUG-1172 只说「盘型结论有变化:…」,不说采用的时间是否还在新结论里;交付卡在核对题上方,要往回翻;若服务端采用分钟只是在同一盘型内挪了一下,卡片按钮会重新亮起「改用 D1 + D9 + D10 盘解读」,与「不用改」矛盾。真库重放另见:答「对不上」而盘型没变时,回复仍说「可以回到上面的卡片改选」,改选只会落回同一分钟。
- 根因:采用后没有一个「是否该提示改用」的服务端判断,回复、卡片按钮、卡片位置各自推断。
- 决策记录:产品 10-02 选 A——分情况说清楚,改不改由用户点;不自动改;原填报资料保留。
- 修复:`readoptOffer(采用时间, 新摘要, 窗口分钟)` 只在「采用分钟在某张非『分不开』目标盘上的上升 ≠ 新结论」且「服务端有不同的新采用分钟」时给出新分钟;回复、卡片按钮、卡片位置都读它。回复四种:没变+对不上→「一件事还不足以改变盘型结论,先按 HH:MM 排盘。」;变了但仍在→「…你采用的 HH:MM 仍在其中,不用改。」;变了且离开、有新分钟→「…你采用的 HH:MM 的 D9 上升是X,和新的结论不一致;新的推荐时间是 HH:MM,可以点下面的「改用 HH:MM」。」;离开但无新分钟→「…先按 HH:MM 排盘。」。有新分钟时交付卡挂到这条回复下面,按钮为「改用 HH:MM」并注明「现在按 HH:MM 排盘;改用后按 HH:MM 排盘,原填报资料保留。」;其余情况已采用的卡保持「已采用」。改用走既有分段采用 RPC,不改数据库。
- 验证:`frontend/tests/rectification-post-adopt-verdict-20261002.test.ts`(四种回复、`readoptOffer` 五种输入、卡片挂载只在改用时移到最新回复;原「盘型结论有变化」用例按三栏改写);`frontend/tests/rectification-readopt-card-20261002.test.ts`(离开→「改用 09:15」与当前分钟说明;仍在→「已采用」);`frontend/tests/database-segment-d7-boundaries.test.ts` 新增真库段:首次分段采用后只改后验(先验仍等于引擎原分),服务端采用分钟 2→8,同一代表候选再次采用成功、资料排盘时间与 provenance 跟到新分钟(PG17 替身通过)。真库重放 12 例中答「对不上」均未改变盘型(单题 ±2 分),盘型变化在实际中少见。
- 防复发:采用后的「是否提示改用」只由 `readoptOffer` 决定;回复、按钮、卡片位置不得各自判断。
- 相关记录:BUG-1172、BUG-120(改选)、BUG-1115~1117。
- 复发自:无
- 修复版本:`codex/rectification-post-adopt-verify-20261001`。
@@ -64,6 +64,10 @@ Python 快速门:本单不改 `scripts/**`、`tests/**`,未跑。`test:db`
真机:交付时「D1 上升…用了 5 道选择题」连出两条。gate 收尾轮次在 BUG-1149 后首次真的落库,与答题回复里的同一段重复。修:写前比对最近一条助手消息。真机另报两点:①采用消息里题干「出现两次」——服务端与单测均确认正文已剥题干,粘贴里多出的一遍来自选项卡给读屏用的隐藏标题(sr-only legend)被鼠标选中复制,屏幕上只显示一次;②答一道核对题就结束——按现行规则:采用后核对题至多 2 道,且只取采用前没问过、不在用户已报年份/领域、未拒答的探针,该案只剩 1 道,属设计,已向产品提出改进选项。
## 第五轮:核对题答完说结果(BUG-1170,产品选 A)
## 第五轮:核对题答完说结果(BUG-1172,产品选 A)
新增 `v9/post-adopt-verdict.ts`;`persistApplied` 已采用且所答为核对题时,在收尾句或下一题前加结果句。真库重放:「这件事和 15:26 对得上。盘型结论不变。」+ 收尾句。题数规则不变。
## 第六轮:盘型变化时说清并给「改用」(BUG-1173,产品 10-02 选 A);BUG-1170→1172 改号
`readoptOffer` 一处判断,回复 / 卡片按钮 / 卡片位置共用。真库重放:答「对不上」12 例盘型均未变,原回复「可以回到上面的卡片改选」误导,改为「一件事还不足以改变盘型结论」。真库 D7 测试新增:只改后验使服务端采用分钟 2→8,同一代表候选再采用成功、资料排盘时间跟到新分钟。第一次写夹具时改了先验,被 RPC 以 `segment_state_inconsistent` 拒(先验必须等于引擎原分),属夹具错误。改号原因:普通对话任务书已预留 1170/1171,我上一轮只核对到 1169。
+1 -1
View File
@@ -265,7 +265,7 @@
| `TASK-rectification-chart-tier-caveats-20261001.md` | — | **报告与聊天标注判断不了的分盘**:采用后读 `active_birth_provenance`(segment-v1)→ 结果 `segment_summary` 档位,blocked/indistinct 的 D9/D10 在聊天 answer_policy 与一句说明、报告章节顶部提示 + 主题降级;旧资料逐字节不变;不改库、不改 consult/route.ts | 待领取 | BUG-1138~1139 |
| `TASK-rectification-angle-timing-research-20261001.md` | `PROGRESS-rectification-angle-timing-research-20261001.md` | **角度类时间技法研究(离线)**:行运土木罗压本命上升 / 天顶度数、次限推运角、太阳弧角(1° ≈ 4 分钟出生时间),77 例 v5;乱序日期对照 ≥ 50 次必做、留一法、不得挤出真值;显著才叠加到六题后验比头段命中与区间宽度 | 已实现待验收(0/9 预登记检验显著,BUG-1141 closed_by_design;分支 codex/rectification-angle-timing-research-20261001,未推送) | BUG-1141 |
| (直接执行,无任务书) | `PROGRESS-rectification-segment-order-20261001.md` | **健康区分题写入失败(BUG-1143)+ 按盘型挑题默认开启(BUG-1144)**:区分类焦点把 `health_pressure` 原样写入、违反表约束、写入被吞后提前交付(BUG-672 同族);修后 77 例真库回放平均问题数 ±10 2.8→4.6、±30 3.6→5.4,D10 头段 ±30 39→52;按段选题 ≤61 分钟默认开,±30 D9 46→51、D10 52→55,真值段 76/76 | 已验收(Claude 10-01 直接执行) | 分支 codex/rectification-segment-order-20261001 |
| (直接执行,无任务书) | `PROGRESS-rectification-post-adopt-card-20261001.md` | **采用后核对题无按钮(BUG-1146)+ 盘型口径回复念分钟排名(BUG-1147)**:keep 分支丢探针身份致 GET 空卡(BUG-498 复发);采用接口不写轮次、只读运行被 60 秒交付窗口挡掉,题挂到上一题回复下;改为采用接口写「已采用 HH:MM。再核对一件过去的事。」轮次并挂题。盘型口径下去掉「领先 / 落后」、交付旁白不再说「分不开」、边界句只说一次 | 已验收(Claude 10-01 直接执行);真机回报后补修 BUG-1149(请求号非 uuid 被真库拒写)、BUG-1150(核对题作答 stale_probe),本机真库重放通过;BUG-1151 盘型报告去分钟排名(产品选 A);BUG-1153 交付正文连出两条(BUG-1149 引入的回归);BUG-1170 核对题答完说对不对得上(产品选 A);真机清单 `docs/testing/rectification-post-adopt-card-20261001.md` | 分支 codex/rectification-post-adopt-verify-20261001 |
| (直接执行,无任务书) | `PROGRESS-rectification-post-adopt-card-20261001.md` | **采用后核对题无按钮(BUG-1146)+ 盘型口径回复念分钟排名(BUG-1147)**:keep 分支丢探针身份致 GET 空卡(BUG-498 复发);采用接口不写轮次、只读运行被 60 秒交付窗口挡掉,题挂到上一题回复下;改为采用接口写「已采用 HH:MM。再核对一件过去的事。」轮次并挂题。盘型口径下去掉「领先 / 落后」、交付旁白不再说「分不开」、边界句只说一次 | 已验收(Claude 10-01 直接执行);真机回报后补修 BUG-1149(请求号非 uuid 被真库拒写)、BUG-1150(核对题作答 stale_probe),本机真库重放通过;BUG-1151 盘型报告去分钟排名(产品选 A);BUG-1153 交付正文连出两条(BUG-1149 引入的回归);BUG-1172 核对题答完说对不对得上(产品选 A);BUG-1173 盘型变化时说清并给「改用」(产品选 A);真机清单 `docs/testing/rectification-post-adopt-card-20261001.md` | 分支 codex/rectification-post-adopt-verify-20261001 |
| `TASK-rectification-typed-event-scoring-research-20260929.md` | `PROGRESS-rectification-typed-event-research-20260929.md` | **打字经历按选择题规则计分(离线研究,不上线)**:计分通道不对称 + 已入账年份挡题;R0 学业质量题措辞 / 年精度显示成 1 月(冻结文件,需重新冻结) | 已验收关单(Claude 10-01:三类技法 9 项检验 0 显著,真值平均排位 0.49~0.59;Claude 补正对照——埋入信号排位 0.077、挪年 0.502——流程有效;BUG-1141 closed_by_design) | BUG-1088、1089 |
| `TASK-report-reader-polish-20260929.md` | `PROGRESS-report-reader-polish-20260929.md` | **报告页打磨**:生成入口挪进页面主体(删标题栏按钮)、详情页到底部按钮(懒渲染一次到底)、导出按钮带文字、目录一级/二级分层、去掉「字段」与 RL/NL 缩写表头、状态列同义重复去重、报告表格淡底色、分块导出显示真实文件大小 | Claude 直接执行并自验(tsc 0、lint 0 error、全量 fail 与基线同 24 条、`/` Static、gzip +7 B、快速门 Python 1000 passed),已部署 staging `d7772011`,真机欠 | BUG-1092~1094 |
| `TASK-report-english-edition-20260929.md` | `PROGRESS-report-english-edition-20260929.md` | **报告中英两版**:同一次引擎计算渲染 zh/en 两遍(不用模型翻译),瑜伽库 477 条补英文、模板与前端表头英文化;中文逐字节不变、英文零汉字、两版数字序列一致;阅读页 `?lang=en` 切换,导出当前语言 + 「问 AI 建议导出英文版」提示;旧报告不补英文 | Claude 直接执行(含两个 fork 子代理)并自验(tsc 0、lint 0 error、全量 fail 与基线同 24 条、`/` Static、gzip +0.06%、Python 定向全绿),已部署 staging `d7772011`,真机欠 | — |
@@ -11,6 +11,7 @@
- 如果有核对题,题目下有**四个按钮**,可以点。
4. **刷新**:刷新页面,核对题还在、四个按钮还在、仍挂在那条采用消息下面。
5. **答核对题**:点一个按钮,不出现「这次没提交上」;回复先说「这件事和 HH:MM 对得上 / 对不上 / 分不出」,再说「盘型结论不变」或给出变化,然后进入下一题或看到「前事核对到这里…」。
5c. **答「没有」类选项**:若盘型没变,回复说「一件事还不足以改变盘型结论,先按 HH:MM 排盘」,不出现「回到上面的卡片改选」。(盘型真的变化很少见,见到「改用 HH:MM」按钮时点一下,排盘时间应换成新时间,卡片变「已采用」。)
5a. **选中时**:点「更像这个」后,上面的旁白和卡片不应消失;如果仍消失一下,请录屏发给 Claude。
5b. **验证报告**:交付卡点「查看验证报告」,里面没有「当前候选基本并列」「本命上升(该分钟)」和「排名 / 时间 / 相对支持」表。
6. **旧校正会话**:从会话列表打开一个以前的校正会话,能打开、不报错。