Files
nimmerworld.eachpath.local/architecture-index.md
dafit 5f216aaf5f v0.8 + v0.9 — intimate-architecture absorbed, driver-tier locked,
style-spine created, DESING retired, schemas relocated

  The owl-breakfast architectural arc from 2026-04-25 night through
  2026-04-26 morning. Two version-bumps landing as one commit because
  they share the working-tree state and complete a coherent design-window.

  v0.8 — intimate-architecture, driver-tier lock, style-spine:

    * Three-tier intimacy structure (standard-rental, premium-waifu-
      with-traitor-marker-and-pruning, in-between clasp) — same v0.7
      machinery, opposite value-flows. Premium-net technical excellence
      makes the moral-weight-of-pruning land as informed-consent ethics.

    * Deletion-as-spectacle: in-net minds as pure compute; imperial
      broadcasts execution-as-content; Memorialist counter-archive as
      in-fiction protest against deletion-spectacle commerce.

    * EVE-principle vocation-substrate of the imperial-net market: every
      product produced by NPC labor; no silent feeding; body-modder
      structural-tragedy generalizes to all imperial-net-feeding vocations.
      World-gen Phase-2 ruleset must handle vocation-distribution.

    * Clasp endgame (Phase A-E): mini-game entry → body-mod progression
      → exit-chassis → human-mesh-visible-to-pair → clasp = two-bodies-
      two-meshes → dual-body-dual-mind-dual-shift cascade → automatic
      hunt-pressure. Identity-as-trait-emergent made felt rather than
      just structural.

    * waifu.sqlite as third local store (audited counterpart to
      clasp.sqlite; manual-prune mechanism with explicit-implications
      consent UI as moral-gravity discipline).

    * Intimacy-as-recursive-lemniscate: same machinery as dialog
      (slot-tokens, cursor at axis-crossing, alignment-accumulator,
      sum-strategy reduction); sex-positions as designer-fixed catalog
      entries; body-parts as visible expression of trait-state.
      Cross-context-consistency operationalized.

    * Driver-tier locked to Gemma 4 E4B (Apache 2.0, 4.5B effective,
      128K context, speech-capable) under new "tier-by-role binary-
      deferred" discipline: locking requires prototype-criticality +
      irreplaceable license/capability combination. Optional Ring-A
      upgrade: 26B-A4B MoE for upper-consumer GPUs, single-LoRA-on-
      routed-experts. Resolves 4 prior open questions (LoRA-blend →
      single-LoRA-per-turn-selection driven by gesture_alignment_
      accumulator; LoRA rank → benchmark-resolvable; sampling-knobs →
      benchmark-resolvable; 8 Hellenic trait enumeration → canonical
      wheel-mapping in style/trait-palette.md).

    * style/ directory introduced: style-index.md (skeleton + spine-
      rule: "trait-palette is exclusively chromatic; achromatic
      reserved for UI/environment so diegetic text rendering can skip
      the textbox") + style/trait-palette.md (canonical 8 traits as 4
      oppositional pairs at 180° on the artist's color wheel:
      Eros↔Sophrosyne, Philotes↔Dikaiosyne, Aletheia↔Moira,
      Mnemosyne↔Kairos. Schoolchild-simple descriptions paired with
      each Greek canonical name).

  v0.9 — directory cleanup completing the arc:

    * DESING-VISION.md (1899 lines, v0.1 first-pass narrative-design
      doc) retired — most content absorbed across v0.4-v0.8; bare-
      minimum extracts (Tonal Register + Tragic-Romantic Register +
      Authorial Politics + Reference Lineage table) now live in README
      so the project's identity anchor stays visible at the entry
      point. Full DESING-VISION content preserved in git history.

    * findings.md moved to schemas/findings.md — new top-level peer to
      architecture-index.md and style/. ~20 tables of DDL drafts as
      reference material; will get reviewed and progressively split
      per-domain as implementation begins.

    * Cross-references swept across 5 files (README,
      architecture-index, authority-and-decision, runtime-engine,
      style/trait-palette).

    * architecture-index.md trimmed: version-footer paragraphs removed
      per "git-is-changelog" discipline. From 374 → 287 lines; every
      remaining line load-bearing.

  The architecture is now organized for the implementation territory
  ahead. Each domain a typed-contract surface; cross-references
  explicit; filesystem mirrors the architecture's own typed-contract
  discipline at the directory layer.
2026-04-26 04:31:13 +02:00

36 KiB
Raw Blame History

Nimmerworld — Broad Architecture

Ground-up zone-based event architecture. Minds at the center, world as co-remembering substrate. Three registers of reality — physical, liminal, imperial. Rail topology outside, navmesh interiors inside. Trait-emergent identity. Color-as-vocabulary. Three-tier policy loop with imperial-budget-mortality. Tools, not quests. v0.1 initial draft 2026-04-24 morning; v0.2 expanded 2026-04-24 afternoon; v0.3 evening; v0.4 late-evening / early 2026-04-25; v0.5 deep-night-unable-to-sleep 2026-04-25; v0.6 post-bath / post-bus 2026-04-25; v0.7 owl-breakfast 2026-04-25 night through 2026-04-26; v0.8 split-into-domain-files + intimate-architecture absorbed 2026-04-26; v0.9 DESING-VISION retired + style-skeleton + schemas relocation + driver-tier locked Gemma 4 E4B 2026-04-26 — dafit + chrysalis.


Project structure

The architecture is organized as vertical-by-domain directories under nimmerworld/. Each domain owns its architecture.md plus (eventually) the server, client, schema, and test code that implements it. This file is the executive summary + cross-domain index holding global meta-lists.

nimmerworld/
├── architecture-index.md               ← this file (executive summary + global meta-lists)
├── political-register/
│   └── architecture.md                 ← Kafka-indifferent regime; three ontological registers; three-tier policy loop; imperial budget; insolvency-spiral; corruption + double ledger
├── topology-and-rendering/
│   └── architecture.md                 ← rail+grid topology; asset economy; color-language; three-shader philosophy; diegetic relays
├── runtime-engine/
│   └── architecture.md                 ← lemniscate runtime; slot-tokens + verifier-flags; gesture-alignment-recursive-lemniscate (v0.7); emergent zones
├── identity-and-personhood/
│   └── architecture.md                 ← three-body system; mods as trait-bearers; ternary-gate substrate; emergent needs as micro-factions
├── authority-and-decision/
│   └── architecture.md                 ← hierarchy; bidirectional cascade; District Director Decision Architecture; rings as structural pattern
├── player-experience/
│   └── architecture.md                 ← player-as-perturbation; voice + gesture as parallel trait-vocabularies (v0.7); tools-not-quests
├── narrative-composition/
│   └── architecture.md                 ← Compositor (v0.7 worked-example, three-tiers, world-gen-as-init); reflexive Dream-process
├── inference-and-memory/
│   └── architecture.md                 ← LLM tiering (3 rings + opt-in data tiers); local memory architecture; runtime sampling knobs
└── scale-and-transport/
    └── architecture.md                 ← compute allocation; horizontal scale (UID-routing, sharded GMs, pgnats + republish/replay)

Quick reference — concept → domain-file

If you're working on... Read
Political-economy substrate; faction broadcasts; imperial budget; insolvency-spiral political-register/architecture.md
Rail+grid topology; color-language; shaders; diegetic relays topology-and-rendering/architecture.md
Zone runtime; lemniscate; gesture-alignment; emergent zones runtime-engine/architecture.md
NPC identity; trait-vector; ternary-gates; mods identity-and-personhood/architecture.md
Authority flow; intelligence channels; director decision-surfaces authority-and-decision/architecture.md
Player input (voice + gesture); circle UI; universal translator player-experience/architecture.md
Compositor; world-gen-as-init; reflexive Dream-process narrative-composition/architecture.md
LLM tiering (Ring A/B/C); local-first memory; sampling knobs inference-and-memory/architecture.md
Horizontal scale; pgnats; sharding; compute budget scale-and-transport/architecture.md

The remainder of this file holds the cross-domain meta-lists: Key moves (consolidated executive summary), Mapping to phoebe task list, What this retires across the architecture's evolution, Open questions still in flight, and the version-footer history.

