10c6ff064d
README.md changes: - Complete rewrite as professional English project documentation - Add competitive comparison table (vs PyJHora / VedAstro / Maitreya) - Include honest accuracy self-assessment (7.3/10 traditional algo, etc.) - Quick start with 5-minute full-reading example - Technique coverage table (44 techniques with status) - Development rules and contributing guidelines - Truth over coverage philosophy New file: - references/competitive-analysis-2026-06-05.md - PyJHora advantages (50+ Dashas, benchmark harness) - VedAstro advantages (MCP Server, Docker, 200+ endpoints) - Our differentiation (strict workflow, audit table, degradation) - 3-phase optimization roadmap with concrete tasks
403 lines
16 KiB
Markdown
403 lines
16 KiB
Markdown
# Jyotish Vedic Astrology — AI-Native Full-Reading System
|
||
|
||
> **What makes this different:** This is not a calculator. It is an AI-native Jyotish analysis system that combines calculation engines, interpretive workflows, confidence auditing, and graceful degradation — organized into a reproducible full-reading pipeline.
|
||
|
||
[](LICENSE)
|
||
[](https://www.python.org/)
|
||
[](references/technique_registry.json)
|
||
[](references/technique_registry.json)
|
||
[](references/technique_registry.json)
|
||
|
||
---
|
||
|
||
## Table of Contents
|
||
|
||
- [What Is This](#what-is-this)
|
||
- [Quick Start](#quick-start)
|
||
- [Core Workflow](#core-workflow)
|
||
- [Technique Coverage](#technique-coverage)
|
||
- [Why This Exists (Competitive Context)](#why-this-exists)
|
||
- [Honest Assessment](#honest-assessment)
|
||
- [Project Status](#project-status)
|
||
- [Development](#development)
|
||
- [Contributing](#contributing)
|
||
- [License](#license)
|
||
|
||
---
|
||
|
||
## What Is This
|
||
|
||
This is a **Vedic (Jyotish) astrology analysis system** designed for deep, auditable full-chart readings. It is NOT a simple ephemeris calculator — it is a multi-stage interpretive pipeline that:
|
||
|
||
1. **Computes** divisional charts (D1/D9/D10/...) via Swiss Ephemeris
|
||
2. **Runs** 44+ techniques (Dashas, Yogas, Shadbala, Ashtakavarga, Transits...)
|
||
3. **Routes** the analysis through strict workflow paths depending on question type (career / relationship / wealth / timing)
|
||
4. **Audits** every technique used — declaring what was called, what was partial, what was missing, and how that affects confidence
|
||
5. **Degrades gracefully** — partial techniques are labeled, not silently over-promising
|
||
|
||
### Key Differentiators (vs. PyJHora / VedAstro / Maitreya)
|
||
|
||
| Feature | This Project | PyJHora | VedAstro | Maitreya |
|
||
|---------|-------------|----------|----------|----------|
|
||
| Full-reading pipeline (one command) | ✅ | ❌ | ❌ | ❌ |
|
||
| Strict workflow router (per-question-type) | ✅ | ❌ | ❌ | ❌ |
|
||
| Technique Audit Table (confidence labeling) | ✅ | ❌ | ❌ | ❌ |
|
||
| Capability degradation (partial ≠ covered) | ✅ | ❌ | ❌ | ❌ |
|
||
| MEVG external verification gates | ✅ | ❌ | ❌ | ❌ |
|
||
| 44+ techniques integrated | ✅ | ✅ (50+) | ✅ (200+) | ✅ |
|
||
| Traditional algorithm benchmarked | 🔶 partial | ✅ | ✅ | ✅ |
|
||
| Docker / MCP Server | 🔶 planned | ❌ | ✅ | ❌ |
|
||
| English docs / PyPI package | 🔶 in progress | ✅ | ✅ | ✅ |
|
||
|
||
---
|
||
|
||
## Quick Start
|
||
|
||
### Prerequisites
|
||
|
||
- Python 3.11+
|
||
- Swiss Ephemeris (`pyswisseph` or `ephem`)
|
||
- Optional: `pypdf`, `pdfplumber` (for PDF chart input)
|
||
|
||
### Install
|
||
|
||
```bash
|
||
# Clone the repository
|
||
git clone https://github.com/732642856/yinduzhanxing.git
|
||
cd yinduzhanxing
|
||
|
||
# Install Python dependencies
|
||
pip install -r requirements.txt
|
||
|
||
# Verify installation
|
||
python3 scripts/audit_capabilities.py --mode validate
|
||
# Expected: valid=true, problem_count=0
|
||
```
|
||
|
||
### Minimal Full Reading (5 minutes)
|
||
|
||
```bash
|
||
python3 scripts/jyotish_engine.py full-reading \
|
||
--year 1990 --month 6 --day 15 \
|
||
--hour 10 --minute 30 \
|
||
--lat 28.6139 --lon 77.2090 --tz 5.5 \
|
||
--age 36 \
|
||
--transit-date 2026-06-04
|
||
```
|
||
|
||
**Output:** ~45 computed modules, zero errors, complete structured reading with technique audit table.
|
||
|
||
### Sample Output (abbreviated)
|
||
|
||
```
|
||
═══ FULL READING ═══
|
||
Birth Data: 1990-06-15 10:30 (+5.5) 28.61°N 77.21°E
|
||
Lagna: Gemini Sun: Taurus Moon: Leo
|
||
|
||
── Static Analysis ──
|
||
[✓] D1 Rashi Chart
|
||
[✓] D9 Navamsa
|
||
[✓] D10 Dasamsa
|
||
[✓] Vimshottari Dasha (120 years)
|
||
[✓] Ashtakavarga (8-point system)
|
||
[✓] Shadbala (partial — internal invariants pass, external calibration pending)
|
||
[✓] Yogas & Doshas
|
||
[✓] Argala (planetary interventions)
|
||
[✓] Nakshatra Advanced (Chandra Bala / Tara Bala)
|
||
|
||
── Dynamic Timing ──
|
||
[✓] Vimshottari Dasha breakdown
|
||
[✓] Dasha Sandhi detection
|
||
[✓] Transit (true positions)
|
||
[✓] Double Transit analysis
|
||
[✓] Narayana Dasha
|
||
[✓] Solar Return / Varshaphala (partial)
|
||
[✓] Nakshatra Dasha (Ashtottari)
|
||
|
||
── Technique Audit Table ──
|
||
✓ Vimshottari Dasha covered high confidence
|
||
✓ Ashtakavarga covered high confidence
|
||
🔶 Shadbala partial internal consistent, external calibration pending
|
||
🔶 Chara Dasha partial simplified (24% match with PyJHora KN Rao)
|
||
❌ KP Sub-Lord missing not yet implemented
|
||
```
|
||
|
||
---
|
||
|
||
## Core Workflow
|
||
|
||
### Three Input Paths
|
||
|
||
| Path | Input | Behavior |
|
||
|------|-------|----------|
|
||
| **A: Precise birth data** | Date + time + coordinates | Full `full-reading` engine |
|
||
| **B: PDF / text chart** | Scanned chart or description | Extract → Quality Gate → route to A |
|
||
| **C: Uncertain birth time** | "Don't know my birth time" | Interactive birth time rectification |
|
||
|
||
### Eight-Stage Pipeline
|
||
|
||
```
|
||
Stage -1: Question-type routing (career / relationship / wealth / timing)
|
||
Stage 0: Input routing (A / B / C)
|
||
Stage 1: (B only) PDF extraction + Quality Gate
|
||
Stage 2: Intent recognition → target house routing
|
||
Stage 3: Static analysis (10 steps)
|
||
Stage 4: Dynamic timing (7 steps)
|
||
Stage 5: Timing output (5-layer verification)
|
||
Stage 6: Remedial measures (optional)
|
||
Stage 7: Modern language packaging
|
||
Stage 8: Technique Audit Table (mandatory)
|
||
```
|
||
|
||
**Strict Workflow Router** (`references/strict-workflow-router.md`):
|
||
- Career questions → `career-timing-strict`
|
||
- Relationship questions → `relationship-timing-strict`
|
||
- Wealth questions → `wealth-timing-strict`
|
||
- Event timing → `event-timing-strict`
|
||
- Historical verification → `event-verification-strict`
|
||
|
||
The AI does NOT require the user to name techniques (e.g., "Chara Dasha"). It auto-selects based on question type.
|
||
|
||
---
|
||
|
||
## Technique Coverage
|
||
|
||
Current count: **44 techniques** (26 covered, 18 partial, 0 missing)
|
||
|
||
| Technique | Status | Notes |
|
||
|-----------|--------|-------|
|
||
| D1 Rashi Chart | ✅ covered | Swiss Eph base |
|
||
| D9 Navamsa | ✅ covered | |
|
||
| D10 Dasamsa | ✅ covered | |
|
||
| Vimshottari Dasha | ✅ covered | |
|
||
| Dasha Sandhi | ✅ covered | |
|
||
| Ashtakavarga | ✅ covered | BPHS/PVR calibrated |
|
||
| Argala | ✅ covered | |
|
||
| Vargottama | ✅ covered | |
|
||
| Pushkara | ✅ covered | |
|
||
| A10 / Karma Pada | ✅ covered | |
|
||
| UL / Upapada | ✅ covered | |
|
||
| Transit (true positions) | ✅ covered | |
|
||
| Double Transit | ✅ covered | |
|
||
| Nakshatra Advanced | 🔶 partial | Engineering usable, needs more external benchmarking |
|
||
| Narayana Dasha | 🔶 partial | Usable, needs traditional benchmark |
|
||
| Solar Return / Varshaphala | 🔶 partial | Usable, some degradation logic present |
|
||
| **Shadbala** | 🔶 partial | **1200/1200 internal invariants pass; external absolute calibration NOT yet done** |
|
||
| **Chara Dasha** | 🔶 partial | **~24% match with PyJHora KN Rao method; do NOT use for high-confidence timing** |
|
||
| KP Sub-Lord | 🔶 partial | Simplified 9-equal division; not full KP |
|
||
| Bhava Chalit | 🔶 partial | Whole-sign adapter present; not full cusp-based reassignment |
|
||
| Sudarshana Chakra | 🔶 partial | D1×D9×D10 triangle verification; not traditional full implementation |
|
||
| Tajika Yogas | 🔶 partial | Simplified rules |
|
||
| Raj Yoga | 🔶 partial | Classic combinations covered; not all variants |
|
||
| Dhana Yoga | 🔶 partial | |
|
||
| Pancha Mahapurusha | 🔶 partial | |
|
||
| Neecha Bhanga | 🔶 partial | |
|
||
| Sade Sati | 🔶 partial | Simplified model |
|
||
| Tithi Lord | 🔶 partial | |
|
||
| Pancha Pakshi | 🔶 partial | |
|
||
| Rashi Tulya Navamsa | 🔶 partial | |
|
||
| Trimshamsa D30 | 🔶 partial | |
|
||
| Marriage Counting | 🔶 partial | Bhrigu Pada approximation |
|
||
| Prashna Integration | 🔶 partial | Not fully integrated into full-reading |
|
||
| Bhrigu Pada Dasha | 🔶 partial | Generic approximation |
|
||
| Muhurta | 🔶 partial | Panchanga elements present |
|
||
|
||
**Legend:**
|
||
- ✅ `covered` — implemented and benchmarked against authoritative sources
|
||
- 🔶 `partial` — implemented but NOT fully benchmarked; suitable for auxiliary reference only
|
||
- ❌ `missing` — not yet implemented
|
||
|
||
---
|
||
|
||
## Why This Exists (Competitive Context)
|
||
|
||
### The Landscape
|
||
|
||
| Project | Type | Strength | Weakness |
|
||
|---------|------|----------|-----------|
|
||
| **PyJHora** | Calculation library | Strongest traditional algorithm coverage (50+ Dashas, 284 Yogas) | No interpretive pipeline; user must interpret results themselves |
|
||
| **VedAstro** | API / Web platform | 200+ endpoints, Docker, MCP Server, MIT license | Interpretive audit & confidence labeling weaker |
|
||
| **Maitreya** | Desktop software | Mature cross-platform GUI | Jyotish depth not as deep as specialized projects |
|
||
| **jyotisha** | Panchanga / calendar | Excellent Panchanga accuracy | Not a full reading system |
|
||
| **This project** | AI-native analysis system | Full pipeline + audit + degradation | Pure calculation accuracy still being benchmarked |
|
||
|
||
### Our Position
|
||
|
||
> **PyJHora is the calculator. VedAstro is the API platform. Maitreya is the desktop software. This project is the "AI-native Jyotish research analyst."**
|
||
|
||
We are NOT trying to out-calculate PyJHora (it has years of lead). Our value is in:
|
||
1. Organizing calculations into a **reproducible interpretive workflow**
|
||
2. **Auditing** every technique used and declaring confidence
|
||
3. **Degrading gracefully** — partial techniques are labeled, not silently over-promising
|
||
4. Being **AI-native** — designed for integration with LLM-based analysis
|
||
|
||
---
|
||
|
||
## Honest Assessment
|
||
|
||
We believe in transparency about limitations. This is NOT a "99% accurate" system, and anyone claiming that about Jyotish is over-selling.
|
||
|
||
### Current Accuracy Estimates (self-evaluated)
|
||
|
||
| Dimension | Score | Notes |
|
||
|-----------|-------|-------|
|
||
| Astronomical foundation (Swiss Eph) | 8.5/10 | Depends on ayanamsa, node mode, house system |
|
||
| Traditional algorithm accuracy | 7.3/10 | Chara Dasha & Shadbala need external calibration |
|
||
| Technique coverage breadth | 8.6/10 | 44 techniques, broad but not deepest |
|
||
| Reading detail depth | 9.6/10 | Possibly best among open-source projects |
|
||
| Prediction workflow rigor | 8.8/10 | Strict routing + audit table |
|
||
| Verification system | 8.2/10 | Has registry, benchmark, degradation; some verification still internal |
|
||
| Engineering maturity | 6.8/10 | Functional, but not productized (no Docker / PyPI / CI yet) |
|
||
| Open-source influence | 5.5/10 | Currently more of a "private high-density toolkit" |
|
||
|
||
### What "Partial" Means (Important)
|
||
|
||
When a technique is labeled `partial`:
|
||
- It CAN produce output
|
||
- The output has NOT been benchmarked against PyJHora / JHora / canonical texts
|
||
- It should be used as **auxiliary reference only**
|
||
- It must NOT be the sole basis for high-confidence predictions
|
||
|
||
Examples:
|
||
- `Shadbala` (partial): Internal invariants pass (1200/1200). External absolute values NOT calibrated. Use for relative strength ranking only.
|
||
- `Chara Dasha` (partial): ~24% match with PyJHora KN Rao method. Do NOT use for precise timing.
|
||
|
||
---
|
||
|
||
## Project Status
|
||
|
||
**Current version:** `v6.0.23-full-reading-regression`
|
||
|
||
### Recently Completed
|
||
|
||
- `v6.0.11` — Shadbala internal invariant validation (1200/1200 pass); downgraded to `partial`
|
||
- `v6.0.18` — Solar Return / Varshaphala + Muntha
|
||
- `v6.0.20` — Narayana Dasha / Rishi Dasha
|
||
- `v6.0.21` — Muhurta (Panchanga-based electional astrology)
|
||
- `v6.0.22` — Nakshatra Advanced (Chandra Bala / Tara Bala)
|
||
- `v6.0.23` — Full-reading regression fix (45 modules, 0 errors)
|
||
|
||
### Actively Working On (P0)
|
||
|
||
1. **Chara Dasha rewrite** — align with PyJHora KN Rao method (target: ≥95% match)
|
||
2. **Shadbala external calibration** — align with JHora / PyJHora / BV Raman
|
||
3. **KP Sub-Lord full implementation** — unequal Vimshottari subdivisions
|
||
4. **Bhava Chalit complete** — cusp-based planet reassignment
|
||
5. **Sudarshana Chakra traditional** — Sun/Moon/Lagna reference points
|
||
|
||
### Next (P1)
|
||
|
||
- Benchmark harness (PyJHora output comparison)
|
||
- English documentation completion
|
||
- Docker image
|
||
- MCP Server endpoint
|
||
- GitHub Actions CI
|
||
|
||
---
|
||
|
||
## Development
|
||
|
||
### Running the Test Suite
|
||
|
||
```bash
|
||
# Syntax check all scripts
|
||
python3 -m py_compile scripts/*.py
|
||
|
||
# Capability audit (must pass with 0 problems, 0 warnings)
|
||
python3 scripts/audit_capabilities.py --mode validate
|
||
|
||
# Full-reading regression test (use FICTIONAL data only)
|
||
python3 scripts/jyotish_engine.py full-reading \
|
||
--year 1990 --month 6 --day 15 \
|
||
--hour 10 --minute 30 \
|
||
--lat 39.9042 --lon 116.4074 --tz 8 \
|
||
--age 36 \
|
||
--transit-date 2026-06-04
|
||
```
|
||
|
||
### Important Rules
|
||
|
||
1. **NEVER** put real user birth data into skill files, tests, CHANGELOG, or public repos
|
||
2. Use only: (a) public AA-rated celebrity data, (b) explicitly fictional smoke tests, (c) current-session data (never persisted)
|
||
3. Always run `git status --short --branch` before starting work
|
||
4. Always run `py_compile` + `audit_capabilities.py` + full-reading regression after modifications
|
||
5. Do NOT upgrade `partial` to `covered` without external benchmark evidence
|
||
6. Do NOT refactor arbitrarily; make minimal verifiable changes
|
||
|
||
### Directory Structure
|
||
|
||
```
|
||
jyotish-vedic-astrology/
|
||
├── SKILL.md # Core entry point (Chinese)
|
||
├── README.md # This file (English)
|
||
├── CHANGELOG.md # Version history
|
||
├── requirements.txt # Python dependencies
|
||
├── references/
|
||
│ ├── technique_registry.json # Machine-readable technique registry
|
||
│ ├── strict-workflow-router.md # Question-type routing rules
|
||
│ ├── quick-reference-guide.md # Quick reference
|
||
│ └── ... # Knowledge reference docs
|
||
├── scripts/
|
||
│ ├── jyotish_engine.py # Main engine entry point
|
||
│ ├── audit_capabilities.py # Capability audit tool
|
||
│ ├── shadbala.py # Shadbala implementation
|
||
│ ├── dasha_calculator.py # Dasha calculations
|
||
│ └── ... # 30+ technique scripts
|
||
└── tests/ # Test cases
|
||
```
|
||
|
||
---
|
||
|
||
## Contributing
|
||
|
||
We welcome contributions, especially:
|
||
|
||
1. **Benchmark data** — PyJHora / JHora output comparisons for specific techniques
|
||
2. **Traditional text verification** — checking technique implementations against BPHS, PVN Rao, BV Raman
|
||
3. **Documentation** — English docs, tutorials, example outputs
|
||
4. **Engineering** — Docker, CI, MCP Server, API layer
|
||
5. **Test cases** — fictional birth data with expected outputs
|
||
|
||
### How to Contribute
|
||
|
||
1. Fork the repository
|
||
2. Create a feature branch (`git checkout -b fix/chara-dasha-benchmark`)
|
||
3. Make your changes (follow the development rules above)
|
||
4. Run the full test suite
|
||
5. Commit with a clear message
|
||
6. Push and create a Pull Request
|
||
|
||
### Philosophy
|
||
|
||
We prioritize **truth over coverage**. It is better to have 10 well-benchmarked techniques than 50 poorly-implemented ones. If you contribute a technique, please include:
|
||
- The source text / authority it is based on
|
||
- Benchmark comparison data (if available)
|
||
- Honest assessment of limitations
|
||
|
||
---
|
||
|
||
## License
|
||
|
||
MIT License — see [LICENSE](LICENSE) for details.
|
||
|
||
---
|
||
|
||
## Acknowledgments
|
||
|
||
- **Swiss Ephemeris** — astronomical calculation foundation
|
||
- **PyJHora** (`naturalstupid/PyJHora`) — benchmark reference for traditional algorithms
|
||
- **VedAstro** (`VedAstro/VedAstro`) — engineering and productization reference
|
||
- **BPHS (Brihat Parashara Hora Shastra)** — canonical text
|
||
- **PVN Rao / KN Rao** — traditional Jyotish teaching lineage
|
||
|
||
---
|
||
|
||
## Contact & Support
|
||
|
||
- **Issues:** [GitHub Issues](https://github.com/732642856/yinduzhanxing/issues)
|
||
- **Discussions:** [GitHub Discussions](https://github.com/732642856/yinduzhanxing/discussions)
|
||
|
||
---
|
||
|
||
> **Final note:** This system is a research tool. It should NOT be used for making life-altering decisions without consulting qualified human astrologers. The techniques implemented here are complex and context-dependent; software output always benefits from human judgment.
|