Commit Graph

9 Commits

Author SHA1 Message Date
732642856 e00f15599d Release v6.0.47: fix dharidhra FP by replacing bidirectional associated() with one-way aspect() checks
- Root cause: rel_to_any() used associated(p,o) with bidirectional aspects (aspect(p,o) OR aspect(o,p)), but PyJHora only checks one-way (trik lord -> L1, malefic -> L1, maraka -> target)
- Fixed v144/v147/v148/v149/v152 to use one-way aspect() checks matching PyJHora source
- v144: L7 aspects L1/L12 (one-way)
- v147/v148: maraka aspects L1 (one-way)
- v149: trik lord aspects L1, malefic aspects L1 (one-way, both were already correct for second part)
- v152: maraka aspects malefic in lagna (one-way)
- v145/v150/v151 were already correct (used aspect() directly)
- Corrected test expectation for chart that genuinely has dharidhra via v149
- Added proper False-no-variant-triggers test case (Cancer asc)
- Hardcoded tests: 10/10 passed
2026-06-06 22:26:55 +08:00
732642856 fffdbda22c Release v6.0.46: fix 5 completely wrong yoga rules, Precision 83.3%→92.5%, F1 87.2%→92.2%
- Fix kaalanirdesat_puthra_yoga (36→0 FPs): PyJHora 227/228 logic
- Fix sapthasankhya_sahodara_yoga (27→0 FPs): PyJHora L12+Mars+Moon+Jupiter+no Venus
- Fix sarpasaapa_yoga (25→0 FPs): PyJHora 212-215 variants
- Fix pushkala_yoga (9→0 FPs): PyJHora BVR-26 L1+Moon+dispositor
- Fix koorma_yoga (9→0 FPs): PyJHora BVR-54 method1
- Fix bhratrumooladdhanaprapti_yoga (9→0 FPs): PyJHora BVR-136
- Update hardcoded tests to match correct PyJHora logic
2026-06-06 21:54:59 +08:00
732642856 5b464a9078 test: auto-generate 60-rule yoga test suite from 60-chart benchmark
- yoga_test_suite.json: 60 rules x True/False test cases generated
  from the 60-chart benchmark (40 rules have both True+False)
- run_yoga_test_suite.py: test runner, 97/100 passed, 3 known FN
  residuals (bahu_puthra, dehasthoulya, grihanasa)
- Inspired by PyJHora's hardcoded _from_planet_positions methodology
2026-06-06 19:57:09 +08:00
732642856 9a4cc24c12 test: add PyJHora-style hardcoded yoga tests (pushkala/koorma/dharidhra)
9 tests total, 8/9 passing. 1 failure is a test design issue
(dharidhra False case triggers v149 due to Saturn aspecting Sun).
Inspired by PyJHora's _from_planet_positions test methodology.
2026-06-06 19:51:21 +08:00
732642856 625deb4007 chore: add engineering quality gate 2026-06-05 15:58:06 +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
732642856 6755d4522a feat: v6.0.1 pre-publish - add verification data, audit reports, lessons learned, celebrity cases
- Add 15+ references: audit reports, lessons learned, verified celebrity cases
- Add test data: v6.1 verification results, large-scale results JSON
- Update jyotish_engine.py and shadbala.py with latest fixes
- Prepare for ClawdHub marketplace publication
2026-05-05 14:04:40 +08:00
732642856 b917e029d0 feat: Vimsopaka尊严映射修复 + 单元测试22项全绿 + 审计报告
## Vimsopaka 尊严等级映射 (Step 4.5)
- 新增 _get_dignity_level() 函数:根据行星+星座+度数判断尊严等级
- 新增 MOOLATRIKONA 常量表(含度数范围)
- 新增 PERMANENT_FRIENDS / PERMANENT_ENEMIES 关系表(BPHS标准)
- Vimsopaka 集成不再默认 NEUTRAL,正确映射 Exalted/Moolatrikona/Own/Friend/Enemy/Debilitated

## Dasha 展示修正
- 修正之前的错误修复:日期计算必须用完整年数(数学等价性)
- 第一个 MD 新增字段:balance_years(balance值)、full_years(完整值)、elapsed_at_birth
- years 字段显示 balance 值(展示友好),full_years 显示完整值(用于链式计算)

## 单元测试 (tests/)
- tests/test_dasha.py: 22 项测试全绿
  - TestDignityLevel: 10 项(Exalted/Debilitated/Own/Moolatrikona/Friend/Enemy/Neutral)
  - TestDashaCalculation: 7 项(balance展示、日期连续性、birth+remaining验证、Dasha顺序、AD、Nakshatra映射)
  - TestNakshatraMapping: 3 项(Ashwini/Revati/Jyeshtha边界)
  - TestYogaDetection: 2 项(Raja Yoga检测、无Yoga误报)

## COVERAGE_AUDIT_REPORT.md
- 推送 v3.13.1 覆盖矩阵审计报告到仓库
2026-05-04 22:53:52 +08:00