Files
Jyotisha/docs/tasks/PROGRESS-astrologer-rulings-batch6-20261004.md
T
Jesse_ChenandCursor baf4ae8b34
Independent Staging Quality Gate / validate (push) Failing after 16m17s
Independent Staging Quality Gate / publish (push) Skipped
feat(narayana-rath): follow book p.43 for dual lords and node years (BUG-1227~1229)
Round-7 option A is text-first, so Scorpio and Aquarius lords, the Ketu-only degree reversal, and node exaltation years now live in the Rath display layer. Scoring files stay unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-04 18:37:34 +08:00

7.2 KiB
Raw Blame History

PROGRESS:占星师第七轮落地(p.43 双主星、只倒算计都、罗计旺陷加减年)— 2026-10-04

  • 任务书:docs/tasks/TASK-astrologer-rulings-batch6-20261004.md(64c652ee)。
  • 分支:codex/astrologer-rulings-batch6-20261004,工作树 .worktrees/astrologer-rulings-batch6-20261004。
  • 开工基线:origin/staging = 64c652ee。预检 scripts/pre_work_check.py 为 pass,远端 verified。磁盘 / 可用约 343 GiB。
  • BUG:开工时最大号 BUG-1227。本单 BUG-1227 改 resolved,新增 BUG-1228(T2)、BUG-1229(T3)。
  • 研究分支 86e55514 不在本仓对象库,p.43 按任务书与第七轮回复在 narayana_rath.py 重写,没有搬研究开关。
  • 冻结文件未改:scripts/narayana_dasha.py、references/rectification_sealed_holdout.v1.json。Rath 仍只被 narayana_legacy_label.py 导入。

我替任务书确认的实现

  1. (a)(b) 的 rule 记年数条款,同宫身份另记 identity_rule: p116_longitude。经度全同则 status: undecided,不按列表先后取星。
  2. (d) 的比较若因循环变成未决,不改走 (e)。
  3. (a) 两主都在天蝎或水瓶时,年数固定 12(四颗星在该宫的旺陷修正都是 0),身份仍可比经度。
  4. 第 2 周期仍是 12 减第 1 周期,基本年数和修正留空,只保留最终年数。

T2 第 5 级只倒算计都(BUG-1228)

_strength_degree:实体星与罗睺用宫内度数,计都用 30 − 宫内度数,0° 计都的比较值是 30。原书软件表 30 对的胜者与改前相同,不符仍是 Wadiyar 双子/射手、处女/双鱼,都在第 5 级。没有因本条改判的盘。

T3 罗计旺陷 ±1(BUG-1229)

rath_period_years。实体星沿用冻结函数。罗计按 Phalita:罗睺旺双子 / 陷射手,计都旺射手 / 陷双子。截在 0–12。大运和第 7 级都走这层。

显式起运宫后的年数(顺序都是 12/12):

表 星座 书印 新值 基本 修正 来源
Table 15 水瓶、天蝎 2、7 2、7 与书印相同
Table 17 天蝎 10(火星;Chart 3 也是 10) 2 1 +1 双主星 A 取计都,计都在射手入旺
Table 17 水瓶 8(Table 17);9(Chart 3:罗睺 8+1) 1 1 0 双主星 A 取土星,不取罗睺。Chart 3 的 9 年按罗睺仍可算出(基本 8、修正 +1),本单不采用
Table 18 水瓶 2 1 2 −1 主星仍是罗睺,罗睺落陷减 1。其余 11 段与书印相同
Table 18 天蝎 9 9 与书印相同

其余样表行与书印相同的不逐行列。年数不再作通过线。

T1 双主星(BUG-1227,解除 blocked)

软件表 10 条都由 (d) 判出:

表 宫 书 我们 级 两主所在
Table 22 水瓶 土星 土星 1 摩羯 / 巨蟹
Table 22 天蝎 火星 火星 1 水瓶 / 摩羯
Table 23 水瓶 土星 土星 2 摩羯 / 双子
Table 23 天蝎 火星 计都 2 处女 / 射手
Table 24 水瓶 土星 土星 2 天秤 / 射手
Table 24 天蝎 火星 火星 2 水瓶 / 双子
Table 25 水瓶 土星 土星 1 金牛 / 处女
Table 25 天蝎 计都 计都 3 狮子 / 双鱼
Table 27 水瓶 罗睺 罗睺 1 巨蟹 / 射手
Table 27 天蝎 火星 火星 3 狮子 / 双子

