Commit Graph

82 Commits

Author SHA1 Message Date
732642856 33fd7e07fa Complete v6.9.14 precision modules 2026-06-13 16:18:37 +08:00
732642856 3f355de1db Enhance Jyotish precision techniques and tests 2026-06-13 15:06:11 +08:00
732642856 5150f0d99a v6.9.7: PyPI + Docker 工程化 — pip install + docker compose up 一键部署
feat(pypi): publish-pypi.yml workflow (tag-triggered, OIDC trusted publishing)
feat(docker): Dockerfile + docker-compose.yml (API :5200 + Web :5300)
feat(ci): docker-publish.yml workflow (ghcr.io, tag-triggered)
chore: version unified to v6.9.6 (pyproject/__init__/SKILL/README)
chore: MANIFEST.in + scripts/__init__.py for pip install support
chore: pyproject.toml updated packages.find to include scripts/
chore: README.md status section refreshed, P0/P1 updated

Verified: wheel build + twine check PASSED, pip install + import OK
2026-06-12 18:50:39 +08:00
732642856 a816825126 v6.9.3: 文档同步 — SKILL.md/registry v6.1.12→v6.9.3
## 文档更新
- SKILL.md: 版本号+能力表+独有能力列表
- technique_registry.json: 31 covered→55 covered (+24)
  - 7个partial升级 + 17个新covered
- CHANGELOG_v6.2_to_v6.9.md: 完整变更日志
2026-06-12 07:14:54 +08:00
732642856 a4f8620a71 v6.2.0: 全面技法宝库升级 — 16个新模块 + 12个文件优化
## 新增模块 (16个)
### P0 精度修复
- ashtakavarga: calc_prastara_av() + calc_sodhita_av()
- kakshya.py: Kakshya评分系统 (8区间×3.75°)
- shadbala.py: Sputa Drishti + Yuddha Bala

### P1 核心升级
- bhava_bala.py: 宫位三元力量 (jyotishganit MIT)
- pancha_mahapurusha.py: PMC完整检测含4层失效条件
- sade_sati.py: Sade Sati+Kantaka Shani
- sudarshana_chakra.py: 三参考点盘+收敛分析
- tajika.py: Sahams 7→36 + Tajika Yogas 10种
- birth_time_rectifier.py: 生时矫正

### P2 覆盖扩展
- kp_system.py: KP Sublord+ABCD Significator (diliprk/VedicAstro MIT)
- synastry.py: 16因子合盘36分制 (dashaflow MIT)
- muhurtha_election.py: 6活动选举 (dashaflow MIT)
- career_analysis.py: 结构化事业引擎
- relationship_analysis.py: 结构化感情引擎
- conditional_dashas.py: Dwisaptati+Shattrimsa+Dwadashottari
- divisional_charts_extended: D81/D108/D144
- remedies.py: 5类补救系统

## 修改文件
jaimini/dasha_calculator/shadbala/SKILL.md/COVERAGE_AUDIT等12个

## 开源复用: 4个MIT项目
2026-06-11 19:03:21 +08:00
732642856 c4c0eff67a v6.1.12: Chara Dasha KN Rao Benchmark正式通过(95.83%)
PyJHora oracle benchmark 10案例×120字段:
- Sign Sequence: 120/120 = 100.00%
- Duration: 110/120 = 91.67%
- Overall: 230/240 = 95.83% >= 95%  PASS

修复:
- <=0检查顺序对齐PyJHora(先于尊贵调整)
- _PLANET_DIGNITY_KNRAO表(含Rahu/Ketu+set检查+Mercury own sign排除)
- _resolve_chara_dasha_lord()动态宫主判定框架
- bench脚本含Rahu/Ketu行星映射

已知限制: ~4.2%差异来自Aquarius/Scorpio共主动态判定(未来优化)
2026-06-11 13:40:50 +08:00
732642856 55853336b5 v6.1.11 Chara Dasha重写为KN Rao Method
完成P0核心差距修复:彻底重写calc_chara_dasha()和calc_chara_dasha_with_antardasha()

