Files
Jyotisha/references/oracle/western_oracle_adapter_contract.md
T
2026-07-15 19:13:05 +08:00

4.8 KiB

Western Oracle Adapter Contract

This contract defines how external Western astrology outputs enter the high-rigor Jyotish workflow.

Purpose

scripts/western_oracle_adapter.py converts an external Western astrology JSON export into the standard western_evidence_packet.

It is an evidence adapter, not a bundled Western astrology engine.

Native Tropical Natal Layer

scripts/western_chart_engine.py uses the existing Swiss Ephemeris binding to calculate a tropical natal chart from birth data. For direct_chart and rectification, the unified workflow defaults to western_mode: "auto" when no external payload is supplied. It records planetary longitude/speed, Placidus houses, ASC/MC/DC/IC, major aspects with explicit orb limits, element/mode distribution, and traditional house-ruler chains.

The native result is deliberately partial: it does not calculate secondary progressions, solar arcs, non-solar returns, synastry, or interpretive signals. prashna does not receive a natal Western packet by default. Set western_mode to external_only or off to suppress automatic calculation. Explicit western_evidence_packet and western_oracle_payload always take precedence.

Optional Timing Input

To add only requested native time evidence, pass:

{
  "western_timing": {
    "transit_date": "2026-07-09",
    "solar_return_year": 2026,
    "secondary_progression_date": "2026-07-09",
    "solar_arc_date": "2026-07-09",
    "converse_secondary_progression_date": "2026-07-09",
    "converse_solar_arc_date": "2026-07-09",
    "midpoint_date": "2026-07-09",
    "lunar_return_start_date": "2026-07-01",
    "duration_scan_start_date": "2026-07-01",
    "duration_scan_end_date": "2026-07-31",
    "parans_date": "2026-07-09"
  }
}

transit_date produces a local-date transit-to-natal major-aspect snapshot. solar_return_year locates the exact tropical solar return and calculates its return chart at the supplied birthplace/location. Both are calculation data, not event verdicts. secondary_progression_date uses one ephemeris day per tropical year for progressed planets. solar_arc_date applies the true secondary-progressed-Sun arc to natal planets/ASC/MC. converse_secondary_progression_date and converse_solar_arc_date add the matching backward-progressed layers. midpoint_date emits natal midpoint geometry and transit midpoint conjunction/opposition hits. lunar_return_start_date finds the next exact tropical lunar return. duration_scan_start_date plus duration_scan_end_date groups daily transit-to-natal aspect windows. These remain evidence layers, not event verdicts. Progressed angles are marked blocked until a method is selected; parans_date currently returns a structured blocked state because a latitude-aware rising/setting/culminating solver is not yet implemented.

Accepted Input

{
  "source_engine": "kerykeion_external_json",
  "natal": {
    "ascendant": "Virgo",
    "mc": "Gemini"
  },
  "timing_techniques": {
    "solar_return": {
      "annual_focus": "career"
    }
  },
  "aspects": [
    {
      "date": "2026-07-07",
      "planet": "Uranus",
      "aspect": "conjunction",
      "target": "MC"
    }
  ]
}

Explicit signals may be provided. When present, explicit signals are preserved and aspect-derived signals are not guessed.

Derived Signal Rules

The adapter currently maps only a small auditable subset:

Aspect Pattern Signal
Uranus conjunction MC/Midheaven career_relocation / career_triggered_relocation
Jupiter trine/sextile Mercury/Venus/MC career / client_cooperation_opportunity
Saturn conjunction Sun/Mercury/Venus career / career_responsibility_test

More mappings require tests and source notes before being added.

Entry Points

API and MCP callers may pass either field:

  • western_oracle_payload: raw external Western astrology JSON export; the project normalizes it with western_oracle_adapter.
  • western_evidence_packet: pre-normalized packet; the project carries it directly into runtime_evidence_log.
  • western_mode: auto (default for non-Prashna birth-chart entries), external_only, or off.

When Jyotish evidence also carries matching cross_system_signals, Cross-System Arbitration can become used. If only Western evidence is present, arbitration stays partial or blocked.

CLI

python3 scripts/western_oracle_adapter.py \
  --input /path/to/western_oracle.json \
  --theme career \
  --question-type career

The command prints a western_evidence_packet JSON object.

License Boundary

The premium skill may accept JSON exports from Kerykeion, Flatlib, Immanuel, Astro.com, GongShenXing, or desktop software.

Do not copy third-party source code into the premium package unless the exact project and dependency licenses permit bundling.

The adapter stores derived evidence and source labels only.