Commit Graph
22 Commits
Author SHA1 Message Date
ClaudeandClaude Opus 5.5 4b223eb8ea fix(engine): apply #166 batch 2 rulings to functional roles, yogas, Chara / Narayana, Gulika, sunrise records and varga methods (BUG-1590..1598)
Astrologer ruling 2026-11-04 on #166, product decisions the same day (Q9
display only, later; Q12 record, do not switch).

- Q4 (BUG-1590): Gemini Saturn (8, 9) and Virgo Saturn (5, 6) are mixed
  (neutral), not pure benefics by trine priority; the astrologer's table for
  the eight ambiguous cells rides along as ambiguous_cell_notes. Other
  lordships are kept.
- Q10 (BUG-1591): Chara Dasha with both Scorpio / Aquarius lords in the sign
  is fixed at 12 years (Ketu exalted in Scorpio gave 13).
- Q11 (BUG-1592): legacy Narayana counts only the nine grahas as occupants.
- Q8 (BUG-1593): Narayana period reports the adjustment that took effect
  (Mercury in Virgo: 12, +0, not "12 + 1" capped silently).
- Q15 (BUG-1594): upagrahas carry both raw Saturn-part points and name the
  mapping (PyJHora-compatible Gulika = start, Maandi = midpoint; PVR 4.3 is the
  reverse and is listed, never claimed).
- Q12 / Q13 (BUG-1595): every day/night window, Shadbala and the birth
  Panchanga record their sunrise convention and hora method. No value changes.
- Q5 (BUG-1596): "Gajakesari Yoga" is PVR's strict definition (benefic
  association, not debilitated, combust or in a natural enemy's sign); the
  strong-Jupiter variant and the bare Moon-Jupiter kendra relation are
  separate rules outside the card's closed list. New sandbox helpers combust()
  and in_natural_enemy_sign().
- Q6 (BUG-1597): Matrunasa split into Raman 198 (named Parashari aspects,
  nodes for conjunction / hemming only) and Raman 199 (same parents-card row
  via canonical_mapping); each hit names its trigger; "high confidence" and
  mother's-health effects removed. Custom rules may set `triggers`.
- Q31 (BUG-1598): calc_varga names the D3 / D24 / D30 / D60 method; D3 / D24 /
  D60 of varga.py and divisional_charts_extended agree on every 0.1 deg.
- Q29: the 7-karaka note says PiK does not apply in that scheme.

tests/test_astrologer_rulings_166_batch2.py (25 tests). Rectification
identity and re-freeze follow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-04 22:24:40 +08:00
ClaudeandClaude Opus 5.5 78f98eba93 fix(engine): apply the #166 astrologer rulings to Shadbala, Arudha and D30 (BUG-1581..1589, BUG-1575)
Astrologer ruling 2026-11-04 on #166; product decision the same day (Moon
option C, rulings implemented as given). The default is a named BPHS version;
the pre-#166 precise Sthana / Drik is kept byte-for-byte as variant
"raman_gbb" (Raman, Graha and Bhava Balas Ex. 13 / 55 still pass on it).

- Q3 (BUG-1581): the Moon's own Paksha is P on both sides (Sanskrit 27.11 lists
  indu), Chesta = Paksha, total 2P. Drik still classifies a waning Moon as a
  malefic (Q26), classify_drik_planets unchanged for the Moon.
- Q2 (BUG-1582): the Sun's Ayana is not doubled; Chesta = base Ayana; A + A.
  On the VP Jain fixture Kala + Chesta = 46.73 + 35.07 = published 81.80 + 0.
- Q18 (BUG-1583, BUG-1575): Moolatrikona Moon Taurus from 3 deg, Mercury Virgo
  from 15 deg, in shadbala.py and jyotish_engine.MOOLATRIKONA.
- Q16 / Q20 (BUG-1584): Saptavargaja 45/30/20/15/10/4/2, compound relation from D1.
- Q25 (BUG-1585): Mercury is a natural malefic with any natural malefic in its
  sign (nodes not counted, recorded as an implementation choice).
- Q24 (BUG-1586): BPHS 26.9-12 piecewise special aspects replace the general
  segment for Saturn, Mars and Jupiter; a single aspect stays within 0-60.
- Q21 (BUG-1587): Kendradi Bala by whole sign from the Lagna sign.
- Q27 (BUG-1588): jaimini.calc_arudha_pada_for_house takes the 10th from the
  first-count pada (pada in the 7th -> 4th from the house), as special_lagnas did.
- Q30 (BUG-1589): D30 degree inside the sign is proportional within the
  unequal span in varga.py; divisional_charts_extended uses exact 30/7.
- method_variants names every convention. Q22 edges and the Q24 60 cap are
  locked in tests/test_astrologer_rulings_166.py (42 tests).

Raman / PyJHora comparison tests now run on "raman_gbb"; the VP Jain report
labels the new convention rows; chart-insight-golden.json's planets-only
Shadbala section regenerated from /api/shadbala. Rectification identity,
golden and re-freeze follow in separate commits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
2026-11-04 21:08:32 +08:00
ClaudeandClaude Opus 5.5 18c685c428 fix(engine): even-sign D30 per BPHS ch. 6 and Venus malefic for Aries / Scorpio per BPHS 34 (BUG-1560, BUG-1570)
Product decision 2026-11-04: the calculation follows the sources even though
rectification scores move.

