moira

Astrodynes Backend Standard

Status: constitutional through SCP Phase 12 for the bounded natal engine

1. Governing Identity

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.

2. Authority and Provenance

Primary computational authority:

Direct table authority:

The 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.

3. Computational Products

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.

4. Fixed Doctrine

AstrodynePolicy exposes one admitted source doctrine and rejects unsupported alternatives:

This policy vessel makes doctrine visible; it is not permission to invent variants.

5. Constitutional Layers

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

6. Result Semantics

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:

7. Relation Doctrine

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:

Integrated profiles consume only scored relations. Networks expose admitted relations and retain whether each edge is scored.

8. Aggregate Doctrine

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.

9. Failure and Determinism Doctrine

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.

10. Validation Codex

Primary evidence class: authority validation against discrete manual examples.

The focused corpus reproduces:

Exact 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.

11. Public Surface

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:

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.

12. Remaining Scope

Deferred without approximation: