docs(tasks): add T11 allow regenerating a synastry report to #85 brief

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ad9rqAB8pXXvyzh7f4X8v
This commit is contained in:
Jesse_Chen
2026-10-21 17:20:27 +08:00
co-authored by Claude Opus 5.5
parent ff6b228dd6
commit 117d8cbe53
@@ -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 随后。
## 开工前置命令