The registered same-day answer policy needs an event dated on the birth day;
the v5 holdout has none in any of the 77 cases, so group B adds no question
and is identical to group A. G2 is therefore not evaluable by construction,
not a measured zero, and no placebo test has a lift to check.
G5 is measurable and decisive: switching the ayanamsa from Raman to Lahiri,
KP or True Chitra changes the ascendant D60 sign in 77 of 77 cases (100%,
threshold 20%). Under the registered stop rule any minute-level wording is
forbidden.
Recommendation: do not adopt. D60 stays reference-only and the external copy
does not claim seconds. BUG-1497 is closed_by_design; the mapping fix itself
is BUG-1500 and already merged.
Co-Authored-By: Grok (agent loop)
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)
The D60 ascendant of the production classical_local mapping agrees with
PyJHora on 33 of 77 recorded times (42.9%). All 44 mismatches are 1-based
even signs and differ by exactly one sign; the repository's own vedastro
mode agrees with PyJHora on 77 of 77.
So G1 fails the 95% gate, but the cause is the production mapping rule in
scripts/varga.py, not a missing D60 signal. BUG-1498 records the
inconsistency as investigating. G2-G5 did not run and no scoring rule was
registered.
jyotishganit is not installed here and VedAstro was not called, so the
reconciliation is single-engine and says so.
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)
Gate run 5888 failed: the synastry full dossier computes two full readings
on a thread pool, and the second thread got jyotish_engine from sys.modules
while the first was still executing it (no cmd_full_reading yet). Reuse now
goes through importlib.import_module, which waits on the module lock.
Four threads loading one module in a fresh interpreter: before
[False, True, True, True], after all True three times. Dossier scenario
before 4/4 AttributeError, after 6/6 ok; synastry-full-report.test.ts 17/17.
Ledger ERR-117: local npm baseline hid it (system python3 lacks swisseph).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
BUG-1472 through BUG-1479. Rectification 20-case and 900-window metrics match the sync8 reports. Batch B is not done.
Co-Authored-By: Grok (agent loop)
Issue #94 T6. Keep the upstream calculation note, replace the local manuscript path with a book citation, and add our one-line pointer. Record ERR-116 and a changelog line. Skill version is unchanged.
Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
Sync8 changed ashtakavarga.py, dasha_analyzer.py and narayana_dasha.py,
which are in the frozen scoring identity. Sealed (20) and reported-offset
(900) replays match the scoring_perf_2026_10_13 records trial for trial,
so ERR-110 stores a new record. Prior records are kept byte-for-byte.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HwMNZEzdzmrbPhuRNmZe3C
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)
N1, N2, N3, and N5 do not pass. Switching ayanamsa moves level-5 lords and
equal-division D150 past the 20% wording line. Two full runs are byte-identical.
No production scoring change. closed_by_design.
The natal Sun target came from compute_chart_data while the solver iterates
on _get_sun_lon_jd (swe sidereal flags); the frames differ by up to ~17",
moving the return by up to ~7 minutes. The annual chart was also cast at the
truncated minute. Ports upstream yinduzhanxing 7cc6425d / 46ed9399 (these two
hunks only). PyJHora reference: 3 cases within 0.03 min. 243 public-figure
annual charts: annual Lagna changes 13, year lord 11, Mudda first lord 0.
v5 77 cases identical to 3c27c38e; consult goldens re-captured byte-identical.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
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