- 旧算法:简化版12-planets_in_sign,仅24.17%匹配PyJHora
- 新算法:完整KN Rao Method
  - 序列:从上升起,第9宫为偶数脚→逆向(对齐PyJHora _dhasa_progression_knrao_method)
  - 时长:基于宫主所在宫位,奇数脚顺数/偶数脚倒数,Exalted+1/Debilitated-1
  - Antardasha:等分12份,序列偏移1位(PyJHora method=2)
- 状态:partial → covered
- 参考PyJHora AGPL算法翻译为MIT独立实现
- 参考jaimini-tropical MIT架构设计
2026-06-10 21:54:52 +08:00
732642856 f83db2fac1 Enhance Jyotish validation and Jaimini modules
- add external validation reports and open-source comparison references

- integrate Jaimini arudha/graha pada, enhanced argala, and additional synastry kutas

- update skill docs and capability matrices

- add smoke tests for open-source integrations
2026-06-10 20:50:52 +08:00
732642856 068a8e2818 v6.1.10: Wire DK and RTN into theme reports 2026-06-08 14:06:13 +08:00
732642856 d2cd5a369f v6.1.9: Add public benchmarks and research roadmap
- Add sanitized Jyotish benchmark suite with fictional/public smoke samples
- Include benchmark scripts and markdown reports while excluding raw JSON/CSV outputs
- Add open-source Jyotish project comparison research
- Add complete technique coverage roadmap
- Add privacy-safe PDF chart validation methodology
- Update SKILL.md and CHANGELOG with v6.1.9 scope and privacy boundaries

Validation:
- py_compile benchmarks/jyotish/scripts/*.py passed
- quality gate passed with 35 pytest tests and golden case
2026-06-08 13:16:42 +08:00
732642856 3b167e28c3 v6.1.8: Improve Nishkapata yoga recall 2026-06-08 10:57:42 +08:00
732642856 ae959f362b docs: align v6.1.7 skill entry and validation report
- Update SKILL.md to reflect five-system Dasa Convergence wording
- Clarify v6.1.7 as D9/D60 YogaContext integration plus Sankha tightening
- Refresh validation_logic_report.json after verification run (F1=95.02, FP=36, FN=67)
2026-06-08 10:30:02 +08:00
732642856 3c64e4576f v6.1.7: Push Yoga validation F1 above 95 percent
- Inject D9/D60/Panchanga context into yoga and full-reading flows
- Add --context-json support for explicit YogaContext payloads
- Tighten Sankha Yoga movable-sign branch to require distinct L1/L10 lords
- Regenerate validation_logic_report: FP 36, FN 67, F1 95.02%
2026-06-08 10:27:57 +08:00
732642856 57e426515d v6.1.6: Add five-system dasha convergence 2026-06-07 20:16:47 +08:00
732642856 e1dec1e2fd docs: update SKILL.md to v6.0.47 with updated validation metrics 2026-06-06 22:28:49 +08:00
732642856 b63ca9e7e7 docs: update SKILL.md version to v6.0.46 with new validation metrics 2026-06-06 21:55:45 +08:00
732642856 0003d0be88 Release v6.0.44 fix JD timezone bug in reference data
- Fix: _compute_one_chart.py JD calculation used PyJHora's
  gregorian_to_jd() which ALWAYS returns noon JD regardless of time.
  Changed to swe.julday() with correct UTC hour.
- Impact: All 60 test charts with non-noon birth times had wrong
  ascendants and house assignments (e.g. Einstein went from
  Scorpio Asc -> Gemini Asc, matching Swiss Ephemeris)
- Cross-validated: Swiss Ephemeris (industry gold standard) and
  xalen-ephemeris (Rust, 5M chart oracle test)
- New baseline: F1=93.50% (Precision=93.82%, Recall=93.18%)
- Regenerated: standard_test_charts.json, planet_positions_60.json,
  validation_logic_report.json
- Quality gate: compile/json/audit/BPHS/pytest/golden all passed
2026-06-06 14:43:11 +08:00
732642856 26835f80b8 Release v6.0.43 Yoga F1 93.76%
- Fix 3 PyJHora source bugs (kalaanidhi Yoga JUPITER_ID->VENUS_ID x2,
  krisanga Yoga missing return)
- Implement planet_in_house_with_aspect_or_conjunction semantic condition
- Fix lagna_lord_in_dry_sign: dry_signs set correction (Capricorn->Taurus),
  add ll_owner_dry check using dynamic co-lord resolution
- Regenerate reference data against fixed PyJHora
- F1 93.28% -> 93.76% (FN 96->86, FP 44 unchanged)
2026-06-06 09:58:28 +08:00
732642856 0d582dbaa3 Release v6.0.42 Yoga source parity 2026-06-06 00:28:17 +08:00
732642856 86e7d03c4a Release v6.0.41 Yoga source parity 2026-06-05 23:20:53 +08:00
732642856 ede8b96d2c Release v6.0.40 Yoga source parity 2026-06-05 22:37:25 +08:00
732642856 94be318d56 Release v6.0.39 Yoga source parity 2026-06-05 22:03:06 +08:00
732642856 58fc615b16 fix: align yoga source rules 2026-06-05 20:31:14 +08:00
732642856 975f00f5f2 fix: improve context-aware yoga precision 2026-06-05 18:00:00 +08:00
732642856 93610326fe feat: add yoga context validation fixtures 2026-06-05 17:16:23 +08:00
732642856 4b840b5c2a fix: tighten yoga precision pass 2026-06-05 16:39:05 +08:00
732642856 44221191f6 fix: align high-impact yoga logic 2026-06-05 16:17:38 +08:00
732642856 99f6646a0a docs: refresh skill version footer 2026-06-05 15:59:13 +08:00
732642856 625deb4007 chore: add engineering quality gate 2026-06-05 15:58:06 +08:00
732642856 8da45c56b3 feat: add yoga logic validation and varga fixes 2026-06-05 14:30:20 +08:00
732642856 00bce757eb chore: bump version to v6.0.25, update validation report & CHANGELOG
- SKILL.md: v6.0.24-mcp-server -> v6.0.25-bugfix
- technique_registry.json: v6.0.24-mcp-server -> v6.0.25-bugfix
- CHANGELOG.md: add v6.0.25 section with 4 bug fixes
- benchmark/validation-einstein-2026-06-04.md: update with post-fix results
  (ascendant 16.67°, Dasha Moon Maha/Jupiter Antar,
   15 yogas detected, Nakshatra Jyeshtha Pada 2)
2026-06-04 16:46:55 +08:00
732642856 0881bb0964 fix(P0): sync SKILL.md version to v6.0.24 + fix MCP strict_workflow nonexistent subcommand
- SKILL.md: version 6.0.21 -> 6.0.24, header v6.0.23 -> v6.0.24-mcp-server
- mcp_server.py: strict_workflow was calling 'jyotish_engine.py strict-workflow'
  which does not exist as an argparse subcommand. Rewrote to:
  1. Keyword-based route detection (career/relationship/finance/timing/general)
  2. Call existing 'full-reading' subcommand (guaranteed to exist)
  3. Inject 'routing' metadata into response for client-side filtering
- py_compile + audit_capabilities --mode validate: all pass
- warnings=0, problems=0
2026-06-04 15:25:02 +08:00
732642856 28f6292a9a Fix full reading regression modules 2026-06-04 12:32:45 +08:00
732642856 2d847b147e Implement Nakshatra advanced dasha layer 2026-06-04 12:19:11 +08:00
732642856 e0334cc723 v6.0.21: Muhurta (Panchanga five elements) implementation
Complete Muhurta / electional astrology system:
- scripts/muhurta.py: full Panchanga calculation
  - Tithi (1-30, Shukla/Krishna quality table)
  - Nakshatra (27 nakshatras, Laghu/Sthira/Mridu/Ugra/Tikshna/Chara types)
  - Yoga (27 yogas, Sun+Moon sum)
  - Karana (11 karanas incl. Vishti/Bhadra warning)
  - Vara + Hora (weekday lord + hourly planet)
  - Abhijit Muhurta (most auspicious ~48min noon window)
  - Activity suitability: marriage/business/travel/medical/education
- scripts/cmd_muhurta.py: CLI subcommand with date/activity/scan-days args
- jyotish_engine.py: muhurta subparser + cmd dispatch
- Tested: 2026-06-04 = Krishna Tritiya, Shukla Yoga, Jupiter Vara

Files: +2 new (muhurta.py, cmd_muhurta.py), +4 modified
2026-06-04 11:35:46 +08:00
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
732642856 78e6f12b43 v6.0.19: fix degraded mode - Muntha no longer skipped without swisseph
Bug: v6.0.18's solar_return_full_report returned early when calc_solar_return_chart
failed (no swisseph), skipping Muntha entirely.

Fix:
- Added _estimate_sun_sign() with lookup table for sun sign from birth date
- Refactored solar_return_full_report to use degraded mode:
  - Muntha + Year Lord always computed (using lookup table sun sign)
  - Tajika/Sahams/Tri-Pataka/Mudda gracefully skipped with notes
- Added _SUN_SIGN_LOOKUP table covering 1950-2100, \u00b11 sign accuracy

Files: solar_return.py, SKILL.md, CHANGELOG.md, technique_registry.json
2026-06-04 11:03:26 +08:00
732642856 0d44b9b43f v6.0.18: Solar Return/Varshaphala 实现 + Muntha covered
变更概要:
- scripts/solar_return.py(新):太阳返照盘核心计算(二分法求精确UT时刻)
- scripts/cmd_solar_return.py(新):solar-return 子命令
- scripts/jyotish_engine.py:新增 Step 4.12 + cmd_solar_return 注册 + --target-year 参数
- references/technique_registry.json:muntha→covered,新增 solar_return(covered)
- CHANGELOG.md:新增 v6.0.18 条目
- SKILL.md:版本 6.0.18

已知限制(待修复):
- swisseph 不可用时,calc_solar_return_chart 报错导致 solar_return_full_report 提前返回,Muntha 计算被跳过。
- 修复方向:将 calc_solar_return_chart 拆为 UT 计算(近似算法可用)和 chart 计算两步,chart 失败时不中断 Muntha 计算。
2026-06-04 07:35:57 +08:00
732642856 8d0616c1b7 v6.0.17: bhrigu_pada_dasha 接入 + muntha/prashna placeholder 修正
- scripts/bhrigu_pada_dasha.py (新): Bhrigu Pada Dasha 通用近似版
- scripts/jyotish_engine.py Step 4.11: 新增 bhrigu_pada_dasha 调用,修正 muntha/prashna placeholder 文字
- references/technique_registry.json: 新增 bhrigu_pada_dasha (partial)
- CHANGELOG.md: 新增 v6.0.17 条目
- SKILL.md: 版本号 6.0.16 → 6.0.17
2026-06-04 06:13:15 +08:00
732642856 a40310a7be v6.0.16: 新增 Marriage Counting + D30 Trimshamsa + Muntha(占位) + Prashna(占位) 技法
- scripts/marriage_counting.py(新):Bhrigu 婚姻计数法(精确算法)
- scripts/trimshamsa_d30.py(新):D30 Trimshamsa 分盘计算
- scripts/muntha.py(新):Muntha 计算(基础版,需 Varshaphala 数据)
- scripts/jyotish_engine.py:Step 4.11 集成 4 个新技法
- references/technique_registry.json:新增 4 个技法注册
- CHANGELOG.md:新增 v6.0.16 条目
- SKILL.md:版本号 6.0.15 → 6.0.16
2026-06-04 06:03:11 +08:00
732642856 5e62ec5d48 chore: cleanup darakaraka dead code + fix SKILL.md trigger keywords 2026-06-04 05:57:38 +08:00
732642856 de07e98a3d v6.0.15: 新增 Tithi Lord + Pancha Pakshi + Rashi Tulya Navamsa 技法
- scripts/tithi_lord.py(新):Tithi Lord 计算模块
- scripts/pancha_pakshi.py(新):Pancha Pakshi 五鸟系统
- scripts/rashi_tulya_navamsa.py(新):Rashi Tulya Navamsa D1-D9 对比分析
- scripts/jyotish_engine.py:Step 4.10 集成 3 个新技法
- references/technique_registry.json:新增 3 个技法注册
- CHANGELOG.md:新增 v6.0.15 条目
- SKILL.md:版本号 6.0.14 → 6.0.15
2026-06-04 05:31:55 +08:00
732642856 63fb547dda v6.0.14: 新增 Yogas + Doshas + Special Lagnas + Darakaraka 技法
- scripts/jaimini.py: 新增 calc_darakaraka 等5个函数(DK/婚姻分析)
- scripts/yogas_doshas.py: 新文件,11个函数(Raj/Dhana/PanchaMahapurusha/NeechaBhanga/MangalDosha/KaalSarp/Pitra/SadeSati/ArudhaLagna/UpapadaLagna)
- scripts/jyotish_engine.py: cmd_full_reading 新增 Step 4.9 调用 calc_all_yogas_doshas
- references/technique_registry.json: 新增11个技法注册(darakaraka/raj_yoga/.../upapada_lagna)
- references/strict-workflow-router.md: Audit Table 模板新增11行
- CHANGELOG.md: 新增 v6.0.14 条目
- SKILL.md: 版本号 6.0.13 → 6.0.14
2026-06-04 05:12:35 +08:00
732642856 a20c13490c v6.0.13: 新增 Tajika Yogas + Sahams 技法
- scripts/tajika.py: 新增 calc_tajika_yogas, calc_all_sahams 等6个函数
- scripts/jyotish_engine.py: cmd_full_reading 新增 Step 4.8 调用新函数
- references/technique_registry.json: 新增 tajika_yogas, sahams 技法注册(partial)
- references/strict-workflow-router.md: Audit Table 模板新增两行
- CHANGELOG.md: 新增 v6.0.13 条目
- SKILL.md: 版本号 6.0.12 → 6.0.13
2026-06-04 04:35:44 +08:00
732642856 f6deae7a25 v6.0.12: add Dispositor Chain + Inter-chart Linkage techniques
- New functions: calc_dispositor_chain, calc_inter_chart_linkage, calc_all_dispositor_chains, calc_all_inter_chart_linkages
- cmd_full_reading Step 4.7: compute and attach dispositor_chains, inter_chart_linkage, final_dispositors to modules
- technique_registry.json: add dispositor_chain and inter_chart_linkage as covered techniques; update 3 routes
- strict-workflow-router.md: sync routes and audit table with new techniques
- CHANGELOG.md: add v6.0.12 entry
- SKILL.md: bump version to 6.0.12
2026-06-04 04:19:50 +08:00
732642856 3d2faf3380 Calibrate Jyotish benchmarks and downgrade partial modules 2026-06-04 03:06:43 +08:00
732642856 9fd26dbea5 Add Rahu Ketu node mode option 2026-06-03 19:55:22 +08:00
732642856 7bd91b3b76 Fix D10 varga benchmark precision 2026-06-03 19:29:15 +08:00
732642856 f90fdb9a3b Remove personal data from Jyotish skill 2026-06-03 15:18:12 +08:00
732642856 b6f5fa8ba4 Add Jyotish registry audit and CI foundation 2026-06-03 14:58:51 +08:00