0093 — Consolidated rulings, 2026-07-10 session¶
Status¶
Accepted (ratified by Max, 2026-07-10). Distributed-fold (37/41) — 37 ratified items prose-folded into their per-item target docs, each carrying a (folded from ADR-0093, re-verified 2026-08-07) citation — defer to those pages for the canonical description; this ADR's own body is now a compact pointer table (see Decision below), not a restatement. (re-verified 2026-08-07; item 40 tip-recheck 2026-08-17) 2 of the 37 (items 20, 25) remain only partially or not yet shipped despite their original "already specified"/"go" framing — flagged ⚠️ in the pointer table, with the corrected status folded into the target doc, not silently upgraded to ✅. Item 40 (wreck-only emergency cargo) is now tip-shipped — legacy _transfer_emergency_cargo retired; see pointer row. 4 items remain Pending, not ratified, not folded: P1 (ARIA "market" memory_type retire-vs-register), P2 (citadel-grid cutover calibration constants), P3 (admin-ui lint MFA carve-out sign-off — code-level, no canon fold), P4 (LLM provider funding trigger). Covers 41 decisions across 9 batches, ruled directly by Max in a structured session.
Context¶
A single ruling session on 2026-07-10 closed a backlog of open canon questions, provisional numbers, and gated GO/no-go calls spanning blockers, design numbers, policy/UX, infrastructure, RBAC, payments, ARIA-LLM, and economy/combat-law. This ADR is the consolidated, traceable record of every decision made in that session — one entry per item, numbered to match the session's own batch numbering for cross-reference. The prose fold into each affected FEATURES/ / SYSTEMS/ / OPERATIONS/ / DATA_MODELS/ doc is landed separately by parallel doc-workers; this ADR points at the target path for each item but is not itself the canonical restatement.
Two items surfaced a genuine conflict between the ruling and the current doc state during authorship — items 12/30 (ARIA tier-naming) and item 20 (local_rank vocabulary) — flagged ⚠️ in the Decision pointer table below and called out again in Consequences; the tier-naming conflict is now resolved by the Amendment below, the local_rank conflict is not.
Decision¶
Distributed-fold pointer table (37/41 confirmed items). Each row's substance is now the target doc's own prose, cited there as (folded from ADR-0093, re-verified 2026-08-07) — this table is a locator, not a restatement; see the target doc for canonical wording. Two items (marked ⚠️ below) were re-verified during this fold pass and found not fully shipped despite the ADR's original framing — the target doc carries the corrected status, not this table.
| # | Item | Target doc | Fold status |
|---|---|---|---|
| 1 | ARIA memory encryption key: wire persistent | OPERATIONS/aria.md |
✅ Shipped, folded |
| 2 | ARIA memory_type literals: rename to canon keys ('market' left unmigrated → Pending P1) |
DATA_MODELS/aria-data-index.md |
✅ Shipped, folded |
| 3 | Defense-underfunding cascade: merge both readings | FEATURES/economy/port-ownership.md, FEATURES/economy/station-protection.md |
✅ Shipped, folded (previously reconciled) |
| 4 | multiregion-owner-500: explicit region_id + 400-on-ambiguity |
OPERATIONS/multi-regional.md |
✅ Shipped 907c0c7c, live-verified, folded |
| 5 | Tractor-lock: all four provisional numbers ratified | FEATURES/economy/station-protection.md |
✅ Shipped, folded |
| 6 | Scout fleet-role: +10% first-shot / −5% defense | FEATURES/gameplay/fleet-tactics.md |
✅ Shipped, folded |
| 7 | Contract insurance premiums: 2% / 5% / 10% | FEATURES/economy/contracts.md |
✅ Shipped, folded |
| 8 | Region lifecycle consumer-states: grace = ALIVE; generation_corrupt + attachment_pending = DORMANT | SYSTEMS/region-lifecycle.md, SYSTEMS/npc-scheduler.md, SYSTEMS/pirate-ecosystem.md |
✅ Shipped, folded |
| 9 | Confirm-gate UX standard: inline confirm, no modal | OPERATIONS/ui-flows.md § 3.6 |
✅ Shipped, folded |
| 10 | UIADM-SECURITY-PLAYER-OPS: gated with Wave-12 RBAC | OPERATIONS/admin-ui.md |
✅ Ruling folded (feature itself still 📐 design-only, gated as ruled) |
| 11 | P5 starvation: all three readings ratified (a/b shipped, c intentionally unbuilt) | SYSTEMS/planetary-production-tick.md |
✅ Shipped, folded |
| 12 | ARIA operator-tier multipliers: 1.0/1.1/1.2/1.35/1.5 | FEATURES/gameplay/aria-companion.md |
✅ Shipped, folded — tier-naming flag resolved by the 2026-07-10 Amendment below |
| 13 | create_all package: ship both (removal + required schema-parity gate) | ARCHITECTURE/deployment.md, ARCHITECTURE/dev-environment.md |
✅ Shipped, folded |
| 14 | AI-dialogue layer-4 policy: block four categories | SYSTEMS/aria-dialogue.md |
✅ Shipped, folded |
| 16 | Bang WOs: WO-BANG-ONEWAY-ALGO + WO-BANG-PLANET-SEED-EMIT | OPERATIONS/bang-integration.md |
✅ Shipped, folded |
| 19 | RBAC foundation chain: greenlight all three | ADR-0058, OPERATIONS/admin-ui.md, DATA_MODELS/admin.md, OPERATIONS/rbac-admin-scopes.md |
✅ Shipped, folded |
| 20 | Regional RBAC pair: go both (RegionalPermission + local_rank closed vocab) |
FEATURES/gameplay/regional-governance.md, DATA_MODELS/gameplay.md |
⚠️ Ruling folded, but re-verify (2026-08-04) found neither half shipped — local_rank is still an unvalidated String(50), RegionalPermission enforcement is called from zero routes. Design-only, RBAC-gated fix. |
| 21 | Orphaned GC admin methods: wire as admin routes | OPERATIONS/admin-ui.md, OPERATIONS/monetization.md |
✅ Ruling folded (sequenced behind item 19 as ruled) |
| 22 | ARIA GDPR purge: go, self-or-admin-scoped, all per-player aria_* tables |
OPERATIONS/aria.md |
✅ Shipped, folded |
| 23 | Region takeover: go — $25/mo PayPal, SELECT FOR UPDATE serialization |
OPERATIONS/monetization.md |
✅ Shipped, folded |
| 24 | GC-lapse window: go — 7-day window, one free bypass transport | SYSTEMS/region-lifecycle.md § GC-lapse foreign-asset liquidation window |
✅ Shipped, folded |
| 25 | Termination pair: gate-cascade now; citadel-grid shadow-cutover deferred | SYSTEMS/region-lifecycle.md |
⚠️ Ruling folded, partially shipped — dispatch_station_termination is live (relocated/lost/skipped cascade; re-verified 2026-08-16, LEG-70); citadel-grid half stays open as Pending P2; takeover remains design-only. FEATURES/SYSTEMS status markers stay 🚧 Partial (no implied-done on the deferred half). |
| 26 | Both destructive drops approved (Player.reputation, aria_trading_patterns) |
DATA_MODELS/player.md, ADR-0038 |
✅ Approved, folded |
| 27 | Resonance ledger numbers adopted | ADR-0092 §4 | ✅ Folded (dark behind item 17) |
| 28 | Dark trio go: narrative haggling, Deep-Brain retrieval, true-spend metering | SYSTEMS/aria-dialogue.md |
✅ Authorization folded — all three remain dark/design-only as ruled, not yet built |
| 29 | Lattice inference adopted | SYSTEMS/course-plotting.md |
✅ Folded (dark behind item 17) |
| 30 | Consciousness-diversity thresholds adopted | DATA_MODELS/aria-data-index.md |
✅ Folded — tier-naming flag resolved by the Amendment below |
| 31 | Warp/drone bonuses: go with item-12 tier ladder | ADR-0092 §5 | ✅ Folded (dark behind item 17) |
| 32 | Contract insurance WO: go | FEATURES/economy/contracts.md |
✅ Shipped, folded |
| 33 | Port-upgrade catalog: go, provisional prices | FEATURES/economy/port-ownership.md |
✅ Ruling folded (feature 📐 design-only, provisional as ruled) |
| 34 | Black-market fence: go, provisional rates | FEATURES/economy/black-market.md |
✅ Ruling folded (fence venues 📐 design-only, provisional as ruled) |
| 35 | Professions pipeline: go, provisional costs | FEATURES/planets/professions.md |
✅ Ruling folded (pipeline 📐 design-only, provisional as ruled) |
| 36 | L0 storage cap: 10,000 units/commodity | SYSTEMS/planetary-production-tick.md, FEATURES/planets/citadels.md |
✅ Shipped, folded |
| 37 | NPC contract-board capacity ladder: 40/32/26/20/16/12/10/8/6 | FEATURES/economy/contracts.md |
✅ Shipped, folded |
| 38 | CONCORD: seed faction row, −200 rep on Sentinel kill | FEATURES/gameplay/police-forces.md, DATA_MODELS/gameplay.md |
✅ Shipped, folded |
| 39 | Suspect/wanted triggers: merge ruling (union set) | FEATURES/gameplay/ranking.md, FEATURES/gameplay/police-forces.md |
✅ Shipped, folded — citation bug fixed (see below) |
| 40 | Destroyed-pilot emergency cargo: wreck-only | FEATURES/gameplay/ships.md |
✅ Shipped on tip — legacy _transfer_emergency_cargo retired; non-voluntary destroy_ship leaves hold cargo for CombatService._spawn_cargo_wreck (verified origin/feat 2d536457 + test_adr0093_item40_wreck_only_cargo.py, re-checked 2026-08-19 / LEG-566; ruling unchanged). |
| 41 | Lapsed-player re-engagement email: go | OPERATIONS/retention.md |
✅ Shipped, folded |
Citation-bug fix. Item 39's original wording cited "ADR-0007" as part of the existing suspect/wanted trigger set; ADR/0007-s8-cargo-wreck-mechanic.md is the Cargo Wreck ADR and does not define suspect/wanted triggers. The correct source is ranking.md's own Suspect Status / Wanted Status sections (§177-211), as now cited in the fold at FEATURES/gameplay/police-forces.md and FEATURES/gameplay/ranking.md.
Standing orders (no canon doc fold)¶
- 15 — Live-classifier red-team + $50/day breaker verification: authorized, pending funds. Feeds the standing order at item 17; no fold — a rollout gate, not game-mechanics canon. → ADR-0057.
- 17 — ARIA two-flag flip is a standing order. → ADR-0057,
SYSTEMS/aria-dialogue.md(item 28's dark-trio note cites this trigger). - 18 — Legacy browser sweep folds into deploy windows. No canon doc fold — a rollout/process decision, not game-mechanics canon.
Note: the per-player/instance/per-request ARIA cost-cap dollar figures (daily $2.00, instance breaker $50.00/day, per-request ceiling raised $0.05→$0.25) were ruled the same day and already landed directly in ADR-0092 §4 — they are not re-listed here as they were not part of this session's numbered batch list.
Pending (not decided)¶
These four items surfaced during the session but were not ruled — they remain open questions, not decisions:
- P1 — "market" memory_type. The live trade hook writes a
"market"ARIAPersonalMemoryrow redundant with the canoncommerce.trade→ARIATradingObservationrow from the same hook. Options on the table: (a) retire the redundant write; (b) register a dedicatedARIAPersonalMemory-backed market stream key. Tracked inDECISIONS.md§ aria-market-memory-type. - P2 — citadel-grid cutover calibration constants (deferred from item 25 to a dedicated session). Tracked in
DECISIONS.md§ citadel-grid-shadow-cutover-calibration. - P3 — admin-ui lint MFA carve-out. Two held lint-carve-out lines plus the
@eslint/jsdevDependency need sign-off (new-dependency gate). Lives inSectorwars2102's admin-ui — no canon fold in this repo. Tracked inDECISIONS.md§ admin-ui-mfa-lint-carveout. - P4 — LLM provider funding. The trigger condition for the standing order at item 17; not itself a ruling. Tracked in
DECISIONS.md§ aria-llm-provider-funding.
Consequences¶
- Traceability, not restatement. This ADR is the session's record; the durable canon prose lives in the
FEATURES//SYSTEMS//OPERATIONS//DATA_MODELS/paths cited in the Decision pointer table above, each folded row bearing its own(folded from ADR-0093, re-verified 2026-08-07)citation. Where this ADR's summary and the fold diverge in wording, the fold is authoritative for mechanics; this ADR is authoritative for "what was decided and when." - The tier-naming conflict (items 12/30 vs. ADR-0092 §5) is resolved by the Amendment below — folded to the canonical Dormant/Aware/Awakened/Sentient/Transcendent sequence in both target docs. The
local_rankvocabulary conflict (item 20) is not resolved — re-verification found the ruled closed vocabulary andRegionalPermissionenforcement both unbuilt; tracked ⚠️ in the pointer table, RBAC-gated fix required, not silently papered over. - Re-verification against current code (2026-08-07, station-cascade half refreshed 2026-08-16 / LEG-70; item 40 tip-recheck 2026-08-17 / LEG-439) found items only partially or not yet shipped despite their original framing as already-specified/confirmatory: item 20 (regional RBAC, neither half wired), item 25 (gate/station termination cascade now live; citadel-grid half still Pending P2). Item 40 is tip-shipped (legacy
_transfer_emergency_cargoretired — pointer row ✅). Remaining ⚠️ flags stay in their target docs rather than marked ✅ — the fold pass corrects status, it does not rubber-stamp the ADR's own optimism. - Items still ratifying already-fully-specified design as authorization, not new numbers (7, 24, 41) — the doc-fold there is confirmatory.
- Items 27-31 stay dark behind
ARIA_LLM_CHAT_ENABLED/ARIA_PROMPT_CLASSIFIER_ENABLEDuntil the item-17 standing order fires (gated on P4 funding) — no player-facing surface changes until then. - Items 19-26 (RBAC + payments) and 32-41 (economy/combat-law) are Wave 12 and Wave 14 build targets respectively; this ADR authorizes the work without sequencing it.
Related¶
- ADR-0007 · ADR-0032 · ADR-0037 · ADR-0038 · ADR-0049 · ADR-0052 · ADR-0054 · ADR-0055 · ADR-0057 · ADR-0058 · ADR-0062 · ADR-0091 · ADR-0092
- Doc paths cited inline per item above.
Amendment (2026-07-10) — tier-naming reconciliation¶
Items 12 and 30 above transcribed the ARIA consciousness-tier sequence as "Dormant → Awakened → Attuned → Sentient → Transcendent" — a same-day transcription drift from the canonical tier names ratified by ADR-0017 and used throughout FEATURES/gameplay/aria-companion.md, DATA_MODELS/player.md, and ADR-0092 §5: Dormant / Aware / Awakened / Sentient / Transcendent. No "Attuned" tier exists in canon.
This amendment reconciles items 12 and 30 to the canonical tier names by ordinal position; the ruled values are unchanged, only the tier labels attached to them:
- Item 12 (ARIA operator-tier multipliers) — 1.0 / 1.1 / 1.2 / 1.35 / 1.5 map to tiers 1 → 5 in canonical order: Dormant 1.0 / Aware 1.1 / Awakened 1.2 / Sentient 1.35 / Transcendent 1.5.
- Item 30 (consciousness-diversity promotion thresholds) — the four tier-up values 3 / 6 / 10 / 14 map to the four promotions in order: →Aware 3 / →Awakened 6 / →Sentient 10 / →Transcendent 14.
- Item 29's lattice conjectural-hop accuracies (Awakened 60% / Sentient 75% / Transcendent 85%) already used the canonical names (tiers 3/4/5) and are unaffected by this amendment.
Items 12 and 30 above are retained verbatim as the session record; this amendment supersedes their tier-naming only. DATA_MODELS/aria-data-index.md and FEATURES/gameplay/aria-companion.md fold to the canonical names per this amendment, not per items 12/30's original wording. This also resolves the tier-naming flag raised in ADR-0092's addendum.