fix(consult): blank-line paragraphs, drop the H2 contract line, remove the assistant avatar
Independent Staging Quality Gate / validate (push) Failing after 18m5s
Independent Staging Quality Gate / publish (push) Skipped

Acceptance fix for 28113fa0 (TASK-consult-conversational-answer-fix-20261006):
- F1: chat-answer-detail no longer pins 'Every H2 must start its own line'
  (first turns carry no H2), assertion change noted in three columns.
- F2: Good examples separate paragraphs with a blank line and the shape says
  so; .message p is pre-wrap, so a single newline only wraps.
- Product request: remove the assistant avatar on every surface (consult,
  rectification, onboarding); --assistant-content-inset back to 0px.

Full suite 4941 / fail 24, identical to baseline 86cafe68 minus a timing flake;
build keeps / Static; first-load gzip -0.1%.

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-06 15:58:40 +08:00
co-authored by Claude Opus 5.5
parent 5a589a9058
commit da226db1d4
14 changed files with 82 additions and 49 deletions
+2 -2
View File
@@ -16683,8 +16683,8 @@
- 现象:首轮按「开场 → 按对象的小标题 → 依据节 → 时间节 → 行动节」往下写。行动清单放在固定的最后一节。问到几个人时,段首是二级标题。申报时段还会要求先写「先回答你的问题」这个标题。
- 根因:2026-10-01 的形状(BUG-1132)把「按对象分段」做成了二级标题,并保留三个固定节。2026-09-27 的「行动只在最后一节出现一次」(BUG-1073 的标题部分)仍要求交那一节。模型按标题填空,读起来是汇报。
- 修复:形状只在 `consultation-thinking-plan.ts` 定义一处。首轮不写二级标题;问到几个人就分段落,段首点名。行动不强制,盘上有具体指向才顺口一句,用户问怎么办时那一轮可以给几条。首轮通常三到六段,不设硬截断。追问仍讲清楚为准;换领域或要求完整看时回到同样的段落形状。思考计划去掉行动节。正文没有二级标题时,思考节在流式中不保持进行中,结算后一起完成。写作行走「组织回答」。历史消息里已经写出的标题仍能拆开。`REPORT_HEADING` 只留在拆旧消息和思考节的 heading 字段里,不再拼进提示词。
- 验证:合同测试见进度记录。本机没有模型凭据,四道离线题没有真跑。真机八步见 `docs/testing/consult-conversational-answer-20261006.md`。staging 尚未部署这次改动。
- 防复发:`consultation-thinking-plan.test.ts`、`consultation-voice-contract.test.ts`、`consultation-run-timeline.test.ts` 锁住「不写 ## 节名」「段首点名」「行动不强制」「三到六段」,以及无标题首轮的思考节与写作行。改断言写了原值 / 新值 / 原因。
- 验证:合同测试见进度记录。本机没有模型凭据,四道离线题没有真跑。真机八步见 `docs/testing/consult-conversational-answer-20261006.md`。staging 尚未部署这次改动。 验收复核(Claude,Linux + Node 22.14,2026-10-06):首版 28113fa0 全量失败名单比基线 86cafe68 多一条 `chat-answer-detail` 合同测试(锁「Every H2 must start its own line」),执行方在 Windows 上没跑到;修复后全量 4941 项 fail 24,名单与基线逐条一致(基线另一条 70 s 计时测试是并发抖动,单独跑 3/3 通过);`next build` 后 `/` 仍 Static,首屏 gzip 567,642 → 567,007 B(-0.1%)。
- 防复发:`consultation-thinking-plan.test.ts`、`consultation-voice-contract.test.ts`、`consultation-run-timeline.test.ts` 锁住「不写 ## 节名」「段首点名」「行动不强制」「三到六段」,以及无标题首轮的思考节与写作行。改断言写了原值 / 新值 / 原因。 验收补修:`chat-answer-detail.test.ts` 改为不再要求 H2 那句;`consultation-voice-contract.test.ts` 新增「示范段落空一行、指令写明段落之间空一行」——聊天正文 `.message p` 是 pre-wrap,单个换行只折行、没有段间距,去掉标题后几段话会挤成一块。
- 相关记录:BUG-1073(同一件事只说一遍,保留)、BUG-1132(10-01 的按对象标题与三个固定节,本记录推翻其标题部分)。
- 复发自:无。这是产品改口径,不是 1073 / 1132 的同一缺陷复发。
- 修复版本:待发布
@@ -72,3 +72,28 @@
## 构建
`npx next build --webpack`(Next.js 16.3.1):webpack 编译成功,接着的 TypeScript 检查也通过。收集页面数据时失败,原因与测试里的技能链接相同:`SkillPackageRegistryError`,无法为 `skills/jyotish-vedic-astrology/SKILL.md` 创建符号链接(EPERM)。路由表没有打出来。`/` 是否仍为 Static、首屏 gzip 相对基线的变化,本机没有数。没有改用 Turbopack:工作树的 `node_modules` 是联接,Turbopack 会直接拒绝。
## 验收修复(Claude 直接执行,2026-10-06)
产品要求直接修复,并顺带去掉助手回答旁的头像。修复单 `TASK-consult-conversational-answer-fix-20261006.md`。
漏掉的原因:执行方在 Windows 上全量测试有 145 条因技能符号链接 EPERM 整文件加载失败,`chat-answer-detail.test.ts` 混在里面,进度记录也没有和基线逐条比对。
| 项 | 做了什么 |
| --- | --- |
| F1 | `chat-answer-detail.test.ts`:原值要求 `Every H2 must start its own line` / 新值不再要求 / 原因 首轮不写 ## |
| F2 | 父母题、事业题 Good 示范段落之间空一行;`NATAL_ANSWER_SHAPE_SUMMARY`、`natalAnswerShapeBody()`、`ANSWER SHAPE` 写明段落之间空一行(单换行在界面上不分段)。英文摘要里「One person or one matter stays one stretch of prose」改成「is not split by person」,避免单对象题被读成只写一段。新增合同测试一条 |
| 头像 | 删 `AgentAvatar`(对话、生时校正、首次引导三处)与 `.agent-avatar` 样式;`--assistant-content-inset` 两处回到 `0px`,`.message-assistant` 的 gap 删掉。推翻 09-16 `071317f7`「加回头像」。两条既有断言改三栏:`rectification-timeline-20260909.test.ts`、`rectification-agentic-entry.test.ts`(原值 `calc(32px + var(--space-3))` / 新值 `0px` / 原因 产品 10-06 要求去头像)。新增「助手消息没有头像」测试一条 |
验证(Linux + Node 22.14,干净 `npm ci`):
| 项 | 基线 86cafe68 | 修复后 |
| --- | --- | --- |
| `tsc --noEmit` | — | 0 错 |
| `npm run lint` | — | 0 error / 126 warning |
| `npm test` | 4936 项 / fail 25 | 4941 项 / fail 24,名单与基线逐条一致(基线多出的 70 s 计时测试是并发抖动,单跑 3/3 通过) |
| `next build` | `/` ○ Static | `/` ○ Static |
| 首屏 gzip | 567,642 B | 567,007 B(-0.1%) |
环境缺口:无模型凭据,没有真跑新提示词;无浏览器,去头像后的版面没有截图核对,列入真机清单第 9、10 步。
@@ -12,3 +12,6 @@
| 6 | 新开对话,打「你好」 | 仍是一句寒暄 |
| 7 | 用没填出生分钟的人物档案问事业 | 不点个人大运,不写月份,也没有标题 |
| 8 | 盯第 1 步回答上方的进度栏,直到写完 | 首轮不出现「这周可以做什么」。结束后没有卡住的转圈项 |
| 9 | 看第 1、2 步的回答 | 段落之间有空隙,不是一整块挤在一起的文字 |
| 10 | 看普通对话、生时校正、首次引导三处的助手回答 | 回答左边没有圆形头像;回答文字、下面的追问按钮、校正页顶部时间轴左边对齐 |