docs(tasks): brief for people page styles and ephemeris readability

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-09-26 05:56:29 +08:00
co-authored by Claude Opus 5.5
parent 65e4e98dba
commit 4404af4c0a
2 changed files with 117 additions and 0 deletions
+1
View File
@@ -207,6 +207,7 @@
| 任务书 | 进度 | 主题 | 状态 | 落点 |
| --- | --- | --- | --- | --- |
| `TASK-people-ephemeris-ui-20260926.md` | — | **星盘档案页补样式 + 星历可读性改版**(原型 https://claude.ai/artifact/FmPy9xZ7dQw9u7yrW4WzTw ,产品 09-26 确认):/people 样式 0 条(BUG-1039)→ 手机列表→详情、桌面两栏;星历五要素先中文后梵文(附唯一对照表)、吉凶彩色标签、固定规则当日总评(不调模型)、标题栏大按钮移到底部提示卡。必须真实浏览器截图验收。与 BUG-1038 单并行、文件不交叉 | 待领取 | — |
| `TASK-round-0925-followup-20260925.md` | `PROGRESS-round-0925-followup-20260925.md` | **0925 收尾单**:西洋盘标签偏移 ≤30° + 第三圈;删除后只在当前人物里回退;人物接口故障降级为本人;P3 删旧面板、点击按最近行星、删除年运死调用 | 已验收(Claude 09-26:偏移 ≤30° 达成;删后回退按人、人物接口降级、账户单次请求、面板与死代码删除均通过;残留 0.73% 盘标签重叠为 P3) | `d08ffdc0` + 合同修复 `e84d6eb8`(d08ffdc0 的门禁 run 2901 红于一条引用已删面板文案的 Python 合同,Claude 经产品授权直接修复);已部署 run 2906,health 一致 |
| `TASK-chart-western-fix-20260925.md` | `PROGRESS-chart-western-fix-20260925.md` | **西洋盘 ASC/MC 重叠**:固定锚点避让、真实引擎64盘与固定种子512盘扫描、343px盘宽命中≥44px;raw golden;文档陈旧行更正 | 已验收(重叠 0%);新 P1 标签偏移最大 115° → 收尾单 D1(产品定 ≤30° + 第三圈) | `4d801e53`(已部署,health 核对一致) |
| `TASK-chart-dasha-western-redesign-20260924.md` | `PROGRESS-chart-dasha-western-redesign-20260924.md` | **大运 / 西洋盘改版**(原型 https://claude.ai/artifact/DYovEPMqD1xwNgna5xVTre ,产品 09-24 全部同意,相位线常显):大运「现在」卡 + 时间条 + 默认折叠(原 81/144 行平铺);西洋盘 520 三圈、行星避让 + 引线、宫号居宫中、ASC/MC 盘内、行星位置表、点选过滤相位。排在 chart-ephemeris-fixes T1 之后 | 已验收,1 P1(ASC/MC 标签不参与避让,约 34% 盘重叠)→ chart-western-fix | `5a2d9da9`(已部署) |
@@ -0,0 +1,116 @@
# TASK · 星盘档案页补样式 + 星历页可读性改版(2026-09-26)
原型(产品 09-26 已确认):https://claude.ai/artifact/FmPy9xZ7dQw9u7yrW4WzTw
## 基线
- `origin/staging` 当前 head(线上 `e84d6eb8`)。分支 `codex/people-ephemeris-ui-20260926`。
- 与 `TASK-new-chat-from-people-20260926.md`(BUG-1038)并行:本单只动 `/people` 与星历的组件、`globals.css` 对应段、`ephemeris-view.ts` 与新文件;**不碰** `people-home-links.tsx`、`chat-session-url.ts`、`home-bootstrap-run.ts`、`page.tsx`(那一单会改)。`/people`「和 TA 对话」按钮的跳转目标以那一单为准,本单只改样式与布局。
## 事故实证(产品 09-26 真机,iPhone Safari)
**星盘档案页 `/people` 没有任何样式**:截图里名字、「本人」、另一人的名字和时间挤在一行,「添加一个人」按钮悬在中间,详情字段是裸文字。`frontend/src/components/people/people-page.tsx` 用了 `people-archive`、`people-archive-list`、`people-archive-detail`、`people-archive-row` 等类,`frontend/src/app/globals.css` 中 **0 条**对应规则。P1 执行方没写样式,审查无登录态没在浏览器看过。
**星历页可读性差**:`frontend/src/components/ephemeris/ephemeris-page.tsx` + `frontend/src/lib/ephemeris-view.ts` `panchangaFromEngine`:
- 月相日、月宿、瑜伽、迦那直接显示引擎梵文拉丁名(Shukla Purnima、Uttara Bhadrapada、Vriddhi、Vishti),只有星期有 `VARA_ZH`。
- 吉 / 凶是值下方一个灰色小字,扫不出来;左列标签加宽字距。
- 右上角「带这天去提问」(`EPHEMERIS_COPY.ask`,`.ephemeris-ask`)是标题栏里的实心强调色大按钮,喧宾夺主。
## 决策记录(产品 2026-09-26)
**档案页(按原型 ①②)**
- D1 手机(< 1024px):列表页 → 点人进入详情(同路由内切视图,顶部「‹ 返回」,浏览器返回也能回列表)。桌面(≥ 1024px,星盘页已有断点):左列表右详情两栏。
- D2 列表行:圆形首字头像 + 名字(本人加「本人」小标签)+ 一行「出生日期 · 排盘时间 · 城市」等宽数字;当前正在看的人高亮(强调色边 + 浅底);行尾「›」。底部虚线卡片「+ 添加一个人」,下方小字「还可以保存 N 个人」(N 来自现有上限计算,不另算)。
- D3 详情:头部头像 + 名字 + 「本人 · 出生地」;两格时间卡「填报时间」「排盘时间」(有校正结果时排盘卡为 `--color-success` 系并标「已校正」);出生日期、岁差(显示中文「Raman(默认)」等,不露小写 `raman`);三个等宽快捷入口「和 TA 对话 / 看星盘 / 生成报告」;本人底部灰字「本人不能删除」;他人的删除入口在编辑视图底部(沿用现有删除确认与计数逻辑)。
- D4 头像颜色:按人物 id 稳定取色,只用现有语义 / 元素色 token,不新造色值。
**星历页(按原型 ③)**
- D5 五要素值**先中文、后梵文**:主行中文,副行小字梵文(原引擎名)。中文名一律取自本单附表,新建 `frontend/src/lib/panchanga-names-zh.ts`,**执行方不得自行翻译或增删**;表里查不到的名字原样显示梵文并记日志(不报错)。
- D6 吉 / 凶改为行右侧彩色小标签(吉 `--color-success`、凶 `--color-danger`、中性 `--color-warning`),12% 同色底;左列标签固定宽度、去掉加宽字距;行距收紧。
- D7 卡片顶部当日总评一句 + 计数小标签「N 吉」「M 凶」。总评**按固定规则拼,不调模型**:
- 月相短语:Purnima →「满月之日」;Amavasya →「新月之日」;其余白分(Shukla)→「月亮渐盈」,黑分(Krishna)→「月亮渐亏」。
- 整体:吉 ≥ 4 →「整体吉」;吉 = 3 →「整体偏吉」;吉 = 2 →「吉凶参半」;吉 ≤ 1 →「整体偏凶」(中性不计入吉也不计入凶)。
- 迦那为 Vishti 时追加「;迦那落在毗湿提,重要的事避开」。
- 句式:`{月相短语},{整体}{Vishti 追加}。` 例:「满月之日,整体偏吉;迦那落在毗湿提,重要的事避开。」
- 五要素不全(引擎缺项)时不出总评,只显示已有行。
- D8 删除标题栏里的「带这天去提问」按钮;在页面最底部加浅色提示卡:左侧「想问这一天适不适合做某件事?」,右侧按钮「带这天去提问」(行为不变)。
- D9 行运每行:彩色行星符号 + 「{行星} 在 {星座}」+ 副行「落你的第 N 宫」(仅在现有 `natalRelativeAvailable` 为真时显示)+ 右侧等宽度数。
- D10 岁差说明句保留,改为「五要素按 Lahiri 岁差算,和星盘页的 Raman 不同。」(若星盘页岁差来自用户设置,按实际设置名填写,不写死 Raman)。
## 中文名对照表(D5 唯一来源)
**月相日 Tithi**:白分 = Shukla,黑分 = Krishna。显示为「白分初一」…「白分十四」、「望日(满月)」、「黑分初一」…「黑分十四」、「朔日(新月)」。
| 引擎名 | 中文 | 引擎名 | 中文 |
| --- | --- | --- | --- |
| Pratipada | 初一 | Navami | 初九 |
| Dwitiya | 初二 | Dashami | 初十 |
| Tritiya | 初三 | Ekadashi | 十一 |
| Chaturthi | 初四 | Dwadashi | 十二 |
| Panchami | 初五 | Trayodashi | 十三 |
| Shashthi | 初六 | Chaturdashi | 十四 |
| Saptami | 初七 | Purnima | 望日(满月) |
| Ashtami | 初八 | Amavasya | 朔日(新月) |
**月宿 Nakshatra**(印度二十七宿与中国星宿的传统对应):
| 引擎名 | 中文 | 引擎名 | 中文 | 引擎名 | 中文 |
| --- | --- | --- | --- | --- | --- |
| Ashwini | 娄宿 | Magha | 星宿 | Mula | 尾宿 |
| Bharani | 胃宿 | Purva Phalguni | 张宿 | Purva Ashadha | 箕宿 |
| Krittika | 昴宿 | Uttara Phalguni | 翼宿 | Uttara Ashadha | 斗宿 |
| Rohini | 毕宿 | Hasta | 轸宿 | Shravana | 女宿 |
| Mrigashira | 觜宿 | Chitra | 角宿 | Dhanishta | 虚宿 |
| Ardra | 参宿 | Swati | 亢宿 | Shatabhisha | 危宿 |
| Punarvasu | 井宿 | Vishakha | 氐宿 | Purva Bhadrapada | 室宿 |
| Pushya | 鬼宿 | Anuradha | 房宿 | Uttara Bhadrapada | 壁宿 |
| Ashlesha | 柳宿 | Jyeshtha | 心宿 | Revati | 奎宿 |
**瑜伽 Yoga**(意译):
| 引擎名 | 中文 | 引擎名 | 中文 | 引擎名 | 中文 |
| --- | --- | --- | --- | --- | --- |
| Vishkambha | 支柱 | Ganda | 险结 | Variyan | 安逸 |
| Priti | 喜爱 | Vriddhi | 增长 | Parigha | 阻碍 |
| Ayushman | 长寿 | Dhruva | 恒定 | Shiva | 吉祥 |
| Saubhagya | 好运 | Vyaghata | 打击 | Siddha | 圆满 |
| Shobhana | 光彩 | Harshana | 欢喜 | Sadhya | 可成 |
| Atiganda | 大险 | Vajra | 金刚 | Shubha | 吉善 |
| Sukarma | 善业 | Siddhi | 成就 | Shukla | 清白 |
| Dhriti | 坚持 | Vyatipata | 灾变 | Brahma | 梵天 |
| Shula | 刺痛 | | | Indra | 因陀罗 |
| | | | | Vaidhriti | 分离 |
**迦那 Karana**(音译为主):Bava 巴瓦、Balava 巴拉瓦、Kaulava 考拉瓦、Taitila 泰提拉、Garija / Gara 加拉、Vanija 瓦尼贾、Vishti 毗湿提、Shakuni 沙昆尼、Chatushpada 四足、Naga 蛇、Kimstughna 金斯图格纳。
拼写容差:匹配前忽略大小写、空格、连字符;`Garija` 与 `Gara`、`Dwitiya` 与 `Dvitiya`、`Shashthi` 与 `Shashti` 视为同一项(在表文件里写别名)。
## 硬红线
1. 断点只用已登记的(1024 为星盘页既有断点;如需 860 须在报告域外说明理由,否则不用);44px 触控;不新增颜色字面量,全部走 token 且有暗色值。
2. 星历仍不得出现 spinner / 骨架 / 「正在加载」(星盘骨架例外不外溢)。
3. 不改接口、引擎、数据库;总评不调模型;`/people`、`/ephemeris` 保持 `○ Static`,首屏 gzip ±2%。
4. 改 UI 的同一提交更新 `frontend/DESIGN.md`(档案页、星历页两节)与 `frontend/docs/VOICE.md`(总评句式、底部提示卡文案)。
5. **必须在真实浏览器里看过**(本机有 Chrome;375 / 390 / 1280 宽度,亮 / 暗两种),截图写进 PROGRESS;无登录态时用本地 dev 的预览数据或组件测试宿主,写明方式。
6. 全量测试 Node 22 + Linux 与基线逐条一致、新增 0;改动断言写三栏(写在测试文件里)。
## 任务分解
- T1 `/people` 样式与移动 / 桌面布局(D1–D4)。验收:组件测试断言列表行结构、当前人物高亮类、详情时间卡、本人无删除;CSS 合同测试断言 `people-archive*` 规则存在且断点在白名单内。
- T2 `panchanga-names-zh.ts` 对照表 + 别名;`panchangaFromEngine` 输出中文主名与梵文副名。验收:表内全部项的单测(含别名);未知名原样返回。
- T3 星历卡片:吉凶标签、计数、当日总评(D6、D7)。验收:总评纯函数单测覆盖 Purnima / Amavasya / 白分 / 黑分、吉数 0–5 各档、Vishti 追加、缺项不出总评。
- T4 移除标题栏按钮、加底部提示卡;行运行改版(D8、D9、D10)。
- T5 记录:BUG-1039(`/people` 无样式,关联 BUG-1030;写明验收流程缺口:无登录态页面未在浏览器看过);CHANGELOG;PROGRESS(含截图说明);`docs/testing/people-ephemeris-ui-20260926.md` 真机清单。
## 开工前置命令
```bash
git fetch origin --prune
node -v # 22.x
git worktree add -b codex/people-ephemeris-ui-20260926 .worktrees/people-ephemeris-ui-20260926 origin/staging
cd .worktrees/people-ephemeris-ui-20260926/frontend && npx tsx --test tests/ephemeris-page.test.tsx tests/people-archive-regressions.test.ts
```
## BUG 编号
写单时 BUG-1038 已被新建对话单预留;本单 **BUG-1039**,开工时核对。