feat(narayana-rath): follow book p.43 for dual lords and node years (BUG-1227~1229)
Independent Staging Quality Gate / validate (push) Failing after 16m17s
Independent Staging Quality Gate / publish (push) Skipped

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>
This commit is contained in:
Jesse_Chen
2026-10-04 18:37:34 +08:00
co-authored by Cursor
parent 64c652eea2
commit baf4ae8b34
15 changed files with 604 additions and 84 deletions
+38 -6
View File
@@ -16567,16 +16567,48 @@
## BUG-1227 | Rath 版双主星(天蝎、水瓶)没按原书 p.43 (a)–(e) 选
- 状态:blocked(任务书红线 2:照裁定实现会让 Table 17 年数低于现状,按约定停下;分支未改 `_lord`)
- 状态:resolved(第七轮裁定问 1 选 A,推翻第五批红线 2 的 Table 17 年数底线;分支 `codex/astrologer-rulings-batch6-20261004`)
- 首次发现 / 最近更新:2026-10-03 / 2026-10-04
- 来源:第三批 BUG-1218 验收(软件表双主星 8/10);占星师第六轮裁定问 6a(p.43 (d)、p.116);任务书 T1。
- 影响面:`scripts/narayana_rath._lord`(仍调冻结 `narayana_dasha._resolve_narayana_lord(…, "jaimini_dual_lord_source_v1")`)→ 天蝎 / 水瓶大运年数、第 2 级宫主角色、第 5–7 级、子运起点。
- 影响面:`scripts/narayana_rath.resolve_dual_lord`(第五批仍调冻结的 `jaimini_dual_lord_source_v1`)→ 天蝎 / 水瓶大运年数、第 2 级宫主角色、第 5–7 级、子运起点。展示层 `narayana_legacy_label`。不进打分。
- 现象:原书 5 张软件表的双主星对上 8/10:Table 23 水瓶原书土星、我们罗睺;Table 25 天蝎原书计都、我们火星。
- 原书原文(PDF Page 40 / 41,书页 p.43;BPHS 46.158–163):(a) 两主都在本宫 → 12 年;(b) 两主同在另一宫 → 从本宫数到该宫;(c) 一主在本宫、另一主在别处 → 取在别处的那颗;(d) 两主分落别的星座 → 比两主所落星座的力量(脚注 33 指第 1 章力量来源),强者给年数;(e) 两宫力量相等 → 取给出年数较多的那颗(原书例:计都射手、火星处女、都无同宫 → 取火星 10 年)。p.116:两主同宫时经度高者强。
- 试算(研究,未落地;实现见研究分支 `codex/narayana-rath-rectification-trial-20261004` 的 `--dual-lord p43`):(a)–(e) 按上文,(d) 用本模块 7 级 `compare_signs`(叠加 BUG-1224 罗计尊贵)。软件表双主星 **9/10**(Table 23 水瓶改对,土星:摩羯 2 角色 > 双子 1 角色,第 2 级;Table 25 天蝎改对,计都:双鱼计都 Moolatrikona,第 3 级),新错 Table 23 天蝎:处女(火星)对射手(计都),射手得木星两角色、第 2 级判计都,原书判火星。**Table 17 年数 12/12 → 10/12**:同一张标准盘的原书 Table 17 / Chart 3 天蝎取火星 10 年、水瓶取罗睺 8 年,(d) 给计都 1 年、土星 1 年。强弱 28/30、Table 25 子运 24/36 不变。
- 根因(原书内部不一致):标准盘(Table 17 / 23 同一出生资料)三处说法互相冲突——p.43 (e) 的例句与 Chart 3 把「计都射手、火星处女」当作力量相等(取火星 10 年),但按第 2 级(第二来源)射手得木星两角色、按 BUG-1224 计都在射手入旺,任何逐级比较都判计都;Chart 3 水瓶取罗睺 8 年(注「土星在本宫摩羯 Rule 5(c)」,即把土星落自己另一宫当作 (c) 的「在本宫」),而同书 Table 23 软件判定土星强。没有一条通则能同时满足 Table 17 年数与 Table 23 双主星。占星师答复里「Table 23 水瓶:金牛 3 星 > 处女 1 星」的推算对应的是 Table 25(Wadiyar)的水瓶(土星金牛、罗睺处女),Table 23 本盘是土星摩羯、罗睺双子。
- 处理:按任务书红线 2「任一项低于现状就停下」不落地;`_lord` 不变(双主星仍 8/10),Table 17 年数保持 12/12。等产品 / 占星师决定:(1) Table 17 / Chart 3 与 Table 23 以哪处为准;(2) (d) 的「力量」是否只比第 1 级(星数),平了即走 (e)——这一读法 Table 17 年数全对,但 Table 24 天蝎、Table 25 天蝎会错(7/10)。
- 验证:试算脚本与结果见进度记录 T1 节;`tests/test_narayana_rath_book_tables.py` 仍钉住 8/10 与 12/12。
- 相关记录:BUG-1218、BUG-1224。
- 处理(第五批,已推翻):当时按红线 2 停下,`_lord` 仍走冻结的 `jaimini_dual_lord_source_v1`(双主星 8/10,Table 17 年数 12/12)。
- 修复:第七轮书面回复经产品负责人采用,问 1 选 A(正文优先,不倒改通则去凑 Table 17)。`narayana_rath.resolve_dual_lord` 在本模块实现 p.43 (a)–(e):(d) 用本模块 7 级 `compare_signs`;(c) 只认天蝎 / 水瓶本身;(a)(b) 同宫身份按 p.116,只倒算计都,经度全同返回未决;比较途中再遇到同一双主星则返回未决。不改冻结的 `_resolve_narayana_lord`。软件表双主星 9/10,唯一不符是 Table 23 天蝎(书火星、第 2 级计都)。Table 17 年数 10/12(天蝎计都 2 = 基本 1 加旺 1,水瓶土星 1),不再作通过线。
- 验证:`tests/test_narayana_rath_book_tables.py`、`tests/test_narayana_rath_rules.py`(火星白羊 / 土星摩羯不触发 (c);同宫经度;计都 0° 比较值为 30;全同未决;遇环未决)。
- 防复发:上述测试钉住 9/10 与 Table 23 天蝎这一条不符;年数断言钉新值,不钉书印。
- 相关记录:BUG-1218、BUG-1224、BUG-1228、BUG-1229。
- 复发自:无
- 修复版本:—(blocked)
- 修复版本:待发布
## BUG-1228 | Rath 版第 5 级把罗睺度数也倒算
- 状态:resolved(分支 `codex/astrologer-rulings-batch6-20261004`)
- 首次发现 / 最近更新:2026-10-04 / 2026-10-04
- 来源:第七轮裁定问 3(p.71 正文与脚注 42、p.116 Rule 2)。任务书 T2。
- 影响面:`scripts/narayana_rath._strength_degree`(第 5 级宫主度数,以及同宫双主星比经度)。Chara Karaka 八星排序不改。
- 现象:强弱比较里罗睺、计都都用 30 − 宫内度数。原书脚注 42 写明强弱计算只倒算计都。
- 根因:第 5 级沿用了 Chara Karaka 对罗睺的倒算。
- 修复:实体星与罗睺用原始宫内度数,逆行也不倒算;只有计都用 30 − 宫内度数。计都在 0° 时比较值为 30,不再取模成 0。完全相等返回未决。
- 验证:原书软件表 30 对的胜者与改前相同,仍是 28/30(不符仍是 Wadiyar 两对,第 5 级)。新增同宫经度测试。
- 防复发:`tests/test_narayana_rath_rules.py` 的经度用例。
- 相关记录:BUG-1227。
- 复发自:无
- 修复版本:待发布
## BUG-1229 | Rath 版罗计为宫主时,入旺不加算、落陷不减年
- 状态:resolved(分支 `codex/astrologer-rulings-batch6-20261004`)
- 首次发现 / 最近更新:2026-10-04 / 2026-10-04
- 来源:第七轮裁定对 p.40 (a) 的推论(产品负责人采用问 1 的「正文优先」)。原书 Chart 3 水瓶罗睺 8 + 1 = 9 年。任务书 T3。
- 影响面:`scripts/narayana_rath.rath_period_years`(大运年数与强弱第 7 级)。冻结的 `calculate_narayana_period_years` 不改,七颗实体星仍走它。
- 现象:年数旺陷表只有七颗实体星。罗睺在双子、计都在射手不加 1 年;罗睺在射手、计都在双子不减 1 年。
- 根因:Phalita 旺陷没有接到 Rath 版年数上。
- 修复:基本年数仍用奇偶足计数。罗计按 Phalita 入旺 +1、落陷 −1(罗睺旺双子 / 陷射手,计都旺射手 / 陷双子),再截在 0–12。输出分栏 `lord`、`base_years`、`dignity_adjustment`、`years`、`adjustment_source`。
- 验证:Table 17 天蝎计都基本 1、修正 +1、最终 2;Table 18 水瓶罗睺基本 2、修正 −1、最终 1。Chart 3 若取罗睺,水瓶为基本 8、修正 +1、最终 9,与书注一致;本单按 A 取的是土星,最终 1,差异记在进度记录。
- 防复发:`tests/test_narayana_rath_rules.py::test_node_dignity_adjusts_the_period_and_clamps`。
- 相关记录:BUG-1224、BUG-1227。
- 复发自:无
- 修复版本:待发布