- Sync references/mahadasha_editorial_bilingual.json (9 lords x 3 paragraphs,
zh + en, per-paragraph source locators) and mahadasha_editorial_policy.md,
plus the one-line pointers in SKILL.md and vimshottari_dasha_guide.md.
- New chapter after 大运解释 in both editions: the three paragraphs side by
side (general / traditionally supportive / traditionally strained), never
picked by lord or chart, Mahadasha layer only; source labelled as secondary
study notes with the original edition pending verification; English only
in the English edition.
- Coverage contract: the topic moves from NOT_CARRIED to the checked list.
No change to the frozen exporter, dates or any scoring.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyeZrYn6ryNcSe5Y2Y
Product: turn the upstream coverage audit into our own automated check.
- scripts/report_render/upstream_coverage.py maps 140 upstream topics to our
zh/en sections and checks presence, real content, key columns (transit
sign, yoga participants, Shadbala components, Kala Chakra signs) and
degraded markers. NOT_CARRIED records the 4 topics we do not ship and why.
It also runs as a CLI on any exported report.
- tests/test_report_upstream_coverage_contract.py runs it on two fictional
charts in both editions, checks the contract itself, and proves it flags a
bad report. The 2026-11-05 export gives 15 findings; today's gives 0.
- Fixes the contract found: Shattrimshatsama gets the opt-in reference table
like the other conditional dashas; a year without a Tajika yoga keeps its
section with one sentence instead of dropping it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbBXoyeZrYn6ryNcSe5Y2Y