From 64c652eea28bb5fd5950842437a56add1b3be8f2 Mon Sep 17 00:00:00 2001 From: Jesse_Chen Date: Sun, 4 Oct 2026 11:14:49 +0800 Subject: [PATCH] docs(tasks): astrologer rulings batch 6 (round-7: p.43 dual lord option A, only-Ketu reverse degree, node year +/-1); round-7 reply filed Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8 --- .../astrologer_round7_reply_2026_10_04.md | 126 ++++++++++++++++ docs/tasks/README.md | 1 + ...TASK-astrologer-rulings-batch6-20261004.md | 142 ++++++++++++++++++ 3 files changed, 269 insertions(+) create mode 100644 docs/research/astrologer_round7_reply_2026_10_04.md create mode 100644 docs/tasks/TASK-astrologer-rulings-batch6-20261004.md diff --git a/docs/research/astrologer_round7_reply_2026_10_04.md b/docs/research/astrologer_round7_reply_2026_10_04.md new file mode 100644 index 00000000..f7de06d0 --- /dev/null +++ b/docs/research/astrologer_round7_reply_2026_10_04.md @@ -0,0 +1,126 @@ +> 入库说明(2026-10-04):这是共享仓 `yinduzhanxing`(基线 `b924aac0`)对我方第七轮问卷 `astrologer_questions_round7_2026_10_04.md` 的书面回复,不是占星师本人手答;产品负责人同日决定按第七轮裁定采用,问 1 选 A。文内链接是共享仓里的路径,不在本仓。我方核对:p.71 脚注 42「only Ketu degree is reckoned in reverse」、Chart 3 水瓶 8+1=9 年、Rath《Jaimini 课程》p.276 Exception 3B「own sign does not include Capricorn for Saturn or Aries for Mars」均与原书一致(本仓用 194 页版 PDF,页码与回复的 206 页版有偏移)。执行任务书:`docs/tasks/TASK-astrologer-rulings-batch6-20261004.md`。 + +# 第七轮问题逐题回复 + +致独立印度占星网站维护方 + +日期:2026年10月4日。核查基线:共享仓库 `main@b924aac0fc311f9fc576fdb47aaf6d4e82d0b432`。 + +本轮三题均已有可以执行的答复。第1题采用明确命名的正文优先口径,保留书内例表差异;附问回答“不算”;第2题回答“九颗星都适用,但须满足比较前提”;第3题须补充选项,按本书强弱比较口径区分罗睺与计都。下面把原书事实、建议采用的口径、现有程序行为分开说明。 + +先更正前轮回复:不能把 Table 25 的 Wadiyar 配置拿去解释 Table 23 的1963标准盘;“金牛3星、处女1星”只适用于前者。也不能把正文规则、例表和某个软件输出合称为一套完全一致的规则。你们提出的矛盾值得核查,不能直接归咎于网站调用错误。 + +## 问1 标准盘的双主星依据 + +**勾选 A,限定为正文优先的命名口径;不要将它标为已统一全部例盘的唯一原意。** 如果界面只能保存一种默认版本,建议采用这一版本;Table 17 另作原表复现资料,不能为了凑齐该表年数而倒改通则。书页:S1第34至36、43至45、64、92页;S2第276至277页。 + +### 原书确实存在互不一致的记载 + +| 出处 | 天蝎双主星 | 水瓶双主星或年数 | 核查结果 | +|---|---|---|---| +| S1第43页(d)与第34至36页角色计数连用 | 计都 | 土星 | 按此明确组合可得,见下文重放 | +| S1第43页(e)的无同宫星示例 | 火星,10年 | 未讨论 | 示例没有完整列出相位输入,不足以推翻(d)全部条件 | +| S1第44至45页 Chart 3 | 火星,10年 | 罗睺;基本8年,加旺1年,首周期9年 | 第45页另用土星在摩羯解释,和(c)正文适用条件冲突 | +| S1第64页 Table 17 | 火星,10年 | 罗睺,8年 | 不仅选星有差异,年数还与 Chart 3 不同 | +| S1第92页 Table 23 | 表头明确列 Mars | 表头明确列 Saturn | 原题表格天蝎栏的横线可补为火星;这是表头记载,不足以反推软件内部算法 | + +因此,不能把“Table 17、Chart 3完全一致”作为前提。Table 17 水瓶8年与 Chart 3 水瓶9年,是原书中可直接定位的另一个差异。Table 23 表头确实与 Table 17 的水瓶主星不同,但本轮没有证据证明这种差异具体由哪款软件、哪项设置或哪个缺陷造成。 + +### 为什么选择A以及它实际算到了哪里 + +第43页(d)要求比较两主星所在星座的强弱;第36页的示范允许同一颗木星同时贡献“木星”和“宫主”两个角色。将这一角色口径一致用于标准盘,已有仓内函数 `select_narayana_seed_sign` 配合 `rath_p36_role_conjunction_v1` 可重放如下结果: + +| 比较对象 | 所在星座占星数 | 木星 水星 宫主角色接触数 | 决定结果 | +|---|---:|---:|---| +| 火星所在处女 | 1 | 1,木星星座相位 | 弱于射手 | +| 计都所在射手 | 1 | 2,木星兼射手宫主的星座相位 | 取计都 | +| 土星所在摩羯 | 1 | 2,水星星座相位及土星以宫主身份同宫 | 取土星 | +| 罗睺所在双子 | 1 | 1,木星星座相位 | 弱于摩羯 | + +这里第二级已经分出强弱,根本没有执行到第三级尊贵或后面的经度、年数。故这张盘的冲突不能靠调整“落陷扣多少”解决,也不需要声称完整七级都已在此例验证。 + +选A的理由是让已选用的正文层级保持一致,不是因为9/10比8/10更大。你们报告的9/10、7/10、8/10,本次文档未附10项逐项输入、结果和对应程序版本,我们不能将这些总数写成独立核验完成。C也没有完整算法定义,不能仅凭“维持现在”认定它就是共享引擎的某个版本。 + +不建议将B设为通则:S1第45页 Rama 示例,在星数相同后还继续比较水星等相位,明确说明“星数相同就直接比年数”遗漏了书中使用的条件。S2第277页另有双主星专属的星数、星座性质、年数和入旺例外条款,属于应完整保留的另一组来源规则,不能只抽取其中一条拼入A,或说它与A完全相同。 + +**年数另行处理。** 你们写“天蝎从10变1”对应计都在射手的基本计数;若同时启用 S1第40至42页 Phalita 入旺加一年,计都射手应进入加一年分支。罗睺双子也同理。第三级比较力量与选中宫主后的年数修正是两项规则,必须分别记录。不能一面称采用完整节点入旺口径,一面把未经修正的1年或8年称为该口径的最终年数。 + +### 附问 火星在白羊是否算天蝎双主星条款中的本宫 + +**勾选“不算”。** 这是本轮可以明确裁定的一项,不需要继续等待个人意见。 + +S1第43页(c)指正在讨论的双主星星座本身,即天蝎或水瓶。S2同作者《A course on Jaimini Maharṣi’s Upadeśa Sūtra》第276页 Exception 3B 更直接说明:这里的本宫不包括土星的摩羯或火星的白羊,并专门举出“土星摩羯、罗睺双子”仍须比较双方强弱的例子。 + +因此,火星在白羊仍有通常所说的自有星座尊贵,但不触发“火星已在天蝎,所以改取外面的计都”这条特例。土星在摩羯亦然。S1第45页“Rule 5(c)”的编号和例注不能压过第43页明确条件及S2的直接澄清;应记录为交叉引用及例注冲突,不扩大成通用条件。 + +## 问2 落陷是否对九颗星都作为较弱状态 + +**勾选“九颗星都适用”,限于所选 Rath 口径已经进入第三级尊贵比较,且其他比较条件相同。** 书页:S1第34页 Rule 3、第41页 Table 8、第41至42页说明、第67页示例。 + +Rule 3讨论的是行星的尊贵状态,没有把落陷限定为节点属性。第41页 Table 8 给出了九颗星的入旺、落陷和自有星座;第67页计都示例直接把落陷用于 Rule 3。结合这些材料,本站将“落陷低于未落陷且无更高尊贵”用于九颗星,是有来源支持的统一实现口径。第67页单个例子本身不等于九星、多星组合全部经过实证验证。 + +请保留以下边界: + +- 较早一级已经分出强弱时停止,不得让第三级落陷反过来推翻星数或第二级角色比较。 +- 对九颗星采用同一比较原则,不等于九颗星共用同一组旺陷星座。Narayana 属 Phalita:罗睺旺双子、陷射手;计都旺射手、陷双子。Rath 此处采用的节点 Moolatrikona 为罗睺处女、计都双鱼,自有星座为罗睺水瓶、计都天蝎。 +- Table 9 罗列多个作者的意见,不可整表不加筛选搬入引擎。金牛或狮子的另一组节点入旺讨论不能混入本次 Phalita 配置。 +- “无尊贵”是本次排序里的简化档位,不是自然中性星或功能中性星。若涉及友、敌星座、度数段及多个占据星混合尊贵,需保留独立规则;原书没有在这几页给出一个可以任意加总的完整数值权重表。 +- 第六轮建议的“先比最高档、再比同档数量”应标为实现约定,不能说这是第34页逐字规定。一个陷星也不能自动把整宫判成弱于任何没有陷星的宫。 + +此答复不引入落陷取消或综合吉凶评价;它只确定本题的比较语义。 + +## 问3 同宫双主星比较经度时怎样处理节点 + +**原列两个选项都不完整。请填“其他:罗睺用原始宫内度数,计都用30度减宫内度数”。** 书页:S1第71页正文及脚注42、43,第116页 Rule 2;另对照第33页 Chara Karaka 说明。 + +第116页要求在两主星同一星座、仍需确定主星身份时比较经度,但未在那里重述节点换算。第71页的强弱比较给出计都27°39′换算为2°21′,土星14°23′因而更强。脚注42进一步写明: + +> only Ketu degree is reckoned in reverse + +据此,本次明确采用“第116页同宫比较+第71页强弱经度说明”的 Rath 来源组合: + +| 使用场景 | 罗睺 | 计都 | 七颗实体行星 | +|---|---|---|---| +| 本次 Narayana 同宫强弱比较 | 原始宫内度数 | 30°减宫内度数 | 原始宫内度数,逆行也不反算 | +| 第33页八星 Chara Karaka 排序 | 30°减宫内度数 | 不参加八星排序 | 原始宫内度数 | + +这是采用同书强弱说明解释第116页的明确口径;第71页直接例盘是“起运宫土星与计都同宫”,并非第116页另给了一张所有双主星组合都验证过的例盘。这个适用关系应保留在版本说明中,不能夸称各派统一。 + +实现时先取宫内度数,即绝对黄经除以30的余数,范围为0至不足30度;对计都再做30减该值。不要拿360度黄经直接相减;也不要把计都恰在0度时得到的比较值30度再取模变成0度。比较应保留原始精度,不能先四舍五入成整数。若比较值完全相等,此条无法裁决,应返回同强或未决,不能用列表中的先后顺序暗选一颗。 + +还要区分用途:S1第43页(b)允许同宫两主按共同所在星座求基本年数;第116页讨论分盘起点所需的具体主星身份。主星身份未定,不一定意味着基本年数也无法计算;反过来,基本年数相同也不证明身份已经确定。 + +## 云端资料入口和检索方式 + +以下两份完整转写在核查基线提交中都已存在,不依赖维护方的私人本机目录。打开文档后按 `## Page 数字` 定位即可。 + +- **S1**:[Sanjay Rath Narayana Dasa 转写正文](references/book_corpus/books/narayana-dasa-by-sanjay-rath-pdf-free.md)。重点是第33至36、40至45、64、67、71、92、95、116页。另有[公开PDF原件](https://scienceoflight.net/wp-content/uploads/extra/Narayana%20Dasa%20by%20Sanjay%20Rath.pdf)。本次核对的是206页版本。 +- **S2**:[Rath Jaimini课程转写正文]()。重点是第276页 Exception 3B,以及第277页 Exception 3C至3G。本次核对的是520页本机原PDF对应转写。 + +```bash +python3 scripts/search_jyotish_books.py "own sign does not include" --limit 10 +python3 scripts/search_jyotish_books.py "only Ketu" --limit 10 +rg -n "Rule 5\(c\)|Table 17|Table 23|higher longitude" references/book_corpus/books/narayana-dasa-by-sanjay-rath-pdf-free.md +``` + +本次发现一个具体的阅读陷阱:S1 PDF第71页的可见页面高度为595.32点,脚注42的文字实际位于页面顶部以下约600至629点,超出了页面边界;第44页表格底部亦有类似问题。普通PDF查看器可能看不到它们,但文字层和云端转写保留了内容。本次扩展临时检查画布后已视觉核对,未改写原书。请将正文检索与原页检查配合使用,不能把屏幕上看不见当作原书没有写。 + +## 共享引擎当前状态与对接验收 + +这些资料足以形成答复,但“资料在云端”和“某个程序入口已完整执行该口径”仍是两件事。本轮实际调用、源码与结果记录见 [核查记录](docs/research/round7_narayana_source_audit_2026_10_04.md) 及 [原始重放结果](docs/research/round7_narayana_source_probe_2026_10_04.json)。 + +已确认的本仓差异如下,不能反过来推定都是独立网站的问题: + +1. `jaimini_dual_lord_source_v1` 在本标准盘选火星、罗睺;`rath_p36_role_conjunction_v1` 的星座比较得到计都所在射手、土星所在摩羯。两者职责与规则不同,不能只看到名称含 Narayana 就当作同一版本。 +2. 现有 `jaimini_odd_footed_dignity_v2` 的年数旺陷表只包含七颗实体行星,不能据其名称宣称已经执行节点年数加减;其计都1年、罗睺8年的结果不能替代本书完整节点修正。 +3. 旧双主星入口同宫时直接返回首位实体主星;另一个明确标为 PVR 的入口在经度层对两个节点都反算。它们都不能冒充本题采用的 Rath 第71页与第116页组合。不得为本次回答静默改写其他流派的入口。 + +建议对接方把下列项目作为本轮验收条件,而不是用汇总命中率代替: + +- 标准盘逐级记录各角色,核对A是否在第二级就选出计都、土星。 +- 将“选中哪个主星”“基本年数”“旺陷修正”“最终年数”分栏;Chart 3 的9年与 Table 17 的8年分别标记来源。 +- 增加火星白羊、土星摩羯的双主星条件测试,确认不会误触发(c)。 +- 同宫土星14度、罗睺27度时,本次 Rath 经度规则选罗睺;同宫实体星14度、计都27度时,其比较值为14与3,选实体星。后者只有进入经度比较层才适用。 +- 给岁差、节点模式、双主星版本、强弱版本和年数版本分别留出明确记录。复现印刷星位时无需另猜岁差;从出生资料重新排盘时则须统一用户选择的岁差和节点模式。 + +本轮完成资料答复和只读重放,没有操作独立网站 staging,也没有将这些建议冒称为已经部署的修复。若网站采用上述口径,请在其独立实现及共享引擎对应适配层完成测试后,再宣布上线完成。 diff --git a/docs/tasks/README.md b/docs/tasks/README.md index d1826989..cf3eaba8 100644 --- a/docs/tasks/README.md +++ b/docs/tasks/README.md @@ -419,3 +419,4 @@ | `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 起) | 已实现待验收(T2–T5 完成;T1 按红线停下 blocked;T6 研究分支已跑) | 分支 `codex/astrologer-rulings-batch5-20261004`(未推送;BUG-1223~1227;校正分数不变、未升版本);研究分支 `codex/narayana-rath-rectification-trial-20261004`(不合入) | +| `TASK-astrologer-rulings-batch6-20261004.md` | `PROGRESS-astrologer-rulings-batch6-20261004.md` | 第七轮裁定(共享仓书面回复,产品采用;问 1 选 A):Rath 版双主星按 p.43 (a)–(e)(BUG-1227 解除 blocked,推翻第五批红线 2 的 Table 17 年数底线);第 5 级宫主度数只倒算计都(p.71 脚注 42);罗计旺陷 ±1 年;同宫两主比经度;BUG 从 1228 起 | 待领取 | 分支 `codex/astrologer-rulings-batch6-20261004` | diff --git a/docs/tasks/TASK-astrologer-rulings-batch6-20261004.md b/docs/tasks/TASK-astrologer-rulings-batch6-20261004.md new file mode 100644 index 00000000..29ec9478 --- /dev/null +++ b/docs/tasks/TASK-astrologer-rulings-batch6-20261004.md @@ -0,0 +1,142 @@ +# TASK:占星师口径第六批(第七轮裁定:双主星按 p.43 正文、罗计度数只倒算计都、罗计入旺陷加减年数)— 2026-10-04 + +## 基线 + +- `origin/staging` 开工时最新提交(写本单时 `561d8c5c`;第五批已部署,太阳返照修正 BUG-1220 已部署 `153c6e99`)。 +- 分支 `codex/astrologer-rulings-batch6-20261004`,工作树 `.worktrees/astrologer-rulings-batch6-20261004`。 +- 依据: + - 第七轮问卷 `docs/research/astrologer_questions_round7_2026_10_04.md`; + - 第七轮回复 `docs/research/astrologer_round7_reply_2026_10_04.md`(共享仓书面回复,产品负责人采用为第七轮裁定); + - 第五批进度 `docs/tasks/PROGRESS-astrologer-rulings-batch5-20261004.md` 的「T1 双主星」节(p.43 (a)–(e) 原文与三种读法的实测)。 +- 可复用:研究分支 `codex/narayana-rath-rectification-trial-20261004` 提交 `86e55514` 的 `--dual-lord p43` 实验实现(第五批写的 p.43 全级读法)。只搬到产品模块的那部分,研究开关不搬。 + +## 事故实证(按符号定位) + +1. **双主星仍走冻结的旧规则。** `scripts/narayana_rath.py:_lord` 调 `narayana_dasha._resolve_narayana_lord(dual_lord_profile="jaimini_dual_lord_source_v1")`: + - 同宫时直接取第一颗实体主星(火星 / 土星); + - 分落别宫时比 `_narayana_dual_lord_strength`(星数、按星体去重的 Rasi Drishti、只认罗计的 Moolatrikona / 本宫)。 + - 与第七轮 A(p.43 (d) 用 Rath 7 级强弱比较两主所落星座)不同。第五批 BUG-1227 因此 blocked。 +2. **第 5 级宫主度数把罗睺也倒算。** `narayana_rath._ck_degree` 对罗睺、计都都用 30 − 宫内度数。原书 Advani 例(本仓 194 页版 PDF「Page 71」附近,Table 20 前)脚注 42:「in strength computation only Ketu degree is reckoned in reverse」。 +3. **罗计入旺陷不加减年数。** `narayana_dasha.calculate_narayana_period_years(profile="jaimini_odd_footed_dignity_v2")` 的 `_NARAYANA_DIGNITY` 只有七颗实体星。罗计为宫主时,入旺不加 1、落陷不减 1。 + - 原书 p.40 (a):宫主入旺 +1、落陷 −1。 + - Phalita 用罗睺旺双子 / 陷射手、计都旺射手 / 陷双子。 + - 原书 Chart 3 水瓶罗睺 8 + 1 = 9 年就是这样算的(Table 17 却印 8 年)。 + +## 根因 + +- 双主星规则在冻结文件里,Rath 版一直借用旧规则。 +- 第 5 级度数把 Chara Karaka 排序的罗睺倒算口径错用到了强弱比较。 +- 年数修正表从未覆盖罗计。 + +## 决策记录 + +**第七轮裁定(2026-10-04,产品负责人采用共享仓书面回复为裁定):** + +| 题 | 裁定 | +|---|---| +| 问 1 | 选 **A**:双主星按 p.43 正文,(d) 用本模块 7 级 `compare_signs` 比较两主所落星座,(e) 力量相等取年数多者。这是「正文优先」的命名版本,不是原书全部例表一致的唯一原意。Table 17 / Chart 3 改作「原表复现资料」单列,不为凑年数倒改通则 | +| 附问 | 「不算」:(c) 的「在本宫」只指天蝎 / 水瓶本身,火星在白羊、土星在摩羯不触发(Rath《Jaimini 课程》p.276 Exception 3B) | +| 问 2 | 九颗星都适用(第 3 级、其他条件相同时)。罗计 Phalita 尊贵与现状一致,**不改** | +| 问 3 | 同宫两主比经度:实体星与罗睺用原始宫内度数,只有计都用 30 − 宫内度数;完全相等返回未决,不按列表先后暗选(p.116 Rule 2 + p.71 正文与脚注 42、43) | + +**本单的推论(产品负责人同意 A「正文优先」时一并确认):** + +1. p.71 脚注 42 说的是「强弱计算」中只倒算计都,所以第 5 级宫主度数也改为只倒算计都,与问 3 一致。 +2. 「正文优先」包括 p.40 (a) 的入旺 +1 / 落陷 −1。罗计为宫主时按 Phalita 旺陷加减,范围仍为 0–12 年。 +3. 输出把「选中哪颗主星」「基本年数」「旺陷修正」「最终年数」分栏记录。 + +**推翻的既有红线:** 第五批红线 2 中「Table 17 年数不低于现状」作废,改为本单红线 2。第五批 BUG-1227 由本单解除 blocked。 + +## 硬红线 + +1. 不改冻结身份文件(`references/rectification_sealed_holdout.v1.json` → `production_scoring_files`,以及 `scripts/research/sealed_holdout_rerun.py:PRODUCTION_FILES`,含 `narayana_dasha.py`)。 + - 新规则全部写在 `narayana_rath.py`;不改 `_resolve_narayana_lord`、`calculate_narayana_period_years`。 + - Rath 版不进打分,v5 与改动前逐项相同。 +2. 验收底线(任一项低于下列值就停下回报): + - Table 15、17 起运宫通则自动复现; + - Table 18 显式起运宫后大运**顺序** 12/12; + - 软件表强弱不少于 28/30; + - Table 25 子运不少于 24/36; + - 软件表双主星不少于 9/10(预期唯一不符:Table 23 天蝎,书火星、我们计都,这是 A 的已知代价)。 + - 各样表的**年数**不再作通过线:逐表逐行列「书印值 / 新值 / 差异来源(双主星 A、罗计 ±1、书内自相矛盾)」,写进进度记录,测试断言新值并注明。 +3. 双主星判定不得递归死循环:比较某宫两主所落星座的强弱时,那些星座的宫主若又是双主星,按上游 `resolve_pvr_co_lord` 的 `_resolution_path` 做法记录路径、遇环返回未决。 +4. 不改普通对话提示词;卡片单卡不超过 12,500 字;改到 `references/*.json` 的字符串要有 `_en` 对照(单独跑 `tests/test_report_english_dictionary.py`)。 +5. **改的是引擎计算值,验收必须跑 Python 全量 `pytest tests`,并与开工基线逐条比对失败名单**,不能只跑快速门(BUG-1220 漏过 `test_report_reader_main.py`)。跑全量后 `git checkout` 掉测试顺手改写的 `references/oracle/prashna_*` 文件。 +6. 不用 `git stash`;不切换别人的工作树;一次性评测工作树用 `--detach` 建、用完删除;开工前 `df -h /`。 + +## 任务分解 + +### T1 双主星按 p.43 (a)–(e)(BUG-1227 解除 blocked) +- `narayana_rath._lord` 改为本模块自己的 p.43 解析器,输出 `dual_lord_decision`: + - `rule`:a / b / c / d / e / p116_longitude; + - `compared`:两主及所在星座; + - `strength_level_decided`; + - `basis_text` 中英文; + - `source`:p.43、p.116、p.71 fn 42、Jaimini 课程 p.276。 +- (a)(b) 两主同宫: + - 年数按 (a) 12 年 / (b) 数到共同星座; + - 主星身份要定时按问 3 比经度; + - 完全相等 → `status: undecided`,不暗选。 +- (c):只认天蝎 / 水瓶本身;火星在白羊、土星在摩羯不触发(附问)。 +- (d):两主所落星座用 `compare_signs` 7 级比较。 +- (e):7 级全平取年数多者,年数也相等 → 未决。 +- **验收**: + - 软件表双主星 ≥ 9/10,逐条列判出规则与级数; + - 新增测试:火星白羊 / 土星摩羯不触发 (c);同宫土星 14° 与罗睺 27° → 罗睺;同宫实体星 14° 与计都 27°(比较值 3°)→ 实体星;计都 0° 比较值为 30 不取模;完全相等 → 未决;递归遇环 → 未决。 + +### T2 第 5 级宫主度数只倒算计都 +- `_ck_degree`:只有计都 30 − 宫内度数,罗睺与实体星用原始宫内度数(逆行也不倒算)。保留原始精度,不取整。 +- **验收**:强弱 30 对不少于 28/30,列出因本条改变判定的盘与宫对(预期很少或没有)。 + +### T3 罗计旺陷加减年数 +- 在 `narayana_rath.py` 包一层年数函数: + - 基本年数仍用 `calculate_narayana_duration`(`jaimini_odd_footed_dignity_v2` 的数法); + - 实体星旺陷修正沿用原函数; + - 罗计按 Phalita 旺陷 ±1; + - 截在 0–12。 +- 大运行与 `sign_strength` 第 7 级都改用这层。 +- 输出分栏:`lord`、`base_years`、`dignity_adjustment`、`years`、`adjustment_source`(`p40a_phalita_nodes` / `p40a_grahas`)。 +- **验收**:各样表逐行年数对照表写进进度记录(标准盘至少列 Table 17 与 Chart 3 两套书印值)。 + +### T4 展示 +- 咨询卡与参考版报告的 Rath 版: + - 天蝎 / 水瓶大运旁写双主星依据一句,中英文; + - 报告大运表加「基本年数 / 修正 / 最终」三列; + - 版本标注「按原书 p.43 正文(第七轮裁定)」。 +- 卡片不超过 12,500 字;golden 用真实引擎重采。 + +### T5 记录 +- `docs/BUG_HISTORY.md`: + - BUG-1227 改 resolved,写明推翻第五批红线 2 的依据; + - T2、T3 各一条新编号; + - 来源:第七轮回复与原书页码。 +- `CHANGELOG.md`;`PROGRESS-astrologer-rulings-batch6-20261004.md`(年数对照表、双主星逐条、全量 pytest 比对、v5);`docs/tasks/README.md`。 + +## 让步顺序 + +T2 → T3 → T1 → T5 → T4。T1 达不到红线 2 时停在 T1,T4 不做。 + +## 开工前置命令 + +```bash +cd /workspace/Jyotisha && git status -sb | head -1 +git fetch origin --prune +git worktree add -b codex/astrologer-rulings-batch6-20261004 .worktrees/astrologer-rulings-batch6-20261004 origin/staging +df -h / +grep -oE "BUG-1[0-9]{3}" docs/BUG_HISTORY.md | sort -u | tail -1 +git show 86e55514 --stat +python3 scripts/pre_work_check.py --remote-timeout 8 --command-timeout 45 +``` + +前端 node_modules 软链到同 lockfile 的工作树;Node 22 用 `/exec-daemon/node`(放进 PATH 再跑快速门,否则 npm 段因 tsx 缺失报错)。 + +## 验收口径 + +- Python 定向测试;快速门;**Python 全量 `pytest tests` 与基线逐条比对**;另跑 `tests/test_report_english_dictionary.py`。 +- v5 77 例逐项相同。 +- 前端:`tsc` 0 错;lint 0 error;`npm test` 失败名单与开工基线逐条相同。 +- 不 push,由 Claude 验收后推 staging。 + +## BUG 编号起点 + +BUG-1228(10-04 实测最大号 BUG-1227;开工时再核对)。