8.2 KiB
PROGRESS:#91 A 段第 1 次打回(只修报告写法)
- 分支:
codex/full-data-parity-1-20261021 - 范围:修复单 J1–J4。B 段 T4–T10、#93 未做。
- 状态:本地完成,未推送。
结论
0、1、9 号虚构盘的中英两版里,新六章除下面 4 节以外,每一节都至少有一行真实数据。这 4 节公开资料包没有对应模块,仍印「未判定」,第一行写明原因。
中文附录的年运表列名过滤在 200 张盘上没有丢掉任何列,所以没有补 FIELD_ZH。瑜伽「作用」的粘连过滤也没有删条目。瑜伽「组合」会把英文句子整格印成「未判定」:200 张盘全部中招,去重后 1030 条,源头不改。
J1 十二节
读的是 build_professional_report_reference_packet 放进公开工作表的位置。0、1、9 号盘中英两版都由测试确认至少一行不是「未判定 / Not determined」。
| 节 | 公开包位置 |
|---|---|
| Vimsopaka 分盘贡献 | strengths_and_scores.vimsopaka 下直接是行星键(分数、分档) |
| Karakamsha | advanced_systems.jaimini.karakamsha 的星座、度数、宫主 |
| Darakaraka | advanced_systems.jaimini.darakaraka 的 dk_planet、dk_sign、dk_house、dk_degree、d9_sign、d9_dignity |
| D9 尊贵 | divisional_and_special_charts.varga_full.D9_Navamsa,行星是直接键,尊贵在 _dignity |
| 分盘映射 | 同上各分盘的 Ascendant.sign。盘名印成 D9 Navamsa 这种,不印带下划线的键。D81 / D108 / D144 不进这张表 |
| D30 状态 | varga_full.D30_Trimsamsa 与 _dignity |
| D30 输入 | strengths_and_scores.shadbala.planets.*.sthana_bala.sapta_d30 |
| 行星状态输入 | advanced_systems.avasthas.<planet>.avasthas 的 Jagrat / Deeptadi 状态,外加度数 |
| 定位星终点与循环 | advanced_systems.final_dispositors。自循环印主星,多星循环印「循环 / Cycle」 |
| Sudarshana 参考点 | divisional_and_special_charts.sudarshana.raw.reference_points |
| Bhava Chalit 宫心 | divisional_and_special_charts.bhava_chalit.raw.boundaries.houses |
| 本命特殊点公式依据 | advanced_systems.sahams 里带星座或黄经的点,印名称、星座、度数、黄经。不印公式轨迹 |
| 注明日期的行运 | timing_and_predictive_systems.transit_multi_reference 的 transit_analysis 与 target_date,星宿来自 advanced_systems.nakshatra_dasha.transit_overlay |
四节白名单
公开报告资料包未带这些模块(只在被拿掉的原始阅读结果里)。每节第一行是「公开报告资料包未带此模块」/ This module is not in the public report packet,表内仍是「未判定」。没有为它们改引擎。
| 节 | 原因 |
|---|---|
| Navamsha 小运时长 | navamsha_dasha 没有复制进公开工作表 |
| 五鸟活动 | pancha_pakshi 没有复制进公开工作表 |
| Rashi Tulya Navamsa | rashi_tulya_navamsa 没有复制进公开工作表 |
| 当前多系统收敛 | dasa_convergence 的逐领域行没有复制进公开工作表。不再用 convergence_top_domains 充数 |
J2 / J3
tests/test_full_data_parity_chapters.py 的 test_every_section_has_a_real_cell_except_the_four_public_gaps:0、1、9 号盘中英两版,白名单外每一节至少有一个数据单元格不是「未判定 / Not determined」。表头和分隔行不算。白名单只有上表 4 节,每项带了原因。
test_parity_chapters_go_through_local_conventions:六章先拼进正文,再走 _apply_local_report_conventions。中文源字段「必然」渲染成该函数的结果「可能」;英文字段 divorce 渲染成 relationship strain。
J4 丢弃统计
200 张虚构盘,PyJHora 已屏蔽。汉字为 0。计数在中文渲染里,同一条若被阅读表、资料附录和解释包各走一次,调用次数会高于条目数。条目数是每张盘内按规则和原文去重后再相加。
| 处 | 丢掉了什么 | 条目 | 调用 | 受影响盘 |
|---|---|---|---|---|
| 年运表列名 | 无。过滤执行了 800 次(每盘 4 张表),没有列被 FIELD_ZH 拿掉 |
0 | 800 次过滤 | 0 |
| 瑜伽「作用」 | 无。粘连过滤没有删掉任何一条 | 0 | 0 | 0 |
| 瑜伽「组合」 | 非空的组合句整格变成「未判定」 | 1030 | 2496 | 200 |
年运表优先列本来就有中文名,所以没有新列要补进 FIELD_ZH。reading 这类额外字段到不了这道过滤:优先列已经有值,回退列名单不会启用。
「作用」里的英文整句没有被删。粘连规则只删「汉字紧挨 in/and/or/from/planet/lord」、英文星座名,以及 , : / in )。BVR 规则的 effects 要么是纯中文,要么是纯英文,纯英文留在格子里。本单不改 references/yoga_rules.json。
「组合」变成「未判定」的源头:
scripts/yoga_engine.py的_eval_semantic_condition:没有中文模板时,用规则里的英文note当组合句。规则在references/yoga_rules.json。按渲染调用次数:bvr_krisanga_yoga501,bvr_budha_aaditya_yoga315,bvr_paasa_yoga282,bvr_kedaara_yoga162,bvr_vanchana_chora_bheethi_yoga144,bvr_dehasthoulya_yoga125,bvr_daama_yoga126,bvr_kalpadruma_yoga108,bvr_bahu_sthree_yoga102,bvr_bhaarathi_yoga69,bvr_grihanasa_yoga66,bvr_asubha_yoga45,bvr_subha_yoga45,bvr_bandhu_pujya_yoga54,bvr_guhyaroga_yoga27(句中有英文星座名),bvr_vallaki_yoga18,bvr_soola_yoga12,bvr_rajalakshana_yoga9,bvr_kalaanidhi_yoga3。- 没有
rule_id的 283 次来自scripts/yogas_doshas.py:calc_raj_yogas与calc_dhana_yogas写出H*_Lord(...) in H*这种英文组合句。句子里的行星随盘变化,这里不列具体星。
这些句子是中文报告在用的英文字段。本单只计数,不改规则文件,也不改这两个函数。
阅读页上的英文星座名
frontend/src/lib/personal-report-generation.ts 的 assembleReportDocumentV2。它在组装 v2 报告文档时,把 D1 事实里的英文 sign 写进「本命基础」的 narrative,以及 keyFactors 里「第 N 宫落 {sign}」;宫内对象还是英文行星标识,两处句子加这一列,改一处星座映射盖不住。
阅读页 frontend/src/components/personal-report/personal-report-page.tsx 渲染的是 Markdown(PersonalReportMarkdownView)、盘图和事实表,不渲染这段 natalFoundation。frontend/src/lib/report-public-projection.ts 的 foundationSection 只是把它放到接口文档上。导出图盘列表的 houseLine 已经用中文星座名。本单不改前端,留给 Claude。
测试
解释器:G:\Ferti\Jyotisha\.worktrees\agent-loop\.venv\Scripts\python.exe。PYTHONUTF8=1。虚构盘助手已屏蔽 PyJHora。未跑快速门、全量 pytest、前端全量 npm test、next build。未改前端,未跑 tsc / lint。
| 命令 | 退出码 |
|---|---|
pytest tests/test_full_data_parity_chapters.py -q --tb=line |
0(7 项,约 61 秒) |
pytest 附录、英文冒烟、test_report_english_edition、test_report_full_data_fix、test_full_data_domain_reader、test_python_hygiene_budget、test_api_server_growth_contract、test_runtime_jhora_import_scan、test_sidereal_nutation_frame、test_rashi_dashas_native、test_bhava_bala_formal、test_year_lord_blocked_no_fallback、test_year_lord_basis_label、test_repo_privacy_markers |
0(172 项,约 925 秒) |
pytest tests/test_report_english_sweep.py -q --tb=line |
0(200 张,约 1293 秒;汉字 0) |
隐私标记在写完本文之后再跑一次。
偏离
- 没有推送,没有设上游,没有改标签,没有发 Gitea 评论。
- 没有改
scripts/jyotish_api_server.py、scripts/jaimini.py、冻结打分文件、references/yoga_rules.json。没有提高ROOT_PY_BUDGET。 - 没有新的 BUG 编号。BUG-1416、BUG-1417 保持不变。
- 年运列和瑜伽「作用」的实测丢弃是 0,所以没有补中文列名,也没有改瑜伽英文源。
- 组合句的 1030 条是「非空原文被印成未判定」的盘内去重数,比「句中正好有 in/and/or/from/planet/lord」的范围稍宽,多出来的是纯英文说明句。调用次数 2496 是同一条被多处渲染重复计入。