PLANETARY_HELIACAL_VALIDATION_CORPUS_2026 04 09 - TheDaniel166/moira GitHub Wiki
Planetary Heliacal Validation Corpus (2026-04-09)
Purpose:
- define the next-step corpus shape for planetary heliacal validation beyond the current published-window slice
- preserve explicit event semantics and observer assumptions
- keep planetary validation stronger than vague "known apparition date" checks
Primary repo inputs:
tests/unit/test_planet_heliacal.pytests/integration/test_visibility_validation.pywiki/03_validation/HELIACAL_VALIDATION_MATRIX_2026-04-09.mdmoira/heliacal.py
1. Current Baseline
The current planetary validation basis is real:
tests/unit/test_planet_heliacal.pyvalidates narrow planetary helpers against known apparition dates with broad tolerancestests/integration/test_visibility_validation.pyvalidates generalized planetary event search against admitted published apparition windows
This is enough to justify a slice claim.
It is not yet enough to justify:
- broad closure across planets, event families, and observing conditions
2. Current Strengths
The present planetary corpus already does three useful things:
- proves the narrow planetary helpers are not detached from reality
- proves the generalized event surface reaches the same family of outcomes
- preserves morning/evening apparition semantics for selected concrete cases
Those are real gains. They should remain in the corpus even after expansion.
3. Current Weaknesses
3.1 Small case count
The current generalized corpus in test_visibility_validation.py is intentionally small.
Consequence:
- it validates representative slices, not broad planetary coverage
3.2 Window-style validation
The present integration checks mainly ask whether an event lands inside an admitted window.
Consequence:
- useful for sanity and event-family anchoring
- weaker than a corpus with explicit observed or published event dates and tolerances
3.3 Limited environmental diversity
The present corpus does not yet read like a designed matrix across:
- latitude
- planetary brightness regimes
- morning vs evening families
- difficult versus easy visibility cases
4. Desired Corpus Shape
The next admitted planetary corpus should be a matrix, not a list of anecdotes.
Each row should vary along these axes:
- body:
at minimum
Mercury,Venus,Jupiter, and one dimmer outer-planet case only if the source basis is credible - event kind: heliacal rising, heliacal setting, acronychal rising, acronychal setting
- observer latitude: at least low, mid, and higher latitude where the source supports it
- season and solar geometry: avoid clustering all cases into one twilight regime
- difficulty: include both easy bright apparitions and near-threshold cases
5. Preferred Oracle Families
A. Published apparition windows with explicit observing context
Use when they include:
- body
- date range
- observer region or latitude relevance
- event family semantics
Role:
- good first expansion path
Limitation:
- still a window oracle, not an exact-date oracle
B. Published event dates or almanac-style visibility notices
Use when they include:
- a stated first or last visibility date
- observer site or region
- explicit event family
Role:
- stronger than broad windows
C. Well-documented modern observational reports
Use when they include:
- observer location
- date
- identified event type
- enough context to compare with Moira's policy assumptions
Role:
- good for threshold or difficult cases
6. Inadmissible or Weak Corpus Material
Do not build the planetary corpus around:
- unsourced "best viewed" calendar pages
- generic astrology blog dates
- Swiss output alone
- undocumented social-media observation reports without location and conditions
These may suggest candidate dates, but they are not the oracle.
7. Minimum Row Schema
Each future planetary validation row should contain:
- body
- event kind
- source citation
- source kind
- observer latitude
- observer longitude or region
- start date or start JD
- expected event date or expected date window
- tolerance or window width
- visibility criterion notes if source supplies them
- remarks on ambiguity or observational uncertainty
8. Recommended Validation Tiers
Tier 1: exact-date or near-date rows
Use when the source is precise enough.
Expected assertion style:
- event JD within declared tolerance of published event JD
Tier 2: bounded-window rows
Use when the source gives a date range or apparition window.
Expected assertion style:
- event JD inside admitted interval
Tier 3: doctrine-comparison rows
Use when exact observational truth is weak, but comparative behavior matters.
Expected assertion style:
- generalized event surface and narrow planetary helper remain consistent under the same policy
9. Recommended Initial Expansion Matrix
The first corpus expansion should remain modest and deliberate.
Suggested structure:
- Mercury: include at least one morning and one evening event because Mercury stresses threshold geometry
- Venus: include both morning and evening apparitions because Venus is bright and observationally prominent
- Jupiter: include one morning and one evening case as a slower-moving bright outer-planet anchor
- Optional harder case: only if a stronger source exists for Mars or Saturn first/last visibility
10. Claim Discipline
Safe wording now:
- "planetary heliacal validation is externally anchored through known apparition cases and published visibility windows"
Unsafe wording now:
- "planetary heliacal visibility is comprehensively validated across all major planets and event families"
Safer wording after the next corpus phase:
- "planetary heliacal validation covers a small multi-planet, multi-event corpus with explicit event windows or published dates"
11. Immediate Next Artifact
The next useful document after this one is:
- a concrete row ledger of proposed planetary validation cases before any test expansion
That keeps the validation program inspectable before implementation begins.
12. Final Judgment
Planetary heliacal validation is already real.
Its weakness is not legitimacy. Its weakness is breadth and corpus design.
The next improvement is therefore:
- build a compact multi-planet, multi-event corpus with explicit row semantics
not:
- add more helper functions