Files
Jyotisha/docs/tasks/TASK-report-full-data-fix-20261008.md
T

85 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TASK · 完整数据版报告补齐:解释内容、年运表、英文(2026-10-08)
- 分支:继续在 `codex/report-full-data-edition-20261007`(远端 `06028759`)上做,不另开分支。
- 基线:`06028759`;合入前 rebase 到 `origin/staging`,并且排在 `TASK-special-lagnas-native-20261008` 之后。
- 上游参照:`/workspace/yinduzhanxing` `origin/main` @ `23be1807`。
- BUG 编号:本分支已用到 BUG-1272;特殊上升点修复单从 1273 起。本单开工时核对最大号,再顺延。
- 原任务书 `TASK-report-full-data-edition-20261007.md` 仍有效,本单只改写其中红线 1,并补任务。
## 1. 验收实证(Claude,2026-10-08,Linux,乔布斯盘,Lahiri)
| 项 | 本分支 | 上游完整数据版 |
| --- | --- | --- |
| 中文正文(按字符,不含标题行) | 99,354 | 526,133 |
| 上游有、本分支没有的章节 | 75 节,合计约 36.6 万字 | — |
| 生成耗时(本机 Linux) | 12.5 秒(排盘 2.1 秒) | 34 秒 |
缺得最多的部分:
| 缺的内容 | 约字数 | 上游从哪里来 |
| --- | --- | --- |
| 每段大运主运 + 子运解释(9 段) | 22 万 | `scripts/professional_parity_closure.py` 的 `build_dasha_interpretation_pack`、`build_vimshottari_dasha_report_pack` |
| Mudda / Patyayini 年运表、Patyayini 结束日期表 | 6.5 万 | 我方年运资料包有 `mudda_dasha`(`partial_verified`),渲染器没认出字段名。**`patyayini_dasha` 在我方是 `blocked`**(有无 PyJHora 都一样,引擎不产出),Patyayini 两节写进缺口清单,不补算 |
| Sthira、Drig、Shoola、Navamsha、Niryaana Shoola、Lagna Kendradi 等大运 | 5 万 | 另开一单(见决策 4) |
| 生命周期年度返照、年度北印度图盘、月返照、八年总览 | 1.9 万 | 部分在我方年运资料包里,逐项核对 |
| Sahams、Raman Sahams、Tajika 呈现 / Condition / 格局对照、Tripataki | 0.6 万 | 我方年运资料包有 `sahams`、`tajika_yogas` |
| 宫主逐宫解释、Dosha 逐项事实与解释、年度结果解释 | 0.5 万 | `build_bhavesh_interpretation_pack`、`build_dosha_remedy_pack`、`build_graha_interpretation_pack`、`build_yoga_interpretation_pack` |
| 开篇「重点」 | — | 本分支是固定三句核对清单;上游按当前大运和宫主写 |
其他问题:
- 译名错误:「六维力量 / Bhava **年龄状态** 摘要」(Bala 被当成 Baladi 的年龄状态);「Natal / KP Ruling **行星s**」。
- 英文清理后仍有汉字(BUG-1272),接口不给英文。
- 生成按钮仍写「大约 10–30 秒」「中英两版」。
## 2. 根因
原任务书红线 1 写的是「不得因为移植上游渲染器,就把上游的计算函数一起带进来」。执行方照办,于是凡是数据要由上游 `professional_parity_closure.py` 生成的章节都空着。这条红线是 Claude 写得太宽:解释内容是「模板文字 + 已算好的盘面数值」,不是天文计算。
## 3. 决策记录(产品 2026-10-08)
1. **允许移植上游的解释内容生成器**:`build_dasha_interpretation_pack`、`build_vimshottari_dasha_report_pack`、`build_graha_interpretation_pack`、`build_bhavesh_interpretation_pack`、`build_dosha_remedy_pack`、`build_yoga_interpretation_pack`,以及它们依赖的模板函数。**本条改写原任务书红线 1**,执行方据此可以搬,不得以原红线拒做。
2. 搬过来的模板要**逐条核对口径**(见红线 2)。
3. **英文做好之前不上线**:完整数据版的英文必须交付(清理后全文无汉字)才合入 staging。在此之前线上继续用现有的阅读版,中英文都在。
4. Sthira、Drig、Shoola、Navamsha、Niryaana Shoola、Lagna Kendradi、Chara 等大运**另开一单,放后面**。上游有原生模块(`sthira_dasha.py`、`drig_dasha.py`、`shoola_dasha.py`、`navamsha_dasha.py`、`lagna_kendradi*.py`),我方没有。本单不做,报告里这些章节不出现,不写占位。
5. 补完之后由 Claude 验收,通过再合入。
## 4. 硬红线
1. **数值只用我方引擎**。搬过来的生成器只读我方资料包里已经算好的字段;生成器里凡是自己做天文或大运计算的部分(例如 `build_dasha_master_pack` 里的 PyJHora 回放、`sthira` / `niryaana_shoola` 调用、`*_pyjhora_*` 档)不搬。运行时不得导入 `jhora`。
2. **模板口径核对**,以下写法一律改写或删除,并为每条加测试(对中英文全文断言):
- 不断言死亡、寿命长短、疾病诊断、离婚、流产、不孕(AGENTS B4);上游模板里的 death / 疾病 / guarantee / 必然 / 一定会 逐条检查;
- 落陷取消不叫 Raja Yoga(BUG-1205);
- 不写「再婚」「几段关系」(sync4 T1,BUG-1183);不写早夭、过早死亡(sync5,BUG-1192~1198);
- 功能吉凶按我方功能吉凶 v2(BUG-1174~1182);模板里自带的吉凶判断与我方层冲突时,以我方为准;
- 大运解释不得把「主题」写成必然事件,要写成「这段时间可能突出」的口吻(原书模板改写)。
3. 原任务书的红线 2(我方报告口径)、红线 3(泄漏检查)、红线 4(不启用视位置 / 拟合偏移)继续有效。`customer_timing_supplement` 仍不搬。
4. 英文:四张盘(乔布斯、奥巴马、虚构盘,再加一张公开 AA 盘替代泰勒)全文无汉字;术语只增不减,不能靠删段落凑「无汉字」。
5. 隐私:只用公开名人盘与虚构盘。
## 5. 任务分解
| # | 内容 | 验收标准 |
| --- | --- | --- |
| T1 | 移植决策 1 的生成器,接到完整数据版 | 乔布斯盘「大运解释」「行星解释」「宫主逐宫」「Dosha 逐项」「瑜伽解释」都出现;红线 2 每条一个测试 |
| T2 | 年运:把我方 `annual_tajika_pack` 的 `mudda_dasha`、`patyayini_dasha`、`sahams`、`tajika_yogas`、`monthly_windows`、`solar_return` 接到上游对应章节 | 列表对照:上游每个年运章节要么出现,要么写进缺口清单并说明缺哪个字段 |
| T3 | 开篇「重点」按上游逻辑写:当前三级大运 + 事业 / 财富 / 婚恋三宫的宫主落宫、尊贵、功能吉凶(取我方功能吉凶层) | 乔布斯盘「重点」含当前 MD / AD / PD 与三宫宫主行 |
| T4 | 英文 BUG-1272 | 四张盘英文全文汉字数为 0;中英章节数一致 |
| T5 | 译名 | 修掉「Bhava 年龄状态」「KP Ruling 行星s」;加测试:中文版不得出现「英文单词 + 汉字 + s」这类半译词(正则扫) |
| T6 | 生成按钮文案 | 按 staging 部署后实测生成时长改写(对照 `frontend/docs/VOICE.md`);有英文后保留「中英两版」 |
| T7 | 覆盖度报告 | 对上游 `23be1807` 同盘导出逐节比对,进度记录列「已有 / 本单不做(附决策号)/ 缺字段」三栏;除决策 4 的大运外,「缺字段」不得超过 10 节 |
| T8 | 测试与门禁 | 在 **Linux 或门禁同等环境**跑:快速门全过(Windows 上 `test_consultation_native_layers` 的既有失败不能作为放行依据)、Python 全量失败名单 ⊆ 基线、`npm test` 失败名单与基线相同、`next build` `/` Static、gzip ±2% |
| T9 | 记录 | `docs/BUG_HISTORY.md`(BUG-1272 更新与新编号)、`CHANGELOG.md`、进度记录、`docs/testing/` 真机清单(生成、旧报告打开、中英切换、跳章节、导出) |
## 6. 让步顺序
T6 → T3 → T2 中的月返照 / 八年总览。T1、T4、红线 1–2 不让步。
## 7. 开工前置命令
```bash
git fetch origin --prune
git worktree add .worktrees/report-full-data-edition-20261007 codex/report-full-data-edition-20261007 # 已有就直接进
grep -o "^## BUG-[0-9]*" docs/BUG_HISTORY.md | sed 's/## BUG-//' | sort -n | tail -1
```