Status: constitutional through SCP Phase 12 for the bounded natal engine
Moira’s Astrodynes subsystem implements the Church of Light / Hermetic natal power and harmony system described by Elbert Benjamine and W. M. A. Drake.
It is not:
The computational core is moira.astrodynes. It is standard-library only,
kernel-free, deterministic, and independent of moira.dignities.
Primary computational authority:
Direct table authority:
Table of Essential Dignitieshttps://www.churchoflight.tv/pdf/05-Astrodynes-Summary.pdfThe dignity table was inspected directly on 2026-07-12. It establishes the Astrodyne-specific Mercury axis (Aquarius 15 exaltation, Leo 15 fall, Scorpio harmony, Taurus inharmony) and the corresponding Venus, Jupiter, Neptune, and outer-planet entries. These values may not be replaced with conventional tables.
The bounded natal engine computes:
Inputs are explicit precomputed chart geometry. The subsystem does not acquire ephemerides, calculate houses, infer house interpolation distances, or perform I/O.
AstrodynePolicy exposes one admitted source doctrine and rejects unsupported
alternatives:
This policy vessel makes doctrine visible; it is not permission to invent variants.
| Phase | Admitted surface |
|---|---|
| 1 | Source rows and full computational derivation truth |
| 2 | Body, dignity, aspect, relation, and contribution classifications |
| 3 | Orb margins, rounded manual values, condition polarity, contribution queries |
| 4 | Fixed AstrodynePolicy |
| 5 | Zodiacal, parallel, and mutual-reception relation vessels |
| 6 | Detected, admitted, and scored relation subsets |
| 7 | AstrodyneBodyConditionProfile |
| 8 | Sign, house, checksum, and Class 5 summary aggregates |
| 9 | Relation network nodes and edges |
| 10 | Deterministic ordering, validation, failure behavior, cross-layer invariants |
| 11 | This standard and validation codex |
| 12 | Curated module, package-root, Moira facade, and typed REST surface |
Power is non-negative and measured in astrodynes.
Harmony and discord are stored separately as non-negative magnitudes. Net harmony is always:
total_harmony - total_discord
Positive net values are harmodynes; negative net values represent discordynes. No formatting label replaces the preserved magnitudes.
Each integrated profile preserves named contributions from:
Zodiacal relations retain the closest named aspect candidate for each body pair. Parallel candidates exist when both declinations are supplied. Mutual-reception candidates exist for planet pairs.
The relation subsets mean:
detected: geometrically or doctrinally evaluated candidateadmitted: candidate satisfies the source orb or reception rulescored: admitted candidate contributes nonzero power or harmonyIntegrated profiles consume only scored relations. Networks expose admitted relations and retain whether each edge is scored.
The ruler of an unoccupied sign contributes:
Co-rulers are averaged before the fraction is applied. Occupant profiles are then added. The same ruler and occupant construction is used for houses.
Rulers are derived only from the confirmed Astrodyne home-sign table. This gives co-rulership to Scorpio (Mars/Pluto), Aquarius (Saturn/Uranus), and Pisces (Jupiter/Neptune).
The admitted checksum is:
sum(sign totals) == sum(house totals)
sum(sign net harmony) == sum(house net harmony)
Class 5 summaries are deterministic partitions of the existing aggregates:
Each family independently partitions the chart’s total power and net harmony.
Movable is preserved as the source label. The detailed source capture is
wiki/05_research/astrodynes/astrodynes_class5_summary_source_capture_2026-07-12.md.
The engine rejects:
Full chart input requires ten planets plus M.C. and Asc. Canonical body order is the ten-planet source-table order followed by M.C. and Asc. Relations, profiles, signs, houses, network nodes, and edges are deterministic regardless of caller input ordering.
Primary evidence class: authority validation against discrete manual examples.
The focused corpus reproduces:
8.723.823.623.187.600.256.0077.74, 41.24, 94.8241.26, 82.504.18, 13.26Exact internal arithmetic is compared with pytest.approx; the published
manual values are additionally checked after rounding to hundredths. The Class
5 oracle uses 0.011 absolute tolerance because its displayed inputs and
outputs are independently rounded to hundredths. Source tables and summary
memberships are pinned row-for-row. Structural evidence covers policy rejection,
relation subsets, deterministic ordering, sign/house checksums, profile/network
agreement, summary-family partitions, and public-export identity.
The three-chart integration corpus uses DE441 only to supply the declinations
omitted from the reports. It demonstrates full displayed-output parity for the
three official Church of Light natal reports under explicit-geometry semantics
and the named tolerances in
wiki/05_research/astrodynes/astrodynes_three_chart_parity_validation_2026-07-12.md.
This is external-software corroboration, not a replacement for the manual’s
primary formula authority. The degree-emphasis tier is implemented from an
explicit source rule but has no independent worked-example hit.
The complete stable module surface is the __all__ contract of
moira.astrodynes. A smaller high-level subset is re-exported through moira
and moira.facade. The Moira facade provides astrodynes(...), a kernel-free
delegate to natal_astrodynes(...).
natal_astrodynes_from_geometry(...) and the corresponding facade method
derive body inputs, cusp signs, and interceptions from a complete explicit
tropical chart figure. They do not acquire ephemerides or choose houses.
Private normalization, relation assembly, ruler lookup, aggregate assembly, and network construction helpers are not public.
The optional FastAPI transport admits three routes under /v1/astrodynes:
GET /doctrine exposes the fixed policy and source tables without requiring
an ephemeris kernel.POST /geometry accepts a complete tropical figure and remains kernel-free.POST /chart derives geocentric apparent planetary longitudes and
declinations from a kernel-backed chart, while using the supplied location
only for the house figure.The chart route defaults to strict house semantics. A caller may explicitly set
allow_house_fallback=true; the response then preserves requested and effective
systems, the fallback flag, and its reason. It never silently makes the Moon
topocentric. Both calculation routes return normalized geometry, fixed policy,
all detected relations with admitted/scored flags and derivation truth, body
profiles, aggregates, Class 5 summaries, network, invariant failures, and
computational provenance. Chart-backed responses also preserve the requested
datetime/location, Julian date, and true obliquity used for declination
conversion. Transport models, orchestration, and serialization
remain under moira_server; doctrine remains in moira.astrodynes.
Deferred without approximation: