Round-4 ruling Q4. scripts/narayana_rath.py builds the Rath sequence from the
rule ledger and book rows ported verbatim from upstream yinduzhanxing c7117f92
(sanjay_rath_narayana_book_ledger JSON + md, chara_narayana_book_golden_cases):
Table 10 order (Saturn -> Table 11, Ketu -> reversed), years by
jaimini_odd_footed_dignity_v2 with jaimini_dual_lord_source_v1, ADs twelve
equal parts from the MD sign (Table 13 / 11 / 14), start sign by the existing
select_narayana_seed_sign, ties reported as parameter_sensitive with both
sequences.
Given the book's start sign, Tables 15 / 17 / 18 match 36/36 MD signs and
years. The start sign does not: Table 17 picks Virgo (book Pisces), Table 18
ties (book Cancer). Task red line 2: the profile stays out of every
user-visible surface and out of scoring; T5 trial not run. A test pins that no
script imports it.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
scripts/jaimini.py (BPHS 8-karaka order), scripts/ashtakavarga.py (calc_sodhita_av
removed) and scripts/shadbala.py (local house score renamed and dropped from the
result) are in the frozen production identity. Records re-frozen under the label
astrologer_rulings_batch1_2026_10_03 (--freeze, then replay; PYTHONHASHSEED=0,
chart cache TTL 0); the upstream_sync5 records become 'previous', byte-for-byte
preserved. Replays identical to upstream_sync5: reported offset 0 of 900 trials
changed, sealed holdout 20 trials and metrics identical. v5 77-case evaluation
unchanged (see PROGRESS). ALGORITHM_VERSION stays rectification-v5-matrix-scoring-10.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
- Report p33 table: no Kranti column (no producer; materials.kranti stays blocked).
- Report p53 table: the "SAV" column was the with-Lagna total (386). Split in the
reader into SAV / Lagna BAV / SAV + Lagna with a totals row; ashtakavarga.py is
untouched (frozen rectification identity, ERR-115).
- /api/chart ascendant carries nakshatra / pada / lord (_nakshatra_fields shared with
the nine bodies); chart cache schema 4 -> 5.
- /api/varga_full bodies carry dignity_level from varga_dignity_level, the function
the Vimsopaka path now shares (A/B identical); the chart page shows the D1 status
wording and no longer derives a three-level dignity itself.
- Report page draws each chart once: the trailing block skips charts the body already
fenced (same rule as the export); the birth-time caveat moves under the body's
chart heading.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
scripts/jaimini.py (Chara Karaka 8 Rahu reversal), scripts/ashtakavarga.py
(Trikona / Ekadhipatya Shodhana, unwired) and scripts/rectification/
decision_policy.py (R1 floor, BUG-1193) are in the frozen production identity.
Records re-frozen under the label upstream_sync5_2026_10_02 (--freeze, then
replay; PYTHONHASHSEED=0, chart cache TTL 0); the upstream_sync4 records become
"previous", byte-for-byte preserved. Replays identical to upstream_sync4:
reported offset 0 of 900 trials changed, sealed holdout 20 trials identical,
metrics equal. ALGORITHM_VERSION stays rectification-v5-matrix-scoring-10.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
Progress lists the delivery per item, F3 locations, the ERR-110 re-freeze
without a version bump (scores unchanged), the v5 evaluation (byte-identical
at a18f8d4e, bc9b9f89 and 0176cb30), upstream commits after 0a6696c5 not
taken and why, the Kemadruma difference from upstream, and open questions.
Backtest round 6 (86 answers read and scored): parents / requests / banned
phrases unchanged; career type conflict 5 -> 9 / 18, still failing the line.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
scripts/shadbala.py is in the frozen scoring identity (dataset
frozen_scoring.files), so the ported Kala/Chesta fixes and the BPHS Sun
minimum (BUG-1188/1189) turned the integrity gate red although the scorer only
reads the Sthana/Drik/Naisargika components. Records re-frozen under the label
upstream_sync4_2026_10_02 (--freeze, then replay; PYTHONHASHSEED=0, chart cache
TTL 0); the functional_v2 records become "previous", byte-for-byte preserved.
Replays are identical to functional_v2: reported offset 0 of 900 trials
changed, sealed holdout 20 trials identical; memoization golden v2 scores
unchanged and the v5 77-case evaluation is byte-identical to a18f8d4e, so
ALGORITHM_VERSION stays rectification-v5-matrix-scoring-10 (decision 6 only
bumps on a score change).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
Functional roles feed the *_functional_*_auxiliary rules, so 57782aea changes
candidate scores for identical input (memoization fixture 12:00: 8.6274 ->
8.4977). Per the "scoring semantics change => bump ALGORITHM_VERSION"
precedent (scoring-7 -> 8 -> 9), the identity moves to scoring-10; policy v3,
input contract v5 and Skill versions are unchanged, history is not relabeled.
Five frontend sites and one SQL guard tested `=== "...scoring-9"` for the
dated candidate-window contract; they now use isDatedScoringAlgorithmVersion /
a generation regex (>= 9). Migration 20261002010000 only recreates
validate_dated_rectification_candidate (one-line guard change).
Memoization golden v2 written by the test's own write_golden; v1 (scoring-8)
frozen by sha256. Real-engine scoring-10 cross-midnight golden added. Research
records re-frozen per ERR-110 (label functional_v2_2026_10_02) and
scripts/functional_benefics.py added to the frozen production identity
(ERR-114: 57782aea changed scores without tripping it).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE