Freeze contract, FREEZE/REPORT constants and gate tests keep the G state
here; the merged tree is re-frozen once as audit_wave2_2026_11_04 at the end.
H's audit_h records are kept byte-for-byte as history.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyeZrYn6ryNcSe5Y2Y
run_arudha_compare.py and run_chara_dasha_compare.py still set PyJHora to
Lahiri while the engine default is Raman (pre_work_error_ledger 2026-11-04).
Both now take --ayanamsa / --node-mode, set both on PyJHora, and refuse a
local baseline built with other settings (baseline_settings_error, as in
run_pyjhora_compare.py). run_chara_dasha_compare.py imported jaimini from
benchmarks/scripts (parents[2]); it now uses the repo scripts/.
Raman rerun on the 19 fixed samples: A10 vs independent formula 114/114
fields, vs PyJHora 18/19 (one Scorpio/Aquarius co-lord case); Chara Dasha
KN Rao sign sequence 228/228, durations 212/228.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyeZrYn6ryNcSe5Y2Y
Same failure as 74169e1b: run_chara_dasha_compare, run_chara_dasha_knrao,
run_transit_true_compare and run_node_mode_compare hard-coded Lahiri on the
PyJHora / Swiss side while the engine default is Raman, or never checked the
canonical baseline's ayanamsa. Each now takes --ayanamsa (the Chara ones also
--node-mode), passes it to both sides, and refuses a baseline or engine
output built differently. The Chara and transit compares pointed at a
non-existent benchmarks/scripts/ path; fixed. run_skill_baseline.py main
gained --ayanamsa / --node-mode.
Raman rerun (19 charts): Chara MD signs 228/228, years 225/228; K.N. Rao on
shared positions 117/120; transit 646/646; Swiss mean node 152/152.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyeZrYn6ryNcSe5Y2Y
The local baseline still claimed "lahiri_assumed_by_skill" after the engine
default moved to Raman, so the PyJHora comparison reported 59% instead of
~95% (every longitude 1.446 deg off). The baseline now passes --ayanamsa and
--node-mode to the engine and records what the engine reports; the compare
takes --ayanamsa and stops when the baseline was built differently. The nine
public Rodden AA backtest figures join the fixed samples.
Raman run (19 samples): ascendant, planets, nakshatras, D2/D4/D9/D10 and
Ashtakavarga all 100%; Shadbala and three old-chart dashas differ (separate).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyeZrYn6ryNcSe5Y2Y
- 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