9/10。唯一不符:Table 23 天蝎,书火星,第 2 级计都(射手得木星两个角色)。这是选 A 的已知代价。

底线:Table 15、17 通则起运宫仍自动复现(巨蟹第 1 级、双鱼第 2 级)。Table 18 显式巨蟹后顺序 12/12,通则仍是摩羯第 5 级。强弱 28/30。Table 25 子运仍是 24/36(巨蟹 12、双子 0、金牛 12)。

T4 展示

  • 标签改为「Sanjay Rath 版(并列参考,未进打分与时间轴结论;按原书 p.43 正文(第七轮裁定))」,英文对照在 pl9_reader_english_terms.py。
  • 参考版报告大运表改为基本年数 / 修正 / 最终。天蝎、水瓶各写一句双主星依据。
  • 咨询卡只在当前大运是天蝎或水瓶时带这一句。字数测试仍不超过 12,500(加方法清单的年运、时运不超过 18,500)。
  • 12 张公开盘的 Rath 段用真实引擎按盘内经度重算后写入 golden。乔布斯当前大运由天秤 70–72 岁改为水瓶 71–72 岁(前面天蝎少了 1 年,年龄边界前移)。嘉兰水瓶主星由土星改为罗睺,年数仍是 5 / 7。齐达内天蝎由火星 7 年改为计都 8 年(基本 7,入旺 +1)。梦露水瓶由 8 年改为 9 年(罗睺入旺 +1)。

测试

项 结果
test_narayana_rath_rules.py、test_narayana_rath_book_tables.py、test_narayana_legacy_label.py、test_report_english_dictionary.py、test_report_english_edition.py、test_narayana_dasha.py、test_node_own_sign_and_fixed_lords.py 通过(上游对照 1 条因本机没有上游仓而跳过)
咨询卡:Rath 三例、字数三份(证据卡、v2、压缩清单) 通过
tsc --noEmit 0 错。本机 Node 是 v24.15.0;tsc 与 npm test 用 nvm 的 Node 22.14.0
npm run lint 0 error,126 warnings
npm test(Node 22.14.0) 4932 项,pass 4872,fail 19,skipped 41。失败 19 条都是本机没有 Docker,起不来 Postgres。与开工基线同一条命令的失败名单相同,顺序也相同
全量 pytest tests 见下节
v5 77 例 与第五批公布的记分板相同,见下节
快速门 run_quality_gate.py --profile quick --skip-frontend-runtime Quality gate passed。1046 passed、2 skipped(第五批记录是 1047 passed、1 skipped;本机多跳过 1 条,门禁结果是通过)

全量 pytest

开工基线 64c652ee(一次性 --detach 工作树)与本分支各跑一遍 .venv 的 python -m pytest tests -q --tb=line。两边都先放好本机已有的 de421.bsp 和 hip_main.dat,避免 Skyfield 经本机代理现下这两份星历。

失败名单:基线 68 条,本分支 67 条。本分支没有多出来的失败。基线多的一条是 tests/test_vedastro_divisional_longitude_bridge.py::test_vedastro_bridge_divisional_longitudes_match_local_degree_mapping,当时报 bridge_runtime_error(两套全量同时在跑)。这条在基线工作树单独再跑通过。其余 67 条名字相同,包括库存清单、占星 oracle 快照、VedAstro 运行时针脚;Rath 定向测试和英文版测试不在失败名单里。

跑完后 git checkout 掉测试改写的 4 个 references/oracle/prashna_*_2026_07_20.json。

v5 77 例

命令:PYTHONHASHSEED=0 JYOTISH_API_CHART_CACHE_TTL_SECONDS=0 python scripts/research/holdout_v5_baseline.py --dataset v5。77 例,三套 harness 都没有 errors。打分文件与 64c652ee 无差异。记分板与第五批进度记录里的改前 / 改后数字相同:

指标 ±10 ±30 ±60
先验头名 0.1818 0.0909 0.0779
六题回放头名 0.6364 0.4935 0.3117
线上区间回放头名 0.6623 0.5584 0.4026
覆盖(回放) 0.987 0.987 0.987
中位宽度(回放) 13 33 65
futile 真值在区间 76 75 76