docs(bug-history): BUG-1620 / BUG-1621 with the four-round blind eval

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyeZrYn6ryNcSe5Y2Y
This commit is contained in:
2026-11-05 15:20:38 +08:00
co-authored by Claude Opus 5.5
parent 8252571572
commit fd03665ded
+35
View File
@@ -22044,3 +22044,38 @@
- 关联记录:BUG-1580、BUG-1599、BUG-1603、BUG-1540。
- 复发自:无(BUG-1580 同一做法用于婚姻、事业)
- 修复版本:分支 `codex/consult-answer-shape-20261105`(rebase 到 staging `2057538c`),推 staging。
## BUG-1620 | 健康题把重病的人写成「底子不差 / 恢复力强 / 要防的不是大病」:受冲改由服务端数好写在健康段
- 状态:investigating(分支 `codex/consult-health-career-20261105`,未推送;盲评健康严重明显下降,待产品决定是否上线)
- 首次发现 / 最近更新:2026-11-05(BUG-1603 四轮盲评健康题严重 14 / 12 份)/ 2026-11-05
- 影响面:`frontend/src/lib/consultation-evidence-card.ts`(spec `pressure` 加 `"health"`,`evidenceCardPressureLine` 加健康分支,健康段 label 下写 `pressure`)、`frontend/src/lib/consultation-condensed-checklist.ts`(健康清单第 1 条、通用读法第 2 / 9 条)。
- 现象:乔布斯、嘉兰、泰勒、卡罗、琵雅芙、梦露问健康,回答写「身体底子中上 / 不虚 / 扛得住 / 恢复力是你的优势 / 要防的不是大病 / 不是突然出大问题」。
- 触发条件:问健康;盘上命主、月亮、太阳有入旺、SAV 强或六力分档强。
- 根因:健康清单要模型自己数受冲、自己避开安慰说法;两轮措辞(含逐字禁「底子不差」)都无效,模型换说法。清单里「力量只用来说恢复从哪里来」被读成「恢复力强」,样例范围「容易累、恢复慢」把压力限在轻的一头。
- 修复(分支,未上线):沿用 BUG-1599 的做法与同一个 `evidenceCardPressureSignals`,不另写计数逻辑:身体这条线 = 1 宫、命主、太阳、月亮(太阳 / 月亮落 6、8、12 也算),⑤ 用 D6。6、8、12 宫不单独作为一条线计数(凶星在 6 宫、6 / 8 宫主落 6、8、12 在古典读法里是保护,通用计数会读反)。≥2:依据标为分析用、不念条数;这条线压力重;盘分不出落在多重的事上,从日常消耗到需要就医处理都在范围内,用自己的话说一次;不写体质结实、经得起耗、恢复快一类意思(换说法也算),不断定轻重;入旺、SAV 强、六力分档强不抵消、也不拿来说恢复好;每段说要留意什么、什么时候、什么情况持续或反复出现就去检查;不诊断、不说会得什么病。1:补一句;0:不写压力。清单去掉样例范围、「底子不差」禁句与「力量只用来说恢复从哪里来」,改为指向卡上 pressure。指令字数:健康清单 332 → 278,通用读法 820 → 826,新增健康 pressure 句 233 字 + 依据(2–8 条);回测健康卡 10.5–11.0k → 10.7–11.2k 字符。
- 验证:`tests/consult-pressure-lines-20261104.test.ts` 扩为 7 条(三张 golden 盘健康信号逐条:奥巴马 3、泰勒 4、乔布斯 3;只在父母 roles、婚姻段与健康段且紧跟 label;健康 0 / 1 / ≥2 措辞;健康句不含「底子 / 不是大病 / 扛得住 / 不虚 / 中上 / 恢复力 / 大问题 / 大病 / 小毛病」;不含出生资料、长度上限);`consult-answer-shape-20261105`、`consult-no-presupposition-20261001` 按原值 / 新值 / 原因更新。咨询相关测试 583 / 583 通过(另加 4 条后全过);`npx tsc --noEmit -p .` 通过;全量 `CI=1 npm test`(带 swisseph)基线与本分支失败清单相同(25 条 docker / PostgreSQL / rsync 环境失败)。
- 盲评方法:基线 = staging `928aa5c6`(独立 detached worktree),NEW = `82525715`;同一 golden、同一命令(deepseek-flash,并发 4,单一 runner);事业 + 健康 9 人 × 2 份 × 4 轮 = 每臂 144 份,父母 + 婚姻 9 人 × 1 份 × 2 轮 = 每臂 36 份(对照);中途会话中断后只补生成缺失答案,基线第 2 轮 4 份接口 provider_error 单独重跑。打乱、隐藏版本,沿用 BUG-1603 评分说明;重评 126 份(35%),判定一致 106 / 126 = 84%,严重或误报 kappa 0.61;另一轮盲标注(体质安慰、说出就医条件、名气封顶 / 抬高、分量 / 稳定、无范围距离、以年轻为前提、对用户交代规则);盲配对可读性 180 对;bootstrap 10 000 次,按 36 个题(人 × 题型)配对。
- 结果(健康,BASE → NEW):严重 15 → 1(−14,95% CI [−24, −5]);通过 55 → 71(+16,CI [+7, +25]);误报 0 → 0(奥巴马、齐达内对照组 0 / 16);体质安慰(盲标注)71 → 25(CI [−55, −37]);说出什么情况该去检查 45 → 72(全部 72 份);可读性评分 3.83 → 3.82(CI [−0.17, +0.14]);配对可读性 NEW 胜 30 / 72 = 41.7%(CI [27.8%, 54.2%])。逐人严重:泰勒 4 → 0、卡罗 4 → 1、嘉兰 4 → 0、乔布斯 2 → 0、琵雅芙 1 → 0。正则:恢复力 23 → 0 份,扛得住 14 → 6,不是大病 2 → 0,「底子」35 → 44 份(用户原问就是「身体底子怎么样」)。念出条数 3 → 1。
- 已知副作用 / 未解决:仍有 25 / 72 份带轻一类说法(「这类事不太会一下闹大」「这并不说明有病」),多数未被判严重;对用户交代限度的句子 16 → 56(「盘分不出来,我也不替你猜」「这条线上的压力是偏重的」被说成规则口吻);配对可读性略偏向基线(不显著)。
- 防复发:模型不肯执行的计数与边界由服务端写在卡上;健康句不出现任何安慰说法的原词(含否定)。
- 关联记录:BUG-1599、BUG-1603、BUG-1540、BUG-1176、BUG-1165。
- 复发自:BUG-1603(健康题遗留项)
- 修复版本:分支 `codex/consult-health-career-20261105`,`82525715`(基于 staging `928aa5c6`),未推送。
## BUG-1621 | 事业题把名人写成「名气有限、不在台前、被一小圈人认」:规则里的「要经手、要绕路、来得晚」被接到名声上
- 状态:investigating(分支 `codex/consult-health-career-20261105`,未推送;严重下降不显著,模型改写成「不在台面上」,需下一步)
- 首次发现 / 最近更新:2026-11-05(BUG-1603 盲评事业题严重 26 / 28 of 36)/ 2026-11-05
- 影响面:`frontend/src/lib/consultation-thinking-plan.ts`(`CAREER_FIELD_ASK_RULE`)、`frontend/src/lib/consultation-condensed-checklist.ts`(职业清单 AL 一条)。
- 现象:总统、球星、影星的事业回答写「名头那部分偏薄」「被一小圈人认」「再往名望那一层支持就薄了」「不靠曝光」「上限在中上」。
- 触发条件:问事业;A10、AL、太阳或 10 宫主落 4、6、8、12 宫,或 AL 宫主受冲。
- 根因(从答案确认):`CAREER_FIELD_ASK_RULE` 给 A10 / AL / 太阳 / 10 宫主落 4、6、8、12 的释义「要经手、要绕路、来得晚」被逐字写进回答(BUG-1603 基线 8 / 36、NEW 10 / 36 份连用三词),并接到 AL / A10 上推出「名声来得晚、要经手」「再往名望那一层支持就薄了」;职业清单「AL……说明名声和外界印象这条线有没有力量」把 AL 当成名声大小的刻度(「名头那部分偏薄」「声量不是这条线的长处」)。用户问「能做到什么程度」,规则没说盘看不出名气和位置的大小,模型给出封顶。
- 修复(分支,未上线):规则改为这几处落宫只说要多费的力或代价,不翻成名气或台前幕后;名气、能见度、地位、规模有多大盘分不出,往高往低都不写,问能做到什么程度也只答撑力、阻力和时间;去掉可照抄的「(要经手、要绕路、来得晚)」与「不在台前」等六个引号短语。AL 一条改为「读法同第 1 条」。字数:`CAREER_FIELD_ASK_RULE` 306 → 306,职业清单 900 → 877。
- 验证:`consult-upstream-functional-v2-20261002` 按原值 / 新值 / 原因更新,并断言规则与职业清单不含「经手 / 绕路 / 来得晚 / 名声和外界印象这条线有没有力量」。测试与全量结果同 BUG-1620。
- 盲评(同 BUG-1620,事业每臂 72 份):严重 43 → 36(−7,CI [−16, +3],不显著);通过 29 → 36(CI [−3, +16]);名气封顶(盲标注)62 → 56(CI [−15, +2]);抬高名气 0 → 0;可读性 3.53 → 3.60(CI [−0.07, +0.21]);配对 NEW 胜 39 / 72 = 54.2%(CI [44.4%, 63.9%])。正则:经手 59 → 3 份、绕路 16 → 0、来得晚 13 → 0、名声 44 → 10;但「名气」0 → 35 份(「名气和规模盘上分不出,我不往高往低说」),「台前」0 → 4。NEW 剩下的严重多是「不在台面上 / 不在台前被看见 / 不是靠声势」一类公众 / 幕后断言(36 份里约 25 份),而不是名气大小;逐人:琵雅芙 7 → 4、乔布斯 6 → 4、卡罗 2 → 0,梦露 4 → 7。对用户交代限度的句子 46 → 124(「盘看不出名气,我也不往高往低说」)。
- 已知副作用 / 未解决:删去「不翻成「不在台前」「不在台面上」……」引号清单后,「台面 / 台前 / 看不见的阶段」一类说法成为剩余严重的主体;规则里「名气……往高往低都不写」被模型说给用户听。下一步候选:服务端在事业段写一句(同 pressure 做法)说明公众 / 幕后与名气大小不在盘上,并且不对用户提及。
- 防复发:规则里的释义括号同样会被照抄(BUG-1165 / BUG-1540);规则只写怎么做,不写可复述的判断词。
- 关联记录:BUG-1176、BUG-1603、BUG-1599、BUG-1540、BUG-1165。
- 复发自:BUG-1176(事业落宫被翻成幕后 / 名气的同类现象)
- 修复版本:分支 `codex/consult-health-career-20261105`,`82525715`(基于 staging `928aa5c6`),未推送。