Cache work that depends only on the candidate minute, drop unread response fields, and reject windows above 241 candidates before any chart is built. Eleven canonical scenario hashes match 77057a819. Sealed and reported-offset replays match the 2026-10-08 records (changed_trial_count 8 and 581) and are stored as scoring_perf_2026_10_13.
Co-Authored-By: Grok (agent loop)
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
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
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
Wording only: _quality_user_meaning names start/change/interruption as
升学/学业变动/学业中断; _display_date_label drops the stored month for
year-precision events. Split hash and month field unchanged; same-machine
A/B (PYTHONHASHSEED=0) differs only in user_meaning/display_date_label.
Re-frozen per ERR-110 under new quality_wording_2026_09_29 records;
sealed rerun (20) and reported-offset sweep (900) identical to 09-21.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
Carry explicit local date intervals instead of inferring the day from clock
order. Cluster width, delivery, adoption, and reports keep the actual civil
date; adopted date is stored separately from the reported birth_date.
Algorithm identity is scoring-9 / spec-v5. Scoring weights, confirmation
thresholds, and Skill version are unchanged. Isolated Linux final-3 gates
passed; four pre-existing Python failures remain. This is not a production
release.
Add date-isolated caches and regression coverage, align scoring identity, and freeze full research reruns while preserving historical artifacts. Record unresolved cache/receipt identity and end-to-end acceptance gaps for branch review only.
Co-Authored-By: Claude Code <noreply@anthropic.com>