diff --git a/docs/tasks/TASK-synastry-staging-fix-20261021.md b/docs/tasks/TASK-synastry-staging-fix-20261021.md index 125fe106..461110ed 100644 --- a/docs/tasks/TASK-synastry-staging-fix-20261021.md +++ b/docs/tasks/TASK-synastry-staging-fix-20261021.md @@ -20,6 +20,7 @@ | 8 | 合盘报告页在电脑上「不能下滑」:鼠标在正文两侧空白处滚轮不动 | `app/globals.css` 的 `.synastry-report` 自己是滚动容器(`width: min(720px, 100%)` + `overflow: auto`),两侧空白属于 `.chat-panel`(`overflow: clip`),滚轮落在空白处无处可滚。个人报告是整宽的 `.personal-report-reader` 滚动、内层居中。来自 `67c1e6881` 重排 | | 9 | 第三节正文开头重复了标题(「沟通与理解 沟通与理解 沟通的天气…」) | 模型写稿时把节标题写进正文,保存与质检都没拦 | | 10 | 等待页写「岳辰 × 林瑶」,报告标题写「林瑶 × 岳辰」,同一份报告两人顺序不一致 | 未定位:等待页用选人页传入的顺序,报告用 `synastry-full-run.ts` 存的 `names`;执行方开工时先定位 | +| 11 | 同一对人已经有一份合盘报告,再点「开始合盘」直接跳回上一份,没法再生成新的 | 设计如此:`synastry-full-create.ts` 的 `createSynastryFullReport` 按两人 id + 出生资料指纹查已有报告,`ready` / `generating` 命中即返回 `reused: true`(#82 决策 E3「再次打开读已有报告,不扣点」)。产品现推翻 | ## 决策记录(产品负责人 2026-10-21) @@ -29,6 +30,7 @@ | K2 | 第 2、3 条按 #82 原定:时间线每段显示起止年月;英文报告同样有「分析逻辑」和时间线依据(英文内容来自英文那一次生成,不翻译中文) | | K4 | 第 7 条(10-21 产品确认):合盘报告有自己的地址 `/synastry/:reportId`,阅读组件仍复用同一个;侧栏点亮「婚恋合盘」,标签标题「婚恋合盘 · Jyotisha」。旧地址 `/reports/:id` 打开合盘报告时自动转到新地址(`replace`,不留历史),已分享的旧链接继续可用 | | K5 | 第 8~10 条(10-21 产品确认)并入本单:整块区域可滚、正文居中;正文开头重复的节标题去掉并让质检拦住;两人顺序一律按选人页选择的顺序(甲在前) | +| K6 | 第 11 条(10-21 产品选「允许重新生成」):**推翻 #82 决策 E3 的复用部分。** 同一对人已有 `ready` 报告时,「开始合盘」照常新生成一份、照常扣点(`synastry.full`);旧报告保留,在「之前的合盘」里并列。同一对人已有 `generating` 报告时仍跳到那份等待页,不重复扣点。为防误扣,选好的两人已有报告时,按钮下点数说明后加一句「这两人已经合过 N 次,再生成会另扣 X 点」(N、X 读实际数据)。每日上限照旧 | | K3 | 定价 `synastry.full` 19 点维持(已在 staging 生效) | ## 硬红线 @@ -52,6 +54,7 @@ | T8 | **最先做**:合盘报告由外层整宽容器滚动(与 `.personal-report-reader` 同法),`.synastry-report` 只负责居中排版,不再自带 `height:100%`/`overflow`;手机与打印不退化 | 样式/渲染测试断言滚动容器是整宽外层;PROGRESS 写明桌面滚轮在两侧空白处可滚的人工步骤 | | T9 | 保存前去掉每节正文开头与节标题相同的文字(中英文都做);质检规则增加「正文以节标题开头」判不合格并触发重写 | 单测:正文以「沟通与理解」开头时保存结果不含重复;质检对该样例报错 | | T10 | 定位第 10 条根因;等待页、报告标题、报告中心卡片、对话标题四处两人顺序一致,按选人页顺序 | 单测:甲乙顺序贯穿创建→存储→阅读页标题 | +| T11 | K6:`createSynastryFullReport` 只在已有 `generating` 时复用,`ready` 不再复用;选人页按钮下提示已合次数与将扣点数;`#82` 任务书 T1 的 test:db 断言「同一对人同指纹第二次找到已有报告」按三栏改为「第二次新建一份、扣点;生成中时复用」;引擎计算结果(`synastry_reports`)可以继续复用,只是报告正文重写 | test:db 真库:ready 后再建得到新 id、点数再减;generating 时再建返回原 id、点数不变;渲染测试:已有报告时显示提示句 | | T6 | 选人页:开关读取失败显示「合盘服务暂时连不上,请稍后再试」;开关结果回来之前不渲染选人区(只渲染标题和副标题);删掉 BUG_HISTORY 里重复的 BUG-1397 一段;CHANGELOG、PROGRESS(含真机复测步骤:选两人生成一份、等待页、报告揭幕、切英文、从末尾进对话问一节) | 渲染测试;文档齐 | ## 已完成(Claude 直接执行,产品负责人 10-21 授权「P0 你改吧,其余交给执行方」) @@ -60,7 +63,7 @@ T1、T2 已由 Claude 在 `codex/synastry-gte-fix-20261021` 完成并推 staging ## 让步顺序 -T1、T2 最先做,单独一个提交先推 staging(门禁绿、部署后告知产品负责人可以复测生成);T8 先单独推一次,T3~T7、T9、T10 随后。 +T1、T2 最先做,单独一个提交先推 staging(门禁绿、部署后告知产品负责人可以复测生成);T8 先单独推一次,T7、T9、T10、T11 随后。 ## 开工前置命令