Key moves (consolidated)

  • The machine doesn't care. Indifference-optimization, not malice. Kafka-lineage.
  • Three ontological registers — gameworld, liminal, imperial-net — same world, different shaders.
  • Rail+grid topology, freeform-player + railed-NPCs, plug-in verb. Topology = politics.
  • Interior-as-zone. Same primitive scales from city to sofa.
  • Color-language as pre-verbal trait-vocabulary. Persistent + event-flash + drift; cross-register; faction-politics.
  • Base-limb palette + trait-textured variance. Asset-economy and worldbuilding-thesis agree.
  • Three-body system + intrinsic/expressed trait-vector split. Identity emergent, not assigned. Mods modify expressed.
  • Mods as trait-bearers in three classes (amplifier/bridge/divergent/mask). Self-alienation tax encoded as pricing.
  • Emergent-needs as micro-factions. Zones observe, signals broadcast.
  • Ternary-gate substrate (CLOSED/STABLE/OPEN + wave-correlation + decay). Single primitive, all layers. STABLE-as-active.
  • Three-tier policy loop (Imperium → GM → Districts → reports up → Imperium).
  • Imperium as meta-faction. Demands are priority-weights and enforcement-rules, not specific outcomes.
  • GM is middle-management. Authority without sovereignty. Can cheat against imperium.
  • Three intelligence flows (chain reports, direct overseer-to-imperium, formulated downward).
  • Three Aletheia veils, four Memorialist ledgers. Political-epistemology as level-design.
  • Asymmetric self-report. NPCs report needs (interior); audit-overseers report output (objective).
  • Lifeforce four-tier hierarchy (NPC / district / GM / imperium).
  • Lifeforce is NPCs, measured. The director's budget; the GM's signal; the imperium's heartbeat.
  • Imperial budget makes the regime mortal. Insolvency-spiral as endgame.
  • Specter-vs-boot. Policy-issuance free; enforcement expensive.
  • Imperial-net bypass. Net-revenue → imperium; districts get nothing. Platform-capitalism encoded.
  • Body-modder structural-tragedy. The class whose awakening matters most.
  • Calibrated-misery as imperial optimum. Requires designer-guardrails to prevent training-toward.
  • Shifts on NPC rows. Daily rewrite; shift_history append-only.
  • Silence > scream. Crisis-tools unlock on silence-confirmation; do not sunset.
  • Authoritarian ratchet. Incrementally more authoritarian as optimization-artifact.
  • Migration / exodus / formal-retirement as three GM response-gradients.
  • Dumps-pipes-districts. Topology IS economy IS rendering IS drama-distribution.
  • Pipes are heterotopia. Low-density high-interactivity transit-corridors.
  • Three-layer digital ontology. Mini-game-as-consent-by-effort. Walls render three contents.
  • Liminal is the only permanently unsurveilled layer. Architectural encoding of "the right to dream."
  • The machine funds its own subversion because subversion isn't in its cost model.
  • Director cheat-tools + double-ledger. Corruption emerges from pressure; Memorialists keep true accounting.
  • Aletheia-truth-has-victims. Exposure has structural consequences for those sheltered by corruption.
  • District Director Decision Architecture with decomposed surfaces, typed tools, lifeforce-budgeted escalation.
  • Three-shader philosophy + color-language. One geometry, three readings, trait-modulated.
  • Reflexive Dream-process at every layer. Each tier learns; each tier needs guardrails.
  • Reward-function-as-political-manifesto. Designer's ethical stance encoded against simulation's optimization-logic.
  • Tools, not quests. Continuous simulation-pressure + verb-vocabulary = literature-register emergent narrative.
  • GM × Compositor split. Equilibrium-seeker (aggregate observation, catalogue-event selection, tool-granting) cleaved from narrative-composer (perspective-gathering, canon-authoring, back-write packaging). Different cognitive shapes, different inference profiles.
  • Cyclic forward-prop / back-write loop. Meta-lemniscate at system scale — perception ascends, canon descends, cycle closes; the world learns its own story.
  • Catalogue + tools as typed contract. GM dispatches typed events with typed tool-grants; director consumes typed dispatch, not freeform prose. Provenance flows end-to-end.
  • Local-first memory. primary.sqlite + fallback.sqlite + clasp.sqlite per player; embedding model running beside; sync at login/logout boundaries.
  • Memory classes + trait-graded importance. Cornerstone / birthright / working / volatile with class-specific death-rules; importance is a trait-axis-vector engagement profile, not a separate scalar.
  • Clasp store as Ring A*. Physically non-syncable privacy primitive; recordable only in the in-between dimension; lifeforce-cost is the price of privacy.
  • Three-tier knowledge stack. World canon / district canon / primary memory [+ clasp if in-between]; layered retrieval, per-layer propagation cadence; locality emerges from schema.
  • Information propagation pacing. Marx-in-the-schema applied to epistemics; staleness as a feature; courier/news-trader/frontier-rumor primitives fall out for free.
  • Horizontal scale. UID-keyed routing; stateless Compositors on demand; ephemeral Director-routines per UID; sharded GMs with cross-shard equilibrium-consensus; pruning at every layer.
  • pgnats-native transport. Transactional outbox native to the database (preferred); district-as-distribution-coordinator fallback. Subject-as-routing mirrors UID hierarchy.
  • Diegetic relays. Architecture's pulses (forward-prop, back-write, GM-dispatch, equilibrium-recompute) made visible/audible in-world; relay-density is the legible gradient of the rings-of-access.
  • Tier-by-role, not tier-by-binary. Architecture specifies what each model-tier must DO; specific binary selection deferred to findings/establishment phase.
  • Voice + gesture as parallel input modalities. Voice carries content (speech-to-text + text-to-speech run locally for every player); the trait-circle UI carries gestural alignment. Voice-as-biometric off the network universally; STT/TTS placement is fixed independent of dialog-tier Ring choice.
  • Designer-fixed cosmology, player-curated arrangement. Word→trait-color mapping is designer-authored corpus; player progression unlocks entries; player curation arranges learned entries within 1-3 profiles. Same alphabet for everyone; personal sentence-structure.
  • Universal translator as the player's diegetic device. Broken-tablet-with-upgrades; bundles linguistic-decryption, gesture-curation, and persistence-across-deaths into one in-fiction tool earned and refined across the playthrough.
  • Hardstops vs. feedback gestures. Hardstops (~8-16, hardcoded, unremappable) fire definitive subsystem-actions for unforgeable critical signals; ~192 player-curated slots ride as feedback into the gesture-alignment-accumulator.
  • Gesture-alignment as recursive-lemniscate. Lemniscate-bound integration of player gestures into a typed trait-vector summary at axis-crossings; one-turn-behind systemic; continuous-visual cosmetic; sum-strategy reduction. Same primitive recursively applied at one tier deeper.
  • The Compositor at three tiers. Zone-event / district-event / world-event scopes use the same primitive recursively; UID-rooted event-trees compose at any scope. World-events emerge from cross-district canon-rollups under a parent GM-level event_uid.
  • World-gen as init-function (Compositor-at-design-time). World-server and district-server generation emits canon-rows in the same schema as runtime; same primitive at design-time and runtime; no cold-start; data-flywheel runs retroactively.

Mapping to phoebe task list

  • Thalamus (NATS orchestration) = imperium + GM + arbitration substrate + Dream-process substrate
  • Specialist composition system = overseers + directors + NPC-minds as composable profiles
  • NPC schema = trait-vector (intrinsic + expressed) + memory stack + current_shift_* + needs + inner-body-projection + mod-slots + lifeforce + net-access-gate
  • shift_history = append-only completed shifts per-NPC-per-day
  • emergent_signals = zone-emitted relational transitions
  • district_reports = per-cycle aggregates with lifeforce_signal (reported + actual)
  • decision_log = per-decision audit trail at every tier
  • mind_pool = recycled minds with memorialist_protected flag
  • cells.wall_content_per_register = three-layer wall rendering
  • rail_segments = topology graph with rich metadata per edge
  • interiors = small navmesh-zones with slot-inventory
  • mods + npc_mod_slots + mod_wear_history = mod-economy + Memorialist-relevant inheritance
  • trait_colors = canonical color/motion mapping per trait
  • proximity_candidates = lightweight ephemeral zone-detection
  • district_cheat_ops = director's illicit ops ledger
  • imperial_policies + imperial_broadcasts = imperium's policy-issuance history
  • overseer_reports = direct-to-imperium intelligence flow
  • imperial_to_gm_formulations = selective-disclosure downward
  • imperial_budget_ledger + imperial_expenditures + imperial_construction_projects = imperium budget and obligations
  • imperial_net_transactions = the bypass-mechanism with capture-split
  • memorialist_true_ledger = four-column ground-truth-vs-reported archive
  • NATS namespace registry = zones + factions + districts + emergent-signals + lifeforce-gates + imperial-broadcasts + overseer-reports + formulations
  • pgnats on phoebe-dev = phoebe as first-class actor for memory-writes, decision-logs, gate-transitions
  • r0 → r1 generation pipeline = trait-LoRA training-data (shared with nyx-training)
  • Adopt Unsloth training patterns = LoRA + multi-tier-policy training infrastructure
  • Probe-to-phoebe pipeline = LoRA + policy evaluation across all four Dream-process tiers
  • compositor-agent = narrative-composition worker; pulls from transient-waiting-flag, gathers per-player perspectives, emits canon to GM, packages back-write SQLite-fragments
  • gm-equilibrium-engine = catalogue + event-selection + tool-granting against equilibrium-targets; NOT the narrative-writer (that's the Compositor)
  • event_register + transient_waiting_flag = active-events table per GM-shard + per-district; completed-events buffer awaiting Compositor pickup
  • catalogue + tool_grants = typed-event catalogue + per-event-chain tool-vocabulary issued by GM to director
  • player-local-memory = primary.sqlite + fallback.sqlite + clasp.sqlite per player + embedding-beside (sqlite-vec or equivalent)
  • memory_classes = cornerstone / birthright / working / volatile with class-specific lifecycle + death-mechanics
  • trait_engagement_vector = per-memory-row trait-axis profile reusing +1/0/-1 grammar; pruning function input for working-memory class
  • world_canon + district_canon = three-tier knowledge stack tables in phoebe; propagation metadata (priority/scope/rate/ttl) per row
  • propagation_pacing_config = per-event-class rules for how canon ripples through districts
  • relay_signal_layer = diegetic system-state visualization mapping (system event → relay manifestation → district visibility)
  • gm_shards + shard_equilibrium_consensus = multi-GM coordination tables (when sharding is active)
  • pgnats evaluation (under nimmerverse-core) = load-bearing decision (functional + throughput + durability + failure-mode)
  • trait_circle_corpus = designer-authored mapping from words/verbs to trait-coordinates; the cosmology table the universal translator decrypts into
  • player_translator_state = per-player translator instance: hardware-tier, unlocked dialects, vocabulary-catalog, hardware-upgrade-history, cross-body-persistent flag
  • player_circle_profiles = per-player per-profile circle-configuration (which entry in which sector-slot); 1-3 profiles per player; profile-switch-history; preserved across body-deaths
  • gesture_alignment_accumulator = per-slot-token verifier-flag for player-gesture trait-vector accumulation between crossings; cleared at crossing after integration
  • event_canon_summaries = typed perspective-bundles emitted at event-collapse into the transient-waiting-flag table: { event_uid, participant_uid, trait_summary }
  • world_gen_canon_rows = canon emitted by world-server and district-server generation; same schema as runtime canon, tagged with provenance-metadata (origin, world_gen_version_id)
  • player_npc_alignment_edges = per-(player, NPC) accumulated alignment-state; ternary-gate on the relational layer driven by gesture-alignment-deltas; modulates NPC's next-turn driver-tier-LLM parameters
  • hardstop_registry = the ~8-16 reserved hardstop gestures with fixed trait-mappings + subsystem-action bindings; not remappable; designer-authored

What this retires

  • NPC perception bubbles → zone slot-occupancy
  • Geometric perception (cone, radius, LOS) → subscriber-based event emission with trait-salience
  • LLM-per-NPC or LLM-per-action → LLM-per-slot-per-turn, mixed-fidelity
  • Static sampling parameters → per-turn director-composed sampling knobs
  • Pre-scripted zones / events → emergent from task-execution + shift-composition + emergent-signal + proximity
  • Single-purpose randomness subsystems → factions-as-demand-sources unified
  • Static gamemaster policy → reflexive Dream-process + hand-authored guardrails
  • 1Hz per-NPC ticking → shift-based + event-driven
  • Float-threshold dispatch for relational state → ternary-gate resonance
  • Abstract director compute-budget → lifeforce as grounded measurement
  • District-as-zone-container → district-as-specialized-organ with silence-gradient failure
  • NPCs self-reporting output → audit-overseer asymmetric observation
  • Zones as relation-state-owners → per-relation ternary-gate edges
  • Binary dream/awake → three-layer ontology with mini-game-gated access
  • Gender as character-creation choice → trait-derived inner-body emergent from lived experience
  • Monolithic LLM-prompt director → decomposed decision-surface architecture
  • Hivemind as one-faction-among-othersimperium as meta-faction policy-tier
  • GM as top-of-chainGM as middle-management between imperium and districts
  • Single up-channel reportingthree-flow asymmetric intelligence (chain + direct overseer + formulated)
  • Navmesh-everywhererail-graph outer-world + navmesh interiors + freeform-player
  • Authored character-modelsbase-limb palette + trait-textured variance
  • Single trait-vectorintrinsic / expressed split with mods modifying expressed
  • Cosmetic modstrait-bearing mods as political costume
  • Imperium as unbounded authorityimperial-budget gates enforcement; insolvency-spiral as endgame
  • District-revenue uniformbypass-mechanism (imperial-net captures directly)
  • Authored queststools-not-quests; verbs against simulation; emergent narrative
  • Stat-screens / HUD affinity-barscolor-language + shader-zone-detection as diegetic UI
  • GM-as-narrator (single role doing both equilibrium-and-prose)equilibrium-seeker GM × narrative-composer Compositor split
  • Cloud-only NPC dialog and memorylocal-first SQLite + embedding-beside per player; central canon over the cycle
  • UI-toggle privacydiegetic in-between dimension with lifeforce-cost; clasp.sqlite as Ring A* (physically non-syncable)
  • Generic memory importance scalar + monolithic contextmemory classes (cornerstone/birthright/working/volatile) + trait-graded importance + three-tier knowledge stack
  • "Every NPC knows everything immediately"paced canon-propagation as Marx-in-the-schema for epistemics
  • Vertically-scaled monolithic AI-NPC backendhorizontally-scaled architecture (UID-keyed routing, stateless workers, ephemeral actors, sharded GMs, pruning at every layer)
  • Manual outbox publisher servicespgnats-native transactional outbox (preferred); district-distribution fallback
  • System-state hidden behind HUD spinnersdiegetic relays making pulses visible and audible in-world
  • Specific binary commitments embedded in architecturerole-based tier specification; binary selection deferred to findings/establishment phase
  • Static designer-authored director toolkitGM-granted typed-tool vocabulary per event-chain, drawn from designer-authored catalogue (catalogue growable between patches; toolkits are dynamic per event)
  • Cross-NPC memory bleed at storage layerper-player local SQLite isolation atop v0.5 lemniscate-geometry foreclosure (two-layer defense)
  • Player input as freeform-prose-into-LLM → designer-fixed corpus + player-curated trait-circle + universal-translator-as-typed-mapping (anti-hallucination at the player-LLM boundary)
  • "Accessibility mode" as degraded-fallback → voice and gesture as first-class parallel modalities; non-speaking players use the gestural primary, not a lesser version
  • Continuous gesture-comparison touching the system bus → lemniscate-bound recursive integration at axis-crossings (compute scales with slot-count, not gesture-rate)
  • Compositor as single-tier role → Compositor as fractal/recursive across zone/district/world tiers, distinguished by UID-scope of the event-tree
  • World as cold-start at runtime-genesis → world-server and district-server gen as init-function; runtime starts from rich pre-populated canon at every layer
  • NPC speech-patterns as static against player-state → NPC speech-patterns dynamically modulated by accumulated player-NPC alignment-state via gesture-alignment-accumulator

Open questions

Resolved by v0.5 (or earlier)

  • Slot-capacity elasticity — can a zone grow slots dynamically → fixed roundtrip slot-count; elasticity lives on entry/exit queues; tune dial is pulse-rate, not slot-count (v0.5)
  • Zone-to-zone handoff (walking out of conversation into brawl) → exit-line of zone-A is entry-line of zone-B; interlemniscate-transit (v0.5)
  • Mobile zone boundaries (patrols, escorts, pursuits, migration-cohorts, exodus-flows) → the lemniscate is a topology and translates through world-space invariantly (v0.5)
  • Anthropic-faction's broadcast cadence + arbitration weight → cadence rides the same axis-rate as a phase-locked overlay; arbitration via rings-of-importance (v0.5)
  • Director/overseer spawn ownership per model class → director (or overseer) owns spawn-decision via policy-lookup (no LLM); LLM lives only at driver-context-pull layer (v0.5)
  • Aletheia-progression as level-up — how does the game recognize an act-of-awakeness → ternary trait-axis evaluation at event-end with named-axis; specific axis-mapping per Aletheia-event-class still open (v0.5; see new still-open below)
  • Reward function shape → first-pass composite with explicit guardrails (still tuneable) (v0.4)
  • Zone spawn-cadence v1→v2 path → lifeforce-gated rule-based v1; Dream-process-tuned v2 (v0.4)
  • Zone overlap policy → no for active slots; yes for emergent-state accumulation (v0.4)
  • "How does GM cheating get caught" → direct overseer-intelligence flow bypassing GM (v0.4)
  • "How does the regime have a finite endgame" → imperial-budget insolvency-spiral (v0.4)
  • "Why does imperial-net exist" → bypass-mechanism captures revenue directly (v0.4)
  • "How does the player learn 8 Hellenic traits" → color-language pre-verbal vocabulary (v0.4)
  • "How does asset-economy fit a two-person-plus-Nyx team" → base-limb palette + trait-texture; tools-not-quests (v0.4)
  • Director toolkit composition — designer-authored vs director-extensible → GM-granted per event-chain from designer-authored catalogue; directors consume typed dispatch, not freeform; catalogue grows between patches, toolkits are dynamic per event (v0.6)
  • How does NPC dialog stay fresh during quiet periods → three-tier knowledge stack (world / district / primary [+ clasp]) makes the layers deep enough that variation is structural; Compositor back-write continuously re-seeds canon; staleness foreclosed by loop's existence (v0.6)
  • How does the system scale to MMO size with AI-driven NPCs → horizontal architecture (UID-keyed routing, stateless Compositors, ephemeral Director-routines, sharded GMs, pgnats transport, pruning at every layer) (v0.6)
  • How does privacy work in practice without cloud-routing-everything → local-first SQLite per player; clasp.sqlite as Ring A* with no transport path; in-between as diegetic state with lifeforce-cost; "knowledge needs to travel" as foundational principle (v0.6)
  • Where does narrative composition happen — central or distributed → Compositor as central role distinct from GM; perception-up via prune-blob, canon-down via back-write SQLite-fragments; cyclic forward-prop / back-write loop (v0.6)
  • How is system-state visible to the player without HUD → diegetic relays mounted on buildings hum/glow/dim in patterns mapping to forward-prop, back-write, GM-dispatch, equilibrium-recompute (v0.6)

Resolved by v0.8

  • LoRA-blend vs. single-LoRA-selection inference semantics → single-LoRA-per-turn-selection driven by the player's gesture_alignment_accumulator: the dominant trait at each axis-crossing selects which trait-LoRA fires for the NPC's next-turn driver-context-pull. Personality emerges from selection-pattern across time, not from continuous blend at a moment. Driver-tier locked to Gemma 4 E4B (Apache 2.0, 4.5B effective, 128K context, speech-capable). v1 design item: hysteresis on selection to prevent personality-thrash. (v0.8; see inference-and-memory/architecture.md §LLM tiering)
  • LoRA rank selection — budget/quality → resolvable against E4B benchmark; concrete benchmark task in command-center, no longer architecturally open (v0.8)
  • Sampling-knob heuristics — where to start; how to learn refinements → resolvable against E4B benchmark; concrete benchmark task in command-center (v0.8)
  • The eighth Hellenic trait final enumeration → 8 traits canonical: Sophrosyne, Dikaiosyne, Philotes, Mnemosyne, Aletheia, Kairos, Moira, Eros — mapped to the artist's 12-segment color wheel as 4 oppositional pairs at 180° (Eros↔Sophrosyne, Philotes↔Dikaiosyne, Aletheia↔Moira, Mnemosyne↔Kairos). Each trait carries a Greek canonical name + schoolchild-simple description + canonical wheel-position + motion-signature. Canonical reference: style/trait-palette.md (v0.8)

Still open

  • Player-dialog handling — player-trait-LoRA for style-coherence, or bypass LLM entirely
  • Demand-arbitration algorithm v1 shape
  • The mini-game mechanic for liminal-maintenance (v0.5; refined v0.8) — exact gameplay action deferred pending design-research survey. Architecture commits to the role-contract (gates in-between entry; time-limited; lifeforce-cost; repeatable; muted-melancholic register; trait-circle-compatible; extensible to body-mod-progression Phase-B arc per identity-and-personhood/architecture.md §The clasp endgame); specific mechanic (juggling / rhythm / attention / gestural / decision-cascade / observation / hybrid) selected after surveying 20-year history of outstanding mini-interaction principles. Same "by-role, binary-deferred" discipline as LLM tiering — generalizes from sub-system selection to mini-game selection
  • Cross-layer economy balancing — net-revenue-share back to producer-districts at all? Pure-zero is currently sketched
  • Inner-body projection function — trait-vector → body-rendering (learned / hand-authored / hybrid)
  • Emergent-signal decay curves — per signal-type
  • Cross-district migration topology — pipe-capacity limits + cohort-traversal scheduling
  • Shader-trait modulation implementation — performance + rendering-consistency
  • Waifu-of-the-dead consent model — post-mortem consent gate? Or fully automatic harvest?
  • Character-editor pricing formula — trait-divergence cost scaling (linear / exponential)
  • Liminal-access trait thresholds — minimum traits to attempt mini-game
  • Imperium's Dream-process scope — singular policy-learner or committee-of-faction-sub-learners?
  • GM's anti-imperial corruption detection mechanicpartial: GM-as-equilibrium-seeker (v0.6) makes deviation-from-equilibrium the explicit error signal; clusters of -1 outcomes feed equilibrium-recompute and trigger catalogue-event dispatch to push back. A dedicated audit-vector for which kind of laxness/corruption is the source of the equilibrium-deviation is still an open detail.
  • Memorialist-archive accessibility to the player — when can a player query the four-ledgers? Through what interaction-class?
  • Imperial-net distortion algorithm — how exactly the net rewrites trait-colors toward consumer-palette
  • Trait-axis mapping per fuzzy-goal-class (v0.5) — which axis (Sophrosyne / Philotes / Eris / etc.) evaluates which goal-class? Need a designer-authored compile-table from goal-shapes to trait-axes
  • Rings-of-importance movement criteria (v0.5) — explicit thresholds (N consecutive +1 → climb) or Dream-process-learned policy?
  • Rings-of-importance scope (v0.5) — district-local rings, or imperium-global? Probably both, layered (district rings nested inside imperium rings)
  • Symmetric-vs-polyphonic loops (v0.5) — Loop A and Loop B treated identically (simpler), or carry foreground/background semantics (foreground-speaker / listening-co-presence — gives audience-dynamics for free)?
  • Verifier-flag conflict resolution (v0.5) — if priority_pull and mid_action are both set on the same token at crossing-time, which wins? Default: priority_pull wins (the zone's drama is overridden by world-level pull)
  • Goal-evaluation cadence (v0.5) — every crossing? Every Nth crossing? On-demand by spawning director? Cheaper to evaluate less often; richer drama if every crossing
  • Cycle cadence (v0.6) — when does the Compositor pull from transient-waiting-flag? Real-time? Per-event-end? Fixed interval (every N min)? Per-district-day? Different per district based on event-density? Likely configurable per event-class.
  • Compositor singleton vs sharded (v0.6) — one Compositor for the whole world, one per district, one per event-cluster, or one per faction? Each topology has different consistency / cost / coherence tradeoffs.
  • Multi-GM consensus on equilibrium (v0.6) — when GM-shards observe overlapping aggregates, how do they agree on equilibrium? Paxos/Raft for strong consistency, CRDT for eventual, faction-sharding so shards own non-overlapping equilibria, or hybrid?
  • Event causality across shards (v0.6) — if Director-A spawns an event that depends on Director-B's prior event in another district, UIDs alone don't enforce ordering. Vector clocks at event-register? Causal hashing? Shard-pinning of related events?
  • Compositor narrative-coherence at scale (v0.6) — when two Compositors compose canon for overlapping player-sets, how do they avoid contradicting each other? Sticky routing per player (one Compositor per player at a time), or read-replica of recent canon before composing, or post-compose conflict-detection-and-merge?
  • Propagation-pacing policy specifics (v0.6) — concrete rate/scope/ttl/priority defaults per event-class; how is "distance" measured between districts (graph-hops, lifeforce-similarity, faction-affinity)?
  • In-between fiction-wrapping (v0.6) — what diegetic events / locations / rituals make in-between affordable enough to be playable? Campfire / sanctuary / time-of-day / specific chambers / shared dream-construct? The mechanic is solved; the fiction-wrapping shapes how players approach it.
  • Relay-pulse-pattern vocabulary (v0.6) — what specific patterns signal what events? Slow pulse vs fast vs irregular vs cross-district shimmer vs going-dark; player-readable language to be designed.
  • Encryption-at-rest for clasp.sqlite (v0.6) — player-derived key with passphrase + recovery-codes? Drive-imaging-resistant by default, with affordances for player-key-loss recovery without compromising the privacy-guarantee.
  • pgnats-vs-district-distribution decision criteria (v0.6) — concrete go/no-go thresholds from evaluation: minimum throughput, durability behavior under broker failure, schema-evolution behavior, replay semantics. Output of the load-bearing pgnats evaluation task.
  • JetStream republish + replay as pull-from-checkpoint refinement (v0.6) — does republish-rule expressiveness cover our UID-hierarchy fan-out? Does replay performance work for N-hour reconnect-catchup? Is per-active-player durable-consumer cost (disk/memory/file-handles) acceptable at MMO scale? If yes, back-write delivery becomes config-driven NATS, not Go.
  • Memory class assignment policy (v0.6) — automatic from trait-engagement profile, designer-tagged categories per event-class, player-marked, or hybrid? When does a working-memory entry get promoted to cornerstone vs decay normally?
  • Ring C (commons) ambient population (v0.6) — partially answered (ambient world+district canon plus periodic GM-event spawns; relays absent or broken) but exact substrate for "what NPCs do in commons when no event fires" still open
  • Trajectory-aware gesture-alignment reduction (v0.7) — sum-strategy is v1 default; trajectory-aware (where the path through trait-space carries weight beyond the integral) is a v2 refinement. Does the Dream-process at the trait-LoRA tier learn trajectory-sensitivity, or is it explicit reward-function tuning?
  • NPC spectator drivers — whose hardware? (v0.7) — when a player is co-located with N NPCs, the player's local LLM presumably drives those NPCs. With M players and N NPCs in a single zone (asymmetric), who drives the surplus? Round-robin? Closest-player? District-owned-default? And what's the failover behavior if a driving-player disconnects mid-event?
  • Trait-summary schema specifics (v0.7) — likely an 8-float trait-vector per-participant per-event-collapse, but the exact representation (continuous [-1.0, +1.0] ternarized at threshold? Discrete +1/0/-1? Magnitude vs. signed?) needs landing for the Compositor's deterministic pickup at all three tiers.
  • Profile-switch as meta-gesture (v0.7) — what's the gesture-shape that switches profiles? Hardstop (cannot be remapped)? Designed-by-player like other gestures? And how is profile-switch witnessable by NPCs ("she just switched registers") — or is it player-private?
  • Hardstop set finalization (v0.7) — the v0.1 design-vision (retired in v0.9; preserved in git history) sketched ~12 candidate hardstops; the architecture commitment is "~8-16 reserved." Final set needs designer-decision: which signals make the cut, the visual-distinct-marker per-hardstop, and whether the claim-floor hardstop is genuinely a hardstop or emerges from a different mechanism.
  • World-gen version migration semantics (v0.7) — when world-gen v2 retroactively changes lore, gen-rows from v1 coexist with v2; how does the Compositor reconcile if a runtime back-write references something that v2's gen has overwritten? Probably explicit migration operations, but worth designing.
  • Cross-context consistency of the trait-circle (v0.7) — the v0.1 design-vision (retired in v0.9) committed to "same gesture-skill for dialog, combat, intimacy, maintenance, ritual"; v0.7 specified the dialog-context (lemniscate-injection mechanic) and v0.8 specified the intimate-gameplay-context. Whether combat / maintenance / ritual all run through the same circle is currently held as open scope.
  • Continuous visual feedback policy (v0.7) — exact rules for when NPC body-shader pulses (every gesture? threshold-only? trait-aligned-only? all gestures with intensity-modulated color?) and how this interacts with the audit-overseer's surveillance read of the same body-rendering.

Version: 0.9 | Created: 2026-04-24 | Updated: 2026-04-26