refactor strict evidence and extend parity layers
This commit is contained in:
@@ -97,9 +97,10 @@ For large architecture or release work, also read:
|
||||
| ERR-064 | Western cross-system support accepted external JSON but did not calculate a tropical natal chart from standard birth input, inviting agents to treat missing Western data as a completed cross-check. | mitigated 2026-07-14 | `western_chart_engine.py` computes Swiss Ephemeris tropical natal evidence for direct-chart/rectification only. It remains `partial` until separately materialized timing evidence exists; Prashna and external-payload precedence are regression-tested. |
|
||||
| ERR-065 | A newly added release-critical script can be absent from a zip before its first Git commit because the package enumerates tracked files only. | mitigated 2026-07-14 | List `scripts/western_chart_engine.py` in `REQUIRED_CONTRACTS`; the release-package test proves both editions include it before commit. |
|
||||
| ERR-066 | The pre-work fragment sweep invoked a retired `audit-capabilities --mode strict` contract, so governance tests and the mandatory preflight failed before real checks ran. | mitigated 2026-07-14 | Invoke the supported `--mode validate`; `tests/test_preflight_fragment_scan.py` and `pre_work_check.py` must remain green before substantive work. |
|
||||
| ERR-067 | A generic “Western timing” label can imply techniques that have not been computed. | mitigated 2026-07-15 | Native timing requires explicit transit, solar-return, secondary-progression, or solar-arc fields; boundaries still name unavailable progressed angles, converse, parans, midpoints, duration, and interpretation. |
|
||||
| ERR-067 | A generic “Western timing” label can imply techniques that have not been computed. | mitigated 2026-07-15 | Native timing requires explicit fields for each layer. Current native layers cover transit, solar-return, secondary-progression, solar-arc, converse, midpoint, lunar-return and daily duration scan; progressed angles, parans and interpretation remain explicitly blocked/partial. |
|
||||
| ERR-068 | PyJHora comparison reports hard-coded `2026-06-03` as generation time, making fresh external benchmark artifacts appear stale and weakening audit traceability. | mitigated 2026-07-15 | `write_report()` records an injected-or-current UTC ISO timestamp; keep the deterministic timestamp regression. |
|
||||
| ERR-069 | Yoga validation tests and helper runner still imported rules from a `.workbuddy` mirror, so full pytest could fail or silently validate a divergent checkout. | mitigated 2026-07-15 | Resolve repo root from each file location; retain runtime-boundary and focused Yoga regressions. |
|
||||
| ERR-070 | PyJHora parity for D2/D4/BAV/SAV can pass while Shadbala total virupas still mismatch, so a row-filled Shadbala oracle packet can be mistaken for absolute-value parity. | active external formula blocker | Keep `docs/research/pyjhora_d2_d4_ashtakavarga_shadbala_parity_2026_07_15.md`; do not claim Shadbala external absolute closure until component-level formulas reconcile with PyJHora/JHora raw values. |
|
||||
|
||||
## Fragment Sweep Command Set
|
||||
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# PyJHora D2/D4/Ashtakavarga/Shadbala Parity Note 2026-07-15
|
||||
|
||||
## Scope
|
||||
|
||||
Same-chart replay for `smoke_beijing_1990_noon` after extending `run_pyjhora_compare.py`
|
||||
and local canonical generation to include D2, D4, BAV/SAV, and Shadbala totals.
|
||||
|
||||
Command:
|
||||
|
||||
```bash
|
||||
python3 benchmarks/jyotish/scripts/run_pyjhora_compare.py --sample-id smoke_beijing_1990_noon --refresh-local --output-prefix pyjhora_d4_fix
|
||||
```
|
||||
|
||||
## Result
|
||||
|
||||
| Section | Rows | Status |
|
||||
|---|---:|---|
|
||||
| D2 | 20 | match |
|
||||
| D4 | 20 | match |
|
||||
| D9 | 20 | match |
|
||||
| D10 | 20 | match |
|
||||
| Ashtakavarga BAV | 96 | match |
|
||||
| Ashtakavarga SAV | 12 | match |
|
||||
| Shadbala total virupas | 7 | mismatch |
|
||||
|
||||
Total matrix: `232 match / 7 mismatch / 239 fields`.
|
||||
|
||||
The D4 mismatch was fixed by aligning local BPHS/Parashara Chaturthamsa to the
|
||||
PyJHora traditional mapping:
|
||||
|
||||
```text
|
||||
D4 target sign = natal sign + 3 * quarter_index
|
||||
```
|
||||
|
||||
## Shadbala Boundary
|
||||
|
||||
The remaining mismatch is not a missing row problem. It is an absolute-value
|
||||
formula mismatch between local `modules.shadbala.planets.*.total_virupas` and
|
||||
PyJHora `strength.shad_bala(...)[6]`.
|
||||
|
||||
Current boundary:
|
||||
|
||||
- D2/D4/D9/D10: externally replayed against PyJHora for the smoke chart.
|
||||
- Ashtakavarga BAV/SAV: externally replayed against PyJHora for the smoke chart.
|
||||
- Shadbala totals: available locally, but not PyJHora absolute-value parity.
|
||||
|
||||
Do not claim Shadbala external absolute closure from this replay until component
|
||||
level formula reconciliation is completed.
|
||||
Reference in New Issue
Block a user