vedic_jyotish_phase2_gaps - TheDaniel166/moira GitHub Wiki

Vedic Jyotish β€” Phase 2 Gap Register

OUTDATED β€” superseded as a work register (6 October 2026). The July notes mix original absence claims, later closure notices and remaining enrichment. Use the Vedic remaining work register for current engine/public/REST boundaries. The text below remains historical evidence and source leads, not a current implementation checklist.

Audit date: 2026-07-08 Method: code inspection of every Vedic-family module (sidereal, varga, vedic_dignities, jaimini, panchanga, muhurta, dasha, dasha_systems, ashtakavarga, shadbala, varshaphal, timelords) plus keyword sweep for classical techniques with no implementation anywhere in moira/. Impetus: the Bhava Bala omission (closed 2026-07-08) was traced to an explicit out-of-scope note in the Phase-1 roadmap that nothing ever revisited. This register exists so no further gap survives by silence.

Gap types: A = technique absent | B = depth gap in an existing subsystem Effort: S (small, days) | M (medium, ~a week) | L (large, multi-week)


0. Current-State Map (what Phase 1 delivered)

Subsystem State
Panchanga Complete β€” 5 limbs, sankranti bisection, condition/chart profiles
Sidereal / nakshatra Complete β€” 34 ayanamsas; nakshatra + pada + lord
Varga Complete β€” 17 divisions incl. full Shodashavarga + D6/D8
Vedic dignities Complete β€” full Panchadha Maitri
Shadbala Complete β€” 6 balas, Bhava Bala, Ishta/Kashta Phala, Graha Yuddha with transfer disclosure
Ashtakavarga Strong β€” bhinna + sarva, Trikona & Ekadhipatya Shodhana, sign-level transit strength
Dashas Strong β€” Vimshottari to L5 (Sookshma), Ashtottari, Yogini
Jaimini Karakas only (7/8 scheme, Rahu inversion, tie detection)
Muhurta Generic scoring β€” tithi/vara/nakshatra/karana classification, Abhijit/Brahma, window search
Varshaphal (Tajika) Deep β€” muntha, sahams, mudda dasha, panchavargi, varshesha, judgement layer

1. Yoga Engine β€” planetary combinations

Gap type: A (entire technique family absent) Effort: L Priority: 1 β€” the largest user-visible gap in the Vedic layer.

CORE CLOSED 2026-07-08. New moira.yogas β€” 60 yogas per chart across six families, every yoga a proof object (formation conditions with observed evidence, bhanga evaluated first-class, per-yoga source citations, Nabhasa precedence suppression visible): Pancha Mahapurusha (5, BPHS 75.1-2 verbatim-sourced), Chandra (7, incl. Kemadruma with its full bhanga catalog), Surya (4), Nabhasa (all 32, BPHS Ch. 35 + Brihat Jataka Ch. 12 with Bhattotpala's precedence), Raja core (Kendra-Trikona + 34.15 dilution, Yogakaraka, Dharma-Karmadhipati with the UK IV.3 proviso, Viparita with all three conflicting formulations as policy, Neecha Bhanga per PD 7.26-30), Dhana core (2-11, the UK IV.28 network with contamination, Lakshmi, Maha/Khala/Dainya Parivartana). Doctrine extracted from primary sources by four dedicated research passes (BPHS Santhanam, Brihat Jataka Sastri/Bhattotpala, Saravali, Phaladeepika, Uttara Kalamrita, Jataka Parijata, Raman Part I) β€” no rules from memory. Served at POST /v1/yogas/evaluate. Remaining for a later wave: BPHS Ch. 41 per-lagna wealth instantiations (41.2-15), extended raja associations (BPHS Ch. 39 royal-birth combinations), JP 7.14 navamsa-based Neecha Bhanga (needs varga join), and Raman Part II citations (no accessible scan exists).

No yoga detection exists anywhere: no Pancha Mahapurusha (Ruchaka/Bhadra/ Hamsa/Malavya/Sasa), no Chandra yogas (Gajakesari, Sunapha/Anapha/Durudhara, Kemadruma), no solar yogas (Vesi/Vosi/Ubhayachari, Budhaditya), no Nabhasa yogas (32: 3 Ashraya, 2 Dala, 20 Akriti, 7 Sankhya), no raja/dhana-yoga foundations (kendra-trikona lordship links, Viparita Raja).

  • Primary authority: BPHS yoga adhyayas; Mantreswara, Phaladeepika Ch. 6–7; Raman, Three Hundred Important Combinations (1947) β€” the natural engineering reference with per-yoga conditions.
  • Design note: each yoga = a named rule with the conditions it met/failed made visible (transparency doctrine), plus strength context from the already-computed Shadbala. Cancellation (bhanga) conditions must be first-class, not bolted on β€” Kemadruma and Neecha Bhanga are defined as much by their cancellations as their formations.
  • Dependencies: all satisfied β€” dignities, houses, shadbala, vargas exist.
  • Validation: Jhora yoga list; Raman's worked combinations.

2. Jaimini expansion β€” beyond karakas

Gap type: A (four sub-techniques absent) Effort: L (as a family; each piece is M or smaller) Priority: 2.

CORE CLOSED 2026-07-08. New moira.jaimini_extended: rasi drishti (JUS 1.1.2-4, all lineages agree, full-symmetry tested), arudha padas A1-A12 (Rath/JHora 10th-therefrom exception default with the Raman no-exception reading as policy; classical-seven vs Jaimini-co-lords lordship with the PVR 15.5.1 stronger-co-lord chain), argala (Rath/PVR reading with virodha pairs, the malefic-third rule, and the Ketu reversal), karakamsa (BOTH lineage products named β€” Rath D9 svamsa vs K.N. Rao D1 projection, never collapsed), and first-cycle Chara Dasha per K.N. Rao (Neelakantha karika; 9th-from-lagna direction rule; no exaltation adjustment β€” Rao explicit; antardashas dasha-sign-last). Served at POST /v1/jaimini/extended/{arudhas,argala,karakamsa,chara-dasha}. Remaining: Rao's second Chara cycle (unverified against his book β€” deferred, not guessed), Rath/RB-NS Chara variants, argala strength grading via Shadbala.

Present: karakas only. Missing, in dependency order:

  1. Rasi drishti (sign aspects: movable↔fixed skipping adjacent, dual↔dual) β€” the aspect doctrine every other Jaimini technique consumes.
  2. Arudha padas (AL, A1–A12, UL) with the exception rules (pada falling in 1st/7th from its bhava reflects to the 10th/4th).
  3. Argala (intervention: 2/4/11 primary, 5 secondary; obstruction from 3/10/12) β€” consumes rasi drishti.
  4. Karakamsa (Atmakaraka's navamsha sign read as lagna in D1/D9) β€” trivial once karakas + vargas are joined.
  5. Chara Dasha (sign-based dasha; the most-requested Jaimini item after karakas). Note: multiple lineages (Raths's vs. Irangati's vs. classical K.N. Rao) differ on period computation β€” the implementation must name its lineage explicitly, per the Policy Explicitness law.
  • Primary authority: Jaimini, Upadesa Sutras (Adhyaya 1); Sanjay Rath, Jaimini Maharishi's Upadesa Sutras (2002); K.N. Rao on Chara Dasha.
  • Validation: Jhora (which exposes lineage choices explicitly β€” mirror that).

3. Upagrahas β€” Gulika, Mandi, and the kalavelas

Gap type: A Effort: M Priority: 3.

CLOSED 2026-07-08. New moira.upagrahas: the five kalavelas (BPHS 3.66-70 eight-fold day/night division, weekday lord tables verified against the classical Saturday Gulika-kalam anchor and JP's Friday-night example) with the ascendant materialization, plus the five Sun-derived upagrahas (BPHS 3.61-64) with the verse's own self-check (Upaketu + 30 deg = Sun) enforced as an invariant. Lineage variants as policy: portion point (BPHS beginning default / JHora middle / UK-JP end), Mandi alias-vs-Kalidasa-table, contiguous-vs-JHora lord sequencing. Served at POST /v1/upagrahas/{sun-based,kalavelas}.

No upagraha computation exists. Needed: Gulika/Mandi (Saturn's portion of the day-eighths), plus the remaining kalavelas (Kala, Mrityu, Yamaghantaka, Ardhaprahara) and optionally the Sun-derived sub-planets (Dhooma, Vyatipata, Parivesha, Indrachapa, Upaketu β€” pure longitude arithmetic).

  • Primary authority: BPHS Ch. 3 (Grahopadesa); day/night eighth-division rule with lords ordered from the weekday lord.
  • Dependencies: moira.rise_set already provides sunrise/sunset β€” the day-division substrate exists.
  • Policy note: Gulika vs. Mandi definitions differ by school (start vs. middle of Saturn's portion; some equate them). Both conventions must be explicit policy options, not a hidden default.
  • Validation: Jhora, Kala (both expose the convention choice).

4. Avasthas β€” planetary states

Gap type: A Effort: M Priority: 4 β€” pairs naturally with the Shadbala drill-down.

CORE CLOSED 2026-07-08. New moira.avasthas: Baladi (BPHS 45.3-4, with Vriddha honestly unnumbered β€” "negligible" has no classical fraction), Jagradadi (45.5-6, sign-level dignity), Deeptadi as four per-source rule tables (BPHS-9 default / Saravali-9 / JP-10 / PD-11 β€” the texts collide even on state names and are never merged), and the six non-exclusive Lajjitadi flags (45.11-18) with evidence strings. Served at POST /v1/avasthas/evaluate. Remaining: Sayanadi (45.30-155) β€” deferred: needs birth ghatis + the native's name syllable, and Santhanam's printed sub-state example carries an arithmetic inconsistency needing a second-edition recheck.

None of the classical state systems exist: Baladi (5 age states by degree in odd/even sign), Jagradadi (3 awareness states from dignity), Deeptadi (7–9 mood states from dignity/combustion/war), Lajjitadi (6 conditional states β€” needs conjunction/aspect context).

  • Primary authority: BPHS Ch. 45 (Avasthadhyaya); Saravali.
  • Design note: mostly table-driven; Lajjitadi is the only one requiring aspect machinery (exists). Combustion state needs Sun-proximity orbs β€” present in moira.phenomena.
  • Validation: Jhora avastha display.

5. Tara Bala + Chandra Bala β€” natal-personalized muhurta

Gap type: B (muhurta exists but is impersonal) Effort: S Priority: 5 β€” the highest value-per-effort item in this register.

CLOSED 2026-07-08. moira.muhurta: tara_bala / chandra_bala / personal_muhurta_score (+ the long-dormant Tara placeholder in _classify_nakshatra now computes); served at POST /v1/muhurta/personal/score.

muhurta.py scores a moment generically; classical practice always overlays Tara Bala (count from janma nakshatra β†’ 9-tara cycle: Janma/Sampat/ Vipat/Kshema/Pratyari/Sadhaka/Vadha/Mitra/Parama Mitra, with favorable/ unfavorable polarity) and Chandra Bala (transit Moon's house from natal Moon; 1/3/6/7/10/11 favorable, 4/8/12 unfavorable β€” with 8th strongest affliction).

  • Primary authority: Muhurta classics (Muhurta Chintamani); Raman, Muhurtha (1936).
  • Dependencies: all present β€” nakshatra_of, natal chart context.
  • Surface: extend MuhurtaScore with tara/chandra components (sub-parts visible, per transparency doctrine) and add natal-aware variants of the scorer/window functions.

6. Vimshopaka Bala + Vargottama

Gap type: B (all 17 vargas computed; nobody aggregates them) Effort: S Priority: 6.

CLOSED 2026-07-08. moira.varga: vimshopaka_bala / vimshopaka_all (all four BPHS groups, per-division breakdown with vargavishwa fractions)

  • is_vargottama / vargottama_planets; served at POST /v1/varga/vimshopaka.
  • Vimshopaka Bala: the classical 20-point weighted dignity score across the four varga groups (Shadvarga 6 / Saptavarga 7 / Dashavarga 10 / Shodashavarga 16), each group with its own BPHS weight table.
  • Vargottama: flag planets occupying the same sign in D1 and D9 β€” a one-line derivation the public surface simply never exposed.
  • Primary authority: BPHS Shodashavarga Adhyaya (vimshopaka weight tables).
  • Dependencies: none β€” pure aggregation over moira.varga.
  • Validation: Jhora vimshopaka display.

7. Ashtakavarga polish β€” Kakshya + Shodhya Pinda

Gap type: B Effort: S–M Priority: 7.

  • Kakshya-level transit: each sign divides into 8 kakshyas (3Β°45' each, lords Saturnβ†’Jupiterβ†’Marsβ†’Sunβ†’Venusβ†’Mercuryβ†’Moonβ†’Lagna); a transit scores only when the transited kakshya's lord contributed a rekha. Refines the existing sign-level transit_strength.
  • Shodhya Pinda: Rasi Pinda + Graha Pinda multipliers applied after the two Shodhanas (which already exist) β€” the predictive quantity classical ashtakavarga actually uses for transit results and longevity work.
  • Primary authority: BPHS Ashtakavarga Adhyaya; Raman, Ashtakavarga System of Prediction (1981) β€” already the committed table source.

8. Sade Sati

Gap type: B (derivable from transits but not a named product) Effort: S Priority: 8.

CLOSED 2026-07-08. New moira.sade_sati: sade_sati_status (phase + Ashtama/Kantaka flags) and sade_sati_windows (kernel-timed sign-ingress bisection, retrograde re-entries as separate windows); served at POST /v1/sade-sati/status and POST /v1/sade-sati/windows.

Saturn's transit through the 12th/1st/2nd from natal Moon, with phase boundaries (rising/peak/setting) and exact ingress timestamps from the existing transit search. Optionally Kantaka Shani / Ashtama Shani flags. Pure composition of existing machinery into the named product users ask for.

9. Kalachakra Dasha β€” recorded deferral

Gap type: A (explicitly deferred since Phase 1) Effort: L Priority: 9 β€” remains deferred.

dasha_systems.py documents the deferral (navamsha-based Savya/Apasavya traversal, variable cycle length, lineage disputes). Kept in the register so the deferral stays a decision, not an accident. Precondition: a committed lineage choice (Jhora's implementation notes are the practical cross-check).


Recommended sequencing

Wave Items Rationale
Quick wins #5 Tara/Chandra Bala, #6 Vimshopaka+Vargottama, #8 Sade Sati Days each; all substrate exists; immediate site value
Flagship #1 Yoga engine Largest gap; modular (ship family-by-family: Mahapurusha β†’ Chandra/solar β†’ Nabhasa β†’ raja/dhana)
Deepening #3 Upagrahas, #4 Avasthas, #7 Ashtakavarga polish Medium; each closes a classical-completeness hole
Expansion #2 Jaimini family Large; internally ordered (rasi drishti first)
Deferred #9 Kalachakra Revisit after the above

Every implementation follows the Phase-1 pattern: primary authority named, engineering reference committed, sub-components exposed with their parts and totals (transparency doctrine), policy choices explicit where schools differ, validation against Jhora/Kala plus source-owned invariants.