Release v6.0.42 Yoga source parity

This commit is contained in:
732642856
2026-06-06 00:28:17 +08:00
parent 86e7d03c4a
commit 0d582dbaa3
4 changed files with 285 additions and 369 deletions
+46
View File
@@ -1,5 +1,51 @@
# 印度占星 Skill 更新日志
## v6.0.422026-06-05)—— Yoga F1 93% 源码口径续航
> **目标**:继续用户要求的“准确率优先”路线;本轮先对残余 Top Yoga 做 A/B 模拟,只发布源码定义明确且整体指标健康改善的修改,不为了短期 F1 盲目扩大规则。
### 源码语义确认
- 复核 PyJHora `yoga._get_natural_benefics()`Yoga 源码层的 natural benefics 默认为 Jupiter、VenusMercury 仅在独处或与 Jupiter/Venus 同宫时加入;不等同于 Skill 静态 `BENEFICS`
- 复核 PyJHora `house.aspected_planets_of_the_planet(chart, p)``house.planets_aspecting_the_planet(chart, p)` 方向差异:前者是“p 所相位到的行星”,后者才是“相位 p 的行星”。`bvr_bhratruvriddhi_precise` 按源码使用前者语义。
- 复核 PyJHora `charts.benefics_and_malefics()`jd/place 路径存在 tithi、Moon、Mercury 同宫动态凶吉;但当前 v6.0.42 只在源码明确需要的 Yoga 中使用已稳定复现的 `pyjhora_natural_benefics()`,暂不把 dynamic benefics/malefics 全局接入,避免影响过宽。
### 高影响规则对齐
- `bvr_bhratruvriddhi_precise`:改用 `pyjhora_natural_benefics()`,并按 PyJHora `_bhratruvriddhi_yoga_calculation()` 保留 `aspected_planets_of_the_planet()` 的方向语义;模拟结果 FP **7→0**FN **0→3**,整体 precision 明显提升。
- `bvr_ayatna_griha_prapta_yoga`:从旧 compound 占位结构改为 custom 源码口径,复刻 BVR-189/190
- L1 与 L7 同在 Lagna 或 4宫,并至少一者受 natural benefic 相位;或
- L9 在 Kendra,且 L4 strong 或 moola-trikona。
- 模拟结果 FP **0→0**FN **6→1**
- `bvr_utthama_graha_yoga`:从 semantic compound 改为 custom BVR-187 源码口径:4宫主在 Kendra/Trikona,且与 natural benefic 同宫,并受 natural benefic Graha Drishti;模拟结果 FP **3→1**FN **5→6**,结合前两项后总指标仍健康改善。
- `bvr_dharidhra_11_precise` 本轮只模拟、不修改:去掉 `method1` 后虽 FP **2→1**,但 FN **6→10**,不符合准确率优先与 source-comparable 收益标准。
### 验证结果
- `scripts/validate_logic_v2.py`
- Precision **95.67%**v6.0.41 为 94.82%
- Recall **91.01%**v6.0.41 为 90.92%
- F1 **93.28%**v6.0.41 为 92.83%
- FP44FN96
- `scripts/run_quality_gate.py --skip-yoga-logic`:通过。
- pytest **35 passed**
- BPHS/Ashtakavarga 不变量 **18/18**
- golden case 通过
- capability audit valid0 problem / 0 warning
### 规则库状态
- JSON 规则总数:**475**
- 启用规则:**381**
- 当前验证报告:`references/validation_logic_report.json`
### 后续优化点
- 下一轮 Top residual 仍集中在 `bvr_vanchana_chora_bheethi_yoga``bvr_kapata_yoga``bvr_mathibhramana_yoga``bvr_dharidhra_11_precise``bvr_kalaanidhi_yoga``bvr_krisanga_yoga`
- 暂不建议直接扩大 Kapata/Vanchana/Mathibhramana 条件;应优先复现 Gulika/Maandi house-index、`benefics_and_malefics()` dynamic malefics、以及 PyJHora variation mapping 的输入层。
---
## v6.0.412026-06-05)—— Yoga F1 92% 源码口径续航
> **目标**:在 v6.0.40 基础上继续推进残余 Yoga 误差,但仍坚持“准确率优先、源码确认后再改”;本轮只处理 PyJHora 源码定义非常明确且可稳定复现的规则。
+4 -4
View File
@@ -1,6 +1,6 @@
---
name: jyotish-vedic-astrology
version: 6.0.41
version: 6.0.42
description: 印度占星(Jyotish)专业解盘与推运系统。核心能力:PDF星盘输入→严谨解盘→精确推运应期输出。触发词:印度占星、吠陀占星、Jyotish、解盘、推运、星盘分析、Dasha、Transit、Nakshatra、Yoga、出生时间矫正、PDF星盘、读取PDF、分析PDF星盘、现代解读、误判纠错、Varga分盘、综合分析、过境分析、合盘、婚姻匹配、年运盘、Prashna、Argala、Jaimini、Shadbala、Ashtakavarga、HTML报告、深度解盘。
---
@@ -10,7 +10,7 @@ description: 印度占星(Jyotish)专业解盘与推运系统。核心能力
> **严格路由**`references/strict-workflow-router.md`(⭐涉及事业/婚恋/财务/应期/技法验证时必须优先读取)
> **覆盖矩阵**`references/technique-capability-matrix.md`(⭐判断技法 covered/partial/missing 时必须参考)
> **机器注册表**`references/technique_registry.json` + `scripts/audit_capabilities.py`(⭐用于自动审计与CI门禁)
> **版本**v6.0.41-yoga-f1-92-source-parity | **详细变更**`CHANGELOG.md`
> **版本**v6.0.42-yoga-f1-93-source-parity | **详细变更**`CHANGELOG.md`
---
@@ -301,9 +301,9 @@ $PYTHON $SCRIPT <子命令> [参数]
---
**版本**v6.0.41-yoga-f1-92-source-parity
**版本**v6.0.42-yoga-f1-93-source-parity
**创建日期**2026-04-20
**最后更新**2026-06-05v6.0.41 继续坚持 PyJHora 源码口径优先,修复 `bvr_sumukha_precise``bvr_dama_yoga``bvr_matru_sneha_yoga` 并新增 `pyjhora_aspected_planets_of_raasi()``natural_friend()` helper;当前 475 条 JSON 规则、381 条启用规则,D1/Rasi 逻辑验证 Precision=94.82%、Recall=90.92%、F1=92.83%,质量门禁通过,报告以 `references/validation_logic_report.json` 为准)
**最后更新**2026-06-05v6.0.42 继续坚持 PyJHora 源码口径优先,先模拟再修改;本轮修复 `bvr_bhratruvriddhi_precise``bvr_ayatna_griha_prapta_yoga``bvr_utthama_graha_yoga`,对齐 PyJHora natural benefics、BVR-189/190 与 BVR-187 逻辑;当前 475 条 JSON 规则、381 条启用规则,D1/Rasi 逻辑验证 Precision=95.67%、Recall=91.01%、F1=93.28%,质量门禁通过,报告以 `references/validation_logic_report.json` 为准)
---
+221 -279
View File
@@ -2,7 +2,7 @@
"summary": {
"charts_tested": 60,
"comparable_rules": 72,
"skill_total": 1024,
"skill_total": 1016,
"pyjhora_total": 1068,
"unmapped_pyjhora": 706,
"missing_mappings": {
@@ -131,19 +131,14 @@
"yuddhatpoorvadridhachitta_yoga"
]
},
"agreements": 971,
"false_positives": 53,
"false_negatives": 97,
"precision": 0.9482,
"recall": 0.9092,
"f1": 0.9283
"agreements": 972,
"false_positives": 44,
"false_negatives": 96,
"precision": 0.9567,
"recall": 0.9101,
"f1": 0.9328
},
"false_positives": [
{
"chart": "Albert Einstein",
"rule_id": "bvr_bhratruvriddhi_precise",
"rule_name": "Bhratruvriddhi Yoga"
},
{
"chart": "Albert Einstein",
"rule_id": "koorma_yoga",
@@ -171,29 +166,19 @@
},
{
"chart": "Thomas Edison",
"rule_id": "bvr_bhratruvriddhi_precise",
"rule_name": "Bhratruvriddhi Yoga"
"rule_id": "bvr_017_vosi_precise",
"rule_name": "Vosi Yoga"
},
{
"chart": "Thomas Edison",
"rule_id": "bvr_018_ubhayachara_precise",
"rule_name": "Ubhayachara Yoga"
},
{
"chart": "Thomas Edison",
"rule_id": "bvr_017_vosi_precise",
"rule_name": "Vosi Yoga"
},
{
"chart": "Max Planck",
"rule_id": "bvr_bandhubhisthyaktha_precise",
"rule_name": "Bandhubhisthyaktha Yoga"
},
{
"chart": "Niels Bohr",
"rule_id": "bvr_bhratruvriddhi_precise",
"rule_name": "Bhratruvriddhi Yoga"
},
{
"chart": "Niels Bohr",
"rule_id": "vihaga_nabhasa",
@@ -229,26 +214,11 @@
"rule_id": "bvr_bahu_puthra_precise",
"rule_name": "Bahu Puthra Yoga"
},
{
"chart": "Rabindranath Tagore",
"rule_id": "bvr_bhratruvriddhi_precise",
"rule_name": "Bhratruvriddhi Yoga"
},
{
"chart": "Rabindranath Tagore",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
"rule_name": "Vanchana Chora Bheethi Yoga"
},
{
"chart": "Wolfgang Mozart",
"rule_id": "bvr_utthama_graha_yoga",
"rule_name": "Utthama Griha Yoga"
},
{
"chart": "Pablo Picasso",
"rule_id": "bvr_018_ubhayachara_precise",
"rule_name": "Ubhayachara Yoga"
},
{
"chart": "Pablo Picasso",
"rule_id": "bvr_bhaga_chumbana_yoga",
@@ -259,10 +229,15 @@
"rule_id": "bvr_kapata_yoga",
"rule_name": "Kapata Yoga"
},
{
"chart": "Pablo Picasso",
"rule_id": "bvr_018_ubhayachara_precise",
"rule_name": "Ubhayachara Yoga"
},
{
"chart": "Vincent van Gogh",
"rule_id": "bvr_dharidhra_11_precise",
"rule_name": "Dharidhra Yoga"
"rule_id": "bvr_krisanga_yoga",
"rule_name": "Krisanga Yoga"
},
{
"chart": "Vincent van Gogh",
@@ -271,8 +246,8 @@
},
{
"chart": "Vincent van Gogh",
"rule_id": "bvr_krisanga_yoga",
"rule_name": "Krisanga Yoga"
"rule_id": "bvr_dharidhra_11_precise",
"rule_name": "Dharidhra Yoga"
},
{
"chart": "Charlie Chaplin",
@@ -286,13 +261,13 @@
},
{
"chart": "Steve Jobs",
"rule_id": "bvr_mathibhramana_yoga",
"rule_name": "Mathibhramana Yoga"
"rule_id": "vihaga_nabhasa",
"rule_name": "Vihaga Nabhasa Yoga"
},
{
"chart": "Steve Jobs",
"rule_id": "vihaga_nabhasa",
"rule_name": "Vihaga Nabhasa Yoga"
"rule_id": "bvr_mathibhramana_yoga",
"rule_name": "Mathibhramana Yoga"
},
{
"chart": "Bill Gates",
@@ -309,11 +284,6 @@
"rule_id": "bvr_yukthi_samanwithavagmi_yoga",
"rule_name": "Yukthi Samanwithavagmi Yoga"
},
{
"chart": "Narayana Murthy",
"rule_id": "bvr_bhratruvriddhi_precise",
"rule_name": "Bhratruvriddhi Yoga"
},
{
"chart": "Narayana Murthy",
"rule_id": "bvr_bhaga_chumbana_yoga",
@@ -329,20 +299,15 @@
"rule_id": "bvr_yukthi_samanwithavagmi_yoga",
"rule_name": "Yukthi Samanwithavagmi Yoga"
},
{
"chart": "Michael Jordan",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
"rule_name": "Vanchana Chora Bheethi Yoga"
},
{
"chart": "Michael Jordan",
"rule_id": "bvr_yukthi_samanwithavagmi_yoga",
"rule_name": "Yukthi Samanwithavagmi Yoga"
},
{
"chart": "Lionel Messi",
"rule_id": "brahma_yoga",
"rule_name": "Brahma Yoga"
"chart": "Michael Jordan",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
"rule_name": "Vanchana Chora Bheethi Yoga"
},
{
"chart": "Lionel Messi",
@@ -350,14 +315,14 @@
"rule_name": "Vosi Yoga"
},
{
"chart": "Cristiano Ronaldo",
"chart": "Lionel Messi",
"rule_id": "brahma_yoga",
"rule_name": "Brahma Yoga"
},
{
"chart": "Cristiano Ronaldo",
"rule_id": "bvr_utthama_graha_yoga",
"rule_name": "Utthama Griha Yoga"
"rule_id": "brahma_yoga",
"rule_name": "Brahma Yoga"
},
{
"chart": "Cristiano Ronaldo",
@@ -369,11 +334,6 @@
"rule_id": "bvr_kapata_yoga",
"rule_name": "Kapata Yoga"
},
{
"chart": "Roger Federer",
"rule_id": "bvr_bhratruvriddhi_precise",
"rule_name": "Bhratruvriddhi Yoga"
},
{
"chart": "Roger Federer",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
@@ -394,11 +354,6 @@
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
"rule_name": "Vanchana Chora Bheethi Yoga"
},
{
"chart": "Dalai Lama",
"rule_id": "bvr_bhratruvriddhi_precise",
"rule_name": "Bhratruvriddhi Yoga"
},
{
"chart": "Osho",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
@@ -406,6 +361,25 @@
}
],
"false_negatives": [
{
"chart": "Albert Einstein",
"rule_id": "bvr_kaalanirdesat_puthranaasa_yoga",
"rule_name": "Kaalanirdesat Puthranaasa Yoga",
"pyjhora_names": [
"kaalanirdesat_puthranaasa_yoga_230",
"kaalanirdesat_puthranaasa_yoga_229"
]
},
{
"chart": "Albert Einstein",
"rule_id": "bvr_kapata_yoga",
"rule_name": "Kapata Yoga",
"pyjhora_names": [
"kapata_yoga_202",
"kapata_yoga_203",
"kapata_yoga_204"
]
},
{
"chart": "Albert Einstein",
"rule_id": "bvr_dharidhra_11_precise",
@@ -432,25 +406,6 @@
"mathibhramana_yoga_variation"
]
},
{
"chart": "Albert Einstein",
"rule_id": "bvr_kapata_yoga",
"rule_name": "Kapata Yoga",
"pyjhora_names": [
"kapata_yoga_202",
"kapata_yoga_203",
"kapata_yoga_204"
]
},
{
"chart": "Albert Einstein",
"rule_id": "bvr_kaalanirdesat_puthranaasa_yoga",
"rule_name": "Kaalanirdesat Puthranaasa Yoga",
"pyjhora_names": [
"kaalanirdesat_puthranaasa_yoga_230",
"kaalanirdesat_puthranaasa_yoga_229"
]
},
{
"chart": "Nikola Tesla",
"rule_id": "parvata_yoga",
@@ -468,14 +423,6 @@
"matrunasa_yoga_199"
]
},
{
"chart": "Charles Darwin",
"rule_id": "bvr_utthama_graha_yoga",
"rule_name": "Utthama Griha Yoga",
"pyjhora_names": [
"utthama_graha_yoga"
]
},
{
"chart": "Charles Darwin",
"rule_id": "bvr_kalaanidhi_yoga",
@@ -485,6 +432,14 @@
"kalanidhi_yoga"
]
},
{
"chart": "Charles Darwin",
"rule_id": "bvr_utthama_graha_yoga",
"rule_name": "Utthama Griha Yoga",
"pyjhora_names": [
"utthama_graha_yoga"
]
},
{
"chart": "Thomas Edison",
"rule_id": "brahma_yoga",
@@ -509,6 +464,22 @@
"utthama_graha_yoga"
]
},
{
"chart": "Max Planck",
"rule_id": "bvr_bhratruvriddhi_precise",
"rule_name": "Bhratruvriddhi Yoga",
"pyjhora_names": [
"bhratruvriddhi_yoga"
]
},
{
"chart": "Max Planck",
"rule_id": "bvr_amala_precise",
"rule_name": "Amala Yoga",
"pyjhora_names": [
"amala_yoga"
]
},
{
"chart": "Max Planck",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
@@ -529,32 +500,6 @@
"mathibhramana_yoga_variation"
]
},
{
"chart": "Max Planck",
"rule_id": "bvr_ayatna_griha_prapta_yoga",
"rule_name": "Ayatna Griha Prapta Yoga",
"pyjhora_names": [
"ayatna_griha_prapta_yoga_189",
"ayatna_griha_prapta_yoga_190"
]
},
{
"chart": "Max Planck",
"rule_id": "bvr_amala_precise",
"rule_name": "Amala Yoga",
"pyjhora_names": [
"amala_yoga"
]
},
{
"chart": "Richard Feynman",
"rule_id": "bvr_ayatna_griha_prapta_yoga",
"rule_name": "Ayatna Griha Prapta Yoga",
"pyjhora_names": [
"ayatna_griha_prapta_yoga_189",
"ayatna_griha_prapta_yoga_190"
]
},
{
"chart": "Richard Feynman",
"rule_id": "bvr_kapata_yoga",
@@ -565,6 +510,15 @@
"kapata_yoga_204"
]
},
{
"chart": "Mahatma Gandhi",
"rule_id": "bvr_dattha_puthra_yoga",
"rule_name": "Dattha Puthra Yoga",
"pyjhora_names": [
"dattha_puthra_yoga_222",
"dattha_puthra_yoga_223"
]
},
{
"chart": "Mahatma Gandhi",
"rule_id": "bvr_mathibhramana_yoga",
@@ -577,15 +531,6 @@
"mathibhramana_yoga_variation"
]
},
{
"chart": "Mahatma Gandhi",
"rule_id": "bvr_dattha_puthra_yoga",
"rule_name": "Dattha Puthra Yoga",
"pyjhora_names": [
"dattha_puthra_yoga_222",
"dattha_puthra_yoga_223"
]
},
{
"chart": "Jawaharlal Nehru",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
@@ -614,18 +559,18 @@
},
{
"chart": "Indira Gandhi",
"rule_id": "bvr_kaahala_yoga",
"rule_name": "Kaahala Yoga",
"rule_id": "kahala_yoga",
"rule_name": "Kahala Yoga",
"pyjhora_names": [
"kaahala_yoga"
"kahala_yoga"
]
},
{
"chart": "Indira Gandhi",
"rule_id": "bvr_utthama_graha_yoga",
"rule_name": "Utthama Griha Yoga",
"rule_id": "bvr_kaahala_yoga",
"rule_name": "Kaahala Yoga",
"pyjhora_names": [
"utthama_graha_yoga"
"kaahala_yoga"
]
},
{
@@ -639,18 +584,10 @@
},
{
"chart": "Indira Gandhi",
"rule_id": "kahala_yoga",
"rule_name": "Kahala Yoga",
"rule_id": "bvr_utthama_graha_yoga",
"rule_name": "Utthama Griha Yoga",
"pyjhora_names": [
"kahala_yoga"
]
},
{
"chart": "Winston Churchill",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
"rule_name": "Vanchana Chora Bheethi Yoga",
"pyjhora_names": [
"vanchana_chora_bheethi_yoga"
"utthama_graha_yoga"
]
},
{
@@ -667,6 +604,24 @@
"dharidhra_yoga_152"
]
},
{
"chart": "Winston Churchill",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
"rule_name": "Vanchana Chora Bheethi Yoga",
"pyjhora_names": [
"vanchana_chora_bheethi_yoga"
]
},
{
"chart": "Abraham Lincoln",
"rule_id": "bvr_kapata_yoga",
"rule_name": "Kapata Yoga",
"pyjhora_names": [
"kapata_yoga_202",
"kapata_yoga_203",
"kapata_yoga_204"
]
},
{
"chart": "Abraham Lincoln",
"rule_id": "bvr_kalaanidhi_yoga",
@@ -685,7 +640,7 @@
]
},
{
"chart": "Abraham Lincoln",
"chart": "Barack Obama",
"rule_id": "bvr_kapata_yoga",
"rule_name": "Kapata Yoga",
"pyjhora_names": [
@@ -708,24 +663,6 @@
"dharidhra_yoga_152"
]
},
{
"chart": "Barack Obama",
"rule_id": "bvr_kapata_yoga",
"rule_name": "Kapata Yoga",
"pyjhora_names": [
"kapata_yoga_202",
"kapata_yoga_203",
"kapata_yoga_204"
]
},
{
"chart": "Ludwig van Beethoven",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
"rule_name": "Vanchana Chora Bheethi Yoga",
"pyjhora_names": [
"vanchana_chora_bheethi_yoga"
]
},
{
"chart": "Ludwig van Beethoven",
"rule_id": "bvr_kalaanidhi_yoga",
@@ -735,6 +672,23 @@
"kalanidhi_yoga"
]
},
{
"chart": "Ludwig van Beethoven",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
"rule_name": "Vanchana Chora Bheethi Yoga",
"pyjhora_names": [
"vanchana_chora_bheethi_yoga"
]
},
{
"chart": "Wolfgang Mozart",
"rule_id": "bvr_krisanga_yoga",
"rule_name": "Krisanga Yoga",
"pyjhora_names": [
"krisanga_yoga_112",
"krisanga_yoga_113"
]
},
{
"chart": "Wolfgang Mozart",
"rule_id": "bvr_dharidhra_11_precise",
@@ -750,12 +704,11 @@
]
},
{
"chart": "Wolfgang Mozart",
"rule_id": "bvr_krisanga_yoga",
"rule_name": "Krisanga Yoga",
"chart": "Vincent van Gogh",
"rule_id": "bvr_yukthi_samanwithavagmi_yoga",
"rule_name": "Yukthi Samanwithavagmi Yoga",
"pyjhora_names": [
"krisanga_yoga_112",
"krisanga_yoga_113"
"yukthi_samanwithavagmi_yoga_154"
]
},
{
@@ -779,7 +732,7 @@
]
},
{
"chart": "Vincent van Gogh",
"chart": "Charlie Chaplin",
"rule_id": "bvr_yukthi_samanwithavagmi_yoga",
"rule_name": "Yukthi Samanwithavagmi Yoga",
"pyjhora_names": [
@@ -824,14 +777,6 @@
"matrunasa_yoga_199"
]
},
{
"chart": "Charlie Chaplin",
"rule_id": "bvr_yukthi_samanwithavagmi_yoga",
"rule_name": "Yukthi Samanwithavagmi Yoga",
"pyjhora_names": [
"yukthi_samanwithavagmi_yoga_154"
]
},
{
"chart": "Elvis Presley",
"rule_id": "bvr_kapata_yoga",
@@ -842,6 +787,14 @@
"kapata_yoga_204"
]
},
{
"chart": "Michael Jackson",
"rule_id": "bvr_amala_precise",
"rule_name": "Amala Yoga",
"pyjhora_names": [
"amala_yoga"
]
},
{
"chart": "Michael Jackson",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
@@ -852,10 +805,10 @@
},
{
"chart": "Michael Jackson",
"rule_id": "bvr_amala_precise",
"rule_name": "Amala Yoga",
"rule_id": "bvr_utthama_graha_yoga",
"rule_name": "Utthama Griha Yoga",
"pyjhora_names": [
"amala_yoga"
"utthama_graha_yoga"
]
},
{
@@ -868,14 +821,6 @@
"kapata_yoga_204"
]
},
{
"chart": "Lata Mangeshkar",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
"rule_name": "Vanchana Chora Bheethi Yoga",
"pyjhora_names": [
"vanchana_chora_bheethi_yoga"
]
},
{
"chart": "Lata Mangeshkar",
"rule_id": "bvr_matrunasa_precise",
@@ -885,6 +830,14 @@
"matrunasa_yoga_199"
]
},
{
"chart": "Lata Mangeshkar",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
"rule_name": "Vanchana Chora Bheethi Yoga",
"pyjhora_names": [
"vanchana_chora_bheethi_yoga"
]
},
{
"chart": "Steve Jobs",
"rule_id": "bvr_nishkapata_precise",
@@ -911,6 +864,14 @@
"raja_bhanga_yoga_299"
]
},
{
"chart": "Bill Gates",
"rule_id": "bvr_bhratruvriddhi_precise",
"rule_name": "Bhratruvriddhi Yoga",
"pyjhora_names": [
"bhratruvriddhi_yoga"
]
},
{
"chart": "Elon Musk",
"rule_id": "bvr_krisanga_yoga",
@@ -945,6 +906,14 @@
"vanchana_chora_bheethi_yoga"
]
},
{
"chart": "Warren Buffett",
"rule_id": "bvr_vaatharoga_yoga",
"rule_name": "Vaatharoga Yoga",
"pyjhora_names": [
"vaatharoga_yoga"
]
},
{
"chart": "Warren Buffett",
"rule_id": "bvr_mathibhramana_yoga",
@@ -957,14 +926,6 @@
"mathibhramana_yoga_variation"
]
},
{
"chart": "Warren Buffett",
"rule_id": "bvr_vaatharoga_yoga",
"rule_name": "Vaatharoga Yoga",
"pyjhora_names": [
"vaatharoga_yoga"
]
},
{
"chart": "Mukesh Ambani",
"rule_id": "parvata_yoga",
@@ -973,14 +934,6 @@
"parvata_yoga"
]
},
{
"chart": "Narayana Murthy",
"rule_id": "bvr_bandhubhisthyaktha_precise",
"rule_name": "Bandhubhisthyaktha Yoga",
"pyjhora_names": [
"bandhubhisthyaktha_yoga"
]
},
{
"chart": "Narayana Murthy",
"rule_id": "adhi_yoga",
@@ -990,11 +943,11 @@
]
},
{
"chart": "Azim Premji",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
"rule_name": "Vanchana Chora Bheethi Yoga",
"chart": "Narayana Murthy",
"rule_id": "bvr_bandhubhisthyaktha_precise",
"rule_name": "Bandhubhisthyaktha Yoga",
"pyjhora_names": [
"vanchana_chora_bheethi_yoga"
"bandhubhisthyaktha_yoga"
]
},
{
@@ -1006,6 +959,14 @@
"krisanga_yoga_113"
]
},
{
"chart": "Azim Premji",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
"rule_name": "Vanchana Chora Bheethi Yoga",
"pyjhora_names": [
"vanchana_chora_bheethi_yoga"
]
},
{
"chart": "Dhirubhai Ambani",
"rule_id": "bvr_krisanga_yoga",
@@ -1055,11 +1016,12 @@
},
{
"chart": "Lionel Messi",
"rule_id": "bvr_matrudeerghayur_yoga",
"rule_name": "Matrudeerghayur Yoga",
"rule_id": "bvr_kapata_yoga",
"rule_name": "Kapata Yoga",
"pyjhora_names": [
"matrudeerghayur_yoga_196",
"matrudeerghayur_yoga_197"
"kapata_yoga_202",
"kapata_yoga_203",
"kapata_yoga_204"
]
},
{
@@ -1095,20 +1057,11 @@
},
{
"chart": "Lionel Messi",
"rule_id": "bvr_kapata_yoga",
"rule_name": "Kapata Yoga",
"rule_id": "bvr_matrudeerghayur_yoga",
"rule_name": "Matrudeerghayur Yoga",
"pyjhora_names": [
"kapata_yoga_202",
"kapata_yoga_203",
"kapata_yoga_204"
]
},
{
"chart": "Cristiano Ronaldo",
"rule_id": "bvr_yuddha_marana_yoga",
"rule_name": "Yuddha Marana Yoga",
"pyjhora_names": [
"yuddha_marana_yoga"
"matrudeerghayur_yoga_196",
"matrudeerghayur_yoga_197"
]
},
{
@@ -1121,10 +1074,10 @@
},
{
"chart": "Cristiano Ronaldo",
"rule_id": "bvr_matru_sneha_yoga",
"rule_name": "Matru Sneha Yoga",
"rule_id": "bvr_yuddha_marana_yoga",
"rule_name": "Yuddha Marana Yoga",
"pyjhora_names": [
"matru_sneha_yoga"
"yuddha_marana_yoga"
]
},
{
@@ -1136,6 +1089,14 @@
"kalanidhi_yoga"
]
},
{
"chart": "Cristiano Ronaldo",
"rule_id": "bvr_matru_sneha_yoga",
"rule_name": "Matru Sneha Yoga",
"pyjhora_names": [
"matru_sneha_yoga"
]
},
{
"chart": "Serena Williams",
"rule_id": "bvr_mathibhramana_yoga",
@@ -1148,15 +1109,6 @@
"mathibhramana_yoga_variation"
]
},
{
"chart": "Serena Williams",
"rule_id": "bvr_ayatna_griha_prapta_yoga",
"rule_name": "Ayatna Griha Prapta Yoga",
"pyjhora_names": [
"ayatna_griha_prapta_yoga_189",
"ayatna_griha_prapta_yoga_190"
]
},
{
"chart": "Pele",
"rule_id": "bvr_mathibhramana_yoga",
@@ -1177,15 +1129,6 @@
"parvata_yoga"
]
},
{
"chart": "Swami Vivekananda",
"rule_id": "bvr_ayatna_griha_prapta_yoga",
"rule_name": "Ayatna Griha Prapta Yoga",
"pyjhora_names": [
"ayatna_griha_prapta_yoga_189",
"ayatna_griha_prapta_yoga_190"
]
},
{
"chart": "Dalai Lama",
"rule_id": "parvata_yoga",
@@ -1195,12 +1138,12 @@
]
},
{
"chart": "Dalai Lama",
"rule_id": "bvr_ayatna_griha_prapta_yoga",
"rule_name": "Ayatna Griha Prapta Yoga",
"chart": "Pope Francis",
"rule_id": "bvr_raja_bhanga_yoga",
"rule_name": "Raja Bhanga Yoga",
"pyjhora_names": [
"ayatna_griha_prapta_yoga_189",
"ayatna_griha_prapta_yoga_190"
"raja_bhanga_yoga_298",
"raja_bhanga_yoga_299"
]
},
{
@@ -1214,19 +1157,10 @@
},
{
"chart": "Pope Francis",
"rule_id": "bvr_raja_bhanga_yoga",
"rule_name": "Raja Bhanga Yoga",
"rule_id": "bvr_bhratruvriddhi_precise",
"rule_name": "Bhratruvriddhi Yoga",
"pyjhora_names": [
"raja_bhanga_yoga_298",
"raja_bhanga_yoga_299"
]
},
{
"chart": "Osho",
"rule_id": "bvr_vichitra_saudha_prakara_yoga",
"rule_name": "Vichitra Saudha Prakara Yoga",
"pyjhora_names": [
"vichitra_saudha_prakara_yoga"
"bhratruvriddhi_yoga"
]
},
{
@@ -1248,6 +1182,14 @@
"dehasthoulya_yoga_116"
]
},
{
"chart": "Osho",
"rule_id": "bvr_vichitra_saudha_prakara_yoga",
"rule_name": "Vichitra Saudha Prakara Yoga",
"pyjhora_names": [
"vichitra_saudha_prakara_yoga"
]
},
{
"chart": "J. Krishnamurti",
"rule_id": "bvr_kapata_yoga",
@@ -1276,6 +1218,14 @@
"sankha_yoga"
]
},
{
"chart": "Paramahansa Yogananda",
"rule_id": "bvr_yuddha_marana_yoga",
"rule_name": "Yuddha Marana Yoga",
"pyjhora_names": [
"yuddha_marana_yoga"
]
},
{
"chart": "Paramahansa Yogananda",
"rule_id": "bvr_vanchana_chora_bheethi_yoga",
@@ -1292,14 +1242,6 @@
"matrunasa_yoga_198",
"matrunasa_yoga_199"
]
},
{
"chart": "Paramahansa Yogananda",
"rule_id": "bvr_yuddha_marana_yoga",
"rule_name": "Yuddha Marana Yoga",
"pyjhora_names": [
"yuddha_marana_yoga"
]
}
]
}
+14 -86
View File
@@ -9221,8 +9221,8 @@
"category": "auspicious",
"logic": {
"type": "custom",
"expr": "\n# PyJHora/BVR-177: 3rd lord, Mars, or 3rd house joined/aspected by benefics and strong.\n# Planet-to-house aspect uses rasi drishti; planet-to-planet uses graha drishti.\nlord_3 = lord(3)\nbenefics = [p for p in BENEFICS if p in ctx.planets]\ndef benefic_link_to_planet(p):\n return p in ctx.planets and strong(p) and any(b != p and (same_house(b, p) or aspect(b, p)) for b in benefics)\nhouse_joined = any(house_of(b) == 3 for b in benefics)\nhouse_aspected = any(rasi_aspects_house(b, 3) for b in benefics)\nbenefic_link_to_planet(lord_3) or benefic_link_to_planet('Mars') or house_joined or house_aspected\n",
"combo_template": "3宫主、火星或3宫受吉星连接"
"expr": "\n# PyJHora/BVR-177 source-parity: 3rd lord, Mars, or 3rd house joined/aspected by PyJHora natural benefics.\n# NOTE: PyJHora house.aspected_planets_of_the_planet(chart, p) returns planets aspected BY p.\nlord_3 = lord(3)\nbenefics = pyjhora_natural_benefics()\ndef benefic_link_to_planet(p):\n return p in ctx.planets and strong(p) and any(\n b != p and (same_house(b, p) or aspect(p, b))\n for b in benefics\n )\nhouse_joined = any(house_of(b) == 3 for b in benefics)\nhouse_aspected = any(b in pyjhora_aspected_planets_of_raasi(3) for b in benefics)\nbenefic_link_to_planet(lord_3) or benefic_link_to_planet('Mars') or house_joined or house_aspected\n",
"combo_template": "3宫主、火星或3宫按PyJHora源码受吉星连接"
},
"effects": [
"兄弟和睦",
@@ -9231,7 +9231,7 @@
],
"strength": "中",
"enabled": true,
"accuracy_note": "高置信:定义来自 PyJHora/B.V. Raman。"
"accuracy_note": "v6.0.42 source-parity: uses PyJHora natural benefics and preserves house.aspected_planets_of_the_planet() direction semantics."
},
{
"id": "bvr_bandhubhisthyaktha_precise",
@@ -9615,64 +9615,9 @@
"bvr_id": null,
"category": "special",
"logic": {
"type": "compound_conditions",
"conditions": [
{
"type": "compound",
"operator": "OR",
"conditions": [
{
"type": "compound",
"operator": "AND",
"conditions": [
{
"type": "lords_in_houses",
"lords_and_houses": [
[
1,
0
],
[
7,
0
],
[
1,
3
],
[
7,
3
]
],
"note": "Lords of Lagna and 7th in Lagna or 4th"
},
{
"type": "aspected_by_benefics",
"note": "Aspected by benefics"
}
]
},
{
"type": "compound",
"operator": "AND",
"conditions": [
{
"type": "lord_in_kendra",
"lord_of": 9,
"note": "9th lord in kendra"
},
{
"type": "lord_in_exaltation_own_or_mool_trikona",
"lord_of": 4,
"note": "4th lord exalted, in own or mool-trikona"
}
]
}
]
}
],
"note": ""
"type": "custom",
"expr": "\n# PyJHora/BVR-189..190 Ayatna Griha Prapta Yoga source-parity.\nl1 = lord(1)\nl7 = lord(7)\nl4 = lord(4)\nl9 = lord(9)\nbenefics = pyjhora_natural_benefics()\ncond189 = False\nif l1 in ctx.planets and l7 in ctx.planets:\n lords_in_lagna_or_4th = (house_of(l1) == house_of(l7) == 1) or (house_of(l1) == house_of(l7) == 4)\n benefic_aspects_either = any(aspect(b, l1) or aspect(b, l7) for b in benefics)\n cond189 = lords_in_lagna_or_4th and benefic_aspects_either\ncond190 = l4 in ctx.planets and l9 in ctx.planets and kendra(house_of(l9)) and (strong(l4) or moola(l4))\ncond189 or cond190\n",
"combo_template": "BVR-189/190 按PyJHora源码口径"
},
"effects": [
"Gains property without effort, inherits house"
@@ -9680,7 +9625,8 @@
"strength": "moderate",
"enabled": true,
"draft": false,
"evidence_note": "Source: B.V. Raman, BVR: None"
"evidence_note": "Source: B.V. Raman, BVR: None",
"accuracy_note": "v6.0.42 source-parity: rewritten as custom BVR-189/190 logic after A/B simulation improved recall without adding FP."
},
{
"id": "bvr_ayatnadhanalabha_yoga",
@@ -12993,28 +12939,9 @@
"bvr_id": null,
"category": "special",
"logic": {
"type": "compound_conditions",
"conditions": [
{
"type": "compound",
"operator": "AND",
"conditions": [
{
"type": "4th_lord_with_benefics",
"note": "4th lord joins benefics"
},
{
"type": "4th_lord_aspected_by_benefics",
"note": "4th lord aspected by benefics"
},
{
"type": "4th_lord_in_kendra_or_trikona",
"note": "4th lord in kendra or trikona"
}
]
}
],
"note": ""
"type": "custom",
"expr": "\n# PyJHora/BVR-187 Utthama Griha Yoga source-parity.\nl4 = lord(4)\nif l4 not in ctx.planets:\n False\nelse:\n benefics = pyjhora_natural_benefics()\n h4 = house_of(l4)\n fourth_lord_in_kendra_trikona = h4 in [1, 4, 5, 7, 9, 10]\n fourth_lord_joins_benefic = any(house_of(nb) == h4 for nb in benefics)\n fourth_lord_aspected_by_benefic = any(nb != l4 and aspect(nb, l4) for nb in benefics)\n fourth_lord_in_kendra_trikona and fourth_lord_joins_benefic and fourth_lord_aspected_by_benefic\n",
"combo_template": "4宫主入角/三方且与PyJHora吉星同宫并受吉星相位"
},
"effects": [
"Excellent house/property, comfortable living"
@@ -13022,7 +12949,8 @@
"strength": "moderate",
"enabled": true,
"draft": false,
"evidence_note": "Source: B.V. Raman, BVR: None"
"evidence_note": "Source: B.V. Raman, BVR: None",
"accuracy_note": "v6.0.42 source-parity: rewritten as custom BVR-187 logic using PyJHora natural benefics and graha aspect semantics."
},
{
"id": "bvr_vaatharoga_yoga",
@@ -13701,4 +13629,4 @@
}
],
"total_enabled_rules": 381
}
}