Quick gate: test_report_english_sweep_smoke counted 3 zh_han_function_glue
hits on chart #1, all new in 4b223eb8: the Matrunasa 199 trigger "Moon ->
Mercury -> Moon in house 8" (the renderer turns "house" into Chinese and
leaves "in") and the English ambiguous_cell_notes ("Lagna lord, ...").
- A custom rule's trigger item may be a (Chinese, English) pair; the Chinese
combination uses the Chinese items, combination_en and `triggers` the
English ones, `triggers_zh` the Chinese. Gajakesari, the variant and both
Matrunasa rules emit pairs (PLANET_ZH in the sandbox).
- ambiguous_cell_notes carry Chinese summary / basis plus summary_en /
basis_en, worded without the glue words.
No role or score changes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
Astrologer ruling 2026-11-04 on #166, product decisions the same day (Q9
display only, later; Q12 record, do not switch).
- Q4 (BUG-1590): Gemini Saturn (8, 9) and Virgo Saturn (5, 6) are mixed
(neutral), not pure benefics by trine priority; the astrologer's table for
the eight ambiguous cells rides along as ambiguous_cell_notes. Other
lordships are kept.
- Q10 (BUG-1591): Chara Dasha with both Scorpio / Aquarius lords in the sign
is fixed at 12 years (Ketu exalted in Scorpio gave 13).
- Q11 (BUG-1592): legacy Narayana counts only the nine grahas as occupants.
- Q8 (BUG-1593): Narayana period reports the adjustment that took effect
(Mercury in Virgo: 12, +0, not "12 + 1" capped silently).
- Q15 (BUG-1594): upagrahas carry both raw Saturn-part points and name the
mapping (PyJHora-compatible Gulika = start, Maandi = midpoint; PVR 4.3 is the
reverse and is listed, never claimed).
- Q12 / Q13 (BUG-1595): every day/night window, Shadbala and the birth
Panchanga record their sunrise convention and hora method. No value changes.
- Q5 (BUG-1596): "Gajakesari Yoga" is PVR's strict definition (benefic
association, not debilitated, combust or in a natural enemy's sign); the
strong-Jupiter variant and the bare Moon-Jupiter kendra relation are
separate rules outside the card's closed list. New sandbox helpers combust()
and in_natural_enemy_sign().
- Q6 (BUG-1597): Matrunasa split into Raman 198 (named Parashari aspects,
nodes for conjunction / hemming only) and Raman 199 (same parents-card row
via canonical_mapping); each hit names its trigger; "high confidence" and
mother's-health effects removed. Custom rules may set `triggers`.
- Q31 (BUG-1598): calc_varga names the D3 / D24 / D30 / D60 method; D3 / D24 /
D60 of varga.py and divisional_charts_extended agree on every 0.1 deg.
- Q29: the 7-karaka note says PiK does not apply in that scheme.
tests/test_astrologer_rulings_166_batch2.py (25 tests). Rectification
identity and re-freeze follow.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyn7Hj3LCW3BUs5bZ8
Product decision 2026-11-04: the calculation follows the sources even though
rectification scores move.
- scripts/varga.py: even-sign Trimsamsa 12-20 Pisces, 20-25 Capricorn,
25-30 Scorpio (was Capricorn / Scorpio / Pisces). KNOWN DEFECT comment
removed; the strict xfail in tests/test_varga_bphs_starts_audit_g.py is now
an ordinary test and the 0.1-degree BPHS sweep covers varga.py on all signs.
- scripts/functional_benefics.py: ROLE_OVERRIDES adds Venus = malefic for
Aries (BPHS 34.20) and Scorpio (34.35); profile doc lists both cells.
Both feed rectification scoring; the scoring-13 identity bump, memoization
golden v6 and the ERR-110 re-freeze follow in the next commits.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyeZrYn6ryNcSe5Y2Y
Ported verbatim from the upstream skill repo (yinduzhanxing e9beae6b) with
product authorization 2026-10-02: scripts/functional_benefics.py,
scripts/pancha_mahapurusha.py, references/functional-role-profile.md; only
the two functional-role methods of scripts/yoga_engine.py (our file diverged).
v5 77-case rectification eval: 5 cells up (to +7.8pp), one cell -1.3pp (one
case); product accepted. Rectification memoization golden still to be
regenerated (scores change with the grouping).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE