Files
Jyotisha/references/technique_registry.json
T
732642856 e2aa76a786 v6.0.20: Narayana Dasha (Rishi Dasha) implementation
Narayana Dasha is Parashara's rashi-based dasha system, complementary to
Vimshottari (nakshatra-based). Algorithm: start from Lagna, each sign's
dasha years = count from the sign to its lord's sign (zodiacal order).

Implementation:
- scripts/narayana_dasha.py: core calculation module
  - calc_narayana_mahadasha(): 12-sign sequence from Lagna
  - calc_narayana_antardasha(): sub-periods within each MD
  - get_current_narayana_dasha(): locate current period by age
- scripts/cmd_narayana_dasha.py: CLI subcommand
- jyotish_engine.py: Step 4.13 in full-reading + narayana-dasha subparser

Verified with Leo Asc chart: total cycle 88 years, current Sagittarius MD
(31-38 yrs, 5H/creativity) complements Vimshottari Saturn MD.

Files: +2 new (narayana_dasha.py, cmd_narayana_dasha.py), +4 modified
2026-06-04 11:08:05 +08:00

998 lines
25 KiB
JSON

{
"version": "v6.0.20-narayana-dasha",
"source_inspiration": [
{
"name": "jyotishyamitra",
"url": "https://pypi.org/project/jyotishyamitra/",
"lesson": "Use structured dictionary/JSON sections for chart, varga, bala, ashtakavarga and dasha outputs. Do not depend on free-form prose for facts."
},
{
"name": "jyotisham/jyotisha",
"url": "https://github.com/jyotisham/jyotisha",
"lesson": "Keep astronomical/calendar computation separate from interpretive reasoning; prefer deterministic data layers."
},
{
"name": "Yamale",
"url": "https://pypi.org/project/yamale/",
"lesson": "Validate registry-like configuration against a schema before using it. This project keeps a stdlib validator to avoid new dependencies."
}
],
"status_vocabulary": [
"covered",
"partial",
"knowledge-only",
"workflow-only",
"not-integrated",
"missing"
],
"techniques": {
"d1_rashi": {
"name": "D1 / Rashi",
"domains": [
"core",
"static"
],
"status": "covered",
"knowledge_refs": [
"references/signs-and-houses.md"
],
"commands": [
"chart",
"full-reading"
],
"output_paths": [
"modules.chart"
],
"audit_label": "D1/Rashi",
"missing_impact": "No reliable static chart basis."
},
"d9_navamsa": {
"name": "D9 / Navamsa",
"domains": [
"varga",
"strength",
"relationship",
"dharma"
],
"status": "covered",
"knowledge_refs": [
"references/navamsa-d9-interpretation-template.md",
"references/varga-system-quick-reference.md"
],
"commands": [
"varga-full",
"full-reading"
],
"output_paths": [
"modules.varga_full.D9_Navamsa",
"modules.d9_navamsa_expanded"
],
"audit_label": "D9/Navamsa",
"missing_impact": "Inner strength and marriage/dharma layer incomplete."
},
"d10_dasamsa": {
"name": "D10 / Dasamsa",
"domains": [
"career",
"varga"
],
"status": "covered",
"knowledge_refs": [
"references/varga-system-quick-reference.md",
"references/divisional-chart-deep-reading.md"
],
"commands": [
"varga-full",
"full-reading"
],
"output_paths": [
"modules.varga_full.D10_Dasamsa"
],
"audit_label": "D10/Dasamsa",
"missing_impact": "Career-specific varga layer missing; career timing confidence must be capped."
},
"vimshottari_dasha": {
"name": "Vimshottari Dasha",
"domains": [
"timing",
"event"
],
"status": "covered",
"knowledge_refs": [
"references/dasha-calculation-tool.md"
],
"commands": [
"dasha",
"full-reading"
],
"output_paths": [
"modules.dasha"
],
"audit_label": "Vimshottari",
"missing_impact": "Primary timing layer unavailable."
},
"dasha_sandhi": {
"name": "Dasha Sandhi",
"domains": [
"timing",
"transition"
],
"status": "covered",
"knowledge_refs": [
"references/strict-workflow-router.md"
],
"commands": [
"full-reading"
],
"output_paths": [
"modules.dasha_sandhi"
],
"audit_label": "Dasha Sandhi",
"missing_impact": "Transition windows may be overstated or understated."
},
"jaimini_chara_dasha": {
"name": "Jaimini / Chara Dasha",
"domains": [
"timing",
"career",
"relationship"
],
"status": "partial",
"knowledge_refs": [
"references/jaimini-complete-system.md"
],
"commands": [
"jaimini",
"full-reading"
],
"output_paths": [
"modules.jaimini"
],
"audit_label": "Jaimini/Chara",
"missing_impact": "Rashi-based timing confirmation is partial; timing confidence must be capped unless corroborated by Vimshottari, Dasha Sandhi, transit, D10/A10 and Ashtakavarga.",
"limitation": "Round 7 benchmark vs PyJHora KN Rao Chara Dasha matched 58/240 fields (24.17%). Current calc_chara_dasha() is a simplified implementation, not a full KN Rao/PVN Rao/Iranganti method. Karaka/Karakamsha remain usable; Chara Dasha timing is partial."
},
"karakamsha_ak_amk": {
"name": "Karakamsha / AK / AmK",
"domains": [
"career",
"soul",
"dharma"
],
"status": "covered",
"knowledge_refs": [
"references/jaimini-complete-system.md"
],
"commands": [
"jaimini",
"full-reading"
],
"output_paths": [
"modules.jaimini.karakas",
"modules.jaimini.karakamsha"
],
"audit_label": "AK/AmK/Karakamsha",
"missing_impact": "Jaimini career/soul indicator layer incomplete."
},
"a10_karma_pada": {
"name": "A10 / Karma Pada / Rajya Pada",
"domains": [
"career",
"public_image"
],
"status": "covered",
"knowledge_refs": [
"references/technique-capability-matrix.md"
],
"commands": [
"full-reading",
"scripts/special_lagnas.py --tenth-lord"
],
"output_paths": [
"modules.special_lagnas.A10_Karma_Pada"
],
"audit_label": "A10/Karma Pada",
"missing_impact": "Career public-image layer incomplete."
},
"argala": {
"name": "Argala",
"domains": [
"static",
"intervention",
"event"
],
"status": "covered",
"knowledge_refs": [
"references/argala-complete-guide.md"
],
"commands": [
"argala",
"full-reading"
],
"output_paths": [
"modules.argala"
],
"audit_label": "Argala",
"missing_impact": "Intervention/blocking layer missing."
},
"shadbala": {
"name": "Shadbala",
"domains": [
"strength",
"static"
],
"status": "partial",
"knowledge_refs": [
"references/shadbala-complete-methodology.md"
],
"commands": [
"shadbala",
"full-reading"
],
"output_paths": [
"modules.shadbala"
],
"audit_label": "Shadbala",
"missing_impact": "Planetary strength claims are quantitatively anchored only as an internally consistent reference, not as externally calibrated absolute Parashara Shadbala.",
"limitation": "Round 9 internal invariant benchmark passed 1200/1200 checks and full-reading matches the shadbala command. However scripts/shadbala.py still uses simplified Nathonnata Bala, approximate Saptavargaja sub-vargas, Chesta speed buckets and simplified Drik aspect weights. Use for relative strength ranking with confidence cap until an external full Shadbala table benchmark is frozen."
},
"ashtakavarga": {
"name": "Ashtakavarga",
"domains": [
"transit",
"strength",
"timing"
],
"status": "covered",
"knowledge_refs": [
"references/ashtakavarga-complete-system.md"
],
"commands": [
"ashtakavarga",
"full-reading"
],
"output_paths": [
"modules.ashtakavarga"
],
"audit_label": "Ashtakavarga",
"missing_impact": "Transit strength filter missing."
},
"avastha": {
"name": "Avastha",
"domains": [
"strength",
"state"
],
"status": "covered",
"knowledge_refs": [
"references/technique-capability-matrix.md"
],
"commands": [
"full-reading"
],
"output_paths": [
"modules.avasthas"
],
"audit_label": "Avastha",
"missing_impact": "Planet condition/state layer missing."
},
"vargottama": {
"name": "Vargottama",
"domains": [
"varga",
"strength"
],
"status": "covered",
"knowledge_refs": [
"references/varga-system-quick-reference.md"
],
"commands": [
"full-reading"
],
"output_paths": [
"modules.vargottama"
],
"audit_label": "Vargottama",
"missing_impact": "D1-D9 consistency strength may be undercounted."
},
"pushkara": {
"name": "Pushkara Navamsa / Pushkara Bhaga",
"domains": [
"varga",
"dignity",
"grace"
],
"status": "covered",
"knowledge_refs": [
"references/planetary-dignity-complete-reference.md",
"references/navamsa-marriage-deep-analysis.md"
],
"commands": [
"full-reading"
],
"output_paths": [
"modules.pushkara"
],
"audit_label": "Pushkara",
"missing_impact": "D9 grace/support layer may be undercounted."
},
"bhava_chalit": {
"name": "Bhava Chalit",
"domains": [
"house_cusp",
"event"
],
"status": "partial",
"knowledge_refs": [
"references/kp-astrology-complete-system.md"
],
"commands": [
"chart",
"full-reading"
],
"output_paths": [
"modules.chart.houses"
],
"audit_label": "Bhava Chalit",
"missing_impact": "Planet reassignment near cusps is not fully recalibrated.",
"limitation": "House cusps exist, but full Chalit Chart planet reassignment is not implemented."
},
"sudarshana_chakra": {
"name": "Sudarshana Chakra",
"domains": [
"multi_chart",
"confirmation"
],
"status": "partial",
"knowledge_refs": [
"references/varga-system-quick-reference.md"
],
"commands": [
"full-reading"
],
"output_paths": [
"modules.varga_full",
"modules.d9_navamsa_expanded"
],
"audit_label": "Sudarshana Chakra",
"missing_impact": "Traditional triple-lagna confirmation is partial only.",
"limitation": "D1-D9-D10 triangle verification exists as a substitute; traditional Sudarshana module is absent."
},
"dispositor_chain": {
"name": "Dispositor Chain / 定位星链",
"domains": [
"strength",
"flow",
"dignity"
],
"status": "covered",
"knowledge_refs": [
"references/technique-capability-matrix.md"
],
"commands": [
"full-reading"
],
"output_paths": [
"modules.dispositor_chains",
"modules.final_dispositors"
],
"audit_label": "Dispositor Chain",
"missing_impact": "Planet energy flow / final dispositor analysis incomplete."
},
"inter_chart_linkage": {
"name": "Inter-chart Linkage / 分盘间飞星",
"domains": [
"varga",
"confirmation",
"multi_chart"
],
"status": "covered",
"knowledge_refs": [
"references/varga-system-quick-reference.md"
],
"commands": [
"full-reading"
],
"output_paths": [
"modules.inter_chart_linkage"
],
"audit_label": "Inter-chart Linkage",
"missing_impact": "Cross-chart planet linkage (D1->D9->D10) analysis incomplete."
},
"tajika_yogas": {
"name": "Tajika Yogas / 年运盘格局",
"domains": [
"tajika",
"timing",
"event",
"yoga"
],
"status": "partial",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.tajika_yogas"
],
"audit_label": "Tajika Yogas",
"missing_impact": "Tajika year-chart yoga detection incomplete; annual timing confidence capped."
},
"sahams": {
"name": "Sahams / 特殊点",
"domains": [
"saham",
"timing",
"event",
"tajika"
],
"status": "partial",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.sahams"
],
"audit_label": "Sahams",
"missing_impact": "Saham point calculation incomplete; annual/event timing layer missing."
},
"darakaraka": {
"name": "Darakaraka (DK) / 配偶星",
"domains": [
"jaimini",
"marriage",
"relationship",
"karaka"
],
"status": "covered",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.jaimini.darakaraka"
],
"audit_label": "Darakaraka (DK)",
"missing_impact": "Marriage/partner analysis incomplete without DK."
},
"raj_yoga": {
"name": "Raj Yoga / 王者瑜伽",
"domains": [
"yoga",
"power",
"status"
],
"status": "partial",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.yogas_doshas.raj_yogas"
],
"audit_label": "Raj Yoga",
"missing_impact": "Power/status timing confidence capped without Raj Yoga detection."
},
"dhana_yoga": {
"name": "Dhana Yoga / 财富瑜伽",
"domains": [
"yoga",
"wealth",
"money"
],
"status": "partial",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.yogas_doshas.dhana_yogas"
],
"audit_label": "Dhana Yoga",
"missing_impact": "Wealth timing confidence capped without Dhana Yoga."
},
"pancha_mahapurusha": {
"name": "Pancha Mahapurusha Yoga / 五王瑜伽",
"domains": [
"yoga",
"power",
"personality"
],
"status": "partial",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.yogas_doshas.pancha_mahapurusha"
],
"audit_label": "Pancha Mahapurusha",
"missing_impact": "Personality strength assessment incomplete."
},
"nicha_bhanga_raj": {
"name": "Neecha Bhanga Raj Yoga / 落陷解除王者瑜伽",
"domains": [
"yoga",
"debilitation",
"recovery"
],
"status": "partial",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.yogas_doshas.nicha_bhanga_raj"
],
"audit_label": "Neecha Bhanga",
"missing_impact": "Debilitation recovery analysis incomplete."
},
"mangal_dosha": {
"name": "Mangal Dosha / 火星煞",
"domains": [
"dosha",
"marriage",
"mars"
],
"status": "covered",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.yogas_doshas.mangal_dosha"
],
"audit_label": "Mangal Dosha",
"missing_impact": "Marriage difficulty assessment incomplete without Mangal Dosha."
},
"kaal_sarp_dosha": {
"name": "Kaal Sarp Dosha / 时间蛇煞",
"domains": [
"dosha",
"rahu",
"obstacle"
],
"status": "covered",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.yogas_doshas.kaal_sarp_dosha"
],
"audit_label": "Kaal Sarp Dosha",
"missing_impact": "Obstacle analysis incomplete without Kaal Sarp."
},
"pitra_dosha": {
"name": "Pitra Dosha / 父辈煞",
"domains": [
"dosha",
"sun",
"ancestor"
],
"status": "covered",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.yogas_doshas.pitra_dosha"
],
"audit_label": "Pitra Dosha",
"missing_impact": "Ancestor karma analysis incomplete."
},
"sade_sati": {
"name": "Sade Sati / 土星七年",
"domains": [
"transit",
"saturn",
"pressure"
],
"status": "partial",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.yogas_doshas.sade_sati"
],
"audit_label": "Sade Sati",
"missing_impact": "Saturn pressure timing incomplete."
},
"arudha_lagna": {
"name": "Arudha Lagna (AL) / 镜像上升",
"domains": [
"lagna",
"perception",
"image"
],
"status": "covered",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.yogas_doshas.arudha_lagna"
],
"audit_label": "Arudha Lagna",
"missing_impact": "Public image analysis incomplete without AL."
},
"upapada_lagna": {
"name": "Upapada Lagna (UL) / 配偶镜像上升",
"domains": [
"lagna",
"marriage",
"partner"
],
"status": "covered",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.yogas_doshas.upapada_lagna"
],
"audit_label": "Upapada Lagna",
"missing_impact": "Marriage quality analysis incomplete without UL."
},
"tithi_lord": {
"name": "Tithi Lord / 月日守护星",
"domains": [
"tithi",
"prashna",
"timing",
"moon_sun"
],
"status": "partial",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.tithi_lord"
],
"audit_label": "Tithi Lord",
"missing_impact": "Tithi Lord 分析不完整,Prashna 问卜时机判断受限。"
},
"pancha_pakshi": {
"name": "Pancha Pakshi / 五鸟系统",
"domains": [
"pancha_pakshi",
"tamil",
"prashna",
"timing"
],
"status": "partial",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.pancha_pakshi"
],
"audit_label": "Pancha Pakshi",
"missing_impact": "五鸟系统分析不完整,Tamil 占星时机判断受限。"
},
"rashi_tulya_navamsa": {
"name": "Rashi Tulya Navamsa / 本命对分盘分析",
"domains": [
"varga",
"d1_d9",
"analysis",
"marriage"
],
"status": "partial",
"knowledge_refs": [],
"commands": [
"full-reading"
],
"output_paths": [
"modules.rashi_tulya_navamsa"
],
"audit_label": "Rashi Tulya Navamsa",
"missing_impact": "D1-D9 同宫对比分析不完整,婚姻/内在潜力判断受限。"
},
"marriage_counting": {
"name": "Marriage Counting Method / 婚姻计数法",
"domains": [
"marriage",
"bhrigu",
"counting",
"d1_d9"
],
"status": "partial",
"knowledge_refs": [
"bhrigu-pada-dasha-marriage-counting.md"
],
"commands": [
"full-reading"
],
"output_paths": [
"modules.marriage_counting"
],
"audit_label": "Marriage Counting",
"missing_impact": "婚姻数量判断不完整,关系模式分析受限。"
},
"trimshamsa_d30": {
"name": "Trimshamsa D30 / 三十分盘",
"domains": [
"varga",
"d30",
"crisis",
"disaster"
],
"status": "partial",
"knowledge_refs": [
"varga-system-quick-reference.md"
],
"commands": [
"full-reading"
],
"output_paths": [
"modules.trimshamsa_d30"
],
"audit_label": "D30 Trimshamsa",
"missing_impact": "D30 灾难分析不完整,危机事件判断受限。"
},
"muntha": {
"name": "Muntha / 年运之主 (Tajika)",
"domains": [
"tajika",
"varsha_phal",
"muntha",
"annual"
],
"status": "covered",
"knowledge_refs": [
"tajika-yoga-complete-guide.md"
],
"commands": [
"full-reading"
],
"output_paths": [
"modules.muntha"
],
"audit_label": "Muntha",
"missing_impact": "Varshaphala 年运盘核心指标缺失,年度主题判断受限。"
},
"solar_return": {
"name": "Solar Return / Varshaphala (Tajika)",
"domains": [
"tajika",
"varshaphala",
"solar_return",
"annual"
],
"status": "covered",
"knowledge_refs": [
"tajika-yoga-complete-guide.md"
],
"commands": [
"solar-return",
"full-reading"
],
"output_paths": [
"modules.solar_return",
"modules.muntha"
],
"audit_label": "Solar Return Varshaphala",
"missing_impact": "N/A - implemented in v6.0.18"
},
"prashna_integration": {
"name": "Prashna Integration / 问事占星接入",
"domains": [
"prashna",
"standalone",
"full_reading_integration"
],
"status": "partial",
"knowledge_refs": [],
"commands": [
"full-reading",
"prashna"
],
"output_paths": [
"modules.prashna"
],
"audit_label": "Prashna Integration",
"missing_impact": "Prashna 未接入 full-reading,问事分析不完整。"
},
"bhrigu_pada_dasha": {
"name": "Bhrigu Pada Dasha / 足步推进法",
"domains": [
"bhrigu",
"pada_dasha",
"progression",
"marriage_timing"
],
"status": "partial",
"knowledge_refs": [
"bhrigu-pada-dasha-marriage-counting.md"
],
"commands": [
"full-reading"
],
"output_paths": [
"modules.bhrigu_pada_dasha"
],
"audit_label": "Bhrigu Pada Dasha",
"missing_impact": "Bhrigu 足步推进法缺失,婚姻时机精确预测受限(通用近似版已实现)。"
},
"narayana_dasha": {
"name": "Narayana Dasha (Rishi Dasha / Padakrama Dasha)",
"domains": [
"dasha",
"rashi",
"timing",
"narayana"
],
"status": "covered",
"knowledge_refs": [
"bphs-ch48-narayana-dasha.md"
],
"commands": [
"narayana-dasha",
"full-reading"
],
"output_paths": [
"modules.narayana_dasha"
],
"audit_label": "Narayana Dasha",
"missing_impact": "N/A - implemented in v6.0.20"
}
},
"routes": {
"career_timing_strict": {
"trigger_keywords": [
"事业",
"职业",
"工作机会",
"项目落地",
"名声",
"社会身份"
],
"required_techniques": [
"d1_rashi",
"d9_navamsa",
"d10_dasamsa",
"vimshottari_dasha",
"dasha_sandhi",
"jaimini_chara_dasha",
"karakamsha_ak_amk",
"a10_karma_pada",
"argala",
"shadbala",
"ashtakavarga",
"vargottama",
"pushkara",
"dispositor_chain",
"inter_chart_linkage",
"tajika_yogas",
"sahams",
"darakaraka",
"raj_yoga",
"dhana_yoga",
"pancha_mahapurusha",
"nicha_bhanga_raj",
"mangal_dosha",
"kaal_sarp_dosha",
"pitra_dosha",
"sade_sati",
"arudha_lagna",
"upapada_lagna",
"tithi_lord",
"pancha_pakshi",
"rashi_tulya_navamsa",
"marriage_counting",
"trimshamsa_d30",
"muntha",
"prashna_integration",
"bhrigu_pada_dasha"
],
"optional_techniques": [
"bhava_chalit",
"sudarshana_chakra"
]
},
"event_verification_strict": {
"trigger_keywords": [
"验证",
"回测",
"历史事件",
"可靠性",
"是不是遗漏"
],
"required_techniques": [
"d1_rashi",
"vimshottari_dasha",
"dasha_sandhi",
"jaimini_chara_dasha",
"argala",
"shadbala",
"ashtakavarga",
"dispositor_chain",
"inter_chart_linkage",
"tajika_yogas",
"sahams",
"darakaraka",
"raj_yoga",
"dhana_yoga",
"pancha_mahapurusha",
"nicha_bhanga_raj",
"mangal_dosha",
"kaal_sarp_dosha",
"pitra_dosha",
"sade_sati",
"arudha_lagna",
"upapada_lagna",
"tithi_lord",
"pancha_pakshi",
"rashi_tulya_navamsa",
"marriage_counting",
"trimshamsa_d30",
"muntha",
"prashna_integration",
"bhrigu_pada_dasha"
],
"optional_techniques": [
"d9_navamsa",
"d10_dasamsa",
"a10_karma_pada",
"bhava_chalit",
"sudarshana_chakra"
]
},
"full_reading_strict": {
"trigger_keywords": [
"综合解盘",
"完整解盘",
"full-reading"
],
"required_techniques": [
"d1_rashi",
"d9_navamsa",
"d10_dasamsa",
"vimshottari_dasha",
"dasha_sandhi",
"jaimini_chara_dasha",
"argala",
"shadbala",
"ashtakavarga",
"avastha",
"vargottama",
"pushkara",
"dispositor_chain",
"inter_chart_linkage",
"tajika_yogas",
"sahams",
"darakaraka",
"raj_yoga",
"dhana_yoga",
"pancha_mahapurusha",
"nicha_bhanga_raj",
"mangal_dosha",
"kaal_sarp_dosha",
"pitra_dosha",
"sade_sati",
"arudha_lagna",
"upapada_lagna",
"tithi_lord",
"pancha_pakshi",
"rashi_tulya_navamsa",
"marriage_counting",
"trimshamsa_d30",
"muntha",
"prashna_integration",
"bhrigu_pada_dasha",
"solar_return",
"narayana_dasha"
],
"optional_techniques": [
"bhava_chalit",
"sudarshana_chakra"
]
}
}
}