PHYSICAL_HELIACAL_VISIBILITY_PHASE2_CHECKPOINT_2026 07 30 - TheDaniel166/moira GitHub Wiki
Physical Heliacal Visibility Phase 2 Checkpoint
Date: 2026-07-30 Status: historical implementation checkpoint; Phase 2 is now closed
Final receipt: PHYSICAL_HELIACAL_VISIBILITY_PHASE2_CLOSURE_2026-07-30.md
Boundary
This checkpoint covers Python spectral single-epoch truth only. It does not activate the Phase 3 event solver, Phase 4 environmental expansion, Phase 5 root/facade/REST parity, native parity, automatic data acquisition, or runtime radiative-transfer execution.
The physical data pack remains an explicit caller-supplied local path. The engine does not search for, download, generate, or silently substitute a pack. All legacy visibility policies and call paths remain separate.
Implemented
- exact validation of the installed compatibility contract, root manifest, semantic pack version, engine contract, payload inventory, file sizes, per-file SHA-256 values, notices, provenance, and declared source artifact;
- no-extrapolation interpolation of photopic/scotopic directional twilight luminance and 400-bin direct spectral extinction;
- maximum-contributing-corner solver uncertainty plus maximum, p95, and storage error receipts;
- CIE MES2 fixed-point adaptation with a bounded same-equation bisection fallback;
- Crumey equations 28 and 34 with fixed
F=2and explicit published background domain; - measured total directional background precedence, fully qualified SQM transformation, modeled twilight plus source-owned dark-sky anchor, and visibly coarse explicit Bortle fallback;
- rejection of background double counting;
- response-weighted photopic and scotopic target transmission;
- typed evaluated-clear, not-applicable, missing-dependency, and out-of-domain results with component, atmosphere, validity-domain, observer, background, target, threshold, and data-pack receipts; and
- an additive owning-module
physical_visibility_assessment()path that does not altervisibility_assessment().
At this checkpoint, Moira owned the first-candidate planetary magnitude
identity:
mallama_hilton_2018_moira_planetary_v1. A caller cannot relabel that
calculation. Caller input is limited to source-identified spectral response
weights for the requested target. The closure subsequently removed that
temporary caller-profile surface and made all first-candidate planetary
profiles pack-owned.
Observer Protocol Correction
The admitted identifier is:
known_location_directed_averted_observation_v1
The target location is known and attention is directed, but the visual task is averted/peripheral after adaptation to the immediate directional field. This correction was made before public contract parity because CIE TN 007:2017 clause 6 does not admit MES2 for a foveal task.
Exact Source Receipts
| Source | SHA-256 | Admitted use |
|---|---|---|
| Crumey 2014 arXiv PDF | fa6ef183f9402be4d321bff5fa2c112510f89ca683b534e33c63fdb6538e50a4 |
Equations 28 and 34 |
| CIE TN 004:2016 PDF | a549fcf5f98ae5fdd959b331dbb91eae99f5fd397bd288ad6b59c43723a4494f |
MES2 equations and quantities |
| CIE TN 007:2017 PDF | efdd11f4bdf7d77ab3b1fb8e6b94ac89599521eba7425e474bbc82cf34c7877a |
Official worked examples and task restriction |
| Tousey-Koomen 1953 public page | 4e50f748c6c0de310ceeadcbbcd0a6626a3fccd74fe1063f9cc91640ad3212ef |
Independent eight-row threshold check |
The source-owned equation fixture is
tests/fixtures/physical_visibility_phase2_equations_v1.json.
Data-Pack Runtime Receipt
The exact Phase 1 pack was loaded through the new public orchestration path on Windows from its explicit local directory:
pack_id: moira-physical-heliacal-visibility
version: 1.0.0
manifest_sha256: 49ac2b68ea105a8e055b27e8d4d70f6cbfe9533f971ef5e6000f0bdd95d6771b
The deterministic smoke geometry was target true altitude 5 degrees, solar
center altitude -6 degrees, and relative solar azimuth 60 degrees. It
returned evaluated_clear_sky, seven component receipts, an in-domain
validity receipt, and a visibility margin of
-1.944806269496668 magnitude. The uniform target spectrum used in this smoke
was test-only evidence and is not an admitted planetary profile.
Verification
62Phase 2 loader, equation, composition, public-orchestration, failure, boundary, provenance, error-envelope, and pickle round-trip tests pass.- Ruff passes on the Phase 2 implementation and test files.
- The focused legacy selection passes
181tests after deselecting the same two pre-existing resource-mocking failures. - The two remaining legacy failures are:
- lunar Yallop event fixture does not provide an active planetary kernel for the later assessment call; and
- fixed-star not-found fixture mocks
planet_atbut not the newer Sunsky_position_atresource path.
- Neither failure enters a Phase 2 file or indicates a changed legacy default.
Gates Open At This Checkpoint
All checkpoint gates are now closed:
- pack version 1.1 owns source-locked profiles for Mercury, Venus, Mars, Jupiter, and Saturn;
- an independent validator rederives the target payload from exact local source receipts without importing the builder or engine;
- JSON-safe and immutable pickle round trips pass without activating Phase 5;
- both incomplete legacy resource fixtures were repaired at their test boundaries; and
- the final closure receipt records the exact pack, test, and documentation evidence.