diff --git a/BLOCKED.md b/BLOCKED.md index b1efd719..794c9c59 100644 --- a/BLOCKED.md +++ b/BLOCKED.md @@ -1,5 +1,12 @@ # BLOCKED +## TASK-astrologer-rulings-batch5:Rath 双主星 p.43、名人生平回测、`next build`、真机(2026-10-04) + +- **Rath 双主星按 p.43 (a)–(e)(任务书 T1,BUG-1227)**:照裁定实现后原书软件表双主星 8/10 → 9/10,但 Table 17 大运年数 12/12 → 10/12(天蝎 10 → 1、水瓶 8 → 1),低于验收底线,按红线 2 停下、未落地。原书标准盘 Table 17 / Chart 3 / p.43 (e) 例与同书 Table 23 软件判定互相冲突,需产品与占星师二选一(见进度记录 T1 节)。替代证据:试算脚本与三种读法对照表。 +- **名人生平回测**:年主 blocked 时的卡片文案、参考版报告子运方向一行是新的;正常盘卡片只多了引擎内部字段(不进卡)。本机无模型凭据,未跑。替代证据:两份咨询 golden 真实引擎重采,Rath 起运宫与大运 12 张盘全不变;前端全量失败清单与开工基线逐条一致。 +- **`next build` / 首屏 gzip**:`frontend/node_modules` 为工作树外软链,Turbopack 拒绝;本单不改页面与路由,未测。 +- **真机**:参考版报告「Narayana Dasha 交叉时间轴」段的「子运方向」行需登录态浏览器查看;年主 blocked 只在年盘不全时出现,线上难以构造。 + ## TASK-astrologer-rulings-batch4:名人生平回测、`next build`(2026-10-03) - **名人生平回测**:全部领域卡多了 Rath 版当前大运(短字段:标签、起运宫、大运星座、起止年龄),年运 / 时运卡的 Rath 字段收短。本机无模型凭据,按 `docs/testing/consult-affliction-backtest-20261001.md` 重跑一轮,核对模型是否把 Rath 大运当结论依据、严重冲突数不高于第七轮。替代证据:两份咨询 golden 用真实引擎重采逐字节不变;9 盘 × 12 领域卡长度表见进度记录;前端全量失败清单与开工基线逐条一致。 diff --git a/CHANGELOG.md b/CHANGELOG.md index 3905ce71..fad355eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # 印度占星 Skill 更新日志 +## 2026-10-04 — 占星师口径第五批:年主选不出时不再用 Muntha 主星顶替;Rath 版 Narayana 计罗计尊贵、标出子运方向分歧与原书软件特例(未上线) + +- 年运:年盘不全、年主选不出时,以前会拿 Muntha 主星顶上(「年盘不全,暂用 Muntha 主星」),现在不再给伪年主,数据卡和报告年运段写「年主暂无法确定(原因)」,Tri-Pataka 随之不算;Mudda 月份分段不受影响。正常年盘不变:9 位公开名人 2026 年年主、Tri-Pataka、Mudda 改前改后完全相同(BUG-1223)。 +- Sanjay Rath 版 Narayana(并列参考,不进打分):比强弱第 3 级开始计罗睺、计都的尊贵(按原书 Table 9:本宫罗睺水瓶 / 计都天蝎,Moolatrikona 处女 / 双鱼,旺用 Phalita 运的双子 / 射手),落陷算作比无尊贵更弱(原书 p.67「计都落陷,弱于火星」现在能复现)(BUG-1224)。 +- 子运方向核对与原书第 51 页例外一致(土星在大运宫一律顺行、计都在大运宫反向);参考版报告当前大运的子运表上方多一行,写明方向依据,并标出原书另两种说法(p.47 / J.S. 1.1.34、J.S. 2.4.31–32)为「书内分歧,未采用」(BUG-1225)。 +- Wadiyar 盘两对(双子 / 射手、处女 / 双鱼)登记为「原书软件判定差异」(原书软件用了第 7 级 Rule 8),保持通则结果(BUG-1226)。 +- 天蝎 / 水瓶双主星按原书 p.43 (d) 改选**没有上线**:试算能把原书软件表的双主星从 8/10 提到 9/10,但同一张标准盘的原书大运年数(Table 17)会从 12/12 降到 10/12,原书内部前后不一致,按约定停下,待产品与占星师决定(BUG-1227)。 +- Rath 版替换校正打分的 v5 重试算只在研究分支做,结果见 `docs/research/narayana_rath_rectification_trial_2026_10_03.md`「10-04 重跑」;打分不换。 +- 生时校正:打分用到的文件没有改动,分数与算法版本不变,v5 77 例改前改后逐项相同。名人生平回测因本机无模型凭据未跑(见 BLOCKED)。Skill 版本不变;不改数据库结构;不改对话提示词。 + ## 2026-10-03 — 占星师口径第四批:所有领域的数据卡都并列 Rath 版 Narayana 当前大运;年运强度改用 Tajika 五分力量(未上线) - 婚恋、事业、财富、健康、父母等所有领域的咨询数据卡,都在旧算法 Narayana 旁边并列 Sanjay Rath 版的当前大运(只放标签、起运宫、大运星座、起止年龄;大运宫主、第几级判出与子运留在报告)。以前只有年运、时运卡有。数据卡字数上限按产品决定从 12,000 提到 12,500、加方法清单的总量从 18,000 提到 18,500;9 位公开名人 × 12 个领域实测最大 10,244 / 13,694(BUG-1221)。 diff --git a/docs/BUG_HISTORY.md b/docs/BUG_HISTORY.md index 601a5fd3..effcc2a5 100644 --- a/docs/BUG_HISTORY.md +++ b/docs/BUG_HISTORY.md @@ -16502,3 +16502,80 @@ - 相关记录:BUG-1217、BUG-1214、BUG-1219。 - 复发自:无 - 修复版本:待发布 + +## BUG-1223 | 年主选不出时用 Muntha 主星顶替,输出一个伪年主 + +- 状态:resolved(分支 `codex/astrologer-rulings-batch5-20261004`,未推送;待验收) +- 首次发现 / 最近更新:2026-10-04 / 2026-10-04 +- 来源:任务书 `TASK-astrologer-rulings-batch5-20261004` T5;产品负责人 2026-10-04「年主选不出时不再用 Muntha 主星顶替,与上游对齐」;上游 `yinduzhanxing` `03bea6ed` `docs/research/tajika_shared_entrypoint_repair_2026_10_03.md` 第 3 条。 +- 影响面:`scripts/tajika_year_lord.select_annual_year_lord`、`jyotish_engine._tajika_annual_core`(`cmd_tajika`、全量解读 Step 9)、`solar_return.solar_return_full_report`(年主与 Tri-Pataka)、`annual_tajika_pack`(年主字段)、咨询年运层(数据卡)、读者版 / 参考版报告年运段。 +- 现象:Panchadhikari 被 block(年盘缺太阳 / 月亮、五分力量算不出、五类候选都不在年盘)或返照盘算不出时,年主写成 Muntha 主星(`selection_basis: fallback_muntha_sign_lord_after_panchadhikari_block`,依据句「年盘不全,暂用 Muntha 主星」),Tri-Pataka 也拿它算。 +- 触发条件:年盘不全。正常年盘不触发(9 位公开名人 2026 年 0/9)。 +- 根因:BUG-1214 接入 Panchadhikari 时保留了 BUG-1212 以前的 Muntha 主星兜底,只是写明 fallback;上游已改为直接 blocked。 +- 修复:选不出时返回 `status: "blocked"`、`reason`、`year_lord: None`、`selection_basis: panchadhikari_blocked_no_year_lord`,依据句「年主暂无法确定(原因)」及英文对照(`tajika_year_lord.blocked_text` / `blocked_year_lord`);`cmd_tajika` 返照盘算不出时同样 blocked(不再调 `calc_year_lord`)。没有年主时 Tri-Pataka 写 `blocked: year_lord_blocked`(不再用空串或默认木星)。`annual_tajika_pack` 两个生产者都 blocked 时字段保留生产者原因(`reason`、`blocked_detail`),年运卡不因年主 blocked 整卡失效:`varshesha` 为空、`varshesha_basis` 为该句;报告年主表「Selection basis」显示该句,英文词表补齐 6 句。Mudda 与年主无关(BUG-1216),不受影响。 +- 验证:新增 `tests/test_year_lord_blocked_no_fallback.py` 7 条(选法 blocked 无替身;太阳返照生产者年主与 Tri-Pataka blocked、Mudda 照常;`cmd_tajika` 无年盘 blocked;年运包与数据卡显示该句;中英报告;英文对照;生产者里不再出现 fallback 标记)。9 位公开名人 2026 年两个生产者的年主、Tri-Pataka、Mudda 改前改后逐字节相同(脚本见进度记录)。 +- 防复发:上述测试。 +- 相关记录:BUG-1212、BUG-1214、BUG-1216、BUG-1217。 +- 复发自:无 +- 修复版本:待发布 + +## BUG-1224 | Rath 版 Narayana 第 3 级不计罗睺、计都的尊贵,也不计落陷 + +- 状态:resolved(分支 `codex/astrologer-rulings-batch5-20261004`,未推送;待验收) +- 首次发现 / 最近更新:2026-10-04 / 2026-10-04 +- 来源:占星师第六轮裁定(2026-10-04)问 2,书页 Rath《Narayana Dasa》Table 9 p.41–42、p.67;任务书 T2。 +- 影响面:`scripts/narayana_rath._occupant_dignity` → `sign_strength` 第 3 级 → 起运宫、子运起点(只在 Rath 版内部)。本命庙旺表不动(BUG-1211「罗计不设本宫」在 D1 主路径仍适用)。 +- 现象:`_occupant_dignity` 对罗睺、计都直接返回 0;落陷与无尊贵同为 0。原书 p.67(Indira 盘)「计都落陷,按第一来源 Rule (3) 弱于火星」复现不出:狮子(火星)对双子(计都)此前在第 4 级按双体宫 > 固定宫判双子。 +- 根因:第五轮没有罗计尊贵的裁定,实现时按「不计」处理;落陷没有单列档位。 +- 修复:罗计按 Rath Table 9:本宫罗睺水瓶 / 计都天蝎,Moolatrikona 罗睺处女 / 计都双鱼,旺取 Phalita 运那一组(罗睺双子 / 计都射手;金牛 / 天蝎那组只用于 Ayur 运),落陷在旺宫对宫。第 3 级档位:旺 3 > Moolatrikona 2 > 本宫 1 > 无 0 > 落陷 −1,仍先比最高档、再比有尊贵的星数(第六轮问 2「比法维持现状」)。落陷档对九颗星一律适用(Rule 3 是通则;这一点列入下轮问题)。 +- 验证:`tests/test_narayana_rath_rules.py` 新增:罗计与火星各档位 16 例;p.67 原书盘狮子对双子在第 3 级判狮子;构造盘同一结论;罗计尊贵只在 Rath 模块内。既有第 7 级构造盘因太阳落陷天秤会在第 3 级分出,日月互换后仍演示第 7 级(三栏写在测试注释)。验收底线不变:Table 15、17 通则自动复现,Table 18 显式 12/12,软件表 28/30,Table 25 子运 24/36。12 张 golden 盘的 Rath 起运宫与大运不变(golden 只多了 `source` 文字)。 +- 防复发:上述测试。 +- 相关记录:BUG-1211、BUG-1218。 +- 复发自:无 +- 修复版本:待发布 + +## BUG-1225 | Rath 版 Narayana 子运方向:p.51 例外未核对,书内另两种说法未标注 + +- 状态:resolved(分支 `codex/astrologer-rulings-batch5-20261004`,未推送;待验收) +- 首次发现 / 最近更新:2026-10-04 / 2026-10-04 +- 来源:占星师第六轮裁定问 7(Table 25 的做法 + p.51 土星 / 计都例外;p.47 正文、J.S. 2.4.31–32 标为书内分歧);任务书 T3。 +- 影响面:`scripts/narayana_rath.antardasha`(`antardasha_start_rule.direction`)、`narayana_legacy_label.rath_report_lines_zh`(参考版报告一行)、`pl9_reader_english_terms`。 +- 核对结果:`_ad_order_profile` 与裁定一致,未改:默认 Table 13(方向看子运起点星座奇偶,12 个起点逐一验证);大运星座有土星 → Table 11(一律顺行);有计都 → Table 14(Table 13 的反向);同在 → 计都优先(产品已定)。 +- 缺口:输出里没有写方向依据,也没有标出原书另两种说法(p.47 / J.S. 1.1.34「看大运星座奇偶」;J.S. 2.4.31–32「大运星座为奇或其宫主落奇宫则顺行」)与 Table 25 不符。 +- 修复:每个子运规则带 `direction`:实际方向、规则(中英)、`book_divergence` 两条(来源、说法中英、该说法给出的方向、是否与实际不同、`applied: false`)。参考版报告当前大运子运表上方加一行「子运方向:…(书内分歧,未采用:…)」,英文词表补齐。 +- 验证:新增测试:12 个起点的 Table 13 / 14 / 11 方向;计都在大运宫的构造盘(反向、与 Table 13 同起点首步相反)、土计同在走 Table 14 带「计都优先」;`book_divergence` 两条字段;原书 Table 25 金牛大运(土星在内)12/12 且 p.47 说法会给逆行(`differs: true`)。英文版 Rath 行无中文(既有测试)。 +- 防复发:上述测试。 +- 相关记录:BUG-1218。 +- 复发自:无 +- 修复版本:待发布 + +## BUG-1226 | Wadiyar 盘两对强弱与原书软件判定不同,输出未说明原因 + +- 状态:resolved(分支 `codex/astrologer-rulings-batch5-20261004`,未推送;待验收) +- 首次发现 / 最近更新:2026-10-04 / 2026-10-04 +- 来源:占星师第六轮裁定问 6b(p.36、p.95);任务书 T4。 +- 影响面:`scripts/narayana_rath`(`BOOK_SOFTWARE_DIFFERENCES`、`calc_narayana_rath` 输出 `known_book_differences`)。 +- 现象:原书 Table 25(Krishnaraja Wadiyar IV)软件判定取双子(对射手)、处女(对双鱼);7 级通则在第 5 级(水星 1.3° 对木星 10.0°)取射手、双鱼。此前只在测试里列为「预期不符」。 +- 根因:占星师确认这是原书软件用了第 7 级 Rule 8,属软件特例;通则无误。 +- 修复:保持通则结果;登记 `book_software_rule8_exception`(表、两对、原书 / 通则各取哪宫、第几级、中英说明、裁定出处),每次 Rath 输出都带 `known_book_differences`。 +- 验证:`tests/test_narayana_rath_book_tables.py` 新增:软件表 30 对里不符的恰是登记的两对,且都在第 5 级判出通则结果;输出带该登记。 +- 防复发:上述测试。 +- 相关记录:BUG-1218。 +- 复发自:无 +- 修复版本:—(标注) + +## BUG-1227 | Rath 版双主星(天蝎、水瓶)没按原书 p.43 (a)–(e) 选 + +- 状态:blocked(任务书红线 2:照裁定实现会让 Table 17 年数低于现状,按约定停下;分支未改 `_lord`) +- 首次发现 / 最近更新: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 级、子运起点。 +- 现象:原书 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。 +- 复发自:无 +- 修复版本:—(blocked) diff --git a/docs/research/narayana_rath_rectification_trial_2026_10_03.md b/docs/research/narayana_rath_rectification_trial_2026_10_03.md index 102e7415..537041bf 100644 --- a/docs/research/narayana_rath_rectification_trial_2026_10_03.md +++ b/docs/research/narayana_rath_rectification_trial_2026_10_03.md @@ -1,5 +1,35 @@ # Narayana Rath 版替换校正试算(任务书 T5)— 2026-10-03 +## 10-04 重跑(第五批 T6,2026-10-04) + +**结论先行:结果与 10-03 基本相同,R1、R2 仍都有档位降超过 1pt,按口径都判「变差」,不建议替换。** 第五批落地的罗计尊贵(BUG-1224)、子运方向标注(BUG-1225)、Wadiyar 标注(BUG-1226)几乎不改变打分:R1 的输出文件与 10-03 逐项相同;R2 只有 1 例(`paul_ryan_1970_aa_v4_holdout`)±30 / ±60 区间略窄,三段头名、覆盖、宽度中位数全部不变。双主星 p.43 读法(T1,未落地)作附加试算 R2P:±30 / ±60 回放头名各再降 1.3pt,不比 R2 好。是否替换由产品决定。 + +- 分支 `codex/narayana-rath-rectification-trial-20261004`,基于第五批 `1dd8e11b`(T2–T4;T1 未落地):`d1f796fa` cherry-pick 第三批开关 `e3e9befc`,`86e55514` 补 10-04 说明与 `--dual-lord p43`(研究脚本内把 `narayana_rath._lord` 换成 p.43 (a)–(e),(d) 用 7 级 `compare_signs`)。**不合入、未推送**。 +- 基线:同一提交 `1dd8e11b` 不加开关的 `holdout_v5_baseline.py`,与开工 `77645ce2` 逐项相同(sweep / cluster_width / summary 三文件 `IDENTICAL`),也与 10-03 基线数字相同。 +- 每个变体在各自的一次性工作树里跑(同一工作树并发会互删 `_holdout_v5_baseline_tmp_*` 数据集副本,首次并发的 R1 因此读到空文件中断,已在独立工作树重跑)。起运宫平局退回、子运平局退回仍为 0 次;R2P 的双主星全部由 (d) 判出。 + +| 指标(v5 77 例) | 档 | 基线 | R1 | R2 | R2P(R2 + p.43 双主星) | 10-03 R1 / R2 | +| --- | --- | --- | --- | --- | --- | --- | +| 先验头名 | ±10 | 0.1818 | 0.1948(+1.3) | 0.1818(0) | 0.1818(0) | 同 / 同 | +| | ±30 | 0.0909 | 0.0909(0) | 0.1039(+1.3) | 0.1039(+1.3) | 同 / 同 | +| | ±60 | 0.0779 | 0.0779(0) | 0.0909(+1.3) | 0.0909(+1.3) | 同 / 同 | +| 六题回放头名 | ±10 | 0.6364 | 0.6364(0) | 0.6753(+3.9) | 0.6753(+3.9) | 同 / 同 | +| | ±30 | 0.4935 | 0.5065(+1.3) | **0.4805(−1.3)** | **0.4675(−2.6)** | 同 / 同 | +| | ±60 | 0.3117 | 0.3636(+5.2) | 0.4156(+10.4) | 0.4026(+9.1) | 同 / 同 | +| 线上区间回放头名 | ±10 | 0.6623 | 0.6623(0) | 0.6883(+2.6) | 0.6883(+2.6) | 同 / 同 | +| | ±30 | 0.5584 | **0.5455(−1.3)** | **0.5065(−5.2)** | **0.5065(−5.2)** | 同 / 同 | +| | ±60 | 0.4026 | 0.4286(+2.6) | 0.4286(+2.6) | 0.4156(+1.3) | 同 / 同 | +| 覆盖(回放) | ±10 | 0.987 | 0.987 | 0.987 | 0.987 | 同 / 同 | +| | ±30 | 0.987 | 0.987 | **0.974(−1.3)** | **0.974(−1.3)** | 同 / 同 | +| | ±60 | 0.987 | **0.961(−2.6)** | 0.987 | 0.987 | 同 / 同 | +| 中位宽度(回放,分钟) | ±10 / ±30 / ±60 | 13 / 33 / 65 | 11 / 37 / 73 | 13 / 35 / 69 | 13 / 35 / 69 | 同 / 同 | +| futile 真值在区间(truth) | ±10 / ±30 / ±60 | 76 / 75 / 76 | 76 / 75 / **73** | 76 / **74** / 76 | 76 / 75 / 76 | 同 / 同 | + +(括号内为相对基线的百分点变化;粗体为降幅超过 1pt 或例数减少。) + +- 77 例里至少一档有变化:R1 74 例、R2 73 例、R2P 73 例;变化最大的 5 例与 10-03 相同(见下节表)。 +- 起运宫由第几级决定(大运调用):R1 第 1 级 68.5%、第 2 级 15.9%、第 5 级 14.8%、第 3 级 0.85%(10-03 同比例);第 4、6、7 级仍未起作用。 + ## 第三批 T5 结果(2026-10-03 晚,红线 3 修订后执行) **结论先行:两种替换都不是净提升,按任务书口径(任一档降超过 1pt 即为变差)R1、R2 都判「变差」,不建议现在替换打分里的 Narayana。** R2(大运与子运都换)在 ±10 与 ±60 上明显变好(六题回放头名 ±60 +10.4pt),但 ±30 回放头名降 5.2pt、覆盖降 1.3pt;R1(只换大运)±60 覆盖降 2.6pt、futile ±60 真值在区间少 3 例。77 例里 73–74 例至少有一档结果变化,说明替换对打分影响很大、方向不一致。是否替换由产品决定;若要继续,建议先等占星师回答子运方向与 Wadiyar 两对(会改变 R2 的子运),再重跑。 diff --git a/docs/tasks/PROGRESS-astrologer-rulings-batch5-20261004.md b/docs/tasks/PROGRESS-astrologer-rulings-batch5-20261004.md new file mode 100644 index 00000000..b76c156c --- /dev/null +++ b/docs/tasks/PROGRESS-astrologer-rulings-batch5-20261004.md @@ -0,0 +1,171 @@ +# PROGRESS:占星师第六轮落地(Rath 罗计尊贵、子运方向、Wadiyar 标注;年主不再顶替;双主星 p.43 停下)+ v5 重试算 — 2026-10-04 + +- 任务书:`docs/tasks/TASK-astrologer-rulings-batch5-20261004.md`。执行方:Claude 子代理(产品负责人要求由子代理执行)。 +- 分支 `codex/astrologer-rulings-batch5-20261004`,工作树 `.worktrees/astrologer-rulings-batch5-20261004`,基线 `origin/staging` = `77645ce2`。**未推送**。 +- 上游:`/workspace/yinduzhanxing` `origin/main` = `03bea6ed`(只读,未提交、未推送)。 +- BUG 编号:开工时最大号 BUG-1222;本单 BUG-1223~1227(按落地先后编号:T5 1223、T2 1224、T3 1225、T4 1226、T1 1227)。 + +## 结论 + +| 任务 | 结果 | +| --- | --- | +| T1 双主星按 p.43 (a)–(e) | **按红线 2 停下,未落地(BUG-1227 blocked)**。照裁定实现后软件表双主星 8/10 → 9/10,但 Table 17 大运年数 12/12 → 10/12(天蝎 10→1、水瓶 8→1),低于现状。原书标准盘自相矛盾,详见 T1 节 | +| T5 年主选不出时不再顶替 | 完成(BUG-1223)。blocked + 原因,卡片 / 报告写「年主暂无法确定(原因)」;9 盘两个生产者改前改后逐字节相同 | +| T2 罗计尊贵(只在 Rath 内) | 完成(BUG-1224)。p.67「计都落陷弱于火星」复现(第 3 级);验收底线全不变 | +| T3 子运方向核对与分歧标注 | 完成(BUG-1225)。现行实现与 p.51 一致,未改;输出加 `direction.book_divergence`,参考版报告加一行 | +| T4 Wadiyar 两对标注 | 完成(BUG-1226)。`book_software_rule8_exception` 登记并随输出 | +| T7 记录 | BUG-1223~1227、CHANGELOG、本文件、任务索引、BLOCKED、研究记录「10-04 重跑」 | +| T6 v5 重试算 | 见 T6 节(研究分支 `codex/narayana-rath-rectification-trial-20261004`,不合入、未推送) | +| 生时校正 | 冻结身份文件(`production_scoring_files` 23 个)零改动,无需按 ERR-110 重新冻结;v5 77 例改前改后逐项相同;不升打分版本 | + +## 提交与任务对应 + +| 任务 | 提交 | BUG | +| --- | --- | --- | +| T5 | `7dda1b45` | BUG-1223 | +| T2 | `61bd4425`(含两份 golden 重采:只多 `rath.source` 文字) | BUG-1224 | +| T3 | `57ef4560`(含 golden 重采:只多 `current_md_antardasha_rule.direction`) | BUG-1225 | +| T4 | `1dd8e11b` | BUG-1226 | +| T1 / T7 记录 | 本分支最后一个 docs 提交(T1 只改测试注释,不改代码) | BUG-1227 | +| T6(研究分支) | `d1f796fa`(cherry-pick 第三批开关 `e3e9befc`)、`86e55514`(10-04 说明 + `--dual-lord p43` 试验),基于 `1dd8e11b` | — | + +## 环境 + +| 项 | 实际 | +| --- | --- | +| Python | 无 `.venv`,系统 `python3` | +| Node | `/exec-daemon/node` v22.14.0;`frontend/node_modules` 软链到同 lockfile 的 `.worktrees/consult-career-yoga-functional-20261002/frontend/node_modules` | +| 磁盘 | 开工 44G 可用;大评测前 43G | +| 原书 | p.43 原文取自另一会话 scratchpad 已有的《Narayana Dasa》PDF 文本(PDF Page 39–41 = 书页 p.42–44;只读,未入库) | +| 一次性工作树 | `.worktrees/batch5-baseline-77645ce2`(基线 npm test、v5、9 盘年主)、`.worktrees/batch5-eval-1dd8e11b`(改后 v5)、`.worktrees/batch5-trial-r1`、`.worktrees/batch5-trial-r2p`(研究分支同一提交,避免同一工作树并发评测互删临时数据集),均 `--detach`,用完删除;研究分支工作树 `.worktrees/narayana-rath-trial-20261004` 保留供复跑 | +| 模型 key | 无 → 名人生平回测未跑(BLOCKED) | +| `next build` | 未跑(node_modules 软链,Turbopack 拒绝;不改页面与路由) | + +## T1 双主星(BUG-1227,blocked) + +原书 p.43(BPHS 46.158–163)原文要点(PDF Page 40–41): + +| 条 | 原文要点 | 实现(试算) | +| --- | --- | --- | +| (a) | 两主都在本宫 → 12 年 | 两主同宫,p.116 经度高者(取 Chara Karaka 度数,罗计 30−度数) | +| (b) | 两主同在另一宫 → 从本宫数到该宫 | 同上 | +| (c) | 一主在本宫、一主在别处 → 取在别处的那颗 | 同 | +| (d) | 两主分落别宫 → 比两主所落星座的力量(脚注 33 → 第 1 章力量来源),强者给年数 | 本模块 7 级 `compare_signs`(含 BUG-1224) | +| (e) | 两宫力量相等 → 取年数多的那颗(原书例:计都射手、火星处女、无同宫 → 火星 10 年) | 同 | + +三种读法在原书各表上的结果(脚本 `p43_run.py`,scratchpad;研究分支 `--dual-lord p43` 即「全级」读法): + +| 读法 | 软件表双主星 | 不符 | Table 15 年数 | Table 17 年数 | Table 18 显式 | 强弱 30 对 | Table 25 子运 | +| --- | --- | --- | --- | --- | --- | --- | --- | +| 现状(冻结 `jaimini_dual_lord_source_v1`) | 8/10 | T23 水瓶、T25 天蝎 | 12/12 | **12/12** | 12/12 | 28/30 | 24/36 | +| p.43 (d) 用 7 级全比(裁定字面) | **9/10** | T23 天蝎(书火星、我们计都:射手得木星两角色,第 2 级) | 12/12 | **10/12**(天蝎 10→1 计都、水瓶 8→1 土星) | 12/12 | 28/30 | 24/36 | +| p.43 (d) 只比第 1 级星数,平了走 (e) | 7/10 | T23 水瓶、T24 天蝎、T25 天蝎 | 12/12 | 12/12 | 12/12 | 28/30 | 24/36 | + +逐条命中(7 级全比读法,含罗计尊贵):Table 22 水瓶 (d) 第 1 级土星 ✓、天蝎 (d) 第 1 级火星 ✓;Table 23 水瓶 (d) 第 2 级土星 ✓、天蝎 (d) 第 2 级计都 ✗;Table 24 水瓶 (d) 第 2 级土星 ✓、天蝎 (d) 第 2 级火星 ✓;Table 25 水瓶 (d) 第 1 级土星 ✓、天蝎 (d) 第 3 级计都 ✓(计都在双鱼 Moolatrikona);Table 27 水瓶 (d) 第 1 级罗睺 ✓、天蝎 (d) 第 3 级火星 ✓(计都在双子落陷,p.67 原句)。(a)(b)(c)(e) 在 10 个样本里没有命中(Table 15 天蝎走 (c),但不在软件表里)。 + +**为什么停下**:标准盘(Table 17 与 Table 23 是同一出生资料)的原书三处说法互相冲突。 + +1. p.43 (e) 的例句与 Chart 3(Table 17 的年数)把「计都射手、火星处女」当作力量相等,取火星 10 年;但任何逐级比较都判计都(第 2 级射手得木星两个角色;第 3 级计都在射手入旺),Table 23 软件判定也取火星。 +2. Chart 3 水瓶取罗睺 8 年,注「Rahu and Saturn are both alone, but Saturn is in own sign Capricorn — Rule 5(c)」,即把土星落自己的另一宫当作 (c) 的「在本宫」;同书 Table 23 软件判定却是土星强。 + +没有一条通则能同时满足 Table 17 年数与 Table 23 双主星。照裁定字面实现,Table 17 年数就低于现状,按红线 2 停下;`_lord` 不变,测试注释写明(`tests/test_narayana_rath_book_tables.py`)。另:占星师答复里「Table 23 水瓶 → 土星(金牛 3 星 > 处女 1 星)」对应的是 Table 25(Wadiyar)的水瓶,Table 23 本盘是土星摩羯、罗睺双子(她的结论土星仍对,理由按摩羯 2 角色 > 双子 1 角色,第 2 级)。 + +## T5 年主不再顶替(BUG-1223) + +- `select_annual_year_lord`:Panchadhikari 被 block → `status: blocked`、`reason`、`year_lord: None`、`selection_basis: panchadhikari_blocked_no_year_lord`、依据句「年主暂无法确定(原因)」与英文。原因 5 种有中英文(年盘缺日月 / 缺行星五分力量算不出 / 五类候选都不在年盘 / 年盘无法计算 / 缺 Muntha 星座),其余「年盘数据不全」。 +- `cmd_tajika`(全量解读 Step 9 同一函数):返照盘算不出时同样 blocked,不再调 `calc_year_lord`;没有年主时 Tri-Pataka blocked(上游此处仍默认木星,本仓不跟)。`solar_return_full_report` 同。 +- `annual_tajika_pack`:两个生产者都 blocked 时字段保留生产者的原因与那一句(`blocked_detail`),简报行写那一句。 +- 咨询年运层:年主 blocked 不再让整张年运卡失效;`varshesha: null`、`varshesha_basis` 为那一句;Mudda 照常。 +- 报告:年主表「Varshesha」为 `-`,「Selection basis」为那一句;英文词表补 6 句。 +- 9 位公开名人 2026 年(raman):两个生产者的年主、候选、Tri-Pataka、Mudda 完整 JSON 改前(`77645ce2`)/ 改后逐字节相同(`IDENTICAL`)。年主:奥巴马水星、皮雅芙火星、泰勒火星、卡罗月亮、小布什月亮、嘉兰火星、梦露火星、乔布斯金星、齐达内火星——0/9 走到 blocked。 + +## T2 罗计尊贵(BUG-1224) + +- `RATH_NODE_DIGNITY`(只在 `narayana_rath`):本宫罗睺水瓶 / 计都天蝎;Moolatrikona 罗睺处女 / 计都双鱼;旺(Phalita)罗睺双子 / 计都射手;落陷在对宫(罗睺射手 / 计都双子)。 +- 第 3 级档位:旺 3 > MT 2 > 本宫 1 > 无 0 > 落陷 −1;仍「先比最高档、再比有尊贵星数」。落陷档对九颗星都适用(原书 Rule 3 是通则、p.67 用的就是它)——这是我方读法,列入下轮问题。 +- p.67 复现:Indira 盘狮子(火星)对双子(计都),改前第 4 级判双子,改后第 3 级判狮子。 +- 改动的既有断言:`tests/test_narayana_rath_rules.py` 第 7 级构造盘——原值太阳 195.37(天秤,落陷)、月亮 223.57;新值日月互换;原因:落陷档会让该例在第 3 级分出,不再演示第 7 级。 +- 本命庙旺测试(`test_node_own_sign_and_fixed_lords.py`,BUG-1211)照常通过;`RATH_NODE_DIGNITY` 没有其他脚本引用(测试)。 + +## T3 子运方向(BUG-1225) + +| 情形 | 原书 / 裁定 | `_ad_order_profile` 现状 | 一致 | +| --- | --- | --- | --- | +| 默认 | 看子运起点星座奇偶(Table 25 做法,第六轮问 7) | Table 13:12 个起点奇顺偶逆(测试逐一验证) | ✓ | +| 土星在大运宫 | p.51:一律顺行 | Table 11(顺行) | ✓ | +| 计都在大运宫 | p.51:反向 | Table 14(= Table 13 反向,测试逐一验证) | ✓ | +| 土计同在 | 产品已定计都优先 | Table 14 + 「PyJHora 兼容:计都优先」 | ✓ | + +- 代码未改顺序,只加输出:`antardasha_start_rule.direction = {direction, rule, rule_text(_en), book_divergence: [p.47 / J.S. 1.1.34 看大运星座奇偶;J.S. 2.4.31–32 看大运星座或其宫主所落星座] }`,每条带该说法给出的方向、`differs`、`applied: false`。 +- 参考版报告当前大运子运表上方加一行「子运方向:…(书内分歧,未采用:…)」,英文词表补齐(既有测试:英文版 Rath 行无中文)。 +- 新增测试:12 起点三表方向;计都在大运宫的构造盘;土计同在;Table 25 金牛大运(土星在内)12/12、p.47 说法给逆行(`differs: true`)。 + +## T4 Wadiyar 两对(BUG-1226) + +`BOOK_SOFTWARE_DIFFERENCES["book_software_rule8_exception"]`:Table 25,双子 / 射手、处女 / 双鱼,原书取双子、处女,通则第 5 级取射手、双鱼,保持通则;中英说明与裁定出处;`calc_narayana_rath` 每次输出带 `known_book_differences`。测试:软件表 30 对里不符的恰为这两对、都在第 5 级。 + +## 验收底线(前 / 后) + +| 项 | 底线 | 开工 `77645ce2` | 改后 `1dd8e11b` | +| --- | --- | --- | --- | +| Table 15 通则 | 巨蟹、12/12、12/12 | 巨蟹(第 1 级)12/12 / 12/12 | 同 | +| Table 17 通则 | 双鱼、12/12、12/12 | 双鱼(第 2 级)12/12 / 12/12 | 同 | +| Table 18 显式巨蟹 | 12/12 | 12/12(通则摩羯第 5 级照实) | 同 | +| 软件表强弱 30 对 | ≥ 28/30 | 28/30(不符 = Wadiyar 两对,第 5 级) | 28/30(同两对,已标 T4) | +| 软件表双主星 | 目标 10/10 | 8/10 | 8/10(T1 停下) | +| Table 25 子运 36 行 | ≥ 24/36 | 巨蟹 12、双子 0、金牛 12 = 24/36 | 同 | + +12 张 golden 盘(咨询 3 + 回测 9)的 Rath 起运宫、大运、当前子运:改前改后不变;golden 只多了 `rath.source` 两个文字字段与 `current_md_antardasha_rule.direction`(真实引擎重采,已提交)。数据卡投影不含这些字段,卡长不变。 + +## 生时校正评测(v5 77 例) + +- 命令:`python3 scripts/research/holdout_v5_baseline.py --dataset v5 --out-dir --json-out /summary.json`,`PYTHONHASHSEED=0`、`JYOTISH_API_CHART_CACHE_TTL_SECONDS=0`;改前 `77645ce2`、改后 `1dd8e11b`(引擎代码终版),各在一次性 `--detach` 工作树。本分支没有开关,改前改后即「开关关闭」对照。 +- sweep、cluster_width、summary 三文件去掉耗时与路径字段后 **逐项相同**(`IDENTICAL` ×3)。冻结身份文件与 `origin/staging` 无差异;`ALGORITHM_VERSION` 不变。 + +| 指标(v5 77 例) | ±10 | ±30 | ±60 | +| --- | --- | --- | --- | +| 先验头名 前 / 后 | 0.1818 / 0.1818 | 0.0909 / 0.0909 | 0.0779 / 0.0779 | +| 六题回放头名 前 / 后 | 0.6364 / 0.6364 | 0.4935 / 0.4935 | 0.3117 / 0.3117 | +| 线上区间回放头名 前 / 后 | 0.6623 / 0.6623 | 0.5584 / 0.5584 | 0.4026 / 0.4026 | +| 覆盖(回放)前 / 后 | 0.987 / 0.987 | 0.987 / 0.987 | 0.987 / 0.987 | +| 中位宽度(回放)前 / 后 | 13 / 13 | 33 / 33 | 65 / 65 | +| futile 真值在区间(truth)前 / 后 | 76 / 76 | 75 / 75 | 76 / 76 | + +## T6 Rath 替换校正 v5 重试算(研究分支) + +**结论:与第三批几乎相同,R1、R2 仍都有档位降超过 1pt,判「变差」,不建议替换;交产品决定。** 详表见 `docs/research/narayana_rath_rectification_trial_2026_10_03.md`「10-04 重跑」。 + +| 指标(百分点变化,相对基线) | ±10 R1 / R2 / R2P | ±30 R1 / R2 / R2P | ±60 R1 / R2 / R2P | +| --- | --- | --- | --- | +| 先验头名 | +1.3 / 0 / 0 | 0 / +1.3 / +1.3 | 0 / +1.3 / +1.3 | +| 六题回放头名 | 0 / +3.9 / +3.9 | +1.3 / **−1.3** / **−2.6** | +5.2 / +10.4 / +9.1 | +| 线上区间回放头名 | 0 / +2.6 / +2.6 | **−1.3** / **−5.2** / **−5.2** | +2.6 / +2.6 / +1.3 | +| 覆盖(回放) | 0 / 0 / 0 | 0 / **−1.3** / **−1.3** | **−2.6** / 0 / 0 | +| 中位宽度(分钟,基线 13 / 33 / 65) | 11 / 13 / 13 | 37 / 35 / 35 | 73 / 69 / 69 | +| futile 真值在区间(基线 76 / 75 / 76) | 76 / 76 / 76 | 75 / **74** / 75 | **73** / 76 / 76 | + +- 与第三批(10-03)对比:R1 输出三文件逐项相同;R2 只有 `paul_ryan_1970_aa_v4_holdout` 一例 ±30 / ±60 区间略窄(T3、T4 只加输出,差异应来自 T2 罗计尊贵,未逐处追查),上表各项全同。 +- R2P = R2 + 未落地的 p.43 双主星(全部由 (d) 判出):±30 / ±60 回放头名比 R2 各再降 1.3pt,futile ±30 回到 75。不支持为打分落地 T1。 +- 研究分支 `codex/narayana-rath-rectification-trial-20261004`(`86e55514`),工作树 `.worktrees/narayana-rath-trial-20261004` 保留;不合入、未推送。 + +## 测试 + +| 项 | 结果 | +| --- | --- | +| Rath 定向(`test_narayana_rath_book_tables`、`test_narayana_rath_rules`、`test_narayana_legacy_label`、`test_node_own_sign_and_fixed_lords`) | 全过 | +| 年运定向(`test_year_lord_blocked_no_fallback` 7 条新增、`test_tajika_panchadhikari_year_lord`、`test_year_lord_basis_label`、`test_annual_tajika_pack`、`test_consultation_native_layers`、`test_tajika_mudda`、`test_solar_return_timezone`、`test_tajika_five_fold_panchavargiya`) | 全过 | +| `tests/test_report_english_dictionary.py`(单独跑) | 通过 | +| 隐私 `test_repo_privacy_markers`、API 增长合同、冻结新鲜度 | 通过 | +| `tests/test_report_reader_main.py::test_reader_annual_conflict_keeps_both_real_producer_values` | 失败,**开工基线 `77645ce2` 同样失败**(当年年主现为木星,断言写的是火星;与本单无关,未改),列入下轮问题 | +| `tsc --noEmit` | 0 错 | +| `npm run lint` | 0 error(126 warnings,与第四批同数) | +| `npm test`(Node 22.14) | 开工基线 4932 项 / pass 4867 / fail 24 / skipped 41;改后同;**失败名单按测试名逐条相同**(亦与第四批 `f4.txt` 相同);确认门 `rectification-confirmation-gate.test.ts` 全过(冻结文件未动,路径不用改) | +| 快速门 `run_quality_gate.py --profile quick --skip-frontend-runtime` | `Quality gate passed`,1047 passed、1 skipped | + +## 下轮问占星师 / 产品 + +1. **(T1,必须先答)标准盘双主星以哪处为准**:同一张标准盘,原书 Table 17 / Chart 3 与 p.43 (e) 的例句取火星(天蝎 10 年)、罗睺(水瓶 8 年),同书 Table 23 软件判定是土星、火星。按 p.43 (d) 逐级比较,天蝎会判计都(射手得木星两角色、计都在射手入旺),水瓶判土星,Table 17 年数降到 10/12。请选:(A) 以 p.43 (d) 为准,接受 Table 17 两段年数与原书不同;(B) 以 Table 17 / Chart 3 为准,(d) 只比星数、平了走 (e)(双主星 7/10);(C) 维持现状(8/10)。另,Chart 3 注「土星在本宫摩羯 Rule 5(c)」是否意味着 (c) 的「在本宫」包括双主星的另一自宫? +2. **第 3 级落陷**:我们把落陷算作比无尊贵更弱(p.67 计都例),并对九颗星一律适用(不只罗计)。对吗? +3. **p.116 双主同宫「经度高者」**:罗睺、计都用 30 − 度数(Chara Karaka 口径)还是原始度数? +4. **(产品)报告里的「子运方向」一行**:现在每次都列出书内两种不采用的说法;是否只在它们与实际方向不同时才列? +5. **(产品)`test_report_reader_main.py::test_reader_annual_conflict_keeps_both_real_producer_values`** 在开工基线就失败(当年年主现为木星,断言写火星,疑为 BUG-1220 返照时刻修正后未跟改),需另开单确认。 diff --git a/docs/tasks/README.md b/docs/tasks/README.md index 0e08c8a4..d1826989 100644 --- a/docs/tasks/README.md +++ b/docs/tasks/README.md @@ -418,4 +418,4 @@ | `TASK-astrologer-rulings-batch3-20261003.md` | `PROGRESS-astrologer-rulings-batch3-20261003.md` | 占星师第五轮:Mudda 改出生月宿起排(与年主脱钩);年主改 Tajika 正式五分力量;Rath 版 Narayana 按原书 7 级强弱、计都反转、子运起点重做并以三张样表验收,过了再并列展示与 v5 试算(研究分支);土计同宫计都优先(产品选 A);上游两个 bug 记录(BUG 从 1216 起) | 已实现待验收(T1–T4 完成;T3 按修订后红线 3 通过;T5 v5 试算在研究分支,未合入) | 分支 `codex/astrologer-rulings-batch3-20261003`(未推送;BUG-1216~1219;校正分数不变、未升版本);研究分支 `codex/narayana-rath-rectification-trial-20261003`(未推送、不合入) | | `TASK-annual-return-frame-20261003.md` | `PROGRESS-annual-return-frame-20261003.md` | 太阳返照时刻错位:出生太阳与求解器不同参考系(差 15″≈6 分钟)+ 年盘丢秒;243 张年盘里年盘上升变 13、年主变 11;搬上游 7cc6425d/46ed9399 两处,PyJHora 对照 ≤0.5 分钟;排在第三批之后(依据 `docs/research/shared_engine_reuse_audit_2026_10_03.md`) | 已部署 staging `01929bae`(BUG-1220) | 分支 `codex/annual-return-frame-20261003` | | `TASK-astrologer-rulings-batch4-20261003.md` | `PROGRESS-astrologer-rulings-batch4-20261003.md` | Rath 当前大运进全部领域卡(卡预算 12,000→12,500、总 18,000→18,500,修改 BUG-1160/1161 决定);报告年运强度表改 Tajika 五分法(与年主同口径);校正打分不换,等第六轮 | 已实现待验收(T1–T3 完成) | 分支 `codex/astrologer-rulings-batch4-20261003`(未推送;BUG-1221~1222;校正分数不变、未升版本) | -| `TASK-astrologer-rulings-batch5-20261004.md` | `PROGRESS-astrologer-rulings-batch5-20261004.md` | 占星师第六轮:Rath 双主星按 p.43(a)–(e)、罗计尊贵按 Rath Table 9(仅 Narayana 内)、子运方向 p.51 例外与书内分歧标注、Wadiyar 两对标软件特例;年主选不出时不再用 Muntha 主星顶替(对齐上游 03bea6ed);Rath 替换校正 v5 重试算(研究)(BUG 从 1223 起) | 待领取 | 分支 `codex/astrologer-rulings-batch5-20261004` | +| `TASK-astrologer-rulings-batch5-20261004.md` | `PROGRESS-astrologer-rulings-batch5-20261004.md` | 占星师第六轮:Rath 双主星按 p.43(a)–(e)、罗计尊贵按 Rath Table 9(仅 Narayana 内)、子运方向 p.51 例外与书内分歧标注、Wadiyar 两对标软件特例;年主选不出时不再用 Muntha 主星顶替(对齐上游 03bea6ed);Rath 替换校正 v5 重试算(研究)(BUG 从 1223 起) | 已实现待验收(T2–T5 完成;T1 按红线停下 blocked;T6 研究分支已跑) | 分支 `codex/astrologer-rulings-batch5-20261004`(未推送;BUG-1223~1227;校正分数不变、未升版本);研究分支 `codex/narayana-rath-rectification-trial-20261004`(不合入) | diff --git a/tests/test_narayana_rath_book_tables.py b/tests/test_narayana_rath_book_tables.py index 6f04bdb2..57261a80 100644 --- a/tests/test_narayana_rath_book_tables.py +++ b/tests/test_narayana_rath_book_tables.py @@ -169,7 +169,12 @@ VERDICT_TABLES = { # the general result, flagged `book_software_rule8_exception` (BUG-1226). EXPECTED_SIGN_MISSES = {("Table 25", "Gemini", "Sagittarius"), ("Table 25", "Virgo", "Pisces")} # Dual lords (Aquarius, Scorpio): book Table 23 Aquarius = Saturn (ours Rahu), -# Table 25 Scorpio = Ketu (ours Mars). +# Table 25 Scorpio = Ketu (ours Mars). Round-6 ruling Q6a (p.43 (d): compare +# the signs the two lords occupy) was tried in batch 5 (BUG-1227) and NOT +# landed: it gives 9/10 here (new miss Table 23 Scorpio) but drops the Table 17 +# years from 12/12 to 10/12 (Scorpio 10 -> 1 by Ketu, Aquarius 8 -> 1 by +# Saturn) — the book's standard nativity (Table 17 / Chart 3, and the p.43 (e) +# example) conflicts with its own Table 23 verdict. Kept at 8/10 (red line). EXPECTED_CO_LORD_MISSES = {("Table 23", "Aquarius"), ("Table 25", "Scorpio")}