- scripts/varga.py: even-sign Trimsamsa 12-20 Pisces, 20-25 Capricorn,
  25-30 Scorpio (was Capricorn / Scorpio / Pisces). KNOWN DEFECT comment
  removed; the strict xfail in tests/test_varga_bphs_starts_audit_g.py is now
  an ordinary test and the 0.1-degree BPHS sweep covers varga.py on all signs.
- scripts/functional_benefics.py: ROLE_OVERRIDES adds Venus = malefic for
  Aries (BPHS 34.20) and Scorpio (34.35); profile doc lists both cells.

Both feed rectification scoring; the scoring-13 identity bump, memoization
golden v6 and the ERR-110 re-freeze follow in the next commits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyeZrYn6ryNcSe5Y2Y
2026-11-04 17:33:26 +08:00
ClaudeandClaude Opus 5.5 ba27b0e758 fix(varga): D16/D20/D27/D45 starts and the chart-page D30/D40 follow BPHS ch. 6 (BUG-1560..1562)
Data audit wave 2 (G): 19 fixed charts, Raman and Lahiri, mean nodes, both
engines set explicitly. Against PyJHora method 1 ("traditional Parasara") on
the same longitudes, varga.py matched D16/D20 26%, D27 25%, D45 14%, and
divisional_charts_extended (chart page, consultation varga spectrum) matched
D16/D20 7%, D27 14%, D40/D45 25%, D30 50%. jyotishganit agrees with PyJHora
190/190 on every one of these, and both follow BPHS ch. 6.

- varga.varga_map: D16/D45 movable/fixed/dual from Aries/Leo/Sagittarius,
  D20 from Aries/Sagittarius/Leo, D27 fiery/earthy/airy/watery from
  Aries/Cancer/Libra/Capricorn (were odd/even starts). BUG-1560.
- divisional_charts_extended: D16/D20/D27/D40/D45 signs now read varga_map;
  D30 uses the BPHS signs (odd 25-30 Libra; even Taurus, Virgo, Pisces,
  Capricorn, Scorpio). BUG-1561.
- trimshamsa_d30: even-sign table copied from jyotishganit swapped Jupiter
  and Saturn; now 12-20 Pisces, 20-25 Capricorn, 25-30 Scorpio. BUG-1562.
- shodasavarga guide: D4/D10/D24/D27/D30/D40 rule text corrected.

Held back: varga.py even-sign D30 has the same defect, but it feeds
rectification scoring. Fixing it moved the sealed holdout (top-1 0.50 to
0.45) and 166/900 offset trials and turned the memoization goldens red,
which per BUG-1260/1275 means a scoring-13 identity: a product decision.
It carries a KNOWN DEFECT comment and a strict xfail test.

