feat: 完整数据版加入六种星座大运

Sthira、Drig、Shoola、Navamsha、Niryaana Shoola 与 K.N. Rao 的 Chara 从本盘算出。Lagna Kendradi 不上表。未推送。
This commit is contained in:
jesse-ux
2026-10-09 00:43:00 +08:00
parent e1c7383c5e
commit 9d3eb23ee4
12 changed files with 4148 additions and 3 deletions
+32
View File
@@ -17294,3 +17294,35 @@
- 相关记录:BUG-1272、BUG-1274、BUG-1276~1281。
- 复发自:无。
- 修复版本:分支补修提交(见 `git log`)。
## BUG-1283 | 旧 Niryaana Shoola 用回归年日、平手就停,报告仍可能把它当成现行算法
- 状态:mitigated
- 首次发现 / 最近更新:2026-10-09 / 2026-10-09
- 来源:`TASK-rashi-dashas-native-20261008`。
- 影响面:`scripts/niryaana_shoola_dasha.py`。完整数据版报告不再调用它。
- 现象:旧函数按 365.25636 日一年展开,上升与第 7 宫力相等就停,并且没有日历月的子运。所选 Goel 口径是 9 个日历年,平手时用宫主的 Charakaraka 继续选择。
- 触发条件:若报告或新模块再调用 `calculate_niryaana_shoola_dasha`。
- 根因:该文件早于本单的出处档案。它只被自己的旧测试调用。
- 修复:报告改走 `scripts/rashi_dashas_native.py` 的 `goel_nirayana_shoola_v1`。旧函数不改,避免打断旧测试。
- 验证:`tests/test_rashi_dashas_native.py` 用语法树确认三个新模块不导入 `niryaana_shoola_dasha`。`tests/test_niryaana_shoola_dasha.py` 仍过。
- 防复发:上述导入断言。新报告路径不得再调用旧函数。
- 相关记录:BUG-1284。
- 复发自:无。
- 修复版本:分支 `codex/rashi-dashas-native-20261008`,未合入,未上线。
## BUG-1284 | 旧 Shoola 从月亮星座起并且逐年缩短,注册表仍留着
- 状态:mitigated
- 首次发现 / 最近更新:2026-10-09 / 2026-10-09
- 来源:`TASK-rashi-dashas-native-20261008`。
- 影响面:`scripts/extended_dashas.py` 的 `calc_shoola_dasha` 与 `'shoola'` 注册项。接口层仍能按这个键调用。完整数据版报告不走这条。
- 现象:旧函数从月亮星座起,年数从 9 减到 1,一年按 365.25636 日。所选 Rath 口径是上升或第 7 里较强的星座、一律顺行、每段 9 个日历年。
- 触发条件:调用扩展大运注册表里的 `shoola`,或报告误用该函数。
- 根因:早期简化实现留在注册表。本单不得改 `scripts/jyotish_api_server.py` 的方法体,所以注册项还在。
- 修复:报告改走 `shoola_forward_md_direct_ad_v1`。注册表和接口方法体不动。
- 验证:三个新模块的语法树不导入 `extended_dashas`。定向 pytest 退出码 0。
- 防复发:上述导入断言。报告章不得再调用 `calc_shoola_dasha`。
- 相关记录:BUG-1283。
- 复发自:无。
- 修复版本:分支 `codex/rashi-dashas-native-20261008`,未合入,未上线。
@@ -0,0 +1,127 @@
# 进度 · 报告补 7 种星座大运(2026-10-09)
- 分支:`codex/rashi-dashas-native-20261008`
- 基线:`e1c7383c`(当时的 `origin/staging`,已含章动 BUG-1275 与完整数据版)。本分支第一行是 `## codex/rashi-dashas-native-20261008`,不跟踪 `origin/staging`。
- 状态:代码在本分支,**未推送**,**未合入**,未上线。等验收。
- 上游:`G:\Ferti\yinduzhanxing` 的 `origin/main` 本轮核对为 `0337b77fce353252f7d115025c8703c3aec4204a`。`scripts/drig_dasha.py` 的 blob 是 `b80cf089e2e7901f8b5cdbe989341309b4fee0f4`。`23be1807` 不当参照。没有使用上游本地脏 HEAD。
- 生成器:`C:\Users\74082\anaconda3\python.exe`(3.11)装有 PyJHora 4.8.7,已用来生成 `tests/fixtures/rashi_dasha_pyjhora_20261008.json`。这不是无 jhora 环境。产品模块运行时不导入 jhora。pytest 只读这份 JSON。
- 本机不能声称 Linux 全量 ⊆ 基线、快速门通过或浏览器走查。已知 Windows 失败 `tests/test_consultation_native_layers.py::test_the_new_layer_leaves_every_existing_output_unchanged` 不是发布依据。
## 开工预检
`python scripts/pre_work_check.py --remote-timeout 8 --command-timeout 45` 退出码 **1**。`fragment_scan` 在 90 秒超时,`focused_tests` 在 45 秒超时。超时退出不算通过。本轮没有把这次预检改写成通过。
## 结论
六种大运进入完整数据版,表头写档案名、书名页码,并写「未与外部软件逐一核对」。Lagna Kendradi **不上报告**,用一句缺席说明代替空表。不进对话卡,不进生时校正打分,不升算法身份,不进大运解释包。起始星座、方向、年数由本仓盘面算出。与 PyJHora 不一致的地方没有调参。
中文标题故意不带 `Dasha`。完整数据版清理器会把这个词换成「大运」,再删掉它和下一句中文之间的换行。英文标题保留 Dasha。报告正文不写英文单词 blocked。
`source_bounded_child_periods.py` 在 `0337b77f` 上有 3 处 jhora 字样,都是档案名字符串,不是 `import`。没有把运行时导入移植过来。
没有整文件拷贝上游展开器,也没有把书籍原文拷进本仓。没有重跑上游同盘整篇导出做逐字节对照。上游展开器自己不选起始星座,同盘导出里的表取决于当时填进去的输入。
## 7×4 规则
星座序号 0 是白羊,11 是双鱼。子运都不写更小一级。
| 大运 | 起始星座 | 方向 | 年数 | 子运 |
| --- | --- | --- | --- | --- |
| Sthira `goel_rao_short_brahma_method_v1` | Brahma 所在星座。Brahma 取上升与第 7 较强者的 6/8/12 宫主,排除土星。力量是 Goel / BVB 简法的星力加宫力,不是 Shadbala,也不是 PyJHora 的 `house.brahma`。上升与第 7 总分相同,用两宫主里 Charakaraka 名次更高的一个。出处:Predicting through Jaimini Astrology,印页 100–108 | 一律顺行。印页 107。上游按奇偶换向的展开器不用 | 基本 7、固定 8、变动 9。日历周年 | 第一段子运就是本运星座,然后顺行。月数等于本运年数。日历月 |
| Drig `drig_rath_aspect_sequence_v1` | 永远从上升的第 9 宫起。Crux of Vedic Astrology,印页 288 | 不是一条黄道方向。第 9、第 10、第 11 三个锚点各自带上它所看的星座;偶数序号顺行看,奇数序号逆行看。印页 395。上游候选档案 `drig_rath_narayana_duration_v1` 是普通黄道奇偶,**报告不用这个名字** | 本仓 Narayana `jaimini_odd_footed_v1`,传统宫主,不计尊贵,不计交点。印页 288 写与 Narayana 相同。书里另一句「15 到 25 年」是 10 年,没有拿来改年数 | 本运宫主与第 7 宫主比简法星力,较强者所在星座作子运种子;其后按本运星座奇偶。12 段平分本运的日历区间。平手则该运不列子运 |
| Shoola `shoola_forward_md_direct_ad_v1` | 上升与第 7 比简法宫力,取较强者。总分相同再用宫主的 Charakaraka。仍分不出就不列表。印页 395 的句子只规定主运 | 顺行(书里的 regular) | 每段 9 个日历年 | 12 段顺行,每段 9 个日历月,第一段就是本运星座。这是档案名里的子运,不是印页那一句单独写明的 |
| Navamsha `goel_method_1_v1` | 九分上升的序号为偶数则从九分上升起,否则从它的第 7 起。九分按元素:火白羊、土摩羯、风天秤、水巨蟹,一脚 3°20′。Predicting through Jaimini Astrology,印页 139,只用方法 1 | 一律顺行 | 在九分里数到传统宫主。奇数星座顺数,偶数逆数。距离 0 记 12,否则距离加 1。天蝎火星、水瓶土星,不双主,不减 1 | 第一段子运就是本运星座,顺行,月数等于年数。让步允许砍子运,本轮保留 |
| Niryaana Shoola `goel_nirayana_shoola_v1` | 与 Shoola 相同的简法种子。同盘印页的 Jaimini 宫力从双鱼起;简法总分打平后 Karaka 选处女。报告保持简法,不改成双鱼。印页 162 | 一律顺行 | 每段 9 个日历年 | 12 段,每段 9 个日历月,从本运星座顺行 |
| Lagna Kendradi | blocked | blocked | blocked | blocked。上游注册表写没有安全默认值。报告不列表 |
| Chara `kn_rao` | 已有模块:从上升起。Predicting through Jaimini's Chara Dasha,印页 32–33 | 第 9 若是偶足则逆行,否则顺行。偶足是 3、4、5、9、10、11 | 数到解析后的宫主再减 1;结果 ≤0 记 12;入旺加 1,落陷减 1。天蝎看火星与计都,水瓶看土星与罗睺。0 年合法 | 已有模块把上升序旋转 1 位,再平分本运区间。印页 35–36 要求每一运用该星座自己的顺逆,且本运星座在最后。两者只在第一运重合。没有改 `jaimini.py`。报告写明这一节是 K.N. Rao 的 Chara,不是 Narayana |
## 书内例题与书内分叉
照 BUG-1218:同一本书或同一张例盘有两种算法时,写明选了哪一边,不把另一边的数填进报告。
- Sthira:简法例盘的星力是 150、120、180、130、70、150、50,宫力是 280、260、250、260、250、260、230、300、250、130、150、260。Brahma 为火星,从天蝎顺行,年数 8、9、7、8、9、7、8、9、7、8、9、7。同一张盘若用书里的整套 Jaimini 宫力,会从双鱼(金星)起。本站选简法。Charan Singh 表是整套方法,不混用。测试锚点是构造日期,不把印页上的时钟写进本文。
- Navamsha:方法 1、2、3 彼此不同。本站只选方法 1。九分上升为双鱼时,从处女起。这是起始规则。印页年数行有缺口,不把整行年数说成已复现。
- Niryaana Shoola:Goel 是上升或第 7、顺行、9 年。PyJHora 是第 2 或第 8、按奇偶、7/8/9 年。Raman 又是另一套奇偶。同一例盘上,印页 Jaimini 宫力起双鱼,简法起处女。报告用简法。
- Sthira 方向:Goel 与 PyJHora 都是顺行。上游 `sthira_dasha.py` 按奇偶换向。本站跟 Goel。
- Drig:印页 395 是相位组顺序。上游候选档案是普通黄道。PyJHora 接近相位组,并多一轮 12 减 n。巨蟹上升的相位序是 11、8、5、2、0、4、7、10、1、9、6、3。年数不改去凑「15 到 25 年」。
- Shoola:第 7 较强且第 7 是摩羯时,顺行每段 9 年,白羊落在第 27 到 36 年。这是用简法宫力造出来的盘,不是手填种子。子运从本运星座起;PyJHora 的第一段子运不是本运星座。印页那一句只写主运。
- Chara:白羊上升的主运是十二星座顺行,第一段子运从金牛起、最后回到白羊,与印页 32–36 的第一运一致。其后各运的子运仍用模块的旋转,不改成书里的「每运自定顺逆」。木星在摩羯时,构造盘的射手运是 0 年。
- Lagna Kendradi:上游注册表说没有安全默认值,上游另一个运行入口仍会吐出一张表。本站跟注册表和决策 3,不采用那张表。
## 四张盘与 PyJHora 4.8.7
前 6 段的星座序号与年数。差只记在起始星座、方向、年数、子运、日期基准。年数按「星座与年数的配对」比较:同一套年数只是换了起点,不算年数差。日期基准是星座和年数都相同、下一段起点不同,来自日历年与 PyJHora 的年日长度,没有改年数去对齐。Lagna Kendradi 四张盘都是四步全差,因为本站不列表;下面不重复。交点用本仓默认平交点,PyJHora 用真交点。章动 BUG-1275 已在基线里,宫头可以和 PyJHora 4.8.7 的 Lahiri 差一个小角度。这两处都不回改大运。
`steve_jobs_1955_aa`
| 大运 | 差在 | 本站前 6 段 | PyJHora 前 6 段 | 哪边符合所选出处 |
| --- | --- | --- | --- | --- |
| Sthira | 起始、子运 | 8 起,年 9、7、8、9、7、8 | 11 起,同年数模式 | 本站是简法 Brahma。PyJHora 用它自己的 Brahma |
| Drig | 四步都有 | 1、9、6、3、2、5;年 7、3、2、4、7、8 | 0、4、7、10、1、3;年 12、6、6、1、7、4 | 本站是印页 395 的一轮相位组,年数是 Narayana 奇足。PyJHora 另有第二轮 |
| Shoola | 起始、子运 | 11 起,各 9 年,顺行 | 10 起,各 9 年,顺行 | 本站按简法宫力。子运从本运起;PyJHora 的第一段子运不是本运 |
| Navamsha | 起始、年数、子运 | 3 起,年 9、7、3、3、6、7,顺行 | 0 起,各 9 年 | 本站是方法 1。PyJHora 不是这套年数 |
| Niryaana Shoola | 方向、年数、子运 | 11 起,顺行,各 9 | 11 起,逆行,年 9、8、7、9、8、7 | 本站跟 Goel。PyJHora 是第 2/第 8 与 7/8/9 |
| Chara | 起始、年数、子运 | 5 起,年 8、2、6、6、4、5 | 4 起,年 6、8、2、6、6、4 | 两边都顺行。前 6 段像差一个起点,但星座与年数的配对并不相同,所以年数仍记下。没有改 `jaimini.py` |
`barack_obama_1961_aa`
| 大运 | 差在 | 本站前 6 段 | PyJHora 前 6 段 |
| --- | --- | --- | --- |
| Sthira | 起始、子运 | 3 起,年 7、8、9、7、8、9 | 9 起,同年数模式 |
| Drig | 方向、年数、子运 | 5、2、11、8、6、10;年 2、1、2、1、8、1 | 星座相同;年 2、1、1、0、8、1。后面的顺序不同 |
| Shoola | 子运、日期基准 | 3 起,各 9,星座相同 | 星座与 9 年相同 |
| Navamsha | 起始、年数、子运 | 4 起,年 6、12、3、11、4、12 | 0 起,各 9 |
| Niryaana Shoola | 四步都有 | 3 起,各 9,顺行 | 4 起,年 8、9、7、8、9、7 |
| Chara | 年数、子运 | 9 起逆行,年 12、0、3、8、2、1 | 星座相同,年 12、0、9、8、2、1。第二段都是 0 年。第三段 3 对 9 |
`einstein_1879_aa`
| 大运 | 差在 | 本站前 6 段 | PyJHora 前 6 段 |
| --- | --- | --- | --- |
| Sthira | 只有日期基准 | 11 起,年 9、7、8、9、7、8 | 星座与年数相同 |
| Drig | 方向、年数、子运 | 10、0、3、6、11、8;年 11、9、8、5、1、2 | 10 起;10、6、3、0、11、8;年 11、6、7、10、1、2 |
| Shoola | 子运、日期基准 | 2 起,各 9 | 星座与 9 年相同 |
| Navamsha | 起始、年数、子运 | 5 起,年 12、5、10、12、3、10 | 10 起,各 9 |
| Niryaana Shoola | 四步都有 | 2 起,各 9 | 9 起,年 7、9、8、7、9、8 |
| Chara | 年数、子运 | 2 起逆行,前 6 段年数 8、11、10、1、11、10 | 星座与这 6 段年数相同。全表里天蝎是 8 年对 3 年,所以年数仍记下 |
`fictional_reader_main`
| 大运 | 差在 | 本站前 6 段 | PyJHora 前 6 段 |
| --- | --- | --- | --- |
| Sthira | 起始、子运 | 2 起,年 9、7、8、9、7、8 | 0 起,年 7、8、9、7、8、9。星座与年数的配对相同,只是起点不同,年数不另记 |
| Drig | 方向、年数、子运 | 9、7、4、1、10、0;年 12、7、5、12、1、2 | 9、7、4、1、10、6;年 12、8、5、11、1、6 |
| Shoola | 子运、日期基准 | 7 起,各 9 | 星座与 9 年相同 |
| Navamsha | 起始、年数、子运 | 0 起,年 9、5、12、10、7、5 | 10 起,各 9 |
| Niryaana Shoola | 四步都有 | 7 起,各 9 | 8 起,年 9、7、8、9、7、8 |
| Chara | 年数、子运 | 1 起逆行,年 12、2、9、1、12、8 | 星座相同,年 11、2、9、1、12、8。第一段 12 对 11 |
乔布斯盘的坐标沿用已有 fixture(ERR-086),没有另造出生地。
## 报告
乔布斯盘的完整数据版中文章出现 Sthira、Niryaana Shoola、Drig、Navamsha、Shoola、Chara 和「本站选用的方法」。Lagna Kendradi 一节只有缺席句:「本轮不上表:没有选定的安全默认算法,故本报告不列出该大运。」这一节没有星座表。英文是 “This report does not include Lagna Kendradi: no safe default method is selected.” 英文章 0 汉字。没有盘面经度时这一章不出现,旧的无盘样例仍不出现 Sthira。
Chara 另写:「这一节是 K.N. Rao 的 Chara 表,不是 Narayana 表。」
## 本机测试
| 命令 | 退出码 |
| --- | --- |
| `C:\Users\74082\anaconda3\python.exe -m pytest tests/test_rashi_dashas_native.py tests/test_report_full_data_fix.py tests/test_niryaana_shoola_dasha.py tests/test_runtime_jhora_import_scan.py -q --tb=line` | 0(27 过) |
| `C:\Users\74082\anaconda3\python.exe -m py_compile scripts/goel_short_strength.py scripts/rashi_dashas_native.py scripts/rashi_dasha_report.py scripts/research/freeze_rashi_dasha_pyjhora_fixture.py scripts/pl9_full_data_export.py` | 0 |
| 开工 `scripts/pre_work_check.py --remote-timeout 8 --command-timeout 45` | 1(超时,不算通过) |
`git add` 之后另跑 `tests/test_repo_privacy_markers.py`,结果写在提交说明旁边的验收回报里。没有跑 Linux 快速门,没有跑浏览器走查。
## 让步
只用了 Lagna Kendradi:不上表。Navamsha 子运和 Drig 子运都保留。Sthira、Shoola、Niryaana Shoola、Chara 的主运没有砍。
## 下轮问占星师
Lagna Kendradi 没有可以安全默认的算法,所以这轮报告只写缺席。请定四件事:种子是上升,还是上升与第 7 里较强的一个;方向按星座奇偶,还是按土星、计都;年数是否像 Narayana 那样再有一轮 12 减 n;顺序是沿黄道,还是按 Kendra、Panaphara、Apoklima。定下来之前不补表。
Drig 也请看一眼:报告用的是 Crux 印页 395 的相位组,不是上游候选档案里的普通黄道顺序。
真人核对清单:`docs/testing/rashi-dashas-native-20261008.md`。
+1 -1
View File
@@ -204,7 +204,7 @@
| `TASK-report-full-data-edition-20261007.md` | `PROGRESS-report-full-data-edition-20261007.md` | **报告改为完整数据版、删除阅读版**:网站阅读版中文 7.6 万字符 vs 上游 `pl9_ai_density` 97 万;移植原始数据附录 / 清理器 / 时间补充,中英文;我方报告口径(BUG-1199~1229)全部保持;旧报告仍可打开;排在 sync6 之后 | 已验收(Claude 补修 BUG-1282 后合入 staging) | `codex/report-full-data-edition-20261007`(未推 staging) |
| `TASK-report-full-data-fix-20261008.md` | `PROGRESS-report-full-data-fix-20261008.md` | **完整数据版补齐**(同分支继续):解释段、年运字段、开篇重点、英文汉字清零。Patyayini 不新算。生成按钮文案不改。等验收后再合入 staging | 已验收(Claude 补修 BUG-1282 后合入 staging) | `codex/report-full-data-edition-20261007`(未合入 staging) |
| `TASK-report-full-data-fix2-20261008.md` | `PROGRESS-report-full-data-fix2-20261008.md` | **完整数据版第二轮**(同分支续):年运章投影已有字段,大运解释补「可能」段落,瑜伽作用不再断言寿命,术语不进标识符,罗睺/计都不写「守护第未列出宫」。章动单不在本分支 | 已验收(Claude 补修 BUG-1282 后合入 staging) | `codex/report-full-data-edition-20261007`(未合入) |
| `TASK-rashi-dashas-native-20261008.md` | — | **报告补 7 种星座大运**(Sthira / Drig / Shoola / Navamsha / Niryaana Shoola / Lagna Kendradi / Chara):上游是「显式输入展开器」+「运行候选档案」,起始星座、方向、年数要由我方盘面算;PyJHora 只作冻结对照;只进报告并标口径;Lagna Kendradi 无安全默认值先调研 | 待领取 | — |
| `TASK-rashi-dashas-native-20261008.md` | `PROGRESS-rashi-dashas-native-20261008.md` | **报告补 7 种星座大运**(Sthira / Drig / Shoola / Navamsha / Niryaana Shoola / Lagna Kendradi / Chara):六种上完整数据版并标口径;Lagna Kendradi 没有安全默认值,报告写明缺席、不上表 | 待验收 | `codex/rashi-dashas-native-20261008`(未推送,未合入) |
| `TASK-report-reader-main-fix-20260925.md` | `PROGRESS-report-reader-main-fix-20260925.md` | **读者版修复**:真实年主比较、分字段绑定与未来返照;保留 Bhava Bala 和标题,隔离报告/聊天规则 | 已验收(Claude 09-25:年运表逐年填齐且不同、Bhava Bala 保留、泄漏 0) | `4d801e53`(已部署,health 核对一致) |
| `TASK-report-reader-main-20260924.md` | `PROGRESS-report-reader-main-20260924.md` | **报告正文换上游读者版 reader_main + KP / Muntha 计算缺陷 + 投影截断(BUG-1026/1027/1028)**:正文一直是上游审计版(读者版 09-09 才出、从未同步),本仓又自加「结论等级规则」/英文段/异常原文;投影黑名单不认 PL9 词汇且截断半句、删表留说明;KP args `vars()` 拷贝为空恒失败;Muntha 漏合 `birth_asc_sign_idx` → Year Lord 恒火星。产品拍板接入读者版、旧报告不回填。 | 部分通过(Claude 09-25:读者版切换、泄漏 0 命中、KP 已修;年运 Year Lord/Muntha 全为「-」P1、投影误删 Bhava Bala P2 → 修复单) | `3c2f7bd5`(已部署) |
| `TASK-report-reader-actions-20260924.md` | — | **报告操作收敛**:列表只留「查看报告」;阅读页删「下载原始附录」「打印」,导出改图标按钮;导出对话框 ≥860 居中、窄屏仍贴底(修订 chapter-export D9/D10)。产品变更,不开 BUG 号 | 基本通过(Claude 09-24:入口收敛、图标、≥860 居中均符合;原始附录三文件因执行方权限未删、PROGRESS/清单未写 → 并入修复单) | `f125fae0`(未部署) |
@@ -0,0 +1,12 @@
# 星座大运报告核对(2026-10-09)
本机没有登录态,也没有做浏览器走查。下面留给真人在重新生成的完整数据版上看。不要把出生时刻写进回复。
盘:公开盘 `steve_jobs_1955_aa`,再抽 `barack_obama_1961_aa` 或 `einstein_1879_aa` 一张即可。
1. 中文完整数据版有 Sthira、Niryaana Shoola、Drig、Navamsha、Shoola、Chara 六节。每节有「本站选用的方法」和书名页码,并写着未与外部软件逐一核对。
2. Lagna Kendradi 只有一句缺席,没有星座表。中文清理后标题里的 Lagna 会变成「上升」。这是既有清理,不是漏章。
3. Chara 写明是 K.N. Rao 的表,不是 Narayana 表。
4. 英文版这几节没有汉字。
5. 对话里的年运卡和生时校正没有这七种新表。
6. 若要改 Lagna Kendradi 或改用 Drig 的普通黄道顺序,先回答进度记录里的占星师问题,再改代码。