docs(report): birth-sky report cover blocked — no birth binding on reports (T5)
Report rows, report documents, jobs, sections and appendices carry no birth-data fingerprint (request_fingerprint excludes birth data; calculation_hash is an engine result hash or the markdown sha256). Per the brief the cover is not shown rather than drawn from the current profile. reportView, the report page and print styles are unchanged. BLOCKED.md lists the evidence and two options for the product owner. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0199rbQDTsUbCVw84wc8BTFe
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
d277cbd8ad
commit
028aef2737
+12
@@ -1,5 +1,17 @@
|
||||
# BLOCKED
|
||||
|
||||
## TASK-birth-sky-cover T5:报告封面没有可靠的出生资料绑定(2026-09-28)
|
||||
|
||||
- 任务书要求「只有报告生成时的出生资料与现在一致时才显示封面」。逐项查过,报告侧**没有任何出生资料指纹**:
|
||||
- `personal_reports` 表列(`20260806010000_personal_reports.sql` 及其后 `add column`):`chart_profile_id`、`request_fingerprint`、`calculation_hash`、`evidence_hash` 等,没有出生资料快照或 `profileFingerprint`。
|
||||
- `request_fingerprint` 只哈希 `reportType / presentationMode / depth / themes / sessionId / chartProfileId`(`personal-report-route-core.ts` `computeRequestFingerprint`),不含出生资料。
|
||||
- `calculation_hash`:普通报告取引擎 `result_hash`(含计算结果,不是出生资料指纹,且 BUG-693/694 记过哈希含墙钟);长报告取 markdown 全文的 sha256(`personal-report-longform-cover.ts`)。两者都不能和当前 `profileFingerprint` 比。
|
||||
- 报告文档 `subject` 只有 `displayName / birthTimeStatus / birthPlaceLabel`;`personal_report_jobs`、`personal_report_sections`、`personal_report_longform_appendices` 也没有出生资料。
|
||||
- 仓库里 `result_binding` 只出现在 Python 的 `calculation_profile_contract.py` / `full_report_quality_gate.py`,不进报告行。
|
||||
- 按任务书:本单**不显示**报告封面,不拿当前资料冒充当时资料;`reportView` 未改、报告页未改、打印样式未改,旧报告不补算不补写库。
|
||||
- 解除需要一个产品决定(二选一,都不改表结构):① 生成报告时把当时的 `profileFingerprint`(`resolveServerOwnedChartBirth(...).fingerprint`)写进报告文档(如 `subject.birthFingerprint`,v2 schema 加可选字段),只对新报告生效,旧报告永远无封面;② 接受「当前资料」作为封面依据并在封面上说明——与任务书红线冲突,需产品推翻。
|
||||
- `draw.ts` 的 `paper` palette 已实现并有单测(打印用),解除后报告封面可直接复用。
|
||||
|
||||
## TASK-site-button-contrast(BUG-1079):真机、登录态与两条待决发现(2026-09-28)
|
||||
|
||||
- 无受控登录账号与真机:各页实心按钮只在 harness(新 build CSS + 无头 Chrome,样本按源码类名渲染)上测,页面级走查按 `docs/testing/site-button-contrast-20260928.md`。
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
- 星盘页顶栏右侧多一个按钮「那一刻的天空」:出生地、出生那一刻头顶的真实天空,画成一张 3:4 的图。天顶在圆心、东在左,地平线以上的行星和亮星(北斗、仙后、猎户连线)照实画。
|
||||
- 图上只有一句描述天空的话(四句之一,按当时是白天、清晨、傍晚还是夜里选),加一行「太阳在东,月亮在脚下,火星正悬在东南」这样的事实句;不讲运势、不贴标签,不印姓名、日期、时刻、经纬度和地名。出生时间没采用校正时,多一行「按你填写的时间」。
|
||||
- 「保存图片」:iPhone 弹系统分享(可「存储图像」),其他浏览器直接下载 `jyotisha-sky.png`;手机长按预览图也能存。家人的盘也能生成。不扣点、不调模型。
|
||||
- 报告封面本期不上:报告里没有存生成时的出生资料指纹,对不上就不画(见 BLOCKED.md)。
|
||||
- Skill 版本不 bump(Skill 文本未改)。不改数据库。
|
||||
|
||||
## 2026-09-28 — 标题改用宋体,正文仍是黑体(待验收)
|
||||
|
||||
@@ -5,3 +5,4 @@
|
||||
- 基线:`origin/staging` = `d670521f`(serif-headings 已合入)
|
||||
- 分支 / 工作树:`codex/birth-sky-cover-20260928` / `.worktrees/birth-sky-cover-20260928`(本地提交,**未推送**)
|
||||
- 状态:提交 1(T1–T4 + T7)已完成;T5、T6 见后续提交。完整数字在最后一个提交里补齐。
|
||||
- 提交 2(T5):报告封面 **blocked**,不显示;缺口与解除方案写进 `BLOCKED.md`。
|
||||
|
||||
@@ -248,7 +248,7 @@
|
||||
| `TASK-consult-first-frame-and-pacing-20260928.md` | `PROGRESS-consult-first-frame-and-pacing-20260928.md` | **普通对话发出即有反馈、正文按打字节奏放出**:客户端分类前静默(BUG-976 副作用)+ 服务端分类后才开流 → 发出后一两秒空白;服务端 160 字截留 + 客户端 settle 一帧全放 → 追问轮正文一下全出。D1 首帧「收到,正在看你的问题…」、D2 先建流、D3 每帧上限 + 限时收尾、D4 160 字阈值不动 | 已验收并部署 staging(真机欠) | 分支 `codex/consult-first-frame-and-pacing-20260928`(未推送);进度 `PROGRESS-consult-first-frame-and-pacing-20260928.md`;BUG-1074 / BUG-1075 |
|
||||
| `TASK-chart-types-and-report-buttons-20260928.md` | `PROGRESS-chart-types-and-report-buttons-20260928.md`、`PROGRESS-ayanamsa-report-buttons-20260928.md` | **星盘盘型扩充 + 表格随盘换 + 七政隐藏 + 岁差 6 项 + 我的报告按钮配色**:分盘表一直显示 D1 数据(BUG-1076);盘型条 + 「星盘类型」面板共 23 种(加 月亮盘 / Bhava / 行运 / D40 / D45 / D60);Bhava 端点缺 MC 静默等宫(BUG-1077);报告深色主按钮黑字深红、禁用半透明(BUG-1078,只改报告范围) | 已验收、已部署 staging `6a4e312c`(真机欠) | `af27709d`…`4189750c`(子代理实现 + Claude 验收补丁);BUG-1076~1078;含迁移 `20260928010000_profile_ayanamsa_six` |
|
||||
| `TASK-site-button-contrast-20260928.md` | `PROGRESS-site-button-contrast-20260928.md` | **全站实心按钮配色与禁用态统一**:层外 `button { color: inherit }` 压掉 Tailwind 文字色(61 个 `<Button>` 浅 3.33 / 深 2.57),`.button-primary` 30 个浅色 3.14,全部禁用态 45% 透明;产品选 A:全站用报告页配色(浅 4.85 / 深 5.77),推翻 DESIGN「已知缺口」;禁用改灰;删 BUG-1078 局部覆盖(BUG-1079) | 已验收、已部署 staging `dc640931`(真机欠) | `12aac87b` + `fa58df16`;BUG-1079 |
|
||||
| `TASK-birth-sky-cover-20260928.md` | `PROGRESS-birth-sky-cover-20260928.md` | **「那一刻的天空」封面**:出生那一刻头顶的真实天空做成 3:4 封面(产品从 A 年轮 / B 一笔画 / C 天空三版样稿中选 C,样稿 `assets/birth-sky-cover-sample-20260928.html`);星盘页按钮 + 保存图片、报告封面(须对得上报告出生资料)、首次建盘揭幕;不印出生资料、句库只描述天空、无新依赖 | 实现中(分支 `codex/birth-sky-cover-20260928`,未推送) | 新功能,不开 BUG |
|
||||
| `TASK-birth-sky-cover-20260928.md` | `PROGRESS-birth-sky-cover-20260928.md` | **「那一刻的天空」封面**:出生那一刻头顶的真实天空做成 3:4 封面(产品从 A 年轮 / B 一笔画 / C 天空三版样稿中选 C,样稿 `assets/birth-sky-cover-sample-20260928.html`);星盘页按钮 + 保存图片、报告封面(须对得上报告出生资料)、首次建盘揭幕;不印出生资料、句库只描述天空、无新依赖 | 实现中(分支 `codex/birth-sky-cover-20260928`,未推送);T5 报告封面 blocked(无出生资料绑定,见 BLOCKED.md) | 新功能,不开 BUG |
|
||||
| `TASK-serif-headings-20260928.md` | `PROGRESS-serif-headings-20260928.md` | **全站标题改用自托管宋体、正文保持黑体**:产品推翻 BUG-737「CJK 不用衬线」结论(保留「声明的字体必须可加载」「不落系统宋体」两条);Noto Serif SC SemiBold 按通用规范汉字表 6500 字 unicode-range 切片自托管(改名 Jyotisha Serif SC),swap 不 preload;首页宋体流量 ≤300 KB;先于天空封面单 | 已实现待验收(分支 `codex/serif-headings-20260928`,未推送) | 不开新 BUG;BUG-737 追加说明 |
|
||||
| `TASK-cend-ui-claude-alignment-20260916.md` | `PROGRESS-cend-ui-r1/r2/r3-20260916.md` | **C 端界面向 claude.ai 产品界面对齐(三轮串行 R1→R2→R3,都动 `globals.css`,不得并行)**:根因是 `frontend/CLAUDE_DESIGN.md` 扒的是 **claude.com 营销官网**,它自己在 Known Gaps 里写明 claude.ai 产品界面不在范围内,而 `DESIGN.md:3` 把它当成了产品界面的实现契约。**R1**:`--font-display` 里 Tiempos Headline / StyreneB **从未加载**(无 `@font-face`、`public/` 无字体、`layout.tsx` 只 vendor 了 Inter),中文标题全站落到 **宋体 / SimSun**,波及 20 处含助手回答的 h2/h3(BUG-737);亮色强调色 `#85432f` 与暗色 `#d78064` 不同源,产品拍板亮色换 **Claude coral `#cc785c`**,**易漏点**是 `globals.css:16` 的 `--color-ring` 硬编码在 `@theme inline` 里不跟随 `:root`,另有第四个 `:root` 亮色块(`:4358`)必须同步(BUG-738);`.composer-footer` 常驻 44px + 顶栏 68px + `--composer-reserve` 148px,每屏固定吃掉 216px,模型选择器移进输入框内部、删掉底栏、顶栏收到 46px 并删「分析对象」副标题。**R2**:空状态是营销落地页(hero 卡 + 两张 132px 入口大卡 + 3 列 156px 主题卡),输入框被压在 **800px 以上**内容之下,重排成「问候 + 居中输入框 + 两枚入口 pill + 一排 chip」。**R3**:侧栏两个 `<details>` 拍平成一条「最近」、星盘的两个入口(侧栏分组 + 账户菜单)收敛到一处、删掉逐条助手头像。**决策记录 D3 推翻 DESIGN.md「报告强调色与应用同源」一句**(报告刻意保留深棕)。原型图 https://claude.ai/code/artifact/da275da6-2954-4f50-99aa-32bb8694d38b(三套画面 + 明暗,页面标题就是建议字体栈的实际渲染)。环境缺口:无登录态无 Chrome,四项真机观感留 `docs/testing/`。BUG 段 737–738 | 待领取 | — |
|
||||
| `TASK-cend-surfaces-claude-alignment-20260916.md` | `PROGRESS-cend-shell-20260916.md`、`PROGRESS-cend-report-20260916.md`、`PROGRESS-cend-rectification-20260916.md`、`PROGRESS-cend-chart-eph-20260916.md` | **次级页面对齐(上一单的续篇,R4→R5/R6,R7、R8 可并行)**:星盘 `/chart`、星历 `/ephemeris`、报告 `/reports` **各是脱离 app 外壳的独立全屏页**,顶部只有一个「返回对话」链接、侧栏整个消失,且三家各写了一套一模一样的 `*-shell`/`*-topbar`/`*-hero` 骨架——与上一单 E5 同根因(营销站 band 结构被套到产品界面)。**R4** 抽只读导航外壳 `AppNavRail`(只用现成的 `GET /api/sessions` + `GET /api/account`,会话行走 `sessionHref` 跳 `/?c=<uuid>`;**刻意不带**重命名/删除/收藏/归档——那套连着 `Home()` 的乐观更新与回滚,搬过来会撞 useState 增长门禁)。**R5** 星盘五 tab 下划线化 + 参数合表 + 行星表横向滚动;星历日期导航改 `‹ 日期 ›`。**R6** 报告中心卡片网格改行式列表;阅读页加常驻目录。**R7** 生时校正把可信区间从盘面板标题行提成常驻条(窄屏 `.is-compact` 下盘面板是 overlay,现在默认看不到区间),五个 `technique-audit` 折叠块收成两段。**R8** 设置内容区收窄(880px 弹窗里表单铺了 690px)、套餐卡三修饰符收敛成两态。**已解锁**:原挡路的设置单已于 `111b4a84`(BUG-698)合入。**两条不得回退**:BUG-698 的 `@supports (height: 1dvh)` 写法(重复声明回退会被 Lightning CSS 折叠)、BUG-616/617 的报告盘面 grid 实现。默认不占 BUG 号 | **R4–R8 全部已实现并验收合入** | R4:抽出 `AppNavRail`(只读,两个 GET,零写操作)+ `SecondaryShell`,三个次级页并入 app 外壳并删掉各自的 shell/topbar/hero;四个路由渲染标记**完全不变**(`/` `/chart` `/ephemeris` 仍 Static);CSS gzip −0.25%。`/reports/[reportId]` 留给 R6 与目录一起做。两处自身健壮性问题被测试抓到:`usePathname()` 可为 null、`fetch` 可能不存在。差点弄丢 BUG-717 的 eyebrow 文案(已放回)。R8:表单分区收窄到 440px(列表分区不变)、套餐卡三修饰符收敛成互斥的 `is-current` / `is-recommended`,`--highlighted` 删除改为滚动定位;手机端 `order:-1` 改挂 `[data-plan-alias]`(版位不是状态)。测试 3350→3354(净增 4),失败清单与基线逐条一致;`/` 仍 Static;我的干净构建实测 CSS gzip −3 字节。**遗留待产品拍板**:`?plan=` 深链现在完全没有视觉指向,只有滚动位置。R6:报告中心卡片网格改行式列表、阅读页并入外壳并把目录挪到右侧常驻。**任务书 E10 过期**——目录在 `cfcd369d` 就已存在,本轮是挪位置定稿而非从零加。挂外壳带出一个真实打印风险已处理:`.chat-app`/`.chat-panel` 是 `height:100%;overflow:hidden`,裸 `window.print()` 会把九节报告裁成一页,阅读页因此多挂一条只在挂载期生效的 print 样式解锁外壳。「生成中的分节进度」做不了——`REPORT_LIST_COLUMNS` 不返回节数,按 VOICE.md 不许前端编。R7:区间常驻条与盘面折叠收敛。**任务书 E9 也不准确**——对话区顶部早有常驻条 `RectificationTimeline` 且窄屏可见,真正只在盘面标题行的是**代表分钟**;因此没另造第二条,在既有条上补齐代表分钟与已答题数(与盘面同一次 `workingRectificationTime()` 调用)。折叠块实际是 **8 个**不是 5 个。**触发让步顺序第 5 条**:收窄进度未做——服务端无该字段,且 `candidate_range` 会放宽(BUG-572),前端相减会把一次放宽报成收窄,已写进 `BLOCKED.md`。顺带修掉一个**静默失效的旧断言**(`slice(indexOf(A), indexOf(B))` 在 B 改名后变成几乎整份文件,四条 `doesNotMatch` 假通过)|
|
||||
|
||||
@@ -24,3 +24,12 @@
|
||||
| 8 | 任一 | 顶栏切到一个家人(星盘档案里的人物) | 按钮先消失,数据就绪后再出现;打开是家人出生那一刻的天空 | |
|
||||
| 9 | 任一 | 用一个出生资料不全的人物打开星盘页 | 没有「那一刻的天空」按钮,也没有提示 | |
|
||||
| 10 | 桌面 Chrome | DevTools → Network 勾 Offline 后刷新星盘页 | 星盘页照常报它自己的错,顶栏不出现按钮、不出现新错误 | |
|
||||
|
||||
## 报告封面
|
||||
|
||||
本期**未上线**(报告与出生资料没有可靠绑定,见 `BLOCKED.md`)。验收时确认:打开任何报告,正文最上方**没有**天空封面、也没有空白占位;打印 PDF 第一页仍是原来的报告封面。
|
||||
|
||||
| # | 设备 / 浏览器 | 操作 | 期望 | 结果 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 11 | 桌面 Chrome | 打开「我的报告」任一份 | 没有天空封面,没有占位 | |
|
||||
| 12 | 桌面 Chrome | 该报告「打印 → 存为 PDF」 | 第一页与上线前相同 | |
|
||||
|
||||
@@ -1149,3 +1149,7 @@ D40 / D45 / D60 的表格上方,出生时间不是「已校正」时多一句
|
||||
- 「保存图片」:浏览器能分享文件时(iOS Safari)调 `navigator.share({ files })`,系统面板里有「存储图像」;否则 Blob + `a.download`。用户取消分享不算错误、不提示。
|
||||
- 弹层、画布与导出代码都在懒加载 chunk 里(`next/dynamic` + 动态 `import()`),首页 `/` 不带它们。按钮本身是星盘页里的一个普通 `<Button>`(只在数据就绪时渲染)。
|
||||
- 等待:没有等待态。按钮出现时图已就绪;弹层打开就是图。
|
||||
|
||||
### 位置二:报告封面(blocked)
|
||||
|
||||
本期不上线。报告行与报告文档里都没有生成时的出生资料指纹,封面「对得上报告」无从判定;按任务书不拿当前资料冒充当时资料(`BLOCKED.md`)。报告页、打印样式、`reportView` 都未改:没有封面、没有占位。解除后按原设计:ready 态正文最上方,屏幕用 `night`、宽随正文列、3:4;打印改 `paper` 并独占 A4 第一页(`break-after: page`);取数在正文出现之后,失败不显示;封面下不加按钮。
|
||||
|
||||
Reference in New Issue
Block a user