# PROGRESS:回答铺满一行、输出不抖、不念分析清单 — 2026-10-06 产品看真机截图后要求直接执行(无任务书,诊断见本记录与 BUG-1252 / BUG-1253)。基线 `origin/staging` `d2c22ca2`,分支 `codex/consult-readable-20261006`,Claude 实现并自验。 ## 做了什么 | 项 | 改动 | | --- | --- | | BUG-1252 | `globals.css`:`.message p, .message-markdown` 去掉 `text-wrap: pretty`、`word-break: auto-phrase`。首次引导气泡的 `.onboarding-message .message-markdown p` 规则保留(短句、有词组保护逻辑,不在本次范围) | | BUG-1253 | `consultation-thinking-plan.ts` 新增 `CHECKLIST_ANALYSIS_ONLY_NOTE`、`PLAIN_SPEECH_RULE`,进首轮正文指令、追问指令、`product-voice.ts` ANSWER SHAPE 与英文形状摘要;`natalSpokenReportContract` 的 Never 加一条不复述清单;`AFFLICTION_RANGE_RULE` 括号改为一两条白话 | | BUG-1253 | `consultation-condensed-checklist.ts`:通用读法与每份领域清单开头一行用途说明;婚恋「冻结判定对象」与三层改生活说法;事业、财运、健康三层注明不报层名(健康「压力窗 / 恢复窗」改为「压力集中的时段 / 恢复得好的时段」) | ## 断言三栏 | 位置 | 原值 | 新值 | 原因 | | --- | --- | --- | --- | | `consult-affliction-reading-20261001` T1 | 通用读法以「1. 先看受冲」开头 | 先是用途说明一行,再「1. 先看受冲」 | BUG-1253 | | `consult-gender-card-20260927` | 清单行数 = 条数 | 条数 + 1 | 同上 | | `consult-condensed-checklist-20260927` | 婚恋必含「心动接触 / 关系成对 / 社会法律落地」 | 必含三件事的生活说法与「不报层名和编号」 | 同上 | | `consult-no-presupposition-20261001` | 受冲规则「括号里写是哪几条」 | 「括号里只写最能说明问题的一两条,用白话,不列全」 | 同上 | ## 验证(Linux + Node 22.14) | 项 | 基线 d2c22ca2 | 本分支 | | --- | --- | --- | | `tsc --noEmit` | — | 0 错 | | `npm run lint` | — | 0 error / 126 warning | | `npm test` | 4962 项 / fail 24 | 4966 项 / fail 24,失败名单逐条一致(无 Docker 的数据库 / 部署类) | | `next build` | `/` ○ Static,首屏 gzip 567,175 B | `/` ○ Static,567,175 B | ## 环境缺口 - WebKit:本机 Playwright WebKit 缺 `libevent` 等系统库起不来,没有在 WebKit 内亲眼复现与复核;Chrome 按手机宽度渲染确认容器占满整行。真机清单第 1、2、7 步。 - 模型:无模型凭据,新提示词没有真跑;真机清单第 3~6 步。