After: same-longitude agreement with PyJHora is 190/190 for D3-D60 in
divisional_charts_extended and for every varga.py chart except D30.
D9/D10/D12, karakas and Arudha are unchanged; the evidence card check
(27 cards, 765 fields) shows 0 differences before and after.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyeZrYn6ryNcSe5Y2Y
2026-11-04 17:02:53 +08:00
jesse-uxandGrok (agent loop) 129313e175 fix(varga): count D60 from the sign itself for every sign (BUG-1500, issue #149)
Independent Staging Quality Gate / validate (push) Successful in 20m59s
Independent Staging Quality Gate / publish (push) Successful in 4m25s
The production D60 branch added one sign to 1-based even signs, with no
source, while the repository's own guide and the vedastro mapping count
from the sign itself. PyJHora agrees with the latter: 33/77 recorded times
before, 77/77 after.

- scripts/varga.py: D60 is (si+pi)%12 for odd and even signs; other
  mappings and the vedastro mode are untouched.
- tests/test_d60_varga_mapping.py: 12 signs x 60 parts against
  PyJHora, plus the even-sign first part.
- scripts/research/d60_two_way_run.py: the G1 reconciliation that found
  this, now in the repository with a test; G1 passes 77/77.
- scripts/varga.py is part of the extended frozen identity, so the sealed
  holdout and the reported-offset sweep were re-frozen per ERR-110. All
  20 and 900 trials match the upstream_sync9b records on every field and
  the metrics and summary are unchanged.

Co-Authored-By: Grok (agent loop)
2026-10-29 14:30:57 +08:00
jesse-uxandGrok (agent loop) 5c5f333d4d fix(varga): port the five sarpa ranges and the 22nd drekkana house (BUG-1494, BUG-1495, issue #159)
Upstream 50847e57, ported semantically:

- Sarpa Drekkana now accepts the five classical ranges (Cancer 2/3,
  Scorpio 1/2, Pisces 3) and partitions on the raw longitude instead of
  the rounded display degrees.
- The 22nd Drekkana is the eighth house of D3 (+7), not +21 zodiacal
  ten-degree divisions.

scripts/varga.py is part of the extended frozen identity, so the sealed
holdout and the reported-offset sweep were re-frozen under ERR-110:
20/20 sealed trials and 900/900 sweep trials match the sync8 records on
every compared field, and the metrics, summary and widening geometry are
unchanged.

Tests: the upstream varga/ sarpa files are added under
tests/test_upstream_sync9b_*.py; the stale +21 assertion and the sarpa
definition string are updated with the original/new/reason columns in
PROGRESS.

Co-Authored-By: Grok (agent loop)
2026-10-28 16:25:45 +08:00
jesse-ux db68e90816 fix(varga): source D5/D6/D8/D11 from PVR 6.2 (BUG-1260, upstream f32472b5) 2026-10-07 16:39:01 +08:00
Jesse_ChenandCursor f224146348 feat(upstream): merge a6f47abd engine, MCP, and orchestrator
Independent Staging Quality Gate / validate (push) Has been cancelled
Independent Staging Quality Gate / publish (push) Has been cancelled
Three-way-merge calculation modules and pl9-export into the product fork while keeping commercial API routes, Raman ayanamsa, and the consultation contract as a keypath superset.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-03 20:28:57 +08:00
732642856 819c6f6e43 fix: support composite native vargas 2026-07-19 20:04:53 +08:00
732642856 1d34599930 fix: support declared native vargas 2026-07-19 19:15:50 +08:00
732642856 6ca04ccd9a fix: support D11 in native varga map 2026-07-19 18:57:45 +08:00
732642856 ec9c7cf80a refactor strict evidence and extend parity layers 2026-07-15 19:13:05 +08:00
732642856 5a76abf8d6 Harden high-rigor Jyotish timing workflow 2026-07-01 19:15:35 +08:00
732642856 223b2d8aa2 feat(skill): add sensitive point varga markers 2026-06-26 22:24:58 +08:00
732642856 8f56ad632b feat(skill): add navamsa and drekkana sensitivity markers 2026-06-26 21:49:15 +08:00
732642856 5d35731f8b Add jyotish oracle evidence calibration gate 2026-06-25 18:33:26 +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 7bd91b3b76 Fix D10 varga benchmark precision 2026-06-03 19:29:15 +08:00
732642856 aae6449ee5 feat: 本地skill积累更新 - 引擎增强+婚姻时机验证v5/v6+K.N.Rao八参数法
- SKILL.md: 更新至v3.7.4,补充能力描述
- scripts/jyotish_engine.py: 大幅增强计算引擎(+725行)
- scripts/event_prediction_model.py: 事件预测模型重构
- scripts/jaimini.py: Jaimini系统增强
- scripts/dasha_calculator.py: Dasha计算优化
- scripts/varga.py: 分盘计算更新
- jyotish-app/: 前端界面+过境分析功能增强
- references/: 新增3个婚姻时机研究文件
  - verified-patterns-marriage-timing-v5.md
  - verified-patterns-marriage-timing-v6.md
  - rao-marriage-timing-8-parameters.md
2026-05-04 20:33:13 +08:00
732642856 f3459376db fix: v4.2.1 技法修正 + 文档整理
技法修正(Critical):
- Karakamsha: DK→AK(灵魂星),经典定义是AK在Navamsa的星座
- D10 Dasamsa: 偶数星座偏移+8→+9(从第9个星座开始)
- D16 Shodamsa: 偶数星座偏移+1→+4(从Leo开始近似)
- Shadbala Kendra Bala: 不等值→统一15 Virupas(BPHS标准)
- Shadbala Ojayugma: 添加D9修正注释(当前D1近似)
- Shadbala Nathonnatha: 添加比例计算注释(当前二值近似)

文档修正:
- SKILL.md版本号v3.12.1→v4.2.0
- SKILL.md章节编号修正(12.5→13,后续顺延)
- SKILL.md参考文献重复编号修正
- SKILL.md参考数量100→102
- SKILL.md自评6.0/5→5.0/5
- SKILL.md硬编码Python路径→python3
- README.md从v3.7.1更新到v4.2.0

清理:
- 删除 example.py 空壳文件
- 删除 __pycache__ 和 hermes_memory.db
2026-05-03 08:36:06 +08:00
732642856 0178dfb3e8 v3.7.0: 新增7大模块 - BPHS十六分盘/精确相位/Jaimini/高级Nakshatra/Argala门闩/Tajika年运/合盘分析
- varga.py: D2-D60 BPHS十六分盘完整计算
- aspects.py: 度数精确相位系统(tight/moderate/loose)
- jaimini.py: Chara Karaka 7/8 + Chara Dasha + Karakamsha
- nakshatra_advanced.py: Tara Bala + Sub-Lord KP系统
- argala.py: Argala门闩 + Virodha反干预
- tajika.py: Muntha/YearLord/Mudda Dasha/Tri-Pataka
- synastry.py: Ashta Koota 36分制 + Mangal Dosha + Papasamya

引擎升级至v3.7.0, 21个子命令全链路验证通过
2026-04-25 00:34:21 +08:00