supernatural/L-R1-mythic-cosmology-adaptation_DRAFT.md
Wave 1 (DOCTRINE), read-only, 2026-07-28. Unit: L-R1. Aspects audited: R-A2, R-A3, R-A11, R-A13, R-A15.
Title-set: God of War (2018) / God of War Ragnarök · Ōkami · Black Myth: Wukong · Shin Megami Tensei
and Persona's mythology rosters · Hades (GREEK-COSMOLOGY LAYER ONLY — its run/register/defeat layers
are handed to hades-death-run-realm-identity and L-R5 per REALM_DESIGN_PROGRAM §4.3 and are not
touched here).
Consumer: the Wave-2 HARMONY DOCTRINE authoring (into T1_Vril_and_Magic_System_Master) and the
T0_Realm_Ruleset_Registry schema mint. Every finding below is written so a schema designer can consume
it directly: each carries a SCHEMA HOOK naming the field, enum, or tooth it lands on.
---
docs/pipeline_review/FORKC_ANALYSIS_DESIGN_PRECEDENT_2026-07-27.md.Not re-litigated. Where I touch thresholds it is the *experiential* half (R-A7a), which is L-R2's.
wave (REALM_DESIGN_PROGRAM §4.2). I record the register field requirement as a schema hook only and
leave the doctrine answer to that unit. F-05 states the boundary explicitly.
and does not propose a ruling.
presentation-craft-anim-audio per §4.3. I reportonly the theme-registry structural fact that bears on art direction (F-16).
This repo's most-repeated defect is a search that cannot match reporting zero. Every zero below was
controlled. The controls, recorded:
| Claim surface | Control term (known-present) | Control result | Verdict |
|---|---|---|---|
| Hard-lines registry has no deity-instantiation rule | honored-adversary / Velheim / malevolent | 7 / 14 / 3 rows | matcher works; zero is real |
| No ordinal/escalation column in any live registry | intensity | 1 file | matcher works; zero is real |
care_tier column location | region_id | 7 files | matcher works; zero is real |
| CVD deity rule exists | 17.1 / hard line | 16 / 31 hits | matcher works; the rule was FOUND |
One control FAILED and is recorded rather than hidden: my first pass used chaos-enemy as a
hard-lines control. It returned 0 — because that phrase lives in docs/spine/CH_69.md prose, not in
the registry. I discarded that pass and re-ran with three registry-resident controls before making any
absence claim. A near-miss of exactly the class this rule exists to catch.
A second near-miss, recorded because it changed a finding: searching docs/spine/CH_74.md for Mimir
returned 0 and I nearly wrote "the well of wisdom is unnamed." Reading the text showed
Mímisbrunnr present — the accented í defeated the literal. F-11 was rewritten as a result. This
is why the deity-presence findings below rest on read text, not on counts alone.
The Duat (Ch 69) is genuinely world-class adaptation work and would survive comparison with anything
in the title-set. Ch 74's wells hold scholarly divergence deliberately — a discipline Ragnarök itself
does not attempt. The corpus is not naive.
But the adaptation quality lives almost entirely in prose, anchored to hard lines that in several
cases do not say what they are cited as saying, and the discipline is **inversely correlated with
care load**: the realms drawing on living traditions with practitioners today (Ch 71 Xibalba, Ch 72
Naraka/Meru, Ch 73 Annwn, Ch 74 Yggdrasil) carry the *least* hard-line anchoring and the *thinnest*
typed structure, while Ch 67-70 carry the most.
And the single grounded authoring pack every chapter build reads — harness/enrich.py — tells the
author that every realm chapter is standard care, including the one the live boss registry marks
maximum. That is the finding with the largest blast radius in this audit, because L-R3's per-realm
care tiering is scheduled to be authored *against that pack*.
---
*The lens teaches: source-selection discipline (Ragnarök shipped nine realms from one tradition and
had to decide what each realm IS as a place, not a myth-summary); the myth-literacy ladder (Ōkami
rewards Shinto knowledge without ever requiring it); insider-vs-outsider adaptation; and the
mass-roster flattening failure mode (SMT/Persona).*
---
standard care — including the one the registry rates maximumVerdict: WEAKER · Owner: schema-data + harness · Wave: 1→2 (blocks L-R3's named output) · Priority: HIGHEST
Lesson. Ragnarök's realms differ enormously in how much license the studio took, and the licence
was decided per realm before art started. Our equivalent decision surface is the care tier — and it is
the *first* thing an authoring pass reads.
Current state, cited.
harness/enrich.py:77-78:
HIGH_CARE = {29, 42, 57} # Sámi / Haiti / Australia
ELEVATED_CARE = {11, 12, 13, 47, 48, 50} # Congo / West African / South Africa / Mesoamerica / Amazon
harness/enrich.py:233-243 — care_tier(cid) resolves purely on chapter number against those two literal sets, returning high / elevated / standard.
harness/enrich.py:258 — goal_anchors() calls it, so the value enters the emitted pack./spine-chapter skill description: "Runs harness/enrich.py first as the single grounded pack."No realm chapter (66-77) appears in either set. Therefore care_tier() returns standard for all
twelve. Contrast the live data and the live spine:
| Chapter | enrich.py returns | T0_Boss_Encounter_Registry.care_tier | Spine / charter reading |
|---|---|---|---|
| Ch 69 the Duat | standard | standard | CH_69.md:3 "carrying an ELEVATED §17.1 duty" |
| Ch 71 Xibalba | standard | elevated | living Maya; Popol Vuh; Guatemalan intangible heritage |
| Ch 72 Naraka/Meru | standard | maximum | charter §1.1 "MAXIMUM (living Hindu, Buddhist and Jain cosmology)" |
| Ch 73 Annwn | standard | open | charter C-3 contested; §3.3 gate treats unsettled as living |
Note the second-order defect: ELEVATED_CARE is annotated "Mesoamerica" and covers Ch 47/48 — but
not Ch 71, the game's flagship Maya content. The set was built for the earthly arc and never
revisited when the Realm Road was cascaded.
Why it is decision-grade. REALM_DESIGN_PROGRAM §5.2 schedules L-R3's per-realm care tiering as the
gating deliverable for every art-concept fan-out. If that authoring runs on the enrich pack, it starts
from standard on all nine and must argue its way *up* — against a machine-emitted value. The
cheapest possible error to prevent, and it is prevented by editing two Python literals.
REUSE-FIRST recommendation. Do not build a care resolver. Two steps on the existing mechanism:
1. Now (zero-token, Wave 0): extend the two existing literal sets in harness/enrich.py so the
realm chapters resolve honestly, seeded from the live T0_Boss_Encounter_Registry.care_tier values
(the only per-realm care data that exists today), and mark the seeding PROVISIONAL pending L-R3.
2. Wave 2: once T0_Realm_Ruleset_Registry exists, care_tier() reads the realm row for
chapters 66-77 and the literal sets govern only the earthly arc — one source of truth, which is
what the charter's own single-owning-system rail requires.
SCHEMA HOOK. T0_Realm_Ruleset_Registry.care_band becomes the authority for chapters 66-77;
enrich.py::care_tier() becomes a reader, not a second author. Add to the Wave-2 commit checklist:
*"enrich.py resolves realm care from the ruleset row"* — otherwise the registry mints and the pack
still lies.
---
care_tier is a 15-value free-text field in live data, and the realm rows are the worst offendersVerdict: WEAKER · Owner: schema-data · Wave: 2 (same commit as the generation_class mint) · Priority: HIGH
Lesson. SMT/Persona's flattening failure is a *vocabulary* failure — hundreds of cosmologies
reduced to one mechanical field. A field whose value domain is unpoliced becomes prose, and prose in a
column is exactly how a cosmology gets flattened or, here, un-typed entirely.
Current state, cited. registries/T0_Boss_Encounter_Registry [DRAFT v0.1]/Sheet1.csv, 281 rows,
distinct care_tier values:
198 'standard' 2 'maximum' 51 'elevated' 2 'open' 12 'high' 1 'standard-with-the-war-register-antisemitism-guardrail-and-the-honored-realm-duties' 5 'standard_elevated' 1 'elevated-the-realms-own-dead-given-dignity-win-is-rest' 3 'standard-with-the-war-register' 1 'standard-with-the-war-register-and-the-HL_0109-guardrail-realms-own-dark-not-a-cabal' 1 'hard-line-with-the-antisemitism-guardrail-at-its-sharpest-and-the-unimpeachable-father' 1 'hard-line-with-the-single-sanctioned-reveal-and-the-al-hallaj-reverence' 1 'hard-line-shared-frame-thesis-not-restated-unseen-reader-held' 1 'hard-line-origin-show-dont-tell-absolute-with-the-vril-firewall' 1 'hard-line-origin-show-dont-tell-absolute-with-the-inverted-changeling-care'
Fifteen values where two are ratified. The entire endgame (BE_0075, BE_0075_S1..S5, BE_0076,
BE_0077) uses the column as a free-text sentence field.
This directly contradicts a load-bearing charter premise. REALM_DESIGN_PROGRAM §1.1: *"The
ratified care_tier enum has exactly two values, standard and elevated... they are prose, not enum
values, and this charter asserts none of them into that column."* True of the charter — but the column
was already polluted before the charter was written, on precisely the realm rows, with maximum
sitting on BE_0072 and open on BE_0073/BE_0074.
No tooth polices it. harness/check_build_readiness.py:292-293 checks that a machine care_tier
field *exists*; its self-tests at :476-485 confirm it distinguishes a machine field from prose. It
never checks the value domain. Existence-not-value is how fifteen values accumulated silently.
Why it is decision-grade for Wave 2. §5.3 mints generation_class as a closed four-value enum
(invented · historical · living · unsettled) on the registry-extension rail. The same authoring
culture, on the same rows, with no domain tooth, will produce a fifteen-value generation_class. The
proof of need is already in the tree.
REUSE-FIRST recommendation.
generation_class with its value-domain tooth in the same commit — not as a follow-up. The rail already runs check_registry_extensions.py; add the domain assertion there rather than
writing a new gate.
open on BE_0073/BE_0074 is already de-facto unsettled. Map it.The enum's fourth value has a live predecessor — do not invent a parallel vocabulary.
care_notes free-text column and move the sentences there, so the endgame rows keep theirhard-won nuance without holding it in an enum slot.
SCHEMA HOOK. Every closed enum in T0_Realm_Ruleset_Registry (generation_class, care_band,
derivation, vril_density_class, layer, scope, deity_presence_class per F-11) ships with a
domain assertion in check_realm_ruleset.py, each with a must-fire fixture. Per the charter's own
rule, an unmutated rule is unarmed.
---
Verdict: COVERED as practice / MISSING as field · Owner: schema-data · Wave: 2 · Priority: MEDIUM-HIGH
Lesson. The Ragnarök source-selection question is *"what is this realm as a place?"* — and the
hardest version of it is what to do when the primary sources disagree. Ragnarök resolves divergence by
picking. Our Ch 74 does something better and rarer.
Current state, cited. docs/spine/CH_74.md, site row three_wells_and_norns_hall, env text:
"...the tending-mechanic anchor and the L2 lore-read of the tradition's own contested cosmography
(the sources diverge on the roots and wells; the realm holds the divergence)..."
The three wells are individually named and correctly attributed — Urðarbrunnr, Mímisbrunnr,
Hvergelmir — and Hvergelmir additionally earns its own site row (gnawed_root_hvergelmir). This is
insider-grade handling: the Eddic sources genuinely conflict on the roots/wells mapping, and the design
declines to flatten them.
The problem is that it is a sentence. Nothing types it, nothing else on the road is required to
answer the same question, and no critic rubric can check it. Ch 66 Atlantis has the sharpest divergence
problem on the road (Plato's two dialogues differ, and the entire post-Donnelly reception is a fringe
lineage the charter §2.4 already firewalls) and carries no equivalent declaration.
REUSE-FIRST recommendation. Add one field to the identity-and-provenance family — do not build a
system. It is the cheapest anti-slop instrument in this audit: generic fantasy cannot produce a
source-divergence stance, because generic fantasy has no sources to diverge.
SCHEMA HOOK.
source_divergence_stance enum{ hold | select | not_applicable } (mandatory)
source_divergence_note text, mandatory when stance != not_applicable
source_divergence_citation FK → T0_Research_Corpus_Registry, mandatory when stance != not_applicable
Tooth T-RLM-PROVENANCE extends to assert the citation resolves. Ch 74's row is the ratified exemplar
and the must-pass fixture; a mutated copy with an unresolvable citation is the must-fire fixture.
---
Verdict: WEAKER · Owner: schema-data + spec-doc · Wave: 2 · Priority: HIGH
Lesson. This is the lens's single most transferable lesson and the charter names it as *our exact
L2/L3 contract*: Ōkami rewards Shinto knowledge without ever requiring it. A player who knows the
Amaterasu myth gets a second game; a player who does not loses nothing. The contract has two halves —
the knower's bonus and the non-knower's floor — and only the first half is expressible today.
Current state, cited. Beat rows carry a layers: tag. Live distribution across the road
(docs/spine/CH_66.md–CH_74.md, - layers: lines):
| Chapter | beats | beats with L2 | beats with L3 | tag shapes present |
|---|---|---|---|---|
| CH_66 | 11 | 2 | 7 | L1, L1+L2, L1+L3, L3 |
| CH_67 | 10 | 3 | 5 | L1, L1+L2, L1+L3, L2+L3, L3 |
| CH_68 | 9 | 2 | 4 | L1, L1+L2, L1+L3 |
| CH_69 | 11 | 4 | 5 | L1, L1+L2, L1+L3 |
| CH_70 | 10 | 7 | 4 | L1+L2, L1+L3, L1+L2+L3 |
| CH_71 | 12 | 7 | 3 | L1, L1+L2, L1+L3 |
| CH_72 | 10 | 4 | 4 | L1, L1+L2, L1+L3 |
| CH_73 | 9 | 4 | 4 | L1, L1+L2, L1+L3 |
| CH_74 | 10 | 3 | 5 | L1, L1+L2, L1+L3, L2+L3 |
The ladder demonstrably exists and is used with real variation — that half is COVERED, and Ch 70/71
(7 L2 beats each) show the completionist layer carrying genuine weight.
What is missing is the floor. The tag says *where knowledge pays*. Nothing anywhere says **what a
non-knower experiences at that beat**. Two consequences, both checkable:
1. Four beats on the road carry no L1 at all (CH_66 ×2 L3, CH_67 ×1 L3 + ×1 L2+L3, CH_74 ×1
L2+L3). Under the Ōkami contract an L3-only beat is the exact failure shape: a beat whose content
is *only* available to the knower. These may each be defensible connective moments — I am not
claiming they are defects — but nothing in the row lets a critic tell the difference, which is
the finding.
2. No rubric can test the contract. RB-RLM-PROVENANCE (§2.7) asks a critic to name the source
tradition from frames — that tests the knower's surface. Nothing tests that the non-knower's
experience is complete.
REUSE-FIRST recommendation. Reuse the existing layers: tag and the existing no-dead-end
machinery — the charter already chains alternate_route into check_no_dead_end.py, and this is the
same idea applied to *comprehension* rather than *progression*.
SCHEMA HOOK. On the metaphysical-law and taboo sub-row groups, and mirrored onto L2/L3-bearing
beats:
literacy_floor text, MANDATORY on any row tagged L2 or L3.
States what a player with ZERO knowledge of the source tradition
experiences here. Must be non-empty and must describe a COMPLETE
experience, never a diminished one.
literacy_bonus text. What recognition ADDS. Never a mechanical advantage that a
non-knower cannot otherwise obtain (that would convert the ladder
into a knowledge gate).
New tooth T-RLM-LITERACY: every L2/L3-tagged row has a non-empty literacy_floor; no
literacy_bonus names a progression-bearing reward. Must-fire fixture: an L3 row with an empty floor.
This arms the natural-voice doctrine's own clause — *hard puzzles NEVER gate; clues are never
unsolvable* — on the cosmology surface, where it is currently unenforced.
---
Verdict: DIVERGENT-BY-DESIGN (scope), MISSING (field) · Owner: L-R5 register slice · Wave: 1 (sibling unit) · Priority: n/a here
The register question — what makes Hades warm, Xibalba adversarial, Annwn seductive-and-hospitable,
Naraka moral-architectural, the Duat exact and grave — is the extracted L-R5 slice running in this
same wave (REALM_DESIGN_PROGRAM §4.2). I do not answer it.
The one thing L-R1 owes that unit: the register must be a typed field on the realm row, not prose,
because R-A15's art-direction hooks (palette_law, silhouette_law) and the RB-RLM-POSITION rubric
both need to read it. Recorded here so the schema designer reserves the slot even though the *values*
come from L-R5.
SCHEMA HOOK. register_class (closed enum, values authored by L-R5) + register_note (text), in
the art-direction-hooks family. T-RLM-REGISTER: **no two ADJACENT road positions share a
register_class** — the machine-checkable form of the monotone-solemn slop-mode guard, and directly
modelled on the existing HL_0049 two-consecutive mode rule, which harness/check_chapter_topography.py
already encodes as R1/R2. Reuse that tooth's shape; do not invent a new comparator.
---
Verdict: MISSING · Owner: spec-doc · Wave: 2 · Priority: MEDIUM
Lesson. Insider-vs-outsider adaptation shows up first in *naming*. Ōkami uses tradition names;
Black Myth uses the canon's own names at AAA scale and its reception turned partly on that fidelity.
Current state, cited. registries/T0_Region_Index [ACTIVE v1.2]/T0_Region_Index DRAFT v1.1.csv —
region_id vs region_name on the nine road realms:
region_id | region_name |
|---|---|
atlantis | Atlantis |
pohljar | Pohjola / Sariola |
tiamarath | the Apsu |
maatherion | the Duat |
hades · xibalba · naraka_meru · annwn · yggdrasil | (tradition names) |
Six of nine ids are the tradition name; three are game-invented coinages. maatherion is a coinage
built on Ma'at, a deity-name of an ancestral tradition, for that tradition's own realm — and it is
load-bearing beyond the registry: the worldstate key ws.maatherion_negotiation_outcome carries it
(docs/spine/CH_69.md, BE_0069 win-condition).
This is legal and I am not calling it a violation. CVD Component 7's firewall is *"no deity-name
sits on a mortal NPC"* — a region_id is not an NPC. Ch 69's own header separately rules that the
Architect "does NOT take the realm-name." The rule is respected.
The finding is that no rule governs the coinage layer at all, so nothing distinguishes a deliberate
choice from residue. maatherion and tiamarath most likely predate the §19.8 re-cascade (the Duat
was Agartha before the reframe), which makes them plausibly *legacy*, not *designed* — and there is
no field that would tell a Wave-2 author which.
REUSE-FIRST recommendation. Do not rename anything in this wave — ws.maatherion_negotiation_outcome
is a live worldstate key and renaming it is a cascade, not an edit. Instead declare the layer, and
let the naming/mastery pass decide later with the fact visible.
SCHEMA HOOK.
realm_id (the tradition-facing key)
coined_identifier text, nullable — a game-invented token in use for this realm
coinage_rationale enum{ legacy_pre_recascade | deliberate_invention | none }
coinage_derivation text, MANDATORY when the coinage derives from a deity-name or
sacred term; states the tradition-facing justification
T-RLM-CARE extends with a fixed-string scan (never an escaped pattern — the repo's own rule) for
coined identifiers on player-facing surfaces. Designer-facing keys are unaffected; the firewall is
about what the player reads.
---
*The lens teaches: a realm's own cosmological architecture IS its level design — the Duat's twelve
gated hours, Atlantis's concentric rings, Naraka's tiered moral cosmography, Yggdrasil's roots and
wells. Ragnarök's realms are legible because each one's structure is walkable.*
---
sacred_siteVerdict: WEAKER · Owner: schema-data · Wave: 2 (direct input to the seven profile fields) · Priority: HIGH
Current state, cited. Every typed §3b site row across docs/spine/CH_66.md–CH_75.md:
| Ch | sites | terrain values used |
|---|---|---|
| 66 Atlantis | 3 | sacred_site ×3 |
| 67 Pohjola | 3 | sacred_site, water_body, coastal |
| 68 the Apsu | 3 | water_body ×3 |
| 69 the Duat | 3 | water_body, sacred_site ×2 |
| 70 Hades | 5 | water_body, sacred_site ×4 |
| 71 Xibalba | 5 | cave_system ×2, sacred_site ×2, ruins |
| 72 Naraka/Meru | 4 | cave_system, sacred_site, mountain, water_body |
| 73 Annwn | 4 | sacred_site, ruins, wilderness, water_body |
| 74 Yggdrasil | 4 | sacred_site ×2, forest, water_body |
| 75 fairy realm | 4 | sacred_site ×4 |
Every value is an earthly terrain class. There is no otherworld terrain type in the vocabulary, so
sacred_site absorbs 20 of 38 realm sites (53%) as the residual bucket for "not a recognisable earthly
landform."
The mismatch is sharpest where the prose is most ambitious. docs/spine/CH_69.md describes
axis_root_and_inscription_gate as *"the impossible vertical realm of roots and wells and hung-open
space climbed from the inside"* — typed terrain sacred_site. Yggdrasil, a world tree holding nine
worlds in its boughs, is typed forest.
Why it is decision-grade. §2.3 specifies seven closed physics-profile fields (gravity, light,
time, matter, thermodynamic, fluid, acoustic) *"each written in the existing environment-grammar
micro-grammar so one parser serves both registries."* That reuse is correct — but the micro-grammar's
live property-key set is four terms (conductivity, mass, structural_integrity,
thermal_state; charter §2.3 states this and flags it). The terrain vocabulary has the identical
problem one layer up and the charter does not flag it: **V's adequacy probe is specified, the
terrain enum's is not.** A realm can pass every physics tooth and still be typed as a forest.
REUSE-FIRST recommendation. Do not fork the site schema. Extend the terrain enum, and subject it
to the same V-adequacy probe the charter already mandates for V (§2.3) — the probe machinery is
being built anyway; pointing it at a second vocabulary is nearly free.
SCHEMA HOOK. Terrain enum additions seeded from what the road already describes in prose:
impossible_vertical, world_axis, threshold_liminal, void_hung, tiered_cosmographic. Then:
T-RLM-TERRAIN-ADEQUACY: for each of the nine traditions, take a structure the realm demonstrablycontains and show the enum can express it. Residue recorded in the schema doc, exactly as V's is.
sacred_site may not exceed a declared share of any realm's sites — the residual-bucket tooth. Ch 66 and Ch 75 (100% sacred_site) are the current must-fire cases.
---
Verdict: WEAKER · Owner: schema-data + P5-factory · Wave: 2 · Priority: HIGH
Lesson. The single most reusable structural lesson in the title-set: a tradition that already
supplies a *sequence* has already done the level design. Ragnarök walks Helheim's stages; Ōkami walks
Shinto's.
Current state, cited. The traditions supply structure and the typed layer discards it:
| Realm | The tradition's own structure | Typed as |
|---|---|---|
| Ch 69 the Duat | twelve gated hours (Amduat / Book of Gates) — the charter calls it "the descent spine" | ONE site duat_gated_hours + one agility_course:duat_twelve_gated_descent_course |
| Ch 66 Atlantis | Plato's concentric rings — the most famous piece of Atlantis level design in existence | ONE site atlantis_ring_city |
| Ch 72 Naraka/Meru | graded Narakas, seven talas, Svarga, loka rungs (charter §1.3 names these as sub-rows) | narakas_weighing_place + world_axis_loka_rungs |
| Ch 74 Yggdrasil | three roots/wells + nine worlds (T0_Chapter_Index.region_primary = "the Nine Worlds of Yggdrasil") | 4 sites; the three wells share ONE row |
The counter-example is the finding's own solution. docs/spine/CH_71.md decomposes Xibalba into
five sites — xibalba_descent_road, xibalba_council_court, xibalba_six_houses,
xibalba_ballcourt, xibalba_climb_out_road — which is the Popol Vuh's own narrative sequence,
walkable in order. Xibalba proves the pattern is available, costs nothing new, and produces the
richest realm on the road.
Note the correlation with F-07: Xibalba is also the realm using the most varied terrain values. Typed
decomposition and vocabulary adequacy are the same problem.
Honest scope. This is DESIGNED-UNBUILT at the *world* layer — the charter §1.1 names "no WGM
geography" as the standing blank for Ch 70-74, and §0.2 states the realms lack a WORLD. I am not
re-reporting that. The finding is narrower and sharper: **nothing in the schema requires the
decomposition, so the world-authoring wave has no instruction to preserve cosmological structure**, and
Ch 66/69 will be built from typed rows that have already thrown it away.
REUSE-FIRST recommendation. Xibalba's five-site decomposition is the template. No new system.
SCHEMA HOOK.
cosmological_structure text, MANDATORY — the tradition's own named architecture
structure_citation FK → T0_Research_Corpus_Registry, mandatory
structure_site_decomposition array of site_ids realising it, MANDATORY, min length 2
structure_traversal_order enum{ ordered | free | gated_sequence }
New tooth T-RLM-STRUCTURE: every realm row names a cosmological structure with a resolving
citation and decomposes it into ≥2 site rows. Must-pass fixture: Ch 71 Xibalba. Must-fire fixture: a
mutated Ch 69 row whose twelve hours decompose to one site — which is the live state today, making
this the rare tooth whose must-fire fixture is real data rather than a synthetic mutation. That is the
strongest possible arming evidence.
---
Verdict: DESIGNED-UNBUILT · Owner: schema-data · Wave: 2 · Priority: MEDIUM
Current state, cited. Per-site vril_density from the same §3b rows:
patala_naga_depths low → narakas_weighing_place moderate → world_axis_loka_rungs anchor → churned_sea_summit high. This is canon's own
climb-out, legible straight off the data. §2.3 cites exactly this realm as the reason vril_gradient
exists.
low.low.anchor (charter §1.1 reads Ch 68 as "Vril high"; a minor charter/datadivergence, noted not litigated).
Ch 70 and Ch 71 are the trough realms, and flatness there is arguably *deliberate* — the charter's
intensity finding calls the trough the road's real peak because power collapses. But **nothing
distinguishes a designed plateau from an unpopulated column**, which is the whole finding.
SCHEMA HOOK. vril_gradient is already specified in §2.3. Add one thing so flatness is a
statement rather than a silence:
vril_gradient_shape enum{ rising | falling | trough | plateau_declared | unset }
unset is a gate failure; plateau_declared requires a non-empty rationale. Ch 72 is the must-pass
fixture. Also confirms the charter's own vocabulary reconciliation (§5.1): WGM §14.5 uses
null/low/mid/high/anchor, the spine site rows use baseline/low/moderate/high/anchor. The live realm
rows use the spine spelling (moderate at Ch 72/73) — so the spine spelling is the incumbent and
picking it is the zero-migration choice.
---
*The lens teaches: SMT/Persona put hundreds of deities from dozens of traditions in as MECHANICS,
flattening cosmologies into collections. The charter names our audit-only assessor rule at Ch 69 as
"the dodge," and asks this lens whether the dodge is complete.*
**Answer: the dodge is not complete, because it is not a rule. It is a per-chapter habit, cited to a
hard line that says something else, and applied most strictly where the tradition is furthest from
living practice.**
---
Verdict: MISSING (as a rule) / WEAKER (as practice) · Owner: spec-doc + schema-data · Wave: 1→2 · Priority: HIGHEST
Current state, cited. registries/T0_Hard_Lines [ACTIVE v0.2]/Sheet1.csv, 123 rows.
HL_0003 in full (source CVD §17.1, severity canonical):
"The faithful community and its living tradition are never the story antagonist and are never
villain-framed, defamed, or set up for extermination as an enabled or encouraged goal. Combat is
never framed as targeting Aboriginal Elders, Sámi noaidi, Vodou priests, indigenous shamans, or
mystery-school practitioners for being practitioners of the faith; the narrative antagonist routes
through the Velheim or occupier apparatus, complicit brokers, states, and institutions, corrupted
individuals, and genuinely malevolent beings. This is collective, framing-level protection of the
community as a whole; it does not render individual members mechanically un-attackable, and it never
sanitizes toward rated-G. The floor is anti-defamation and no-genocide-as-goal, not individual
invincibility."
HL_0003 is the collective community-protection rule. It says nothing about deity instantiation.
docs/spine/CH_69.md cites it 14 times, attached to deity-instantiation claims it does not
support. Verbatim examples:
AUDIT-ONLY throughout, borrowed as moral architecture, never an NPC and never the boss (HL_0003)."*
CH69_B01 reveal: *"the borrowed moral architecture a motif only and no deity instantiated perHL_0003"*
CH69_B08 reveal: *"he echoes the PRINCIPLE of Ma'at and takes no realm-name or deity-name perHL_0003"*
CH69_B06 reveal: *"never curse-magic or a tomb of traps per HL_0003"*CH69_B05 reveal: *"fought only as the realm's own architectural construct per HL_0003"*Citation load across the road:
| CH_66 | CH_67 | CH_68 | CH_69 | CH_70 | CH_71 | CH_72 | CH_73 | CH_74 | |
|---|---|---|---|---|---|---|---|---|---|
| HL_0003 | 0 | 9 | 11 | 14 | 6 | 1 | 0 | 0 | 0 |
| HL_0121 | 0 | 0 | 6 | 11 | 0 | 0 | 0 | 0 | 0 |
| HL_0122 | 0 | 0 | 7 | 1 | 2 | 0 | 4 | 1 | 0 |
Where the rule actually lives. Positive-controlled search of the CVD found it — in **Component 7,
"Metaphysical real: the substrate operates"** (not §17.1):
"Deities are equally real, portrayable, and usable as characters — a good deity may appear as a
disguised human quest-giver or a rescuer (rescue-and-re-encounter), an evil deity opposes the player;
the only firewall is that no deity-name sits on a mortal NPC and no revered or real figure is cast as
the villain."
So the constitutional deity rule exists, is permissive, has exactly two firewalls, and has
no T0_Hard_Lines row. The registry's only adjacent rows are HL_0121 (malevolent beings are
legitimate combat), HL_0122 (the honored-adversary rule), and HL_0080 (environmental/atmospheric
bosses) — none of which govern instantiation.
The inverse correlation is the alarming part. The realms drawing on living traditions carry the
*least* anchoring: Ch 71 Xibalba (living Maya) cites HL_0003 once and HL_0121/0122 zero; Ch 72
Naraka/Meru (living Hindu/Buddhist/Jain, the road's highest care tier) cites all three zero times;
Ch 73 Annwn and Ch 74 Yggdrasil likewise. The care anchoring is heaviest at Ch 67-70 and vanishes
exactly where the tradition has practitioners today.
Defect class. Identical to two the repo has already caught and corrected: the three
T1_Integrity_Paths §17.5→§17.2/§17.4/§7.4 mis-citations, and the HL_0048/HL_0049
mode-variety mis-attribution that STATUS.md records — and which the charter itself re-committed
inside a would-be Josh brief (commit 7d1a4bb). A citation that does not say what it is cited as
saying is invisible to every gate the repo owns.
REUSE-FIRST recommendation.
1. Mint the deity-presence rule as a real T0_Hard_Lines row, sourced to CVD Component 7
(the text already exists — this is a transcription, not new canon), cross-referenced to
HL_0121/HL_0122/HL_0003. The registry is the existing mechanism; it is a row, not a system.
2. Re-anchor the 41 realm-road citations to the new row. Deterministic, scriptable, and it is a
citation repair — but per the standing rule it is not "trivial mechanical": it takes the
fresh-context critic and the full gate suite.
3. Do not weaken Ch 69. See F-12 — the recommendation is to *declare* the choice, not loosen it.
SCHEMA HOOK. T0_Realm_Ruleset_Registry.hard_line_anchors (already in the §2.3 standard tail) gains
T-RLM-ANCHOR: every hard_line_anchors value resolves to a real T0_Hard_Lines rule_id and
the anchored claim's topic matches the rule's source_section domain. The second clause is the one
that would have caught this — resolution alone would not, because HL_0003 resolves perfectly.
---
Verdict: MISSING · Owner: schema-data · Wave: 2 · Priority: HIGHEST — this is the lens's central deliverable
Lesson. SMT/Persona's failure is that every deity gets the *same* treatment (a recruitable stat
block), so a hundred cosmologies flatten into one. The opposite failure is equally real: every deity
gets a *different, undeclared* treatment, so there is no cosmological grammar at all — just authorial
mood per chapter. We are in the second failure mode.
Current state, cited. Six distinct treatments, all live, none typed:
| # | Treatment | Live instance | Anchor cited | Real anchor |
|---|---|---|---|---|
| 1 | AUDIT-ONLY — named, never instantiated, never NPC or boss | Ma'at, Anubis, Thoth, Ammit, Osiris + the 42 assessors, CH_69.md | HL_0003 ×14 | none exists |
| 2 | HONORED-ADVERSARY, FOUGHT — sovereign fought without villain-framing | Louhi, BE_0067; CVD §17.1 constitutional text | HL_0122 | correct |
| 3 | HONORED, PASSED, NOT KILLED — doorkeeper, three routes | Cerberus, BE_0070 | HL_0122 ×2 | correct |
| 4 | INSTANTIATED ALLY — a deity as host, and by the end a friend | Arawn, CH_73.md (59 mentions) | HL_0122 ×1 | partial — 0122 covers adversaries, not allies |
| 5 | CARE-CLEAN MONSTER — the enemy the tradition unmade itself | Apep BE_0069_APEP; Iku-Turso Ch 67 | HL_0121 | correct |
| 6 | OMISSION — the pantheon simply absent | CH_74.md: Odin 0, Þórr 0, Heimdallr 0, Freyr 0, Æsir 0 | — | undeclared |
Treatment 4 is the sharpest gap. **Arawn is a deity of a living Welsh tradition, instantiated as a
speaking NPC and an eventual friend, 59 mentions** — and it is *legal and good*: CVD Component 7
explicitly blesses "a good deity may appear as a disguised human quest-giver or a rescuer." But
HL_0122 is the *honored-adversary* rule and does not cover an ally, so the most permissive treatment
on the road rests on the thinnest anchoring.
Treatment 6 at Ch 74 deserves care. Reading the site rows rather than counting: the wells are
correctly and specifically handled — three_wells_and_norns_hall names Urðarbrunnr, Mímisbrunnr,
and Hvergelmir, and the Norns are "honored fate-keepers referenced never reproduced." So Ch 74 is not
careless; it made a *choice* that the realm is the tree, not the pantheon. That is a defensible
and arguably excellent Ragnarök-style source-selection call — *decide what the realm IS as a place*.
It is simply nowhere recorded as a choice, so a Wave-2 author or an art-concept fan-out cannot tell
it from an oversight, and the §2.5 signature law proposed for Ch 74 (THE CARVED DEBT at the well —
the norn-thread) sits directly on top of the one well most associated with the god who is absent.
Ch 72 is the live risk. Living Hindu/Buddhist/Jain deities are heavily present in the prose —
docs/spine/CH_72.md: Indra 25, Yama 22, Vishnu 8, Shiva 7, Brahma 3 — and the chapter cites
HL_0003 zero times, HL_0121 zero, and HL_0122 four times. The road's highest care
tier (BE_0072.care_tier = 'maximum') has the thinnest deity anchoring, on the tradition with the
most practitioners alive today. This is the finding I would carry to the director first.
REUSE-FIRST recommendation. Do not build a deity system. Type the decision that is already being
made six different ways, using the enum-plus-tooth pattern the charter already uses everywhere else.
SCHEMA HOOK. A repeating sub-row group on T0_Realm_Ruleset_Registry, parallel to the existing
metaphysical-laws and taboo-constraints groups:
figure_id
figure_name the tradition's own name, tradition-accurate diacritics
tradition_citation FK → T0_Research_Corpus_Registry, MANDATORY
presence_class enum{ audit_only | honored_adversary_fought | honored_passed
| instantiated_ally | care_clean_monster | omitted }
presence_rationale text, MANDATORY — why THIS class for THIS figure
instantiation_form enum{ none | motif | referenced | npc | boss }
hard_line_anchor FK → T0_Hard_Lines.rule_id, MANDATORY
living_practice_flag bool — does this tradition have practitioners today
Teeth:
T-RLM-DEITY — every named figure on a realm row carries a presence_class, a non-empty rationale, and a hard_line_anchor that resolves and matches the class. Must-fire fixture: an
audit_only figure anchored to HL_0003 — i.e. the live Ch 69 state, again real data as the
arming evidence.
T-RLM-DEITY-FLOOR — the two CVD Component 7 firewalls made arithmetic: no figure with instantiation_form = npc shares a name with a mortal character in T0_Character_Index; no
revered = true figure carries an antagonist role. These are the *only* two absolute rules, and
encoding exactly two of them is what keeps the tooth from becoming a timidity engine.
omitted requires a rationale, which converts Ch 74's silence into a reviewable statement atthe cost of one sentence.
---
Verdict: DIVERGENT-BY-DESIGN, undeclared · Owner: spec-doc · Wave: 1→2 · Priority: HIGH · *devil's-advocate-against-timidity pass*
The over-conservatism read. CVD Component 7 rules deities "equally real, portrayable, and usable as
characters," with exactly two firewalls. docs/spine/CH_69.md:3 rules Ma'at, Anubis, Thoth, Ammit,
Osiris and the forty-two assessors "AUDIT-ONLY... NEVER cast as an NPC or the boss." That is
materially stricter than our own constitution, and it is presented as a hard line (cited HL_0003)
when it is an authorial choice. Under the standing calibration — *care-tier INFLATION is a defect; the
timid option is usually the wrong one* — this is exactly the shape that gets flagged.
The steelman, which I find persuasive. Ch 69's design reason is strong and independent of care:
the Architect's Final Negotiation is a fifty-two-chapter payoff and the encounter's whole premise
is that a life is weighed by an argument the player answers with lived acts. Instantiating Osiris as
the judge would put a second authority in the room and demote the Architect at his own terminus. The
chapter says as much: *"Apep carries the realm's fight so the Architect never lifts a hand."* And
Ch 69 pointedly does not defang the realm — Apep is genuinely fought and unmade by the tradition's
own rite, which is the R-17+ bar met, not dodged.
So the recommendation is NOT to loosen Ch 69. It is:
1. Declare it as presence_class = audit_only with a presence_rationale naming the *design*
reason (the Architect must hold the room), so the choice reads as craft rather than as care-flinch.
2. Stop it propagating. Today audit_only is the only articulated realm deity treatment and it is
attached to the road's most-cited realm. A Wave-2 author with no presence_class field will copy
Ch 69's pattern to Ch 72 by default — applying the *strictest* treatment to living Hindu,
Buddhist and Jain deities, where the CVD's permission is identical and where "care means weight and
authenticity, never omission" binds hardest. That would be care-inflation with real cost: Indra
is already 25 mentions in Ch 72's prose and the protagonist canonically *echoes the Indra-role*.
3. Record the asymmetry for the director. Strictest treatment on the *ancestral* tradition
(Egyptian), most permissive on a *living* one (Welsh Arawn). That ordering is not wrong — but it is
currently accidental, and F-11's rationale field is what makes it deliberate.
SCHEMA HOOK. presence_rationale must name a design reason or a care reason explicitly:
rationale_kind enum{ design | care | both }
A realm whose deity treatments are *all* care is the timidity signature, and RB-RLM-CARE — which
the charter already specifies as running the living-tradition read together with a
devil's-advocate pass calibrated against over-conservatism — gets a machine-readable input instead of
a vibe.
---
*The lens teaches: Ragnarök is the only shipped nine-realm road with a world-tree hub — the closest
structural analog to Ch 66-74 in the medium — and its central problem is making nine distinct worlds
build rather than merely follow.*
---
Verdict: DESIGNED-UNBUILT · Owner: schema-data · Wave: 2 · Priority: MEDIUM (correctly sequenced)
Current state, positive-controlled. Column-name scan across registries/**/*.csv and
build/**/*.csv:
demand_ordinal -> 0 files power_ordinal -> 0 files awe_ordinal -> 0 files escalates_from -> 0 files road_position -> 0 files realm_id -> 0 files sovereign_distance -> 0 files CONTROL: intensity -> 1 file (matcher works; the zeros are real)
Every field of the §2.3 INTENSITY BLOCK is unbuilt. This is correct sequencing, not a defect — the
charter specifies them and Wave 2 mints them. Recorded so the Wave-2 designer knows there is no
migration and no incumbent: the intensity block is greenfield, and T0_Chapter_Index.intensity is the
only live neighbour it must not contradict.
SCHEMA HOOK. road_position and realm_id are the join keys the QA program's aspect_id contract
will need; mint them first so T-RLM-CURVE has an ordering to read at all.
---
Verdict: WEAKER (a live document defect) · Owner: spec-doc · Wave: 0 (zero-token) · Priority: HIGH — cheap, and it seeds Wave 2
Current state, cited.
docs/proposals/REALM_DESIGN_PROGRAM.md §1.1, Ch 66 Atlantis: *"Intensity standard, mode astral.Vril high to anchor. Proposed demand 1."*
registries/T0_Chapter_Index [ACTIVE v1.2]/…csv, CH_66: intensity = valley, dominant_combat_mode = astral.docs/spine/CH_66.md states it twice, with reasoning: *"intensity VALLEY (a decompression-chamberrecognition trial — the deliberate relief-tier valley after the Ch-65 peak; Ch 65 peak, Ch 66 valley,
Ch 67 peak…)"* and *"PRESERVED: …intensity VALLEY (a single contained testing-guardian in a solemn
single-duel register, holding HL_0048 across Ch 65 peak / Ch 66 valley / Ch 67 peak)."*
The mode matches; the intensity does not. The spine's value is deliberate, reasoned, and
HL_0048-load-bearing. The charter's row axis — the document Wave 2 reads to seed power_ordinal and
demand_ordinal — misstates the road's first node.
Aggravating context. This is the same document that already shipped one corrected HL_0049
mis-statement *inside a would-be Josh brief* (commit 7d1a4bb records the catch), and §1.4 opens by
quoting HL_0048/HL_0049 verbatim precisely because *"a charter that briefs Josh on whether to touch
these lines cannot restate them from memory."* The same discipline was not applied to the row axis.
Verified correct for the rest of the road (charter §1.1 vs live T0_Chapter_Index): Ch 67 peak,
Ch 68 standard, Ch 69 peak, Ch 70 standard, Ch 71 peak, Ch 72 peak, Ch 73 standard, Ch 74 standard →
the registry reads Ch 74 as peak, not standard. So there are two divergences, and the
second one lands on the CROSSING — the node whose intensity is a genuine Josh brief at §6.2 (C-1).
The brief must not be written against a wrong current value.
Recommendation. Zero-token correction of §1.1's Ch 66 and Ch 74 intensity readings to the live
registry values, with the spine's reasoning cited. Then re-check C-1's brief text, since its premise is
"the road's last two nodes are both standard" and the registry says otherwise.
SCHEMA HOOK. T-RLM-CURVE already carries *"declared power agreeing with the spine's ruled density
seams."* Extend it one clause: **intensity_class on the realm row must equal
T0_Chapter_Index.intensity for that chapter.** A document-vs-registry divergence then cannot survive
a gate run — which is the only durable fix, since this is the second instance of this class in this
document.
---
Verdict: DESIGNED-UNBUILT / deferred to C-1 · Owner: schema-data · Wave: 2 · Priority: MEDIUM
Lesson. Ragnarök's single strongest structural move is that arrival is the event — the Bifröst
transit and the first vista of each realm are authored beats, not transitions. The player's first
crossing out of the human world is the most valuable first-impression the road will ever get.
Current state, cited. Ch 66 is intensity = valley (F-14) and the spine's reasoning is sound at
the *combat-topography* layer — HL_0048 needs a valley after the Ch-65 peak, and Ch 66 is a "single
contained testing-guardian in a solemn single-duel register."
But intensity is a combat-demand instrument. The charter's own §1.4 resolution separates three
instruments — POWER, DEMAND, AWE — and states *"AWE is a third instrument peaking at anchor density…
and should never be tuned as difficulty."* Ch 66 is vril_density anchor at two of its three sites
(atlantis_ring_city, origin_script_wall). So by the charter's own axis Ch 66 is a **high-awe,
low-combat-demand node — which is precisely right for a first crossing, and is invisible** in the
only live column.
Deferred, deliberately. Whether the crossing's intensity should change is contradiction C-1 and a
genuine Josh brief at §6.2. I take no position. The L-R1 contribution is narrower: **awe_ordinal is
the field that makes the brief answerable without touching a hard line**, and it should be minted
*before* C-1 is presented, so the brief can offer "raise awe, leave intensity" as a real option rather
than a hypothetical.
SCHEMA HOOK. awe_ordinal (already in §2.3) plus:
arrival_beat_id FK → the beat realising the crossing-in vista, MANDATORY
T-RLM-ARRIVAL: every road realm names an arrival beat, and that beat's site carries a vista or
threshold climactic_affordance. Live check: CH_74.md's trunk_and_boughs already declares
climactic_affordance [vista, weather_dramatic] — the affordance vocabulary exists and is in use, so
this tooth reads data that is already there for at least one realm. Reuse, not invention.
---
*The lens teaches: Ōkami's sumi-e is not decoration, it is the adaptation's thesis; Black Myth's
fidelity is its reception; each Ragnarök realm is identifiable from a single frame. The charter makes
the realms "the grandest displays of the artistic capability."*
---
T0_Theme_Registry has twelve rows, zero realm rows, and no realm-bearing theme_typeVerdict: DESIGNED-UNBUILT · Owner: schema-data · Wave: 2 · Priority: MEDIUM
Current state, cited. registries/T0_Theme_Registry [DRAFT v0.1]/T0_Theme_Registry.csv, 12 data
rows in full: PROTAGONIST_THEME, HOUSE_OF_VELHEIM_THEME, ARCHITECT_THEME, CASSIUS_PHASE_1/2/3,
GRAND_SAGE_REVEAL, ENDING_TRULY_GOOD, ENDING_GOOD_ENOUGH, ENDING_EVIL, VIMANA_ACTIVATION,
FAMILIAR_BOND.
theme_type values in use: character, family, event, ending, concept. **No region or
realm value, and no place-keyed theme of any kind** — the registry is entirely person-, event- and
outcome-keyed. Nine realms declared the ceiling-setting art surfaces have no identity row.
The schema is otherwise well-suited: mood_tags, instrumentation_substrate, cultural_substrate,
era_substrate, hard_line_relevance, composer_in_loop_required all map cleanly onto per-realm
identity, and cultural_substrate is *empty on all twelve rows* — the column exists and has never been
exercised, which is exactly what a realm row needs.
REUSE-FIRST recommendation. Add realm to theme_type and mint one row per realm. Do not
duplicate identity into T0_Realm_Ruleset_Registry — §2.3's art-direction hooks (palette_law,
silhouette_law, signature_phenomenon, impossible_architecture_budget) should reference the
theme row, not restate it, or the two registries drift and the key means two things (the same reasoning
the charter used to reject overloading T0_Environment_Grammar_Registry).
SCHEMA HOOK. T0_Realm_Ruleset_Registry.theme_id → FK into T0_Theme_Registry. T-RLM-EXPRESSION
extends: signature_phenomenon must resolve to a theme row's mood_tags/instrumentation_substrate,
so "beautiful and rich" becomes a resolvable reference rather than an adjective. Note hard_line_relevance
is populated on all twelve existing rows — the realm rows inherit that discipline for free, which is
where F-10's new deity hard line will surface on the art side.
---
Verdict: MISSING (blocking) · Owner: schema-data + P1 · Wave: 0→2 · Priority: HIGHEST — a scheduled Wave-0 action will silently no-op
Current state, cited.
build/zones/ contains four files: angkor_khmer.csv, bali.csv, flores_island.csv, sumatra_java.csv. All earthly. Zero realm zones.
ambient_threat, vril_density, climactic_affordances, protected, area_bounds, build_priority,
zone_bounds_wgs84, meters_per_vertex, worldcover_biome, footfall_surface, care_tier, asset_routing,
environment_grammar_refs`
build/zones/bali.csv, besakih_mother_temple): zone_bounds_wgs84 = 'w=115.44094;s=-8.38437;e=115.46094;n=-8.36437', meters_per_vertex = '1',
care_tier = 'elevated'.
zone_bounds_wgs84 is real-world WGS84 geodesy and worldcover_biome is a **satellite landcover
class**. Neither is definable for the Duat, Xibalba, or Yggdrasil. The zone catalog — which is
simultaneously the asset-routing layer (asset_routing, build_priority,
environment_grammar_refs) and the sanctioned care_tier writer — is structurally incapable of
holding a realm.
The blocking consequence. REALM_DESIGN_PROGRAM §5.1 (Wave 0, "runs now") instructs:
"Populate care_tier for realm zones as a prerequisite of the first board… The populate runs
THROUGH THE SINGLE SANCTIONED WRITER — harness/apply_zone_catalog_columns.py --populate-empty,
--dry-runthen--apply, never by hand."
There are no realm zone rows to populate. --populate-empty over an empty row set succeeds and
writes nothing. The prerequisite for the first art board is scheduled against a target that does not
exist, and it will report success.
Second-order: harness/check_build_readiness.py:292 gates Combat readiness on a machine care_tier
field being present in "the Zone Catalog column or boss-row key." Realms satisfy it only via the
boss-row key — which is the field carrying fifteen values (F-02). So realm build-readiness currently
rests entirely on the polluted column.
REUSE-FIRST recommendation. Do not fork the zone catalog. Make the earth-geodata fields
conditionally required, keyed on the realm class that already exists.
T0_Region_Index already types all nine realms node_kind = mythic_realm (verified: atlantis,
pohljar, tiamarath, maatherion, hades, xibalba, naraka_meru, annwn, yggdrasil; the
fairy realm is story_anchor). That discriminator is live and free.
SCHEMA HOOK.
zone_space_class enum{ earth_geo | realm_authored } default earth_geo
earth_geo → zone_bounds_wgs84 + worldcover_biome mandatory (today's behaviour, unchanged).realm_authored → both must be empty; realm_id + authored_bounds mandatory instead.T-RLM-ZONE: every mythic_realm region has ≥1 zone row with zone_space_class = realm_authored.Must-fire fixture: the live state (zero realm zones).
care_tier populate is blocked until the zone class lands. Recommend Wave 0 records it as blocked-with-reason rather than attempting an --apply that
will no-op green.
---
Verdict: MISSING (identity) / COVERED (the DR-2 ceiling amendment) · Owner: presentation-craft-anim-audio + spec-doc · Wave: P1-C · Priority: MEDIUM
Current state, cited, and reported honestly in both directions.
COVERED — the charter's own most time-critical item is done, verified in the tree, not assumed:
docs/proposals/COMPARATOR_LENS_PROGRAM.md:144 carries the DR-2 amendment ("…fairy realm are declared
CEILING-SETTING art surfaces for this lens; the DR-2 tiered-asset…"), landed in commit 7d1a4bb. §5.1
flagged it as "applied in the working tree and pending commit" — it has since committed. No action.
MISSING — docs/proposals/PRESENTATION_DOCTRINE.md (85,319 chars) contains: realm ×3, Realm
×0, art direction ×0, ceiling-setting ×0, palette ×1, silhouette ×2, and **zero occurrences of
any of the nine realm names** (Yggdrasil, Xibalba, Duat all ×0). The presentation doctrine
teaches craft in general; nothing anywhere teaches or records per-realm identity — the property
that makes a Ragnarök realm identifiable from one frame.
Note the ordering risk this creates. RB-RLM-PROVENANCE (§2.7) asks a critic to name the source
tradition from frames alone, with "generic fantasy" as the sharpest slop verdict. That rubric is the
*detector*. There is no corresponding *specification* — nothing an art-concept prompt reads to make the
frames tradition-legible in the first place. We are scheduled to measure a property we never authored.
REUSE-FIRST recommendation. Do not write a realm art-direction doc. The §2.3 art-direction hooks
plus the T0_Theme_Registry realm rows (F-16) are the specification — they just need to be
authored before the first board, and RB-RLM-PROVENANCE needs to name them as its rubric source
rather than judging against a critic's private notion of "generic fantasy."
SCHEMA HOOK. palette_law, silhouette_law, signature_phenomenon become **mandatory,
citation-bearing** (each resolving into T0_Research_Corpus_Registry, per Law 2) — so an art prompt
inherits provenance the way §2.3 already says the ruleset row is upstream of the art wave. Then
RB-RLM-PROVENANCE reads the realm row as its answer key, and the rubric becomes a comparison rather
than a vibe check.
---
Verdict: DESIGNED-UNBUILT · Owner: schema-data · Wave: 3 (world-repair) · Priority: LOW-MEDIUM
Current state, cited. registries/T0_Region_Index [ACTIVE v1.2]/T0_Region_Index DRAFT v1.1.csv,
25 columns:
| region_id | region_name | filled | node_kind |
|---|---|---|---|
atlantis, pohljar, tiamarath, maatherion, hades, xibalba, naraka_meru, annwn, yggdrasil | (the nine) | 9/25 each | mythic_realm |
fairy_realm | Fairy Realm | 11/25 | story_anchor |
Uniform thinness — the environment family (env_density_band_default, ambient_elemental_affinity,
weather_cycle_profile, terrain_feature_class_ids, movement_modifier,
terrain_permanence_default, terrain_integrity_skin) and all three SFX arrays are unpopulated across
every realm.
This matches the charter's own "named blank" per realm and is not re-reported as a new gap. Two
things are worth handing the schema designer:
1. node_kind = mythic_realm is live on exactly the nine road realms. That is a free, reliable
discriminator for every conditional rule proposed in this audit (F-17's zone_space_class, F-01's
care resolution, T-RLM-ZONE's scope). Do not mint a new realm flag.
2. T0_Region_Index has no care_tier column at all — verified by column scan, positive-controlled
(region_id → 7 files, matcher works). care_tier exists as a real column in exactly five
registries (Boss_Encounter, Equipment, Familiar, Minigame, Vehicle) and the four zone
files. So the region layer never carried care, and **the charter's §1.1 sentence about the ratified
two-value care_tier enum being "per T1_Region_Page_Template" describes a template, not a live
region column.** A Wave-2 designer looking for the region-level care value will not find one — this
note exists so that absence is not mistaken for an unpopulated field.
SCHEMA HOOK. T0_Realm_Ruleset_Registry.region_id → FK into T0_Region_Index, with
T-RLM-BASELINE extended to assert node_kind = mythic_realm for all derivation = delta rows.
Nine realms, nine FKs, no new taxonomy.
---
T0_Realm_Ruleset_Registry| Family | Field | Kind | From |
|---|---|---|---|
| Identity/provenance | source_divergence_stance / _note / _citation | enum + text + FK | F-03 |
| Identity/provenance | coined_identifier, coinage_rationale, coinage_derivation | text + enum | F-06 |
| Identity/provenance | region_id | FK → T0_Region_Index | F-19 |
| Structure | cosmological_structure, structure_citation, structure_site_decomposition, structure_traversal_order | text + FK + array + enum | F-08 |
| Vril | vril_gradient_shape | enum | F-09 |
| Deity presence (new repeating sub-row group) | figure_id, figure_name, tradition_citation, presence_class, presence_rationale, rationale_kind, instantiation_form, hard_line_anchor, living_practice_flag | — | F-11, F-12 |
| Laws + taboos | literacy_floor (mandatory on L2/L3), literacy_bonus | text | F-04 |
| Intensity | arrival_beat_id | FK | F-15 |
| Art direction | theme_id → T0_Theme_Registry; palette_law/silhouette_law/signature_phenomenon made mandatory + citation-bearing | FK + text | F-16, F-18 |
| Register | register_class, register_note (values authored by L-R5) | enum + text | F-05 |
| Care | care_band becomes authority for Ch 66-77 | enum | F-01 |
| Tooth | Asserts | Must-fire fixture | From |
|---|---|---|---|
T-RLM-DEITY | every figure has class + rationale + a matching resolving anchor | live Ch 69 (audit_only anchored to HL_0003) | F-10, F-11 |
T-RLM-DEITY-FLOOR | the two CVD Component 7 firewalls, and only those two | deity-name on a mortal T0_Character_Index row | F-11 |
T-RLM-STRUCTURE | cosmological structure cited + decomposed into ≥2 sites | live Ch 69 (twelve hours → one site) | F-08 |
T-RLM-ZONE | every mythic_realm has ≥1 realm_authored zone row | live state (zero realm zones) | F-17 |
T-RLM-LITERACY | non-empty literacy_floor on every L2/L3 row | an L3-only beat with empty floor | F-04 |
T-RLM-ANCHOR | hard_line_anchors resolve and topic-match | any of the 41 HL_0003 realm citations | F-10 |
T-RLM-TERRAIN-ADEQUACY | terrain enum probed per tradition, residue recorded | Ch 66 / Ch 75 at 100% sacred_site | F-07 |
T-RLM-REGISTER | no two adjacent road positions share register_class | five consecutive death realms | F-05 |
T-RLM-ARRIVAL | every realm names an arrival beat on a vista/threshold site | a realm with no arrival beat | F-15 |
T-RLM-CURVE (extend) | intensity_class equals T0_Chapter_Index.intensity | charter §1.1's Ch 66 standard vs live valley | F-14 |
| enum-domain assertions | every closed enum, in the mint commit | 15-value care_tier | F-02 |
Three of these teeth have must-fire fixtures that are LIVE DATA rather than synthetic mutations
(T-RLM-DEITY, T-RLM-STRUCTURE, T-RLM-ZONE). Per the charter's own arming standard — *a rule that
was never mutated was never armed* — these are the best-armed teeth in the set on day one, and they
will go green only when the real defect is fixed.
1. Correct REALM_DESIGN_PROGRAM §1.1 Ch 66 intensity (standard → valley) and re-verify Ch 74
(standard → registry says peak); re-check C-1's brief premise. (F-14)
2. Extend harness/enrich.py HIGH_CARE / ELEVATED_CARE to cover the realm chapters, seeded
provisionally from the boss-registry values. (F-01)
3. Record the Wave-0 realm care_tier populate as BLOCKED on the zone class, rather than running
an --apply that no-ops green. (F-17)
4. Add care_notes and migrate the eleven sentence-valued care_tier cells out of the enum column.
(F-02)
---
| Class | Count | Findings |
|---|---|---|
| MISSING | 5 | F-06, F-10, F-11, F-17, F-18 |
| WEAKER | 6 | F-01, F-02, F-04, F-07, F-08, F-14 |
| DESIGNED-UNBUILT | 4 | F-09, F-13, F-16, F-19 |
| DIVERGENT-BY-DESIGN | 2 | F-05 (scope boundary), F-12 (undeclared) |
| COVERED | 2 | F-03 (as practice), F-18's DR-2 half |
19 findings. Note F-03 and F-18 each split across two classes and are counted once at their primary
verdict; the COVERED column records the halves that need no action.
Priority order for the director: F-10 and F-11 (the deity rule has no home and the road makes six
undeclared decisions) · F-01 (the authoring pack contradicts the registry on care) · F-17 (a Wave-0
action that will silently no-op) · F-02 (the enum to be copied is already 15 values) · F-08 and F-04
(the two structural lessons the title-set exists to teach) · F-14 (cheap, and it seeds Wave 2).
choice, not loosening it — but I flag that the choice is materially stricter than CVD
Component 7 and that it is the road's only articulated deity treatment, so it will propagate to
Ch 72's living Hindu/Buddhist/Jain deities by default unless presence_class lands first. A
director read on whether the audit-only rule should be re-scoped is warranted; I did not take that
decision.
REALM_DESIGN_PROGRAM itself, which is a director-owned document.I am read-only and have edited nothing. The Ch 74 half of that finding touches C-1's premise, which
is a live Josh brief — surfacing rather than resolving.
canon change, but per the standing rule it is not "trivial mechanical": director-level apply, fresh
critic, full gate suite.