feat(report): birth-sky report cover bound to the report's birth fingerprint (F1–F3)
Product decision A (TASK-birth-sky-followup-20260928): - every generation path writes subject.birthFingerprint (stored-row fingerprint, same function as the chart page's profileFingerprint); never into the evidence bundle the model reads - GET /api/reports/:id compares on the server and returns only report.coverSubject (subject id or null); legacy reports never get one - report page shows the night cover above the body, paper cover alone on the first printed A4 page; silent on any failure, no waiting state - TS / JSON schema / Python contract accept the optional field - BLOCKED T5 struck through; DESIGN §17, CHANGELOG, checklist, PROGRESS Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
14ef18ac24
commit
a9a917d50c
+8
-2
@@ -1150,9 +1150,15 @@ D40 / D45 / D60 的表格上方,出生时间不是「已校正」时多一句
|
||||
- 弹层、画布与导出代码都在懒加载 chunk 里(`next/dynamic` + 动态 `import()`),首页 `/` 不带它们。按钮本身是星盘页里的一个普通 `<Button>`(只在数据就绪时渲染)。
|
||||
- 等待:没有等待态。按钮出现时图已就绪;弹层打开就是图。
|
||||
|
||||
### 位置二:报告封面(blocked)
|
||||
### 位置二:报告封面(2026-09-28 追加,TASK-birth-sky-followup-20260928 F1–F3)
|
||||
|
||||
本期不上线。报告行与报告文档里都没有生成时的出生资料指纹,封面「对得上报告」无从判定;按任务书不拿当前资料冒充当时资料(`BLOCKED.md`)。报告页、打印样式、`reportView` 都未改:没有封面、没有占位。解除后按原设计:ready 态正文最上方,屏幕用 `night`、宽随正文列、3:4;打印改 `paper` 并独占 A4 第一页(`break-after: page`);取数在正文出现之后,失败不显示;封面下不加按钮。
|
||||
产品选方案 A:报告只在「生成时的出生资料」与「现在的出生资料」一致时才有封面。
|
||||
|
||||
- **绑定:** 新生成的报告在文档 `subject.birthFingerprint` 里记下生成时的出生资料指纹(与星盘页 `profileFingerprint` 同一个函数、同取存储行、在时区补全之前取)。普通报告、分章报告、长报告三条生成路径都写;指纹不进给模型的证据包。旧报告没有这个字段,**永远没有封面**,不补算、不回填;不改表结构。
|
||||
- **比对在服务端:** `GET /api/reports/:id` 读当前人物的指纹,一致时 `report.coverSubject` = 人物 id(本人为 `"self"`),其余一律 `null`(不一致、缺字段、人物不是自己的、已删除、读不到)。浏览器拿不到指纹,也拿不到任何出生资料。
|
||||
- **屏幕:** ready 态正文最上方一块 `<figure>`:`night` palette,宽随正文列,3:4,圆角 `--radius-md`,下接正文 `--space-6`。封面下没有按钮。
|
||||
- **打印 / PDF:** 同一次取数同时画一张 `paper` palette 的图,只在打印时显示;封面独占 A4 第一页(`break-after: page`,高 246mm 居中,恰好放进报告 `@page` 的 186 × 270mm 版心)。不新增打印入口,仍是报告原来的「打印」。
|
||||
- **取数与等待:** 组件与正文同一次渲染挂载,副作用在正文上屏之后才发请求;两张图都画好才出现。取数、画图任一失败就不显示封面,不留占位、不加等待态,正文不受影响。组件与样式在懒加载 chunk 里(`components/birth-sky/report-sky-cover.tsx`),首页不带。
|
||||
|
||||
### 位置三:首次建盘揭幕
|
||||
|
||||
|
||||
Reference in New Issue
Block a user