-
-
Notifications
You must be signed in to change notification settings - Fork 4
DECANS_BACKEND_STANDARD
Version: 1.5 Date: 2026-07-27 Status: Classical decanates admitted; Hermetic material is a research-only closed product exclusion
Doctrine-pass correction. The 36 names, zodiacal order, planetary faces, and edition pages in
moira.hermetic_decanshave been reconstructed from Wilhelm Gundel's 1936 transcription of British Library Harley MS 3731, ff. 1r-50r. The former fixed-star assignments are not present in that identified edition and now fail closed. The complete edited text supports Aries-starting 10-degree segmentation. The modern tropical-frame and rising composition remain explicit research projections, while the unsupported sunset/MC night-hour experiment has been removed from executable code.
Moira has one admitted decan subsystem and one direct-import research module outside the product contract:
-
moira.decanatesowns classical Chaldean faces, triplicity decans, and Vedic drekkana placement. -
moira.hermetic_decanspreserves a source-identified 36-name/planetary-face catalog plus explicitly research-only longitude/rising projections.
These surfaces must not be collapsed into one vague "decan" product. Only
moira.decanates may be presented as admitted doctrine. The Hermetic module
must not appear in the REST route registry or curated Python import surfaces.
That exclusion is complete and is not unfinished release work.
A DecanatePosition is:
One longitude placed into one 10-degree decan under a named decanate doctrine.
| Field | Meaning |
|---|---|
system |
chaldean_face, triplicity, or vedic_drekkana
|
decan_number |
Decan inside the sign, 1, 2, or 3
|
ruling_planet |
Traditional seven-planet ruler |
ruling_sign |
Governing sign for triplicity/drekkana, or None for Chaldean faces |
sign |
Occupied sign |
sign_symbol |
Occupied sign symbol |
degree_in_decan |
Degree elapsed inside the 10-degree span |
longitude_used |
Normalized longitude actually used by the doctrine |
Chaldean faces and triplicity decans consume tropical longitude directly.
Vedic drekkana consumes tropical longitude plus JD and delegates sidereal
reduction to moira.sidereal.tropical_to_sidereal(...).
A HermeticDecanCatalogEntry is:
One of 36 source-ordered records preserving sign, ordinal within sign, name, planetary face, Gundel edition page, and source identifier.
The record's name/order/face/page receipt is reconstructed from Gundel, Dekane und Dekansternbilder (1936), pp. 379-383, section “Die lateinische Dekanliste des Hermes Trismegistos,” which identifies the Harley witness. The complete edition's opening text also begins the decans from Aries and assigns ten degrees to each. That supports equal segmentation but does not silently settle Moira's modern equinox-fixed tropical frame or the Ascendant-composition policy.
The identified edition supplies no one-fixed-star-per-decan table.
DECAN_RULING_STARS is therefore an empty compatibility marker;
decan_ruling_star() and decan_star_at() fail closed.
The former decan_hours() experiment selected the zodiacal decan culminating
at sunset and assigned twelve consecutive catalog entries to twelve equal
sunset-to-sunrise intervals. No identified passage in the Gundel/Harley edition
establishes that composition. The function and its result vessels were removed
on 2026-07-26 rather than retained as misleading executable research.
Any future Egyptian decanal-clock product must be a separate stellar model with an identified table family, epoch, observer location, rising-versus- transit event semantics, visibility policy, and source-owned validation.
Current implemented layers and admission states:
P1 - Decanate truth (DecanatePosition)
P2 - Source catalog data (HermeticDecanCatalogEntry, names, faces, pages)
P3 - Research lookup geometry (decan_for_longitude, decan_index)
P4 - Research rising lookup (decan_at)
P5 - Fixed-star fail-closed gate (empty table; accessors reject)
P6 - Public containment (excluded from root/facade/REST)
Layer boundary rules:
- Decanate routes must expose the producing doctrine.
- Tropical Chaldean and triplicity routes must not imply sidereal reduction.
- Vedic drekkana routes must expose JD and ayanamsa policy input.
- No Hermetic catalog, longitude, rising, or night-hour transport model, serializer, service, router, or route is admitted.
- Any future Hermetic transport would be a new source-admission project and must be implemented from that new contract rather than dormant scaffolding.
| Name | Meaning |
|---|---|
DecanatePosition |
Frozen vessel for one decanate computation |
chaldean_face(longitude) |
Tropical Chaldean face placement |
triplicity_decan(longitude) |
Tropical triplicity decan placement |
vedic_drekkana(longitude, jd, ayanamsa_system="Lahiri") |
Vedic D3 placement after sidereal reduction |
The symbols below are retained to support reconstruction and structural
testing. They are not part of moira, moira.facade, or the REST contract.
| Name | Meaning |
|---|---|
HermeticDecanCatalogEntry |
Frozen source record for one catalog entry |
HERMETIC_DECAN_CATALOG |
36 source records in zodiacal order |
HERMETIC_CATALOG_SOURCE_ID |
Stable reconstruction-source identifier |
DECAN_NAMES |
Decan constant-to-name mapping |
DECAN_PLANETARY_FACES |
Decan name-to-planetary-face mapping |
DECAN_SOURCE_PAGES |
Decan name-to-Gundel-page mapping |
DECAN_RULING_STARS |
Empty compatibility marker; no admitted star assignments |
list_decans() |
36 decan names in ecliptic order |
list_decan_catalog() |
Copy of all 36 typed source records |
decan_catalog_entry(name) |
Typed source record for one decan |
decan_planetary_face(name) |
Source-reconstructed planetary face |
available_decans() |
Empty because no star-backed decans are source-admitted |
decan_for_longitude(lon) |
Tropical longitude to Hermetic decan name |
decan_at(jd, lat, lon) |
Ascendant decan for a time/location |
- Longitude placement normalizes longitudes modulo 360.
- Decan spans are equal 10-degree intervals.
- Chaldean face rulership follows the declared seven-planet cycle beginning with Mars at Aries 0 degrees.
- Triplicity and Vedic drekkana rulership use the same-element sign sequence: own sign, fifth sign, ninth sign.
- The source catalog preserves three ordered entries beneath each sign exactly as transcribed in the identified edition.
- The research-only lookup maps the source-supported 10-degree order through an explicit tropical-frame projection; the source receipt does not by itself publicly admit that projection.
Current admitted and research-only structural behavior:
-
chaldean_face,triplicity_decan,vedic_drekkana, anddecan_for_longitudereject non-finite longitudes. -
HermeticDecanCatalogEntryandDecanatePositionvalidate structural invariants at construction. - Fixed-star compatibility queries return no availability, and attempts to
obtain or position a star ruler raise
LookupError.
REST transport must additionally reject non-finite JD/location inputs before calling any future admitted rising-decan computation.
The admitted decanate backend and direct-import research module are tested separately through:
tests/unit/test_decanates.pytests/unit/test_hermetic_decans.py
The following admitted claims are currently verified:
-
DecanatePositionis frozen and enforces system/range invariants. - Chaldean faces preserve the declared Mars-starting planetary cycle across all 36 faces against an independent Agrippa golden. Agrippa is a later witness for this ordinary face cycle, not evidence for the research-only Hermetic image geometry.
- Triplicity decans preserve same-element ruling-sign doctrine.
- Vedic drekkana performs sidereal reduction and preserves traditional rulers.
- Source-locked catalog tests verify all 36 names, signs, ordinals, planetary faces, source pages, and the common source identifier against the identified Gundel/Harley reconstruction.
- Fixed-star access fails closed because the identified edition does not provide those assignments.
- Lookup and rising tests establish segmentation and composition behavior; they do not turn the tropical-frame/rising projections into admitted Hermetic doctrine.
- Regression guards prove that the unsupported night-hour function, vessels, server plumbing, and route definition remain absent.
The minimum verification slice for this standard is:
.\.venv\Scripts\python.exe -m py_compile moira\decanates.py moira\hermetic_decans.py tests\unit\test_decanates.py tests\unit\test_hermetic_decans.py
.\.venv\Scripts\python.exe -m pytest tests\unit\test_decanates.py tests\unit\test_hermetic_decans.py tests\unit\test_hellenistic_source_goldens.py tests\unit\test_hellenistic_contract_parity.py tests\server\test_server_decans_routes.py -qThe admitted REST shape is:
- direct-sync decanate routes for Chaldean face, triplicity decan, and Vedic drekkana
- chart-backed Vedic drekkana and complete decanate-set routes
Closed product exclusions:
- interpretive decan meanings
- every Hermetic catalog/longitude/rising route
- any stellar decanal-clock implementation
These are not incomplete 6.1 engine tasks. A future proposal would require a new source model, validation contract, and admission decision.