fix(yoga): Neecha Bhanga lists the conditions that hold, never Raja Yoga (T8, BUG-1205)

Astrologer ruling 乙14. One condition source, yogas_doshas.calc_nicha_bhanga_raj_yoga
(conditions A-F, now also structured). New scripts/main_yoga_detectors.py turns it
into yoga_engine-shaped rows (zh + en twins) that YogaEngine.detect appends; the
four neechabhanga_* rules are reference_only (kept, renamed, not evaluated).
Card: traditional_yogas canonical 落陷取消(Neecha Bhanga) with 成立条件; compact
yoga entries keep conditions/reductions. Report: category 落陷取消, mixed group,
not raja; personal-report alias neecha_bhanga -> special.

Changed assertion (test_consultation_yoga_detection_merge): canonical name
'Neecha Bhanga Raja Yoga' -> '落陷取消(Neecha Bhanga)' (ruling 乙14).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
Jesse_Chen
2026-10-03 11:38:52 +08:00
co-authored by Claude Opus 5.5
parent 0cf2249e6b
commit df21e591e8
10 changed files with 342 additions and 26 deletions
+23 -15
View File
@@ -922,8 +922,8 @@
},
{
"id": "neechabhanga_basic",
"name": "Neechabhanga Raja Yoga",
"name_cn": "落陷取消格局",
"name": "Neechabhanga (reference: dispositor in kendra)",
"name_cn": "落陷取消(参考:定位星在角宫)",
"source": "BPHS",
"bvr_id": "BVR-24-26",
"category": "raja",
@@ -949,12 +949,14 @@
"strength_en": "strong",
"enabled": true,
"source_reference": "BVR-24-26: Debilitated planet with canceling condition",
"bvr_chapter": "Chapter 4"
"bvr_chapter": "Chapter 4",
"reference_only": true,
"reference_only_reason": "Astrologer rulings 2026-10-03 (乙14, BUG-1205): Neecha Bhanga lists only the cancellation conditions that hold and is never called Raja Yoga; main detector scripts/main_yoga_detectors.py (yogas_doshas.calc_nicha_bhanga_raj_yoga, conditions A-F)."
},
{
"id": "neechabhanga_kendra",
"name": "Neechabhanga Raja Yoga (Kendra)",
"name_cn": "落陷取消格局(角宫版)",
"name": "Neechabhanga (reference: debilitated planet in kendra)",
"name_cn": "落陷取消(参考:落陷星在角宫)",
"source": "BPHS",
"bvr_id": "BVR-24-26",
"category": "raja",
@@ -977,9 +979,11 @@
"strength": "强",
"strength_en": "strong",
"enabled": true,
"dedup_key": "Neechabhanga Raja Yoga",
"dedup_key": "Neechabhanga (reference)",
"source_reference": "BVR-24-26: Debilitated planet with canceling condition",
"bvr_chapter": "Chapter 4"
"bvr_chapter": "Chapter 4",
"reference_only": true,
"reference_only_reason": "Astrologer rulings 2026-10-03 (乙14, BUG-1205): Neecha Bhanga lists only the cancellation conditions that hold and is never called Raja Yoga; main detector scripts/main_yoga_detectors.py (yogas_doshas.calc_nicha_bhanga_raj_yoga, conditions A-F)."
},
{
"id": "dhana_yoga",
@@ -4935,8 +4939,8 @@
},
{
"id": "neechabhanga_lord_exalted",
"name": "Neechabhanga Raja Yoga (Lord Exalted)",
"name_cn": "坏座位消王瑜伽(主星入旺)",
"name": "Neechabhanga (reference: dispositor exalted)",
"name_cn": "落陷取消(参考:主星入旺)",
"source": "BPHS",
"bvr_id": "NB-3",
"category": "raja",
@@ -4955,16 +4959,18 @@
"logic": {
"type": "custom",
"expr": "any(exalted(lord_of_house(h)) or own(lord_of_house(h)) for h in range(1,13) if lord_of_house(h) and lord_of_house(h) in ctx.planets and any(ctx.is_debilitated(p) for p in ctx.planets if p==lord_of_house(h)) and (ctx.house_of(lord_of_house(h)) in [1,4,7,10] or any(ctx.is_exalted(p) for p in ctx.planets if ctx.house_of(p) and any(ctx.house_of(q)==(ctx.house_of(p)-1)%12+1 for q in ctx.planets if q!=p))))",
"combo_template": "Neechabhanga Raja Yoga(主星旺/庙)",
"combo_template_en": "Neechabhanga Raja Yoga (dispositor exalted or in own sign)"
"combo_template": "落陷取消(参考:主星旺/庙)",
"combo_template_en": "Neechabhanga reference (dispositor exalted or in own sign)"
},
"source_reference": "BVR-24-26: Debilitated planet with canceling condition",
"bvr_chapter": "Chapter 4"
"bvr_chapter": "Chapter 4",
"reference_only": true,
"reference_only_reason": "Astrologer rulings 2026-10-03 (乙14, BUG-1205): Neecha Bhanga lists only the cancellation conditions that hold and is never called Raja Yoga; main detector scripts/main_yoga_detectors.py (yogas_doshas.calc_nicha_bhanga_raj_yoga, conditions A-F)."
},
{
"id": "neechabhanga_parivartana",
"name": "Neechabhanga Raja Yoga (Parivartana)",
"name_cn": "坏座位消王瑜伽(互换)",
"name": "Neechabhanga (reference: exchange)",
"name_cn": "落陷取消(参考:互换)",
"source": "BPHS",
"bvr_id": "NB-4",
"category": "raja",
@@ -4998,7 +5004,9 @@
}
},
"source_reference": "BVR-24-26: Debilitated planet with canceling condition",
"bvr_chapter": "Chapter 4"
"bvr_chapter": "Chapter 4",
"reference_only": true,
"reference_only_reason": "Astrologer rulings 2026-10-03 (乙14, BUG-1205): Neecha Bhanga lists only the cancellation conditions that hold and is never called Raja Yoga; main detector scripts/main_yoga_detectors.py (yogas_doshas.calc_nicha_bhanga_raj_yoga, conditions A-F)."
},
{
"id": "viparita_6_12",