docs(tasks): ascendant status slash brief (agent loop, issue #87)
Queued after #86. The ascendant's status cell says "/" with a hover/tap explanation on the chart page, and the report row says "/" with a note under the table. Reverses the 2026-10-15 "不适用" wording. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LutgzyJqNhPpZy1nFsJtN3
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
bd3ce0e7b5
commit
308ca2a65c
@@ -512,3 +512,4 @@
|
||||
| `TASK-synastry-staging-fix-20261021.md` | `PROGRESS-synastry-staging-fix-20261021.md` | #85 婚恋合盘 staging:P0 `.gte` 已在 staging(BUG-1399)。本分支补时间线起止、英文分析逻辑、删模型后旧对话改用默认模型、选人页开关文案,以及合盘创建真库测试(BUG-1400~1403) | 待验收 | `codex/synastry-staging-fix-20261021` |
|
||||
| `TASK-synastry-report-chat-fix-20261020.md` | `PROGRESS-synastry-report-chat-20261018.md` | 大运核对要认报告里的「小运」和英文 mahadasha / antardasha;预填文案只留一句 | 已验收 | `549e37b99` |
|
||||
| `TASK-other-subject-birth-time-edit-20261021.md` | — | 其他人的出生时间可以修改(去掉 `chart_profiles_guard_birth` 的填报时间不可改;推翻 people-archive P1 §验收 2 该条;active 锁不变) | 排队(等 #86 合入) | `codex/other-subject-birth-time-edit-20261021`;动表;不进循环 |
|
||||
| `TASK-chart-ascendant-slash-20261021.md` | — | #87 上升状态格「不适用」改「/」+ 悬停 / 点按说明;报告上升行同改并在表下加说明(推翻 10-15 口径) | 待领取(等 #86 合入) | `codex/chart-ascendant-slash-20261021` |
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
# 任务书:上升的「状态」格把「不适用」改成「/」,悬停 / 点按显示说明(2026-10-21,issue #87)
|
||||
|
||||
## 基线
|
||||
|
||||
- 写单时 `origin/staging` = `bd3ce0e7b`。**本单排在 #86 之后**:#86(人名切换、出生资料就地编辑、报告行星表列宽)同样改 `chart-vedic-tab.tsx` 一带与 `scripts/pl9_reader_export.py` 的行星表。开工时 #86 必须已合入 `origin/staging`,以那时的 `origin/staging` 为基线;没合入就不开工,回报「等 #86」。
|
||||
- 执行方:Grok(Windows + Docker)。分支 `codex/chart-ascendant-slash-20261021`,工作树 `.worktrees/chart-ascendant-slash-20261021`,只推这个分支。
|
||||
|
||||
## 现状实证(按符号定位)
|
||||
|
||||
| # | 位置 | 现在写什么 |
|
||||
| --- | --- | --- |
|
||||
| 1 | `frontend/src/components/chart-page/chart-vedic-tab.tsx` 的 `AscendantRow`(本命表、月亮盘表共用)最后一格 | `<td>不适用</td>`;函数头注释也写「the status cell says 不适用」 |
|
||||
| 2 | 同文件 `VargaAscendantRow`,`supportsDignity` 为真时的庙旺格 | `<td className="chart-page-planet-mid">不适用</td>` |
|
||||
| 3 | `scripts/pl9_reader_export.py`「#### p6 行星主星与状态」表的上升行(`asc_label` 下一行的 `dignity`) | 中文「不适用」,英文 `not applicable` |
|
||||
| 4 | `frontend/DESIGN.md` 星盘页本命表段(「上升没有尊贵,状态格写「不适用」(2026-10-15…)」)与分盘表那一行(「上升此格「不适用」」) | 现行口径 |
|
||||
|
||||
页面上已有的说明气泡:`chart-page/chart-symbol-help.tsx` 的 `ChartSymbolHelp`。它给子树里带 `data-chart-help` 的元素出气泡:鼠标悬停时显示,触屏点一下显示并停留 `TOUCH_BUBBLE_MS`。现在只包住了星盘图(`VedicLayout` 的 `chart-page-vedic-stage`),表格不在里面。
|
||||
|
||||
## 根因
|
||||
|
||||
不是缺陷,是口径变更。上升是命盘起点,不是行星,本来就不判入旺 / 落陷。2026-10-15 为了不让「—」被当成没数据,改写成「不适用」;产品现在认为「不适用」像工程内部用语。
|
||||
|
||||
## 决策记录(产品负责人 2026-10-21,issue #87)
|
||||
|
||||
1. 上升的状态格(本命表、月亮盘表、分盘表的庙旺格)写「/」。说明句一字不差:「上升点是命盘的起点,不是行星,不判断入旺或落陷」。电脑悬停显示,读屏读得到同一句,手机点一下显示。
|
||||
2. 报告的「行星主星与状态」表上升行中英文都写「/」。PDF / 导出没法悬停,所以在**这张表下面**加一行说明:中文用上面那句,英文用「The ascendant is the starting point of the chart, not a planet, so it has no dignity.」。
|
||||
3. **推翻 2026-10-15 的「不适用」口径**(DESIGN.md 两处与 BUG-1201 / 1202 相关描述)。执行方按本单改,不得以「历史决定是不适用」为由拒改。
|
||||
4. 只改上升这一格。技法审计表、合盘、兑换码、会员等其他地方的「不适用」一律不动。
|
||||
|
||||
## 硬红线
|
||||
|
||||
- tsc 0 错;`npm run lint` 0 error;`next build` 后 `/` 仍 `○ Static`;首屏 gzip ±2%。
|
||||
- 不新写第二套气泡 / tooltip:说明一律走 `ChartSymbolHelp` + `data-chart-help`(若需要给表格区也包一层 `ChartSymbolHelp`,可以;气泡位置的计算不复制)。
|
||||
- 「/」那一格要能被测试稳定找到:给它加固定 class(例如 `chart-page-asc-status`)或断言说明句。不要让测试去匹配裸的 `/`,HTML 里到处都是 `/`。
|
||||
- 改任何既有断言写「原值 / 新值 / 原因」三栏(AGENTS §7.3)。
|
||||
- 同一提交更新 `frontend/DESIGN.md`;说明句对照 `frontend/docs/VOICE.md`。
|
||||
- 不改数据库、不改 `scripts/jyotish_api_server.py`。
|
||||
|
||||
## 任务分解
|
||||
|
||||
### A1 · 星盘页三处上升格
|
||||
|
||||
- `AscendantRow`、`VargaAscendantRow` 的状态格显示「/」,带说明句(悬停气泡 + `aria-label` 或可读的隐藏文字,读屏读到的是那一句而不是「斜杠」);可聚焦或可点,触屏点一下出气泡。
|
||||
- 函数头注释改成新口径。
|
||||
- 验收:渲染测试断言本命表、月亮盘表、D9 分盘表的上升格内容是「/」、带说明句;`supportsDignity` 为假(旧缓存)时整列仍不显示。
|
||||
|
||||
### A2 · 报告上升行与表下说明
|
||||
|
||||
- `pl9_reader_export.py` 上升行 `dignity` 中英文都是 `/`;该表结束后紧跟一行说明(中 / 英各自的句子)。
|
||||
- 英文版不得出现汉字(英文版有汉字会被整份丢弃,见 issue #89 / BUG-1272)。
|
||||
- 验收:`tests/test_report_chart_blank_columns.py` 中「行星主星与状态」表上升行状态格断言改成 `/`(三栏),并新增断言:中英两版表下各有那一行说明。
|
||||
|
||||
### A3 · 按源码文本或渲染结果断言的测试(AGENTS §7.8,同轮改)
|
||||
|
||||
| 文件 | 现有断言 | 改成 |
|
||||
| --- | --- | --- |
|
||||
| `frontend/tests/chart-varga-table.test.tsx` | D1 表与基线逐字节比对时把上升行替换成 `<td>不适用</td>`;另有三处 `/>不适用</` | 替换串与断言换成新的那一格(三栏,基线 fixture 文件不改) |
|
||||
| `frontend/tests/chart-moon-transit.test.tsx` | 月亮盘上升行 `/>不适用</` | 新那一格 |
|
||||
| `frontend/tests/chart-page-hook.test.ts` | 旧缓存时 `doesNotMatch(/>庙旺<\|>同位<\|>不适用</)`,用来证明整列隐藏 | 把 `不适用` 换成新那一格的固定 class 或说明句,**整列隐藏的保护不能丢** |
|
||||
| `tests/test_report_chart_blank_columns.py` | `lords[1][5] == "不适用"` | `"/"`,并加表下说明断言 |
|
||||
|
||||
开工时再 `grep -rn "不适用" frontend/tests tests` 一遍,凡是断言上升这一格的都要改,别的不动。
|
||||
|
||||
### A4 · 文档
|
||||
|
||||
- `frontend/DESIGN.md` 两处改成「/」+ 说明句 + 2026-10-21 推翻 10-15 口径。
|
||||
- `CHANGELOG.md` 一句话。
|
||||
- 不是 Bug,不新增 BUG 编号;若开工中发现真缺陷,按 §5 从当时最大号 +1 记。
|
||||
|
||||
## 验收命令
|
||||
|
||||
| 检查 | Grok 自跑 | Claude 验收 |
|
||||
| --- | --- | --- |
|
||||
| `tsc --noEmit`、`npm run lint` | 必跑 | 复验 |
|
||||
| 上表 3 个前端测试文件 | 必跑 | 复验 |
|
||||
| `tests/test_report_chart_blank_columns.py` | 必跑(工作树 `.venv`) | 复验 |
|
||||
| 前端全量 `npm test`(与基线逐名比对)、`npm run build`(`/` Static、gzip)、Python 快速门 | 不跑 | 以 Claude 为准 |
|
||||
|
||||
真机走查清单:`docs/testing/chart-ascendant-slash-20261021.md`。
|
||||
|
||||
## 让步顺序
|
||||
|
||||
1. A1、A2 与 A3 不可省。
|
||||
2. 如果手机「点一下出气泡」在表格里和 `ChartSymbolHelp` 的定位冲突、做不好,可以先只做悬停 + 读屏,手机点按写进进度记录留待下一轮;**不得**为此另写一套气泡。
|
||||
|
||||
## 开工前置命令
|
||||
|
||||
```
|
||||
git fetch origin --prune
|
||||
git log --oneline -20 origin/staging # 确认 #86 已合入
|
||||
git worktree add -b codex/chart-ascendant-slash-20261021 .worktrees/chart-ascendant-slash-20261021 origin/staging
|
||||
grep -rn "不适用" frontend/src/components/chart-page scripts/pl9_reader_export.py frontend/tests tests frontend/DESIGN.md
|
||||
```
|
||||
@@ -0,0 +1,16 @@
|
||||
# 真机走查:上升状态格「/」与说明(issue #87)
|
||||
|
||||
用 staging,登录自己的账号,选一个已有星盘的人。
|
||||
|
||||
| # | 操作 | 应该看到 |
|
||||
| --- | --- | --- |
|
||||
| 1 | 电脑打开星盘页,本命表第一行「上升」的「状态」格 | 写「/」,不是「不适用」 |
|
||||
| 2 | 鼠标移到这个「/」上 | 弹出一句:上升点是命盘的起点,不是行星,不判断入旺或落陷 |
|
||||
| 3 | 切到月亮盘、D9 分盘 | 上升行同样是「/」,悬停有同一句 |
|
||||
| 4 | 手机打开同一页,点一下「/」 | 出现同一句,几秒后自动消失;页面不被撑宽 |
|
||||
| 5 | 其他行(太阳、月亮等)的状态格 | 照旧,如「入旺」「落陷」,没有变化 |
|
||||
| 6 | 打开一份**新生成**的个人报告,找「行星主星与状态」表 | 上升行状态写「/」;表下面有一行同样的说明 |
|
||||
| 7 | 把这份报告切到英文 / 导出 PDF | 上升行写「/」,表下是英文说明;PDF 里也能看到这行说明 |
|
||||
| 8 | 深色模式下重复 1、2 | 「/」与气泡都看得清 |
|
||||
|
||||
旧报告要重新生成才会变;旧报告里仍是「不适用」属正常。
|
||||
Reference in New Issue
Block a user