PROTECTED_ZONE_REGRESSION_DISCIPLINE - TheDaniel166/moira GitHub Wiki
Protected-Zone Regression Discipline
Status: active release-hardening policy
Purpose
This page records the minimum regression discipline required whenever a change touches a protected zone on the production path.
Protected zones
For release discipline, the following remain protected:
- astronomical core computation
- time systems and
delta_tsemantics - precession, nutation, aberration, refraction, and coordinate transforms
- ephemeris or kernel binding logic
- house-policy propagation and fallback truth
- validation baselines, accuracy thresholds, and oracle comparison logic
- canonical public result vessels and root exports
Required practice
When a change touches a protected zone:
- Name the protected zone in the change summary before editing.
- Run at least one targeted suite that directly exercises the touched zone.
- Run any public-surface guard needed to prove that the change did not drift exported semantics.
- If the change affects release-facing docs, run the doc-consistency checker.
- Do not claim parity, precision retention, or unchanged semantics unless the relevant targeted checks actually ran.
Minimum targeted suites
Use the smallest relevant suite first.
| Protected concern | Minimum targeted proof |
|---|---|
| Root public exports and layered surfaces | tests/unit/test_public_api_drift.py |
| Public doctrine and policy vessels | tests/unit/test_public_doctrine_surfaces.py |
| Vimshottari structural and invariant truth | tests/unit/test_dasha.py |
| Firdaria and Zodiacal Releasing structural truth | tests/unit/test_timelords.py |
| Planetary cycles and return-series semantics | tests/unit/test_cycles.py |
| Adversarial astronomical routing and polar doctrine | wiki/03_validation/KILLER_VALIDATION_INDEX.md run list |
Operational gate
The repository CI release-hardening lane enforces the following floor on every
push to main and every pull request:
- release-facing doc consistency
- public API drift guard
- public doctrine surface audit
dasha.pyhardening suitetimelords.pyhardening suitecycles.pyhardening suite
Anything broader remains a release-manager decision, not an excuse to skip the minimum targeted proof above.