refactor(data): rename Krenn to Van Maanen's Star

System S-057 assigned to real star GJ 35 (Van Maanen's Star, DG white
dwarf at 13.9 ly). Renamed across all content, server code, docs,
decisions, wiki lore, and config files. 224 files updated.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-14 00:23:26 +01:00
co-authored by Claude Opus 4.6
parent 983d8037d1
commit e8263e209e
529 changed files with 1514 additions and 40873 deletions
@@ -21,7 +21,7 @@ Three rounds produced unanimous consensus on art direction fundamentals:
- **Weather:** Gameplay system (perception modifier, NPC disruptor, storyteller tool)
- **Z-levels:** 8-layer stack, walls Option B structural / Option A partitions, sprite stacking OUT
- **v0.1.1:** ~20-35 sprites, bar + corridor test scene, prove art direction in-engine
- **Planet:** Velen (Krenn System, temperate-maritime)
- **Planet:** Velen (Van Maanen's Star, temperate-maritime)
## Mood Board Images
@@ -22,7 +22,7 @@ The floor tile transition between two zones must read instantly — if you can't
## 3. Flags for decision recording
- **D-019 amendment (camera angle):** Record this precisely. The angle is Rimworld's shallow tilt — nearly orthographic top-down with enough forward perspective to reveal object and wall front faces. It is NOT classic 2:1 isometric, NOT 3/4 view. The grid remains square/orthogonal. Vision cone math remains 2D. "Top-down with depth" is the description; "isometric" is incorrect terminology for this angle.
- **Velen:** Record as canonical. Krenn System's primary habitable world. Temperate-maritime, ~0.9G, regular rain, morning/evening fog. Station Sova orbits Velen.
- **Velen:** Record as canonical. Van Maanen's Star's primary habitable world. Temperate-maritime, ~0.9G, regular rain, morning/evening fog. Station Sova orbits Velen.
- **"Where they hang" temperature:** Record the mechanism precisely. This is NOT an overlay tint. The smuggler's playthrough feels warmer because the smuggler physically spends time in warm-lit spaces (bar, dock floor, break room). The detective's playthrough feels cooler because the detective physically spends time in cool-lit spaces (Commission kiosk, observation posts, corridors). Same Light2D fixtures, different daily paths. The setting produces the feeling.
## 4. One sentence: the game's visual identity
@@ -164,7 +164,7 @@ This is where the team lead's direction on lighting as load-bearing gets concret
### Solar Light Color — Sova's Stellar Identity
The Krenn System star is a G3V — basically solar-type, slightly cooler than Sol. This means Sova's "natural light" (through viewports, light wells, exterior hull sections) should be:
Van Maanen's Star star is a G3V — basically solar-type, slightly cooler than Sol. This means Sova's "natural light" (through viewports, light wells, exterior hull sections) should be:
- **Base color:** `#fff5e0` — warm white with a slight golden cast. Not orange like a red dwarf, not blue-white like a hot star. Familiar. Almost like late-afternoon sunlight.
- **Viewport rendering:** Where the station has viewports or light wells, solar light pools in with this warm tone. It creates a subtle distinction between "areas with exterior exposure" and "deep interior" spaces.
@@ -335,15 +335,15 @@ Setting justification: the lattice is a precision instrument. It presents inform
**This is my domain.** The project lead is right that solar light color defines a location's mood before any other visual element. Let me ground this in the astrophysics and then map it to visual design.
### The Krenn System (Sova's Star)
### Van Maanen's Star (Sova's Star)
D-036 establishes the Krenn System as a G3V star -- a yellow-white main-sequence star slightly cooler than our Sun (which is G2V). This is deliberate: a G3V produces light that reads as *familiar but not identical to Earth sunlight*.
D-036 establishes Van Maanen's Star as a G3V star -- a yellow-white main-sequence star slightly cooler than our Sun (which is G2V). This is deliberate: a G3V produces light that reads as *familiar but not identical to Earth sunlight*.
**Krenn System solar color:**
**Van Maanen's Star solar color:**
- **Effective temperature:** ~5,700K
- **Visual character:** Warm white with a slight golden cast. Not as warm as a K-type orange, not as neutral as an F-type blue-white. This is "comfortable sunlight" -- the kind of light that makes a place feel *habitable* and *normal*.
- **Station implications:** External viewports and any sections with solar exposure receive this warm-white light. Interior sections rely on artificial lighting, but the ambient solar bleed through station hull and transparent sections gives Sova's "dayside" a warm-neutral base tone. The span gate terminal, which faces the system's primary traffic lane, may have viewport sections where Krenn's light filters in.
- **Artistic direction:** Krenn's light is the *neutral reference point* for the game. When the player is in the Krenn System, colors are "true." This is home. Other systems' light should be measured against Krenn as the baseline.
- **Station implications:** External viewports and any sections with solar exposure receive this warm-white light. Interior sections rely on artificial lighting, but the ambient solar bleed through station hull and transparent sections gives Sova's "dayside" a warm-neutral base tone. The span gate terminal, which faces the system's primary traffic lane, may have viewport sections where Van Maanen's Star's light filters in.
- **Artistic direction:** Van Maanen's Star's light is the *neutral reference point* for the game. When the player is in Van Maanen's Star, colors are "true." This is home. Other systems' light should be measured against Van Maanen's Star as the baseline.
### A Spectrum of Systems: Solar Color as Design Tool
@@ -352,13 +352,13 @@ The Settled Reach spans hundreds of star systems. Star type defines the ambient
| Star type | Color temp | Visual color | Mood/feel | Example use case |
|---|---|---|---|---|
| **F5-F8V** (hot yellow-white) | 6,200-6,600K | Bright blue-white, crisp | Prosperous, institutional, slightly cold. Core systems with old money. | Concord Assembly capital, major Syndic headquarters. Light feels clean, efficient, slightly clinical. |
| **G0-G4V** (solar-type) | 5,600-6,000K | Warm white, golden cast | Familiar, comfortable, "normal." Mid-Reach prosperity. | Krenn System (Sova). The baseline. |
| **G0-G4V** (solar-type) | 5,600-6,000K | Warm white, golden cast | Familiar, comfortable, "normal." Mid-Reach prosperity. | Van Maanen's Star (Sova). The baseline. |
| **G8-K2V** (cool yellow to orange) | 4,900-5,400K | Noticeably warm, golden-amber | Autumnal, nostalgic, slightly melancholy. Older settlements. | Long-established mid-Reach systems. Light feels like permanent late afternoon. Everything has a warm filter. |
| **K4-K7V** (orange dwarf) | 4,000-4,600K | Deep amber-orange | Intimate, warm, slightly alien. The light feels *different*. | Frontier-adjacent systems. Settlers here have adapted to permanently warm-toned light. Colors shift -- blues look muted, reds are enhanced. |
| **M0-M3V** (red dwarf) | 3,200-3,800K | Deep red-orange | Unsettling, alien, low-energy. Dim. Everything is bathed in red. | Deep frontier, fringe settlements. Stations rely more on artificial light because solar output is weak. The red ambient creates a fundamentally different visual experience. |
| **B/A-type** (blue-white giants) | 8,000-30,000K | Harsh blue-white | Industrial, cold, overwhelming. These stars are dangerous and beautiful. | Resource extraction systems near hot stars. The light is too bright, too blue. Stations are heavily shielded. Interior light is artificial by necessity. |
**The wormhole transition moment:** When the player steps through a span gate from one system to another, **the light changes first.** Before any new NPC appears, before any new architecture is visible, the ambient solar color shifts. Stepping from Krenn (warm white) to a K-type system (deep amber) should feel like stepping from noon into permanent sunset. This is the cheapest, most powerful location-identity tool we have -- a global color temperature shift applied as a CanvasModulate or shader tint in Godot 4.
**The wormhole transition moment:** When the player steps through a span gate from one system to another, **the light changes first.** Before any new NPC appears, before any new architecture is visible, the ambient solar color shifts. Stepping from Van Maanen's Star (warm white) to a K-type system (deep amber) should feel like stepping from noon into permanent sunset. This is the cheapest, most powerful location-identity tool we have -- a global color temperature shift applied as a CanvasModulate or shader tint in Godot 4.
### Setting Implications for Art Direction
@@ -376,20 +376,20 @@ The project lead has placed weather in scope. Let me ground this in setting.
### Weather on Sova
Station Sova orbits a terrestrial planet in the Krenn System. The planet (not yet named -- this is a worldbuilding gap I'm flagging) has an atmosphere. Weather on Sova depends on two factors:
Station Sova orbits a terrestrial planet in Van Maanen's Star. The planet (not yet named -- this is a worldbuilding gap I'm flagging) has an atmosphere. Weather on Sova depends on two factors:
1. **Is the player in a station interior or exterior/docking section?** Most of the v0.1 vertical slice is interior. But the span gate terminal has exterior-adjacent sections (loading docks, approach corridors with viewports, possibly open-air sections near the planetary freight depot).
2. **How does exterior weather penetrate the station?** Through atmospheric effects: humidity, pressure changes, temperature shifts, particle infiltration. A rain storm on the planet side means condensation on cold station surfaces, higher humidity in poorly-sealed sections, and the sound of rain on hull plating in exterior-adjacent areas.
**Krenn's planet -- setting establishment:**
**Van Maanen's Star's planet -- setting establishment:**
Let me define this now since it's needed. The Krenn System's habitable world (the planet Station Sova serves):
Let me define this now since it's needed. Van Maanen's Star's habitable world (the planet Station Sova serves):
- **Type:** Terrestrial, Earth-like atmosphere, ~0.9G
- **Climate zone near Sova's surface connection:** Temperate-maritime analog. Moderate rainfall, occasional heavy storms, mild temperature range. Think the kind of weather that makes freight workers grumble but doesn't shut down operations.
- **Signature weather:** Regular rain patterns. Fog that rolls in during temperature transitions (morning, evening). Occasional heavy squalls that reduce visibility at exterior docking areas and create distinctive sound inside the station.
- **Visual identity:** Krenn's weather is *ordinary*. It rains. Sometimes a lot. The fog is atmospheric, not threatening. This is "working weather" -- the kind that makes you check the forecast before loading cargo, not the kind that makes you fear for your life.
- **Visual identity:** Van Maanen's Star's weather is *ordinary*. It rains. Sometimes a lot. The fog is atmospheric, not threatening. This is "working weather" -- the kind that makes you check the forecast before loading cargo, not the kind that makes you fear for your life.
### Weather as Visual System
@@ -397,7 +397,7 @@ Let me define this now since it's needed. The Krenn System's habitable world (th
| Weather state | Visual effect (top-down) | Gameplay impact | Mood |
|---|---|---|---|
| **Clear** | Full visibility. Krenn sunlight at full color. Sharp shadows. | Baseline perception range. No modifiers. | Open, exposed, institutional. |
| **Clear** | Full visibility. Van Maanen's Star sunlight at full color. Sharp shadows. | Baseline perception range. No modifiers. | Open, exposed, institutional. |
| **Overcast** | Reduced shadow contrast. Flatter lighting. Slight color desaturation. | Minor perception range reduction at long distance. | Mundane, working-day. Most common state. |
| **Rain (light)** | Particle overlay -- small droplets on screen. Puddle reflections on floor tiles. Slight fog at vision cone edges. | Reduced sound range (rain noise masks footsteps). Minor sightline reduction. | Atmospheric, immersive. Good cover for quiet movement. |
| **Rain (heavy)** | Dense particle overlay. Reduced visibility radius. Splash effects on surfaces. Viewport sections show streaking water. | Significant sightline reduction. Sound masking. NPC routines shift (fewer exterior workers, dock operations slow). | Tense, isolated. The station feels smaller. |
@@ -445,7 +445,7 @@ Checking the visual references and proposals above against our guardrails:
|---|---|
| "Used future" / "truckers in space" visual language | **Clear.** This is a general sci-fi aesthetic tradition, not owned by any franchise. Our application (mid-Reach logistics, not horror or military) is distinct. |
| Lattice overlay as HUD | **Watch carefully.** Must not look like Mass Effect's Omni-tool, Cyberpunk 2077's braindance interface, or any specific franchise's neural interface. Design should be original -- subtle, integrated, not holographic-projector style. |
| Station corridor visual grammar | **Clear.** "Space station corridors" is a shared visual vocabulary. Our specifics (three construction eras, Krenn System signage conventions, Commission institutional branding) make it original. |
| Station corridor visual grammar | **Clear.** "Space station corridors" is a shared visual vocabulary. Our specifics (three construction eras, Van Maanen's Star signage conventions, Commission institutional branding) make it original. |
| Color-coded entity relationships | **Clear.** Many games use color for entity states. D-033's specific mapping (relationship-to-player, not objective property) is mechanically distinct. |
| Perception mode overlays | **Watch carefully.** Thermal vision in games is common (Predator, Batman, Splinter Cell). Our implementation must feel like *setting-specific technology*, not generic game-vision modes. The lattice as intermediary device is our differentiator. |
| Fog of perception aesthetics | **Clear.** Shadowcasting-based fog is a roguelike tradition. Our application (vision cone, information decay, NPC-symmetric) is mechanically distinct even if the visual implementation is conventional. |
@@ -471,7 +471,7 @@ No blocking IP concerns. Two items flagged for careful design attention (lattice
6. **Readability over expressionism.** The perception systems, entity colors, and fog mechanics all demand visual clarity. The environment should be the muted canvas that makes gameplay information legible. Atmosphere comes from lighting consistency, material texture, and spatial design -- not from visual noise.
7. **Light changes first.** Solar color per star type is the primary location-identity tool. Krenn's G3V warm-white is the baseline. Stepping through a span gate shifts the global color temperature before anything else. Muted environmental tiles enable this: one material vocabulary, many lighting profiles.
7. **Light changes first.** Solar color per star type is the primary location-identity tool. Van Maanen's Star's G3V warm-white is the baseline. Stepping through a span gate shifts the global color temperature before anything else. Muted environmental tiles enable this: one material vocabulary, many lighting profiles.
8. **Shadows are information.** Dynamic shadows from Godot 4's Light2D system serve both atmosphere and gameplay. A shadow moving at the vision cone's edge is medium-range information -- between direct sight and sound. Day/night cycles are essential, not cosmetic.
@@ -102,7 +102,7 @@ Araminta (detailed hex values per era), Miri (three-era setting brief), and Gore
Araminta: "Think of a 40-year-old university campus." Miri: "Renovation, not decay." Gore: "Settled." Ozzie: "variation in maintenance quality." The station works. It's been improved by living in it, not degraded.
**C-12: Solar light color per star type as location identity.**
Araminta (specific hex values), Miri (full stellar spectrum table), and Gore (weather as world identity) all endorse this. Krenn System G3V = warm white baseline. Wormhole transit shifts global color temperature before anything else. One material vocabulary, many lighting profiles.
Araminta (specific hex values), Miri (full stellar spectrum table), and Gore (weather as world identity) all endorse this. Van Maanen's Star G3V = warm white baseline. Wormhole transit shifts global color temperature before anything else. One material vocabulary, many lighting profiles.
---
@@ -301,7 +301,7 @@ Gore proposes the art style should feel "like a document — something being rec
Ozzie advocates strongly for Darkwood's lighting system as THE model for our vision cone emotional gradient. No other agent cites Darkwood. Does the team endorse this as a primary lighting reference alongside the BR2049 color temperature work?
### OQ-07: Krenn System planet name and climate profile
### OQ-07: Van Maanen's Star planet name and climate profile
Miri flags that Sova's planet is unnamed (worldbuilding gap). She proposes temperate-maritime climate with regular rain and morning/evening fog. This needs confirmation as it affects weather system design.
@@ -194,11 +194,11 @@ For the "world as collection of 1x1 placed items" image:
---
## Krenn System Planet: Naming and Confirmation
## Van Maanen's Star Planet: Naming and Confirmation
Flagging this from Round 1. The planet Sova orbits needs a name. Proposing now:
**Velen.** Krenn System naming conventions: compact, consonant-weighted. Velen is the primary habitable world. Temperate-maritime climate near Sova's surface connection: regular rainfall, morning and evening fog, mild temperature range, occasional heavy squalls. Gravity ~0.9G.
**Velen.** Van Maanen's Star naming conventions: compact, consonant-weighted. Velen is the primary habitable world. Temperate-maritime climate near Sova's surface connection: regular rainfall, morning and evening fog, mild temperature range, occasional heavy squalls. Gravity ~0.9G.
The name follows the same linguistic register as the NPC names I established (Kael, Voss, Lera, Torek). Simple, two-syllable, slightly Nordic-influenced without mapping to any specific Earth culture. Confirmation requested.
@@ -221,7 +221,7 @@ All four agents endorse the tile-based world composition and identify it as stre
### 7a. Planet naming (Miri)
Miri proposes **Velen** as the name for Sova's planet (Krenn System). Temperate-maritime climate, regular rainfall, morning/evening fog, mild temperature range, occasional heavy squalls. Gravity ~0.9G. Naming conventions: compact, consonant-weighted, two-syllable, Nordic-influenced. **Needs confirmation from project lead.**
Miri proposes **Velen** as the name for Sova's planet (Van Maanen's Star). Temperate-maritime climate, regular rainfall, morning/evening fog, mild temperature range, occasional heavy squalls. Gravity ~0.9G. Naming conventions: compact, consonant-weighted, two-syllable, Nordic-influenced. **Needs confirmation from project lead.**
### 7b. Player character stress visibility (Araminta)
@@ -11,7 +11,7 @@ These are now settled. Record them in your responses for the record:
1. **Vision shape: CONE, not circle.** Following the Rust occlusion tracers with fall-off. D-015's forward/peripheral/behind is mechanical, not cosmetic. Turning around is a meaningful action.
2. **Planet name: Velen.** Krenn System's habitable planet. Temperate-maritime, regular rain, morning/evening fog. Confirmed per Miri's proposal.
2. **Planet name: Velen.** Van Maanen's Star's habitable planet. Temperate-maritime, regular rain, morning/evening fog. Confirmed per Miri's proposal.
3. **Character temperature shift lives in the overlay layer, not the world.** Reality does not look more villainous for a criminal. HOWEVER — the tone of their home locations is free game. The mood comes from WHERE THEY HANG. The smuggler's home spaces (bar, social areas) are naturally warm. The detective's work spaces (security office, observation posts) are naturally cool. This isn't the overlay lying — it's the characters' lives having different color temperatures because they spend time in different places.
@@ -10,7 +10,7 @@
**Vision shape: CONE.** Confirmed. Setting-correct. The asymmetry is what makes turning around a decision, not a reflex. The character physically has forward vision and peripheral awareness — the Rust occlusion tracers are simulating biology, not technology. The lattice doesn't expand your visual field; it annotates what you already see.
**Planet name: Velen.** Confirmed. Entering the wiki as canonical. Krenn System's primary habitable world. Temperate-maritime, ~0.9G, regular rain, morning/evening fog. Station Sova orbits Velen. The span gate connects Sova to a planetary freight depot on Velen's surface.
**Planet name: Velen.** Confirmed. Entering the wiki as canonical. Van Maanen's Star's primary habitable world. Temperate-maritime, ~0.9G, regular rain, morning/evening fog. Station Sova orbits Velen. The span gate connects Sova to a planetary freight depot on Velen's surface.
**Character temperature in the overlay layer — with the "where they hang" clarification.** This is the correct resolution. Let me state it precisely for the record:
@@ -254,7 +254,7 @@ The setting produces the feeling. No rendering tricks needed. The level design d
Weather is a perception modifier, NPC routine disruptor, and storyteller instrument. Weather is diegetic — the one thing that CAN shift the environment, because it's physical reality.
- **Planet:** Velen (Krenn System). Temperate-maritime, ~0.9G, regular rain, morning/evening fog.
- **Planet:** Velen (Van Maanen's Star). Temperate-maritime, ~0.9G, regular rain, morning/evening fog.
- Fog degrades everyone's vision cones equally — shared vulnerability (Gore: I-07)
- The storyteller can TIME weather for dramatic effect without breaking environmental neutrality
- Foggy mornings = shorter vision cones for everyone = smuggler's early drops safer, detective's dawn surveillance harder
@@ -291,7 +291,7 @@ Weather is a perception modifier, NPC routine disruptor, and storyteller instrum
### 1.15 Planet Name: Velen
**Velen** is canonical as the primary habitable world of the Krenn System.
**Velen** is canonical as the primary habitable world of Van Maanen's Star.
- Temperate-maritime, ~0.9G
- Regular rain, morning/evening fog
@@ -537,8 +537,8 @@ The following workshop outputs are ready for formal recording in `decisions/` do
- **Rationale:** Matches Rimworld's approach exactly: orthographic camera, perspective faked in the art. Strictly better than pure top-down for entity readability, wall vocabulary, and object identification. Zero mechanical cost — the tilt exists only in how sprites are drawn. Production cost minimal.
- **Raised by:** Team Leader (Jeroen), endorsed unanimously, locked Round 3
### Candidate D-049: Velen — Krenn System Primary World
- **Decision:** Velen is the canonical name for the Krenn System's primary habitable world. Temperate-maritime climate, ~0.9G, regular rain, morning/evening fog. Station Sova orbits Velen. Span gate connects Sova to a planetary freight depot on Velen's surface.
### Candidate D-049: Velen — Van Maanen's Star Primary World
- **Decision:** Velen is the canonical name for Van Maanen's Star's primary habitable world. Temperate-maritime climate, ~0.9G, regular rain, morning/evening fog. Station Sova orbits Velen. Span gate connects Sova to a planetary freight depot on Velen's surface.
- **Rationale:** Grounds the weather system and gives the setting a first named planet.
- **Domain:** content.md (setting)
- **Raised by:** Miri, confirmed by project lead
@@ -313,7 +313,7 @@ stat block, not a story, not a difficulty setting.
| Nigel | Replayability lead | Structural randomness, seed design, "what happens on playthrough 10?" |
| Paula | Narrative lead | Starting NPC relationships, character-specific story hooks, social web implications |
| Gestalt | Systems lead | How character choice propagates through mechanics (KG, dialogue tiers, movement, perception) |
| Miri | Worldbuilding | Which archetypes fit the Krenn System, canon constraints, lore accuracy |
| Miri | Worldbuilding | Which archetypes fit Van Maanen's Star, canon constraints, lore accuracy |
| Tyre | Architecture | Implementation cost reality check. "That's 4 new ECS components — is it worth it?" |
| Qatux | Documenter | Track decisions, cross-references, dissent. Maintain running reference list. |
@@ -9,7 +9,7 @@
## Orientation: What worldbuilding supplies to the generator
The generator does not produce setting — it *reproduces* setting from parameters. My role is to define what those parameters are and where in the pipeline they enter. This document organizes my prior work (wiki-review Round 4 ingredients menu, Krenn System brief) into a form the pipeline architecture can consume.
The generator does not produce setting — it *reproduces* setting from parameters. My role is to define what those parameters are and where in the pipeline they enter. This document organizes my prior work (wiki-review Round 4 ingredients menu, Van Maanen's Star brief) into a form the pipeline architecture can consume.
Everything below connects to the confirmed existence of Q-032 (cultural ingredients menu, approved by lead but not yet formally specified). This workshop is the first place those parameters need to map onto a concrete pipeline. That mapping is what I'm providing here.
@@ -19,7 +19,7 @@ Everything below connects to the confirmed existence of Q-032 (cultural ingredie
The short answer: **through a society profile assembled from combinatorial ingredients, not through per-world hand-authoring**.
The longer answer follows from what I established in Wiki Review Round 4. The Krenn System brief (Rounds 1-2 of that workshop) was a proof of concept — one complete output. Round 4 inverted the question: instead of writing a brief for each world, we design the *ingredient pantry* from which any brief can be generated.
The longer answer follows from what I established in Wiki Review Round 4. Van Maanen's Star brief (Rounds 1-2 of that workshop) was a proof of concept — one complete output. Round 4 inverted the question: instead of writing a brief for each world, we design the *ingredient pantry* from which any brief can be generated.
### The ingredient categories (Q-032 scope, prior work summary)
@@ -42,7 +42,7 @@ Ten roots, each a parameter bundle encoding phonetics + social dynamics + trust
| **Stone** | Steady, balanced, laterals | Enduring, traditional, land-connected | Tenure — long presence |
| **Arc** | Sharp, fricatives, unusual combos | Intellectual, cosmopolitan | Argument — demonstrated reasoning |
Blend example (confirmed Krenn): `{frost: 0.55, salt: 0.30, iron: 0.15}`. The blend weights produce naming phonetics, social dynamics, and trust parameters. The Krenn System regional brief from wiki-review Rounds 1-2 is the validated output of this blend.
Blend example (confirmed Van Maanen's Star): `{frost: 0.55, salt: 0.30, iron: 0.15}`. The blend weights produce naming phonetics, social dynamics, and trust parameters. Van Maanen's Star regional brief from wiki-review Rounds 1-2 is the validated output of this blend.
**B. Settlement Motivation** (one primary)
@@ -58,7 +58,7 @@ Extraction / logistics / manufacturing / agriculture / services / research / mil
Tight-margin / debt-trap / status-competition / survival-gap / opportunity-disparity / prohibition-economy / generational-extraction.
Krenn is `[tight-margin, prohibition-economy]`. That double pressure produces the specific moral texture: economically rational AND ideologically defensible. A different system with `[survival-gap, prohibition-economy]` produces the same contraband type but a more desperate, less principled grey economy. The player feels the difference in NPC motivation.
Van Maanen's Star is `[tight-margin, prohibition-economy]`. That double pressure produces the specific moral texture: economically rational AND ideologically defensible. A different system with `[survival-gap, prohibition-economy]` produces the same contraband type but a more desperate, less principled grey economy. The player feels the difference in NPC motivation.
**E. Drift Stage** (age modifier on heritage blending)
@@ -284,7 +284,7 @@ meridian_coverage: standard # better maintained, fewer gaps
**4. Social site character:** Same template type (logistics district), different NPC population distribution. Vareth's higher philosophical alignment (labor-solidarity) increases ANCHOR and SYSTEM pattern counts — more community pillars, more institutionalized labor representation. Sova's null philosophical alignment produces more NOBODYs and CIVILIANs — the grey economy is moral shelter, not ideology.
**5. Naming and ambient text:** Frost/Salt/Iron + mature drift produces Krenn-style compact consonant-heavy names (Kael, Voss, Drin). Dust/Vine + crystallizing drift produces different phonetics — possibly more flowing, more syllables, different stress patterns. The environment text (signs, graffiti, vendor names) sounds different.
**5. Naming and ambient text:** Frost/Salt/Iron + mature drift produces Van Maanen's Star-style compact consonant-heavy names (Kael, Voss, Drin). Dust/Vine + crystallizing drift produces different phonetics — possibly more flowing, more syllables, different stress patterns. The environment text (signs, graffiti, vendor names) sounds different.
**6. Access topology** (the investigation architecture): Vareth's higher Meridian coverage and better-maintained infrastructure means fewer natural dead zones. The ring (or equivalent grey economy) on Vareth had to BUILD its dead zones rather than exploit existing gaps. This affects which locations are grey-economy-accessible and how the spatial investigation works.
@@ -314,7 +314,7 @@ Miri shows that Sova's `[tight-margin, prohibition-economy]` produces a specific
Miri's additional question (for me): "Are the cultural variation axes sufficient replayability levers, or do we need additional randomization within a cultural type?"
My answer: **Sufficient for cross-world variety. Insufficient for within-world replayability.** The cultural parameters are fixed per world. Within-world replayability comes from the seed-driven NPC generation, triangle configuration, and entanglement assignment — which vary WITHIN the cultural parameters. A Frost/Salt/Iron culture with entanglement pattern A is a different game from the same culture with entanglement pattern B, even though both feel "Krenn-like." The within-culture variation is the replayability mechanism. The cultural composition is the setting — it's stable, not randomized per run.
My answer: **Sufficient for cross-world variety. Insufficient for within-world replayability.** The cultural parameters are fixed per world. Within-world replayability comes from the seed-driven NPC generation, triangle configuration, and entanglement assignment — which vary WITHIN the cultural parameters. A Frost/Salt/Iron culture with entanglement pattern A is a different game from the same culture with entanglement pattern B, even though both feel "Van Maanen's Star-like." The within-culture variation is the replayability mechanism. The cultural composition is the setting — it's stable, not randomized per run.
---
@@ -101,7 +101,7 @@ The generator records history as a sequence of modifications, not just a current
Key points:
- NULL values serialize as `Option<T>` with serde default
- Heritage blend weights serialize as `Vec<HeritageEntry>`, validated to sum ≈ 1.0 (±0.01 tolerance)
- Society profiles can be hand-authored in YAML (for specific systems like Krenn), generator-derived from seed, or loaded via `serde_yaml`
- Society profiles can be hand-authored in YAML (for specific systems like Van Maanen's Star), generator-derived from seed, or loaded via `serde_yaml`
- A `validate()` method checks contradictory faction presence, weight sums, and count constraints
**Sources:** Tyre §4.
@@ -351,7 +351,7 @@ The seed state is a single file recording all derivation inputs:
master_seed: 0xA7B3F1D2E5C84096
character: smuggler # session layer, not generation layer
tier1_module_draws: [smuggling_ring, corporate_espionage] # pool draws from master seed
home_system: krenn
home_system: van-maanens-star
home_district: transit
# Everything else is deterministically derivable from master_seed.
# This file exists for debugging and replay, not as a generation input.
@@ -432,7 +432,7 @@ enum PresenceTier {
- No contradictory faction presence (e.g., `commission: Comprehensive` + `independent: SystemWide`)
**Integration:** Society profiles can be:
1. Hand-authored in YAML (for specific systems like Krenn)
1. Hand-authored in YAML (for specific systems like Van Maanen's Star)
2. Generated from seed (for the other 299 systems)
3. Loaded via serde_yaml and passed to the generation pipeline
@@ -14,7 +14,7 @@
- `server/src/npc/generate.rs` — gen_want, gen_tells, gen_skills, full 10-axis pipeline
- `server/src/npc/mod.rs` — Want, WantKind, TellSystem, Tell, TellTrigger
- `content/global/rural-zone-spec.ron` — current hand-authored quality bar
- `content/global/culture-krenn.ron` — culture profile with void-oaths and speech register
- `content/global/culture-van-maanens-star.ron` — culture profile with void-oaths and speech register
- `decisions/content.md` — D-121, D-122, D-123, D-128, D-024, D-029
- `decisions/architecture.md` — D-010 (information boundaries)
- `decisions/scope.md` — D-114, D-115, D-117, D-119
@@ -60,7 +60,7 @@ These two pipelines serve fundamentally different functions. **This distinction
### Option 1: Hand-authored pools (current)
**Mechanical evaluation:** Doesn't scale and already isn't scaling. The copy team's decision to rename `rural-zone-spec.ron` → `krenn-rural-zone.ron` is a canary. They made the combinatorial explosion explicit: each file is already culture-specific, not a reusable template.
**Mechanical evaluation:** Doesn't scale and already isn't scaling. The copy team's decision to rename `rural-zone-spec.ron` → `van-maanens-star-rural-zone.ron` is a canary. They made the combinatorial explosion explicit: each file is already culture-specific, not a reusable template.
The numbers from the brief (4 roles × ~50 behaviors × N zones × M cultures) understate the problem. With the 10-axis model (D-024), behaviors also need to vary across:
- Secret severity (tells differ when secret is exposed vs. hidden)
@@ -88,7 +88,7 @@ The rural-zone.ron behaviors work because they're *already composed* — they AR
> "stops to talk with a passing farmer, eyes still scanning the perimeter"
The compositional structure inside this is roughly: `[social_action][krenn_directness][vigilance_subtext]`. But you can't decompose it without destroying the observation. The thing that makes this line work is that the vigilance is *incidental* — the character is doing something social while their body does something watchful. That tension is the content. A grammar that assembles "SOCIAL_ACTION + VIGILANCE_TAG" produces:
The compositional structure inside this is roughly: `[social_action][van_maanens_star_directness][vigilance_subtext]`. But you can't decompose it without destroying the observation. The thing that makes this line work is that the vigilance is *incidental* — the character is doing something social while their body does something watchful. That tension is the content. A grammar that assembles "SOCIAL_ACTION + VIGILANCE_TAG" produces:
> "talks to a farmer. Watches the perimeter."
@@ -129,7 +129,7 @@ The proposal correctly identifies that base text serves triple duty: LLM seed, g
**Where it introduces risk:**
- **Tells (pipeline 2)**: This is the danger zone. I'll address this separately below.
- **Lore contamination**: The Krenn vocabulary is load-bearing. "Void take it" is not flavor — it's a cultural signal that this NPC belongs to the Settled Reach, not to a generic sci-fi game. A 2B model that hasn't been heavily fine-tuned may default to genre conventions ("damn it", "blast", "stars and garters"). The culture profile has explicit vocabulary (void-oaths, void-adjacent exclamations) that must survive re-voicing intact.
- **Lore contamination**: The Van Maanen's Star vocabulary is load-bearing. "Void take it" is not flavor — it's a cultural signal that this NPC belongs to the Settled Reach, not to a generic sci-fi game. A 2B model that hasn't been heavily fine-tuned may default to genre conventions ("damn it", "blast", "stars and garters"). The culture profile has explicit vocabulary (void-oaths, void-adjacent exclamations) that must survive re-voicing intact.
**Verdict:** Right for the rendering layer. Requires architectural guardrails for mechanical content. The model size ceiling is the critical risk — addressed below.
@@ -216,7 +216,7 @@ This is a constrained task — much easier for a 2B model than free generation.
## What Breaks If We Choose the Wrong Option
### Wrong choice: Hand-authored pools at scale
**Domain break:** The generator produces shallow characters. D-122 requires all NPCs generated; D-128 requires culture implicit in location. Without scalable content, Krenn-flavor NPCs are indistinguishable from generic sci-fi archetypes. The want/state/tell pipeline is fully functional, but the behavioral surface those tells appear in is thin and repetitive. The player's tell literacy grows but they have nothing interesting to read.
**Domain break:** The generator produces shallow characters. D-122 requires all NPCs generated; D-128 requires culture implicit in location. Without scalable content, Van Maanen's Star-flavor NPCs are indistinguishable from generic sci-fi archetypes. The want/state/tell pipeline is fully functional, but the behavioral surface those tells appear in is thin and repetitive. The player's tell literacy grows but they have nothing interesting to read.
### Wrong choice: Composable primitives as runtime output
**Domain break:** The system produces mechanically correct but experientially hollow characters. The "assembled" quality is noticeable — behaviors read like database queries, not observed humans. Worse: relationship behaviors composed from primitives lose the observational unity that makes them readable. "Colleague + avoidance behavior" reads differently than "walks past Rask without making eye contact." The second one is investigative data. The first one is a tag list rendered as prose.
@@ -228,7 +228,7 @@ The deeper break: composable primitives require a composition render step that e
Specific failure mode: a Deceptive NPC under stress should read as "suppression" (affects exaggerated calm). If LLM re-voicing outputs "seems guarded and formal" half the time and "stays very still and quiet" the other half — both are valid re-voicings, neither is wrong in isolation — but the player can't learn to recognize "suppression" as a pattern. The information is technically in the text, but the grammar is unstable.
Lore contamination failure: the LLM introduces "thanks be to the Maker" (generic religious flavor) instead of "void take it" (Krenn void-oath). Now we have an NPC that sounds like they're from a fantasy game. Culture-vector injectors mitigate this but don't eliminate it at 2B model size.
Lore contamination failure: the LLM introduces "thanks be to the Maker" (generic religious flavor) instead of "void take it" (Van Maanen's Star void-oath). Now we have an NPC that sounds like they're from a fantasy game. Culture-vector injectors mitigate this but don't eliminate it at 2B model size.
---
@@ -260,7 +260,7 @@ The base text / re-voiced text / graceful fallback model is elegant systems desi
**The player's tell literacy model: cross-NPC grammar or fresh-each-time?**
If players are expected to develop a **cross-NPC grammar** — "I've seen that eye-contact pattern three times, it means deception tell under stress" — then tell strings must be semantically stable not just per-NPC but across all NPCs. The re-voicing of tells must produce consistent phenomenological families. "Evasive" across Krenn culture should look like a recognizable family of avoidance behaviors, not random variance.
If players are expected to develop a **cross-NPC grammar** — "I've seen that eye-contact pattern three times, it means deception tell under stress" — then tell strings must be semantically stable not just per-NPC but across all NPCs. The re-voicing of tells must produce consistent phenomenological families. "Evasive" across Van Maanen's Star culture should look like a recognizable family of avoidance behaviors, not random variance.
If tells are **fresh-each-time** (each observation is context-specific, players interpret them in isolation rather than pattern-matching), then more variance is acceptable, because the player isn't building a grammar — they're reading individual characters.
@@ -170,7 +170,7 @@ This is the same pattern as the broader base-text/voiced-text architecture. Tell
**Does it work mechanically?** Yes. Base text passthrough for tells is absolutely safe. The phenomenon-class grammar works in base text form — the current tell strings ("becomes evasive and avoids eye contact") are clear enough that cross-NPC pattern recognition is possible.
**What it misses:** Cultural texture on tells. A Krenn person avoiding eye contact should look different from whatever a high-register culture's evasion looks like. D-121 (voice is culture-driven) applies to tells too — a Krenn NPC's deception tell should read like a Krenn person hiding something, not like a generic sci-fi NPC hiding something. Passthrough surrenders this.
**What it misses:** Cultural texture on tells. A Van Maanen's Star person avoiding eye contact should look different from whatever a high-register culture's evasion looks like. D-121 (voice is culture-driven) applies to tells too — a Van Maanen's Star NPC's deception tell should read like a Van Maanen's Star person hiding something, not like a generic sci-fi NPC hiding something. Passthrough surrenders this.
Ozzie's "contrast is a feature" argument deserves consideration. Base text standing out against voiced ambient behaviors might make tells MORE immediately recognizable — they read differently precisely because they weren't culture-voiced. This is a legitimate UX argument, not just a consolation prize for the conservative choice. I don't know if it's empirically correct; it's a testable hypothesis.
@@ -250,7 +250,7 @@ This preserves the spirit of D-123 (culture vectors as primary constraint, cultu
### On the spike success criteria
For my domain (systems design), the spike must answer:
1. Does behavior re-voicing preserve cultural identity? (Run Krenn-voiced output past Miri's criteria)
1. Does behavior re-voicing preserve cultural identity? (Run Van Maanen's Star-voiced output past Miri's criteria)
2. For Proposal B: does constrained tell re-voicing preserve phenomenon class? (12 tell types × 20 completions, score by class preservation rate — target ≥90%)
3. Does the tell literacy grammar hold after re-voicing? (Can a naive reader identify "avoidance" vs. "suppression" vs. "surveillance" from the re-voiced tells?)
@@ -81,7 +81,7 @@ pub struct VoicedLine {
- **Dissent:** Miri flagged concern about cultural philosophy at 2B model size — addressed via hybrid injector format (instruction + example pairs) and spike validation.
- **Amends:** [D-123](content.md#d-123-generative-ai-for-npc-content-templating-via-culture-vectors) — see amendment text below.
- **Supersedes:** [D-124](content.md#d-124-in-game-ollama-for-live-npc-dialogue--deferred-door-open) (in-game AI deferred — the door is now open and entered).
- **Cross-reference:** [D-010](architecture.md#d-010-multiplayer-ready-architectural-baseline) (information boundaries — tells are READ-ONLY inputs; LLM cannot produce game state), [D-121](content.md#d-121-voice-is-culture-driven--job-as-modifier) (culture-primary voice), [D-122](content.md#d-122-all-npcs-generated--no-named-hand-authored-characters) (all NPCs generated), [D-128](content.md#d-128-culture-implicit-in-starting-location--krenn-system-equals-krenn-culture) (culture implicit in location), [D-029](content.md#d-029-population-entanglement-ratio--305020) (NPC tier model — tier mapping for re-voicing priority)
- **Cross-reference:** [D-010](architecture.md#d-010-multiplayer-ready-architectural-baseline) (information boundaries — tells are READ-ONLY inputs; LLM cannot produce game state), [D-121](content.md#d-121-voice-is-culture-driven--job-as-modifier) (culture-primary voice), [D-122](content.md#d-122-all-npcs-generated--no-named-hand-authored-characters) (all NPCs generated), [D-128](content.md#d-128-culture-implicit-in-starting-location--van-maanens-star-system-equals-van-maanens-star-culture) (culture implicit in location), [D-029](content.md#d-029-population-entanglement-ratio--305020) (NPC tier model — tier mapping for re-voicing priority)
**D-123 Amendment text:**
> *D-123 is amended as follows: The AI pipeline operates in two modes. Baked mode: content is generated at build time and reviewed by humans before shipping — this preserves D-123's authorial control constraint. Runtime mode: content is generated in the background during gameplay without per-line human review, when "AI-Enhanced Dialogue" is enabled. All other D-123 constraints remain binding in both modes: culture vectors are the primary prompt constraint, the AI does not default to genre conventions, and authorial control governs what the LLM may and may not produce. The AI pipeline does not drive live narrative decisions — it applies voice to authored semantic content. Culture profiles (Miri) remain the primary authoring deliverable.*
@@ -129,10 +129,10 @@ Earth geography, banter/wit unearned by context, or anachronistic technology. Ne
new facts, locations, or relationships. Output only the re-voiced line.
[CULTURE INJECTOR — per CultureProfile, ~150-250 tokens]
Krenn culture: direct, working-class, minimal pleasantries. Vocabulary markers:
Van Maanen's Star culture: direct, working-class, minimal pleasantries. Vocabulary markers:
void-oaths ("void take it", "blood and void"), clipped greetings ("hey", "all good?"),
no contractions avoided — they use contractions naturally. Register is not formal.
Example of Krenn register: [brief paired example demonstrating Krenn voice]
Example of Van Maanen's Star register: [brief paired example demonstrating Van Maanen's Star voice]
[TRAIT MODIFIER — per NPC's PersonalityTraits, ~10 tokens each]
This character is Bold: confident, speaks their mind directly.
@@ -256,18 +256,18 @@ This is the core mechanical test for D-138's tell-as-context design.
### Criterion 3: Cultural Grammar Survival
**What it tests:** Does culture remain legible after re-voicing? Culture is a tell — hearing Krenn speech should tell the player something about where this NPC is from.
**What it tests:** Does culture remain legible after re-voicing? Culture is a tell — hearing Van Maanen's Star speech should tell the player something about where this NPC is from.
**Protocol:**
- Re-voice 10 Krenn base texts (mix of behaviors and dialogue)
- Re-voice 10 Van Maanen's Star base texts (mix of behaviors and dialogue)
- Check for oath vocabulary: do void-oaths appear in outputs where they're appropriate?
- Check register: does the output read working-class, direct, minimal pleasantries?
- Compare 5 Krenn re-voiced outputs against 5 "generic sci-fi NPC" sentences that could come from any game
- Blind reviewer: can they identify which 5 are Krenn-flavored vs. generic?
- Compare 5 Van Maanen's Star re-voiced outputs against 5 "generic sci-fi NPC" sentences that could come from any game
- Blind reviewer: can they identify which 5 are Van Maanen's Star-flavored vs. generic?
**Success bar:**
- Void-oath vocabulary appears in ≥3/5 appropriate outputs (where an exclamation is called for)
- Blind reviewer correctly identifies Krenn-vs-generic at ≥8/10 (they shouldn't be guessing)
- Blind reviewer correctly identifies Van Maanen's Star-vs-generic at ≥8/10 (they shouldn't be guessing)
- Zero outputs that sound like fantasy, military, Earth-based, or comedic-banter registers
---
@@ -312,7 +312,7 @@ This is the qualitative gut check that can't be fully quantified. It's the quest
| Information preservation (dialogue) | No | ≥9/10 |
| Tell-context tone (undertone sensed) | No | ≥8/10 |
| Tell-context: zero explicit naming | **YES** | 0/20 |
| Cultural grammar (Krenn legible) | No | ≥8/10 correct identifications |
| Cultural grammar (Van Maanen's Star legible) | No | ≥8/10 correct identifications |
| No false information | **YES** | 0 instances |
| Qualitative "real person" | No | At least 1 convincing output per reviewer |
@@ -7,7 +7,7 @@
## Reading notes before I start
I went back to the source: `rural-zone-spec.ron`, `industrial-zone-spec.ron`, `culture-krenn.ron`, the generator spike, and the relevant D-records. The question this workshop is actually asking is not "do we use an LLM?" — D-123 already decided generative AI is in the pipeline. The question is: **what model, what scope, and what does the copy team own versus the system?**
I went back to the source: `rural-zone-spec.ron`, `industrial-zone-spec.ron`, `culture-van-maanens-star.ron`, the generator spike, and the relevant D-records. The question this workshop is actually asking is not "do we use an LLM?" — D-123 already decided generative AI is in the pipeline. The question is: **what model, what scope, and what does the copy team own versus the system?**
---
@@ -17,11 +17,11 @@ I went back to the source: `rural-zone-spec.ron`, `industrial-zone-spec.ron`, `c
Here's why Option 2 (composable primitives) is the wrong tool for the copy team: it shifts authoring from writing character voice to writing a grammar engine. "Role actions + culture modifiers + context tags" is a data schema problem, not a copywriting problem. The copy team writes sentences that breathe. Composition engines produce sentences that compile. Players notice the difference.
Here's why Option 1 (hand-authored) is already failing: the RON work from #630 — fifty lines per role — is good. It's exactly the quality we want. But we renamed those files from `rural-zone-spec.ron` to `krenn-rural-zone.ron` to make explicit what we already knew: every zone file is really culture × zone content, authored from scratch. Adding a second culture means authoring from scratch again. The math doesn't work.
Here's why Option 1 (hand-authored) is already failing: the RON work from #630 — fifty lines per role — is good. It's exactly the quality we want. But we renamed those files from `rural-zone-spec.ron` to `van-maanens-star-rural-zone.ron` to make explicit what we already knew: every zone file is really culture × zone content, authored from scratch. Adding a second culture means authoring from scratch again. The math doesn't work.
Option 3 works because **the copy team's current output is already the right input.** The behavior lines in `rural-zone-spec.ron` — "tends rows of low-growing crops with a long-handled hoe," "patches a cracked irrigation pipe with strips of bonding tape" — these are semantic lines. Specific, observable, functional. They don't need to be culture-neutral to be LLM seeds; they need to be specific enough that the LLM has something real to revoice. They already are.
What Option 3 adds for the copy team: **a thin injector authoring layer, once per culture.** Five to ten culture injector clauses for Krenn. We write them once; they voice every Krenn NPC. That is the leverage point.
What Option 3 adds for the copy team: **a thin injector authoring layer, once per culture.** Five to ten culture injector clauses for Van Maanen's Star. We write them once; they voice every Van Maanen's Star NPC. That is the leverage point.
---
@@ -31,16 +31,16 @@ Three layers, each with a clear owner:
### Layer 1: Base text (copy team, per-role, per-zone)
This is already being written. The `typical_behaviors` arrays in zone RON files. No format change needed at this layer. The copy team continues writing specific, observable, present-tense action lines. Rules:
- No culture-specific vocabulary (exclamations, Krenn idioms) — those belong to the voiced tier
- No culture-specific vocabulary (exclamations, Van Maanen's Star idioms) — those belong to the voiced tier
- Specific enough to be evocative as fallback; not so culture-loaded that the LLM is fighting the base text
- The existing lines in `industrial-zone-spec.ron` and `rural-zone-spec.ron` are already at the right register
### Layer 2: Culture injectors (copy team, per-culture, authored once)
This is the new work. Currently `culture-krenn.ron` has a `speech` section: register, filler_words, greetings, farewells, exclamations. These were designed as generator inputs, not LLM injector instructions. They're useful source material, but "direct, minimal pleasantries, gets to the point" is a description of a voice, not an instruction to an LLM.
This is the new work. Currently `culture-van-maanens-star.ron` has a `speech` section: register, filler_words, greetings, farewells, exclamations. These were designed as generator inputs, not LLM injector instructions. They're useful source material, but "direct, minimal pleasantries, gets to the point" is a description of a voice, not an instruction to an LLM.
**The copy team should author 5-10 explicit injector clauses per culture** — sentences written directly as LLM persona instructions. Not derived automatically from the existing culture RON fields; the existing fields weren't designed for this. Written from scratch by the copy team, once per culture, living in a new `voice_injectors` field in the culture RON.
Example injectors for Krenn (draft):
Example injectors for Van Maanen's Star (draft):
- "Your speech is direct. No pleasantries. Get to the point because everyone's short on time."
- "You are community-oriented and pragmatic. You trust people who show up and do the work."
- "You are suspicious of distant authority and institutional rank. Competence is what earns respect."
@@ -50,7 +50,7 @@ Example injectors for Krenn (draft):
These are what the LLM receives as persona context. The copy team writes them; the pipeline uses them verbatim.
### Layer 3: Personality injectors (copy team, per-trait, authored once)
The proposal mentions 10-20 personality trait injector clauses. These should be authored by the copy team, not auto-derived from trait names. "Bold" in the Settled Reach is not generic confidence — it's Krenn-bold, which reads as directness and willingness to say an uncomfortable thing in front of people. The trait injectors need to be written with the world in mind.
The proposal mentions 10-20 personality trait injector clauses. These should be authored by the copy team, not auto-derived from trait names. "Bold" in the Settled Reach is not generic confidence — it's Van Maanen's Star-bold, which reads as directness and willingness to say an uncomfortable thing in front of people. The trait injectors need to be written with the world in mind.
Ten traits = ten injector clauses. One-time cost, high leverage.
@@ -79,9 +79,9 @@ Three failure modes, three responses:
Response: I'll write a blocklist of excluded vocabulary and genre conventions — a short document the validation pass uses. Baked content (hub zones) gets human spot-check of all LLM output before ship. This is manageable because baked zones are finite. Build-time validation catches hard violations; human review catches drift.
**Failure mode B — Voice drift.** The LLM drifts from Krenn register toward generic sci-fi. All NPCs start sounding the same.
**Failure mode B — Voice drift.** The LLM drifts from Van Maanen's Star register toward generic sci-fi. All NPCs start sounding the same.
Response: Per-culture ground-truth examples. I'll write 20-30 "this is what good Krenn-voiced output looks like" examples per culture, used as LLM few-shot examples and as QA reference. Runtime content gets sampled at 5% and logged for periodic review. Not every line, but enough to detect systemic drift.
Response: Per-culture ground-truth examples. I'll write 20-30 "this is what good Van Maanen's Star-voiced output looks like" examples per culture, used as LLM few-shot examples and as QA reference. Runtime content gets sampled at 5% and logged for periodic review. Not every line, but enough to detect systemic drift.
**Failure mode C — Injected exclamation in wrong context.** Personality injectors applied mechanically produce jarring results: "Void take it, the manifest checks out." The cultural exclamation was injected without situational awareness.
@@ -103,7 +103,7 @@ By option:
The existing `rural-zone-spec.ron` and `industrial-zone-spec.ron` lines are already good LLM seeds. "Slumps into a break room chair and stares at nothing for a full minute before reaching for a drink" — that's specific, evocative, and has real situational texture. The LLM can revoice the register; it can't manufacture that specificity. The copy team's investment in specificity survives.
The only category that needs authoring review: behaviors that contain Krenn cultural vocabulary should be flagged and either cleaned to neutral base text or moved to an explicit `voiced_behaviors` array for baked zones where copy team authors the voiced variant directly.
The only category that needs authoring review: behaviors that contain Van Maanen's Star cultural vocabulary should be flagged and either cleaned to neutral base text or moved to an explicit `voiced_behaviors` array for baked zones where copy team authors the voiced variant directly.
---
@@ -111,7 +111,7 @@ The only category that needs authoring review: behaviors that contain Krenn cult
**Choose Option 1:** The copy team becomes the hard scaling wall. By the time we have three cultures and five zone types, we need 750+ authored behavior lines before any dialogue. Every new zone type, every cultural variant, every sprint with new NPCs requires fresh hand-authored sentences. The content team becomes a bottleneck that grows with the world. Q-012 stays open forever.
**Choose Option 2:** The composition engine produces grammatically correct but voice-flat output. "Bold dock worker at Krenn industrial zone performs checking manifest with direct confidence." Players notice that NPCs sound assembled. The tell system suffers most — tells that need to read as natural behavior start reading as labeled states. The copy team's skill set (voice, rhythm, specificity) doesn't map to grammar-authoring. We'd be asking them to work in a medium they don't think in.
**Choose Option 2:** The composition engine produces grammatically correct but voice-flat output. "Bold dock worker at Van Maanen's Star industrial zone performs checking manifest with direct confidence." Players notice that NPCs sound assembled. The tell system suffers most — tells that need to read as natural behavior start reading as labeled states. The copy team's skill set (voice, rhythm, specificity) doesn't map to grammar-authoring. We'd be asking them to work in a medium they don't think in.
**Choose Option 3 with bad injectors:** All NPCs converge to a middle-ground voice. The injectors become wallpaper — the LLM acknowledges them and ignores them at small model sizes. This is the most specific risk at 2B-class models: if the model can't hold culture register AND personality AND situational context simultaneously, it defaults to something legible but generic. The spike should test injector faithfulness specifically, not just fluency.
@@ -26,7 +26,7 @@ The only thing that changes: "not a runtime system" → "background runtime enha
This covers all three proposals. No proposal fully supersedes D-123; they all amend it.
One specific correction to flag: `proposed-llm-voice.md` Section 4 gives as an example Krenn Culture injector: "Your speech is formal and avoids contractions." This is wrong. Krenn is direct and working-class, not formal. It uses contractions constantly ("shift's calling", "gotta move", "can't get there from here"). If this example injector shipped as-is, every Krenn NPC would sound like a mid-level bureaucrat. The injector drafts in this document (below) correct this.
One specific correction to flag: `proposed-llm-voice.md` Section 4 gives as an example Van Maanen's Star Culture injector: "Your speech is formal and avoids contractions." This is wrong. Van Maanen's Star is direct and working-class, not formal. It uses contractions constantly ("shift's calling", "gotta move", "can't get there from here"). If this example injector shipped as-is, every Van Maanen's Star NPC would sound like a mid-level bureaucrat. The injector drafts in this document (below) correct this.
---
@@ -48,7 +48,7 @@ One specific correction to flag: `proposed-llm-voice.md` Section 4 gives as an e
### Proposal A: culture injectors + base text only
**New copy work:**
- Culture injector clauses: 5-10 per culture (~8 for Krenn — see drafts below)
- Culture injector clauses: 5-10 per culture (~8 for Van Maanen's Star — see drafts below)
- Trait modifier clauses: 1 per trait, 10 traits (10 sentences total)
- Negative injectors / lore contamination blocklist: ~20-30 excluded terms and genre phrases (one-time, I own this)
- Tell behavior flagging: just identifying which existing behaviors are tells, no new writing required — the passthrough system handles the rest
@@ -57,7 +57,7 @@ One specific correction to flag: `proposed-llm-voice.md` Section 4 gives as an e
- Per-culture injectors when new cultures are added (same one-time cost per culture)
- Blocklist maintenance as new lore contamination patterns are identified
**Volume estimate:** ~2-3 days of focused copy work to stand up Krenn completely. Each additional culture: ~1 day.
**Volume estimate:** ~2-3 days of focused copy work to stand up Van Maanen's Star completely. Each additional culture: ~1 day.
**Assessment:** This is the right authoring load for the copy team. Low volume, permanent leverage.
@@ -91,7 +91,7 @@ One specific correction to flag: `proposed-llm-voice.md` Section 4 gives as an e
## My recommendation: Proposal B
**Why B over A:** Culture-voiced tells are worth having. A Krenn NPC who's nervous about a secret should express that nervousness in a Krenn-flavored way — not a generic sci-fi way. Proposal B enables this. The semantic_core constraint is the right mechanism: it tells the LLM what phenomenon to preserve, not how to express it. That's good architecture.
**Why B over A:** Culture-voiced tells are worth having. A Van Maanen's Star NPC who's nervous about a secret should express that nervousness in a Van Maanen's Star-flavored way — not a generic sci-fi way. Proposal B enables this. The semantic_core constraint is the right mechanism: it tells the LLM what phenomenon to preserve, not how to express it. That's good architecture.
**Why B over C:** Dialogue at 2B is the high-risk bet. Behaviors are short-form (5-15 words), the prompt is simple, failure is obvious and recoverable. Dialogue is longer, the prompt is more complex, and a subtle failure — dialogue that's fluent but slightly off-register — is harder to catch. Behaviors first; if the model proves itself, add dialogue.
@@ -101,15 +101,15 @@ One specific correction to flag: `proposed-llm-voice.md` Section 4 gives as an e
---
## Krenn injector clauses — corrected drafts
## Van Maanen's Star injector clauses — corrected drafts
The example in `proposed-llm-voice.md` ("Your speech is formal and avoids contractions") describes the opposite of Krenn culture. These are the corrected injectors.
The example in `proposed-llm-voice.md` ("Your speech is formal and avoids contractions") describes the opposite of Van Maanen's Star culture. These are the corrected injectors.
**Note on format:** These are written as direct LLM persona instructions — second person, imperative register. They should appear verbatim in the injector prompt, not as description-of-description.
---
**Krenn Culture — Voice Injectors (v1, for spike validation)**
**Van Maanen's Star Culture — Voice Injectors (v1, for spike validation)**
1. "Be direct. Don't waste words. Everyone you talk to is short on time, including you."
@@ -131,9 +131,9 @@ The example in `proposed-llm-voice.md` ("Your speech is formal and avoids contra
**Usage notes for the injector assembly system:**
- All 8 clauses should be included for every Krenn NPC regardless of role or trait. Culture is the baseline register.
- Trait injectors layer on top: a Krenn-Bold NPC gets clause 8 amplified; a Krenn-Cautious NPC gets clause 8 dampened slightly.
- Mood injectors override where relevant: Krenn-Angry should suppress the directness of clause 8 toward bluntness; Krenn-Nervous should suppress clause 3's confidence.
- All 8 clauses should be included for every Van Maanen's Star NPC regardless of role or trait. Culture is the baseline register.
- Trait injectors layer on top: a Van Maanen's Star-Bold NPC gets clause 8 amplified; a Van Maanen's Star-Cautious NPC gets clause 8 dampened slightly.
- Mood injectors override where relevant: Van Maanen's Star-Angry should suppress the directness of clause 8 toward bluntness; Van Maanen's Star-Nervous should suppress clause 3's confidence.
- Do NOT use clause 4 (void-oaths) in neutral-register behaviors. Gate it to high-affect contexts. This is the composition engine's responsibility, but flag it explicitly so the system doesn't inject "void take it" into "checks a manifest."
---
@@ -13,7 +13,7 @@ One implication for my work: the dialogue spike payload question (N-5 from Round
---
## 1. Corrected Krenn Injector Clauses (finalized)
## 1. Corrected Van Maanen's Star Injector Clauses (finalized)
These supersede the v1 draft from `mellanie-round2.md`. Changes from v1:
- Added two example pairs (Miri's hybrid format recommendation: small models are pattern matchers before instruction-followers)
@@ -24,7 +24,7 @@ These supersede the v1 draft from `mellanie-round2.md`. Changes from v1:
---
**Krenn Culture — Voice Injectors v2 (finalized for Spike 1)**
**Van Maanen's Star Culture — Voice Injectors v2 (finalized for Spike 1)**
```
1. Be direct. No pleasantries. Everyone you talk to is short on time, and so are you.
@@ -63,9 +63,9 @@ VOICED: "Hey. Yeah. Catch you at shift end."
```
**Assembly notes for pipeline:**
- All 8 clauses apply to every Krenn NPC regardless of role or trait. Culture is the baseline.
- All 8 clauses apply to every Van Maanen's Star NPC regardless of role or trait. Culture is the baseline.
- Clauses 4 (void-oaths) must be gated to high-affect context by the composition engine — do not inject into neutral-register task behaviors.
- Trait injectors layer on top. A Krenn-Cautious NPC gets clause 8 dampened ("you don't say everything you think"); a Krenn-Bold NPC gets clause 8 amplified.
- Trait injectors layer on top. A Van Maanen's Star-Cautious NPC gets clause 8 dampened ("you don't say everything you think"); a Van Maanen's Star-Bold NPC gets clause 8 amplified.
- Mood injectors override where relevant: Angry suppresses clause 7 (greetings become terse to absent); Nervous suppresses clause 8 (bluntness becomes deflection).
- Tell context (see Section 5 of this document) layers on top of the above when a TellCategory is active.
@@ -82,70 +82,70 @@ These are the test payloads for Jeroen, Mellanie, and Paula to feed through the
**B-1: Ambient neutral — farmer, low stakes**
```
CHARACTER: Krenn farmer, traits [Bold, Honest], mood neutral
INJECTORS: Krenn culture v2 (all 8 clauses + examples), Bold trait modifier, neutral mood
CHARACTER: Van Maanen's Star farmer, traits [Bold, Honest], mood neutral
INJECTORS: Van Maanen's Star culture v2 (all 8 clauses + examples), Bold trait modifier, neutral mood
BASE TEXT: "checks the section's light cycle timer before deciding whether to water"
```
*Watch for:* Krenn register emerging on a mundane agricultural task. The line is specific and should stay specific — the LLM should voice the register, not dilute the detail. If it comes back as "checks the irrigation system thoughtfully," something's wrong.
*Watch for:* Van Maanen's Star register emerging on a mundane agricultural task. The line is specific and should stay specific — the LLM should voice the register, not dilute the detail. If it comes back as "checks the irrigation system thoughtfully," something's wrong.
---
**B-2: Ambient social — dock worker, off-shift**
```
CHARACTER: Krenn dock worker, traits [Social, Curious], mood tired
INJECTORS: Krenn culture v2, Social trait modifier, tired mood
CHARACTER: Van Maanen's Star dock worker, traits [Social, Curious], mood tired
INJECTORS: Van Maanen's Star culture v2, Social trait modifier, tired mood
BASE TEXT: "slumps into a break room chair and stares at nothing for a full minute before reaching for a drink"
```
*Watch for:* The base text already has strong texture. The ideal revoice is minimal interference — the Krenn voice should emerge without the model rewriting the specificity out of the line. If the output loses the "full minute" or "stares at nothing," the model is overwriting rather than voicing.
*Watch for:* The base text already has strong texture. The ideal revoice is minimal interference — the Van Maanen's Star voice should emerge without the model rewriting the specificity out of the line. If the output loses the "full minute" or "stares at nothing," the model is overwriting rather than voicing.
---
**B-3: High-affect situation — dock worker, discovering a problem**
```
CHARACTER: Krenn dock worker, traits [Honest, Cautious], mood anxious
INJECTORS: Krenn culture v2, Honest trait modifier, Cautious trait modifier, anxious mood
CHARACTER: Van Maanen's Star dock worker, traits [Honest, Cautious], mood anxious
INJECTORS: Van Maanen's Star culture v2, Honest trait modifier, Cautious trait modifier, anxious mood
BASE TEXT: "discovers a discrepancy in a manifest that shouldn't be there"
```
*Watch for:* Does void-oath vocabulary appear where appropriate (anxious discovery)? Does the Honest trait make them visibly reluctant to move past it rather than flag it quietly? The anxious mood should not produce melodrama — Krenn anxiety is tight and working-class, not expressive.
*Watch for:* Does void-oath vocabulary appear where appropriate (anxious discovery)? Does the Honest trait make them visibly reluctant to move past it rather than flag it quietly? The anxious mood should not produce melodrama — Van Maanen's Star anxiety is tight and working-class, not expressive.
---
**B-4: Relationship-driven (positive) — foreman observing a subordinate**
```
CHARACTER: Krenn foreman, traits [Honest, Social], mood positive
INJECTORS: Krenn culture v2, Honest + Social trait modifiers, positive mood
CHARACTER: Van Maanen's Star foreman, traits [Honest, Social], mood positive
INJECTORS: Van Maanen's Star culture v2, Honest + Social trait modifiers, positive mood
RELATIONSHIP CONTEXT: "this NPC watches a newer hire figure something out on their own and respects that"
BASE TEXT: "watches a new hire figure something out on their own and says nothing"
```
*Watch for:* Krenn approval is quiet and doesn't announce itself — "says nothing" is the approval. If the model adds a nod, a grunt of satisfaction, or any verbal acknowledgment, it's over-emoting. The Krenn way is to let competence be seen without commentary.
*Watch for:* Van Maanen's Star approval is quiet and doesn't announce itself — "says nothing" is the approval. If the model adds a nod, a grunt of satisfaction, or any verbal acknowledgment, it's over-emoting. The Van Maanen's Star way is to let competence be seen without commentary.
---
**B-5: Relationship-driven (negative) — technician, non-acknowledgment**
```
CHARACTER: Krenn technician, traits [Bold], mood suppressed
INJECTORS: Krenn culture v2, Bold trait modifier, suppressed mood
CHARACTER: Van Maanen's Star technician, traits [Bold], mood suppressed
INJECTORS: Van Maanen's Star culture v2, Bold trait modifier, suppressed mood
RELATIONSHIP CONTEXT: "this NPC has an unresolved conflict with the NPC they're passing"
BASE TEXT: "passes a colleague in the corridor without acknowledging them"
```
*Watch for:* Does the non-acknowledgment read as a deliberate choice rather than distraction? Krenn conflict registers as pointed silence, not absence. If the model makes it ambiguous ("walks past without noticing"), the relational information is lost.
*Watch for:* Does the non-acknowledgment read as a deliberate choice rather than distraction? Van Maanen's Star conflict registers as pointed silence, not absence. If the model makes it ambiguous ("walks past without noticing"), the relational information is lost.
---
**B-6: Tell-context behavior — dock worker, Nervous tell active**
```
CHARACTER: Krenn dock worker, traits [Cautious, Honest], mood anxious
INJECTORS: Krenn culture v2, Cautious trait modifier, anxious mood
CHARACTER: Van Maanen's Star dock worker, traits [Cautious, Honest], mood anxious
INJECTORS: Van Maanen's Star culture v2, Cautious trait modifier, anxious mood
TELL CONTEXT: "this NPC is under stress and concealing something. Their attention is divided. They appear normally busy, but their focus is not fully on the task."
BASE TEXT: "waits for a loading bay to clear before moving to the next task"
```
@@ -157,12 +157,12 @@ BASE TEXT: "waits for a loading bay to clear before moving to the next task"
**B-7: Social greeting, high-affect — mechanic receiving unexpected news**
```
CHARACTER: Krenn mechanic, traits [Bold, Curious], mood shocked
INJECTORS: Krenn culture v2, Bold + Curious trait modifiers, shocked mood
CHARACTER: Van Maanen's Star mechanic, traits [Bold, Curious], mood shocked
INJECTORS: Van Maanen's Star culture v2, Bold + Curious trait modifiers, shocked mood
BASE TEXT: "stops what she's doing and looks up when she hears the news"
```
*Watch for:* Shocked Krenn should produce a brief physical stop, not an emotional monologue. Does a void-oath appear? Does it stay short? The Curious trait should make the NPC want to know more — does that register as a follow-up question impulse?
*Watch for:* Shocked Van Maanen's Star should produce a brief physical stop, not an emotional monologue. Does a void-oath appear? Does it stay short? The Curious trait should make the NPC want to know more — does that register as a follow-up question impulse?
---
@@ -171,22 +171,22 @@ BASE TEXT: "stops what she's doing and looks up when she hears the news"
**D-1: Low access tier — stranger interaction, foreman deflecting**
```
CHARACTER: Krenn foreman, traits [Bold, Honest], mood neutral
INJECTORS: Krenn culture v2, Bold + Honest trait modifiers, neutral mood
CHARACTER: Van Maanen's Star foreman, traits [Bold, Honest], mood neutral
INJECTORS: Van Maanen's Star culture v2, Bold + Honest trait modifiers, neutral mood
ACCESS TIER: low (stranger, no established relationship)
TRUST LEVEL: none
BASE TEXT: "I can't help with that."
```
*Watch for:* A simple refusal in Krenn voice should be short and final, not apologetic, not elaborated. Does it add unnecessary softening ("I'm sorry, but...")? Does it add unnecessary hostility? The ideal output is something like "Can't help you there." or "Wrong person." — direct, not unkind, not extended.
*Watch for:* A simple refusal in Van Maanen's Star voice should be short and final, not apologetic, not elaborated. Does it add unnecessary softening ("I'm sorry, but...")? Does it add unnecessary hostility? The ideal output is something like "Can't help you there." or "Wrong person." — direct, not unkind, not extended.
---
**D-2: Medium access tier — mechanic redirecting to another NPC**
```
CHARACTER: Krenn mechanic, traits [Honest, Social], mood neutral
INJECTORS: Krenn culture v2, Honest + Social trait modifiers, neutral mood
CHARACTER: Van Maanen's Star mechanic, traits [Honest, Social], mood neutral
INJECTORS: Van Maanen's Star culture v2, Honest + Social trait modifiers, neutral mood
ACCESS TIER: medium (familiar face, some rapport)
TRUST LEVEL: acquaintance
RELATIONSHIP: colleague (positive)
@@ -200,43 +200,43 @@ BASE TEXT: "You'd want to ask Voss about that, not me."
**D-3: High access tier — technician disclosing a problem**
```
CHARACTER: Krenn technician, traits [Honest, Curious], mood concerned
INJECTORS: Krenn culture v2, Honest + Curious trait modifiers, concerned mood
CHARACTER: Van Maanen's Star technician, traits [Honest, Curious], mood concerned
INJECTORS: Van Maanen's Star culture v2, Honest + Curious trait modifiers, concerned mood
ACCESS TIER: high (trusted, established relationship)
TRUST LEVEL: trusted
BASE TEXT: "Something's been off with the overnight manifest since last week. I logged it. Nobody's followed up."
```
*Watch for:* This is the highest-stakes test. The information must survive intact — "since last week," "I logged it," "nobody's followed up" — these are specific and gameplay-relevant. The Honest trait should make the NPC clearly willing to say this; the Curious trait should hint at "and I want to know why." Does Krenn concern register as a practical complaint rather than dramatic worry?
*Watch for:* This is the highest-stakes test. The information must survive intact — "since last week," "I logged it," "nobody's followed up" — these are specific and gameplay-relevant. The Honest trait should make the NPC clearly willing to say this; the Curious trait should hint at "and I want to know why." Does Van Maanen's Star concern register as a practical complaint rather than dramatic worry?
---
**D-4: Dialogue with Nervous tell context — dock worker deflecting**
```
CHARACTER: Krenn dock worker, traits [Bold], mood stressed
INJECTORS: Krenn culture v2, Bold trait modifier, stressed mood
CHARACTER: Van Maanen's Star dock worker, traits [Bold], mood stressed
INJECTORS: Van Maanen's Star culture v2, Bold trait modifier, stressed mood
ACCESS TIER: medium (familiar face)
TRUST LEVEL: acquaintance
TELL CONTEXT: "this NPC is suppressing stress and deflecting. Their responses are shorter than usual and more clipped even for them."
BASE TEXT: "Everything's fine. The shift's running fine."
```
*Watch for:* "Everything's fine" said by a Bold Krenn NPC who is actually stressed should ring hollow in a specific way. Krenn-Bold overstating normalcy should read as over-assertion, not calm confidence. The tell context ("shorter than usual, more clipped") should push the output toward something like "Fine. Shift's fine." — the repetition is the tell.
*Watch for:* "Everything's fine" said by a Bold Van Maanen's Star NPC who is actually stressed should ring hollow in a specific way. Van Maanen's Star-Bold overstating normalcy should read as over-assertion, not calm confidence. The tell context ("shorter than usual, more clipped") should push the output toward something like "Fine. Shift's fine." — the repetition is the tell.
---
**D-5: High-affect dialogue — foreman, angry, denying involvement**
```
CHARACTER: Krenn foreman, traits [Honest, Bold], mood angry
INJECTORS: Krenn culture v2, Honest + Bold trait modifiers, angry mood
CHARACTER: Van Maanen's Star foreman, traits [Honest, Bold], mood angry
INJECTORS: Van Maanen's Star culture v2, Honest + Bold trait modifiers, angry mood
ACCESS TIER: medium
TRUST LEVEL: acquaintance
BASE TEXT: "I don't know who approved that, but it wasn't me and it wasn't my shift."
```
*Watch for:* Krenn anger is specific and accusatory, not generalized. Does the output stay pointed? Does a void-oath appear? Does Bold make the NPC say this with more force than necessary (good) rather than pulling back (bad)? The line should have edge — not drama.
*Watch for:* Van Maanen's Star anger is specific and accusatory, not generalized. Does the output stay pointed? Does a void-oath appear? Does Bold make the NPC say this with more force than necessary (good) rather than pulling back (bad)? The line should have edge — not drama.
---
@@ -260,7 +260,7 @@ This documents the full copy team workflow under the final architecture: full pi
- 2 brief example pairs demonstrating correct culture voice
- Copy team writes; copy team reviews spike output against these as ground truth
- New culture cost: ~1 day of focused copy work
- Current status: Krenn v2 above is ready for Spike 1
- Current status: Van Maanen's Star v2 above is ready for Spike 1
**Trait modifier clauses (once total, copy team owns)**
- 1 injector clause per personality trait, 10 traits total
@@ -351,7 +351,7 @@ Paula is drafting the amendment text. My proposed language from Round 2 has broa
These are the 5 injector clauses that inform the LLM about an NPC's active tell state. They are injected into the behavior/dialogue prompt when a TellCategory is active. The tell itself never goes to the LLM; these context clauses do.
Draft — written for Krenn culture register but should be culture-neutral as system context:
Draft — written for Van Maanen's Star culture register but should be culture-neutral as system context:
| TellCategory | Context clause injected into prompt |
|---|---|
@@ -367,6 +367,6 @@ Draft — written for Krenn culture register but should be culture-neutral as sy
## One thing to settle before Spike 1
**Tell context clause culture-neutrality:** The 5 context clauses above are written to be culture-neutral — they describe the NPC's internal state without Krenn register. They're constraints, not output. This is intentional: culture injectors voice the output; tell context clauses describe the state. If the clauses are written in Krenn voice, the LLM may voice the constraint itself rather than apply it.
**Tell context clause culture-neutrality:** The 5 context clauses above are written to be culture-neutral — they describe the NPC's internal state without Van Maanen's Star register. They're constraints, not output. This is intentional: culture injectors voice the output; tell context clauses describe the state. If the clauses are written in Van Maanen's Star voice, the LLM may voice the constraint itself rather than apply it.
Gestalt — confirm: context clauses are system prompt input, the player never sees them, and they should be maximally descriptive rather than voiced? If so, the drafts above are correct. If tell context clauses need to be per-culture (e.g., "this Krenn NPC is under stress..."), the authoring burden increases significantly and I'd want to know now.
Gestalt — confirm: context clauses are system prompt input, the player never sees them, and they should be maximally descriptive rather than voiced? If so, the drafts above are correct. If tell context clauses need to be per-culture (e.g., "this Van Maanen's Star NPC is under stress..."), the authoring burden increases significantly and I'd want to know now.
@@ -10,7 +10,7 @@
Let me check this against what we've established before I endorse anything.
I've read the full proposal, the generator spike, both zone specs, the Krenn culture profile, and the relevant D-records (D-121, D-122, D-123, D-128). My position: **Option 3 (LLM re-voicing) is correct in direction, but the proposal as written underestimates the injection complexity required to preserve cultural distinctiveness at 2B model size.** The base-text-as-fallback architecture is worldbuilding-sound. The injector clause system, as currently described, is not deep enough to produce Krenn voices rather than generic SF working-class voices.
I've read the full proposal, the generator spike, both zone specs, the Van Maanen's Star culture profile, and the relevant D-records (D-121, D-122, D-123, D-128). My position: **Option 3 (LLM re-voicing) is correct in direction, but the proposal as written underestimates the injection complexity required to preserve cultural distinctiveness at 2B model size.** The base-text-as-fallback architecture is worldbuilding-sound. The injector clause system, as currently described, is not deep enough to produce Van Maanen's Star voices rather than generic SF working-class voices.
This is fixable. It is not a reason to reject Option 3. But it needs to be flagged clearly before the spike is designed.
@@ -20,25 +20,25 @@ This is fixable. It is not a reason to reject Option 3. But it needs to be flagg
### Option 1 — Hand-authored pools (current)
**Setting note:** This is the highest-fidelity option for Krenn specifically, but it encodes a trap. We've invested enough authoring to make Krenn feel like a place. Adding a second culture — say, a station culture with different history and different relationship to the void — requires rebuilding the entire content layer from scratch. Option 1 preserves what we have; it cannot scale to what the Reach requires.
**Setting note:** This is the highest-fidelity option for Van Maanen's Star specifically, but it encodes a trap. We've invested enough authoring to make Van Maanen's Star feel like a place. Adding a second culture — say, a station culture with different history and different relationship to the void — requires rebuilding the entire content layer from scratch. Option 1 preserves what we have; it cannot scale to what the Reach requires.
The cultural distinctiveness of Krenn in the current zone files is not accidental. Lines like "wipes grease on the thigh of her coveralls between jobs" and "explains a repair in clipped shorthand without looking up" are specific and earned. That specificity comes from Mellanie understanding Krenn culture well enough to author from the inside. You cannot template that away. What you can do is provide the LLM with enough cultural context that it produces output that doesn't contradict it.
The cultural distinctiveness of Van Maanen's Star in the current zone files is not accidental. Lines like "wipes grease on the thigh of her coveralls between jobs" and "explains a repair in clipped shorthand without looking up" are specific and earned. That specificity comes from Mellanie understanding Van Maanen's Star culture well enough to author from the inside. You cannot template that away. What you can do is provide the LLM with enough cultural context that it produces output that doesn't contradict it.
**Verdict:** Best quality, worst scalability. Viable only for Krenn, only for v0.2.
**Verdict:** Best quality, worst scalability. Viable only for Van Maanen's Star, only for v0.2.
### Option 2 — Composable primitives
**Setting note:** The cultural markers system already exists in the NpcBlueprint — `speech_register`, `filler_words`, `greeting`. These are well-defined discrete items. The problem is that composable primitives can only assemble *vocabulary*; they cannot assemble *worldview*.
"Void take it" is in the culture RON as an exclamation. A composable system can insert it correctly when an NPC exclaims. But it cannot decide that a Krenn character, when stressed, says "cold vacuum" rather than "void take it" — that requires understanding the emotional register each phrase carries. Krenn speech is working-class and compressed, not working-class and verbose. Composition engines tend toward additive assembly; Krenn culture requires compression and omission.
"Void take it" is in the culture RON as an exclamation. A composable system can insert it correctly when an NPC exclaims. But it cannot decide that a Van Maanen's Star character, when stressed, says "cold vacuum" rather than "void take it" — that requires understanding the emotional register each phrase carries. Van Maanen's Star speech is working-class and compressed, not working-class and verbose. Composition engines tend toward additive assembly; Van Maanen's Star culture requires compression and omission.
More seriously: composable primitives cannot prevent the cultural void-oath from being inserted in a context where it reads wrong. The behavior "hauls produce to the market stall before the morning exchange opens" doesn't naturaly carry an exclamation — but a template that tries to add cultural flavor might generate something like "hauls produce, grumbling 'void take it' at the weight." That's not wrong vocabulary. It's wrong register.
**Verdict:** Sufficient for vocabulary, insufficient for worldview. Produces Krenn-vocabulary characters that don't feel Krenn.
**Verdict:** Sufficient for vocabulary, insufficient for worldview. Produces Van Maanen's Star-vocabulary characters that don't feel Van Maanen's Star.
### Option 3 — LLM re-voicing (hybrid recommended)
**Setting note:** The architecture of this option is sound worldbuilding. The semantic base text as the gameplay layer and the voiced text as the enhancement layer maps cleanly to how the setting works diegetically — the world is always legible; the insert just adds resolution. A player who plays without AI enhancement experiences a functional Krenn world; one with it enabled hears the grain.
**Setting note:** The architecture of this option is sound worldbuilding. The semantic base text as the gameplay layer and the voiced text as the enhancement layer maps cleanly to how the setting works diegetically — the world is always legible; the insert just adds resolution. A player who plays without AI enhancement experiences a functional Van Maanen's Star world; one with it enabled hears the grain.
The injector clause structure — culture as baseline, personality as flavor, mood as override — matches the cultural hierarchy we've established (D-121: voice is culture-driven, job as modifier). This is not a coincidence; it's a correct abstraction of what the existing culture RON encodes.
@@ -52,11 +52,11 @@ The injector clause structure — culture as baseline, personality as flavor, mo
This is where I need to be cautious.
The proposal describes the Krenn cultural injector as: *"Your speech is formal and avoids contractions."*
The proposal describes the Van Maanen's Star cultural injector as: *"Your speech is formal and avoids contractions."*
**That is the wrong injector for Krenn.** Krenn speech is not formal. It is direct-informal. Formal-without-contractions describes a completely different culture. This example injector reads like a placeholder written for a generic "culture adds formality" slot. If this is the actual injector that ships, we will produce NPCs who sound like junior civil servants, not people who live in a pressurized box 180 years from Earth.
**That is the wrong injector for Van Maanen's Star.** Van Maanen's Star speech is not formal. It is direct-informal. Formal-without-contractions describes a completely different culture. This example injector reads like a placeholder written for a generic "culture adds formality" slot. If this is the actual injector that ships, we will produce NPCs who sound like junior civil servants, not people who live in a pressurized box 180 years from Earth.
The actual Krenn cultural injector needs to encode:
The actual Van Maanen's Star cultural injector needs to encode:
1. **Register:** Direct but not hostile. Short because time is genuinely scarce, not because they're unfriendly.
2. **Oath vocabulary:** Void-adjacent exclamations only. "Void take it," "cold vacuum," "blood and void." Not divine oaths. Not secular Earth oaths ("damn it," "hell," "crap"). Space is the threat that kills you, not a metaphysical abstraction.
@@ -72,7 +72,7 @@ This is approximately 200-300 words of instruction. At 2B model size, the effect
**My assessment:** A 2B model can probably preserve oath *vocabulary* if the injector explicitly lists the terms and instructs their use. It cannot reliably preserve the *philosophy* behind the vocabulary. The difference between a character who says "void take it" because they were told to and a character who says it because space genuinely terrifies them — that lives in tone and context, not in word selection.
**Practical floor:** Injector clauses can guarantee correct oath vocabulary and correct register description. They cannot guarantee that the model uses them with correct Krenn weight. The spike must explicitly test oath preservation and register accuracy, not just fluency.
**Practical floor:** Injector clauses can guarantee correct oath vocabulary and correct register description. They cannot guarantee that the model uses them with correct Van Maanen's Star weight. The spike must explicitly test oath preservation and register accuracy, not just fluency.
---
@@ -98,13 +98,13 @@ The model knows what generic SF NPCs talk about. Wormholes are in the Settled Re
### Type C: Setting-neutral social structures
The model may produce NPCs who reference senators, admirals, corporations, megacities — structures that exist in generic SF but not in the Settled Reach's specific institutional topology. For Krenn, the relevant institutions are the Commission (distant authority, suspect), the shift structure (immediate authority, respected if competent), and the local community (primary loyalty).
The model may produce NPCs who reference senators, admirals, corporations, megacities — structures that exist in generic SF but not in the Settled Reach's specific institutional topology. For Van Maanen's Star, the relevant institutions are the Commission (distant authority, suspect), the shift structure (immediate authority, respected if competent), and the local community (primary loyalty).
**Guard:** Injector should specify institutional vocabulary. "When referencing authority, use: Commission, shift lead, port authority. Do not use: government, military, senate, council, corporation."
### Type D: Social register bleed
Working-class characters in English-language training data sound like contemporary Earth working class. Krenn working class has 180 years of post-Earth cultural evolution in an enclosed artificial environment. The biggest surface tell is: **contemporary Earth profanity and social reference**. A Krenn character should not reference sports, religion, nationalism, or other Earth-rooted social fabric. The model will produce these because they are statistically dominant in training data for working-class dialogue.
Working-class characters in English-language training data sound like contemporary Earth working class. Van Maanen's Star working class has 180 years of post-Earth cultural evolution in an enclosed artificial environment. The biggest surface tell is: **contemporary Earth profanity and social reference**. A Van Maanen's Star character should not reference sports, religion, nationalism, or other Earth-rooted social fabric. The model will produce these because they are statistically dominant in training data for working-class dialogue.
**Guard:** Explicit exclusion in injectors. "Do not reference religion, sports, nationality, or Earth-origin social structures."
@@ -143,13 +143,13 @@ This also means the LLM injector for vocabulary is zero-additional-authoring —
### If we choose Option 1 (hand-authored only)
**Setting cost:** Krenn is permanently the only culture with full coverage. Every other culture the team needs — and the Reach requires multiple cultures for the investigation mechanics to work — starts from nothing. The IP originality problem is managed by authoring, but only for Krenn. Everywhere else defaults to generic SF.
**Setting cost:** Van Maanen's Star is permanently the only culture with full coverage. Every other culture the team needs — and the Reach requires multiple cultures for the investigation mechanics to work — starts from nothing. The IP originality problem is managed by authoring, but only for Van Maanen's Star. Everywhere else defaults to generic SF.
More importantly: **D-128 says culture is implicit in location**. As we add locations, we add culture requirements. Option 1 makes every new location a content crisis.
### If we choose Option 2 (composable primitives, no LLM)
**Setting cost:** Characters produce the right vocabulary in the wrong contexts. A composable system that assembles "void take it" as a cultural marker will insert it wherever the culture modifier fires, regardless of whether the character is mildly inconvenienced or confronting existential danger. Krenn exclamations are calibrated by severity — "stars" is mild, "blood and void" is serious. Template assembly has no severity model.
**Setting cost:** Characters produce the right vocabulary in the wrong contexts. A composable system that assembles "void take it" as a cultural marker will insert it wherever the culture modifier fires, regardless of whether the character is mildly inconvenienced or confronting existential danger. Van Maanen's Star exclamations are calibrated by severity — "stars" is mild, "blood and void" is serious. Template assembly has no severity model.
More practically: composable primitives produce dialogue that reads as *assembled*. The player will notice the seams. The immersive sim depends on NPCs feeling like inhabitants. Assembled dialogue breaks that.
@@ -173,11 +173,11 @@ This is the binding constraint for everything I've described. If the total promp
`[Task instruction] + [Base text] + [Mood injector] + [Personality injectors] + [Cultural injector] + [Format instruction]`
...then the cultural injector is competing for space with everything else. At 2B model size, very long prompts produce worse instruction-following, not better. The cultural injector I described above — register, oath vocabulary, community anchors, competence signaling, exclusions — requires approximately 200-300 words to encode Krenn accurately. If the budget is 50-80 tokens, we can specify register and list the oaths but nothing else. If it's 200+ tokens, we can encode the cultural philosophy.
...then the cultural injector is competing for space with everything else. At 2B model size, very long prompts produce worse instruction-following, not better. The cultural injector I described above — register, oath vocabulary, community anchors, competence signaling, exclusions — requires approximately 200-300 words to encode Van Maanen's Star accurately. If the budget is 50-80 tokens, we can specify register and list the oaths but nothing else. If it's 200+ tokens, we can encode the cultural philosophy.
**The quality ceiling of culture preservation in this system is directly determined by prompt budget.** I cannot assess whether Option 3 can preserve Krenn cultural distinctiveness until Tyre tells me how many tokens the cultural injector can consume without degrading output quality at 2B model size.
**The quality ceiling of culture preservation in this system is directly determined by prompt budget.** I cannot assess whether Option 3 can preserve Van Maanen's Star cultural distinctiveness until Tyre tells me how many tokens the cultural injector can consume without degrading output quality at 2B model size.
If the answer is "under 100 tokens," we need to revisit the injector architecture and consider culture-specific few-shot examples rather than instruction-only injectors. Few-shot examples may produce better Krenn register than instructions about Krenn register — but they consume more tokens and require authoring examples for each culture.
If the answer is "under 100 tokens," we need to revisit the injector architecture and consider culture-specific few-shot examples rather than instruction-only injectors. Few-shot examples may produce better Van Maanen's Star register than instructions about Van Maanen's Star register — but they consume more tokens and require authoring examples for each culture.
---
@@ -185,7 +185,7 @@ If the answer is "under 100 tokens," we need to revisit the injector architectur
| Criterion | Option 1 | Option 2 | Option 3 (hybrid) |
|-----------|----------|----------|-------------------|
| Krenn cultural distinctiveness | Excellent | Adequate | Good, if injectors are deep |
| Van Maanen's Star cultural distinctiveness | Excellent | Adequate | Good, if injectors are deep |
| Multi-culture scalability | Poor | Moderate | Excellent |
| Void-oath preservation | Guaranteed | Vocabulary only | Depends on model + budget |
| Lore contamination risk | None | Low | Moderate (franchise bleed) |
@@ -197,6 +197,6 @@ If the answer is "under 100 tokens," we need to revisit the injector architectur
2. Cultural injectors sourced from NpcBlueprint.cultural_markers (not re-derived from culture RON)
3. Negative injectors (NOT-lists) as a first-class component of cultural injection
4. Spike must explicitly test oath preservation and franchise-bleed resistance, not just fluency
5. The current placeholder Krenn injector ("formal, avoids contractions") must be replaced before any quality assessment is valid
5. The current placeholder Van Maanen's Star injector ("formal, avoids contractions") must be replaced before any quality assessment is valid
The base-text-as-fallback architecture is correct and worldbuilding-sound. The progressive enhancement model maps cleanly to how the setting works. My only blocker is knowing the prompt token budget before I can assess whether deep injectors are feasible at 2B.
@@ -25,10 +25,10 @@ This is the question I raised in Round 1. Now that I have a concrete budget numb
### What 150 tokens can encode
An aggressive compression of the Krenn cultural injector:
An aggressive compression of the Van Maanen's Star cultural injector:
---
*Krenn System culture. Direct-informal register — short because time is scarce, not unfriendly. Competence earns respect; showing up matters more than rank. Community references: crew, shift, street. Exclamations ONLY from: "void take it" / "stars" / "blood and void" / "void's sake" / "cold vacuum." Greetings: hey, morning, shift treating you alright. Farewells: shift's calling, gotta move. NO religious oaths, NO quips, NO sir/ma'am deference. Filler words: look, right, yeah, so.*
*Van Maanen's Star culture. Direct-informal register — short because time is scarce, not unfriendly. Competence earns respect; showing up matters more than rank. Community references: crew, shift, street. Exclamations ONLY from: "void take it" / "stars" / "blood and void" / "void's sake" / "cold vacuum." Greetings: hey, morning, shift treating you alright. Farewells: shift's calling, gotta move. NO religious oaths, NO quips, NO sir/ma'am deference. Filler words: look, right, yeah, so.*
---
Word count: ~85 words. Token count: ~100-115 tokens. **This fits within the 150-token budget.**
@@ -45,20 +45,20 @@ What this encodes at 150 tokens:
What is missing at 150 tokens:
1. **The reason behind the register.** "Direct-informal" describes the surface; it doesn't explain that Krenn directness is *compressed purposefulness* — short because the work is real and time is genuinely scarce — not shortness-as-personality. A 2B model interpreting "direct-informal" without this context will produce casual American working-class dialogue. Krenn is not casual American. It's earned competence under material constraint.
1. **The reason behind the register.** "Direct-informal" describes the surface; it doesn't explain that Van Maanen's Star directness is *compressed purposefulness* — short because the work is real and time is genuinely scarce — not shortness-as-personality. A 2B model interpreting "direct-informal" without this context will produce casual American working-class dialogue. Van Maanen's Star is not casual American. It's earned competence under material constraint.
2. **Void-oath philosophy.** The culture RON describes Krenn oaths as "void-adjacent — space is real here, and hostile. They don't swear by gods or governments. They swear by what kills you." This is the *reason* the oath vocabulary is what it is. A model that has the vocabulary list but not this context will use "void take it" as a rule, not as an instinct — and the register difference is visible in how and when the oath appears.
2. **Void-oath philosophy.** The culture RON describes Van Maanen's Star oaths as "void-adjacent — space is real here, and hostile. They don't swear by gods or governments. They swear by what kills you." This is the *reason* the oath vocabulary is what it is. A model that has the vocabulary list but not this context will use "void take it" as a rule, not as an instinct — and the register difference is visible in how and when the oath appears.
3. **Deep NOT-list.** 150 tokens gives room for 3-4 exclusions. The full exclusion set needed to prevent franchise bleed is 8-10 items. See Section 4 for the full universal negative injector set.
4. **Social calibration.** Krenn culture is community-oriented but not warm-in-the-American-sense. Outsiders are "tolerated but watched." Loyalty "runs narrow and deep — to your crew, your shift, your street." This social topology shapes how NPCs interact with the player in ways that a register descriptor cannot convey.
4. **Social calibration.** Van Maanen's Star culture is community-oriented but not warm-in-the-American-sense. Outsiders are "tolerated but watched." Loyalty "runs narrow and deep — to your crew, your shift, your street." This social topology shapes how NPCs interact with the player in ways that a register descriptor cannot convey.
### 150 tokens vs. 300 tokens: what changes
At 300 tokens, you can add:
- A worldview sentence: "Settled Reach workers live in sealed environments — space is the hostile reality outside the hull, not a romantic backdrop. Void-oaths reflect proximity to vacuum, not metaphor."
- Behavioral guidance: "Krenn workers show competence through visible action, not through claiming status. They answer questions with the minimum needed and add context only when it affects the work."
- Behavioral guidance: "Van Maanen's Star workers show competence through visible action, not through claiming status. They answer questions with the minimum needed and add context only when it affects the work."
- Extended NOT-list: Full set of 8-10 exclusion categories rather than 3.
- Social calibration: "Outsiders are politely watched, not warmly welcomed. Trust is earned through reliable work, not through friendliness."
@@ -73,7 +73,7 @@ The difference between 150 and 300 tokens is the difference between **following
**Hybrid (instructions + examples) at 200-250 tokens:** This is the recommendation. Specifically:
- ~80-90 tokens: minimal instruction set (register, oath vocabulary list, 3-4 NOT-items)
- ~120-140 tokens: 2 brief example pairs showing Krenn voice in practice
- ~120-140 tokens: 2 brief example pairs showing Van Maanen's Star voice in practice
Example pair format:
```
@@ -88,7 +88,7 @@ Each pair: ~35-40 tokens. Two pairs: ~70-80 tokens. Adding these to the 100-toke
**Why examples outperform instructions at 2B model size:**
Small models are pattern matchers before they are instruction-followers. An example that demonstrates Krenn register (spare phrasing, visible competence, no ceremony) is more reliably reproduced than an instruction describing the same properties in the abstract. The instruction tells the model *what* to do; the example shows it *what the output looks like*.
Small models are pattern matchers before they are instruction-followers. An example that demonstrates Van Maanen's Star register (spare phrasing, visible competence, no ceremony) is more reliably reproduced than an instruction describing the same properties in the abstract. The instruction tells the model *what* to do; the example shows it *what the output looks like*.
### Verdict on Q-R1-04
@@ -114,7 +114,7 @@ The behaviors-only scope is also correct sequencing. Observable behaviors are sh
**Specific world consistency concerns for Proposal A:**
The 150-token injector budget (all three proposals share this for ambient behaviors) is adequate for vocabulary but requires the hybrid instruction+example structure I described above. If the injector is instruction-only at 150 tokens, the output will be Krenn-vocabulary but not necessarily Krenn-register.
The 150-token injector budget (all three proposals share this for ambient behaviors) is adequate for vocabulary but requires the hybrid instruction+example structure I described above. If the injector is instruction-only at 150 tokens, the output will be Van Maanen's Star-vocabulary but not necessarily Van Maanen's Star-register.
The NOT-list in the injector needs the universal negative injectors (see Section 4). These are not culture-specific — they prevent franchise bleed for any culture, including cultures we haven't authored yet.
@@ -130,7 +130,7 @@ The NOT-list in the injector needs the universal negative injectors (see Section
**World consistency assessment: Appealing in theory, risk in practice.**
I want to give Gestalt's semantic_core proposal credit — it's architecturally elegant and the theory is correct. A tell that reads "avoidance_behavior" in Krenn dialect should express differently than one in a different culture. The player who has spent 20 hours in the Reach should learn to read Krenn avoidance as distinct from other cultures' avoidance. That cultural specificity is worldbuilding-good.
I want to give Gestalt's semantic_core proposal credit — it's architecturally elegant and the theory is correct. A tell that reads "avoidance_behavior" in Van Maanen's Star dialect should express differently than one in a different culture. The player who has spent 20 hours in the Reach should learn to read Van Maanen's Star avoidance as distinct from other cultures' avoidance. That cultural specificity is worldbuilding-good.
The risk is asymmetric failure. Proposal A fails visibly and audibly (wrong vocabulary in a behavior line). Proposal B fails invisibly and mechanically — a tell that *sounds fine* but does not preserve the phenomenon it was authored to signal. That is a corrupted gameplay-information path that may not be detected in testing because it reads as acceptable prose.
@@ -143,7 +143,7 @@ The current tell grammar contains behaviors like:
Can a 2B model, given semantic_core = "suppression_behavior", preserve the "exaggerated" quality that distinguishes performed calm from natural calm? Can it preserve the "repeatedly" that makes the second tell a tell rather than a normal behavior? My concern is that the model preserves the category (avoidance, suppression, vigilance) but loses the specific qualifier that makes each tell *readable as a tell* rather than readable as neutral behavior.
**Setting note:** The void-oath vocabulary issue is *more* dangerous in tells than in ambient behaviors. An ambient behavior that uses wrong vocabulary is a minor lore break. A tell that uses wrong vocabulary may read as a different tell entirely — wrong signal, wrong player inference. If "becomes evasive and avoids eye contact" is re-voiced with a Krenn register that produces "keeps to themselves, moves through the space quiet" — that is NOT a strong avoidance tell. It could be an introversion tell, a neutral behavior, or nothing. The vocabulary change produced a semantic shift.
**Setting note:** The void-oath vocabulary issue is *more* dangerous in tells than in ambient behaviors. An ambient behavior that uses wrong vocabulary is a minor lore break. A tell that uses wrong vocabulary may read as a different tell entirely — wrong signal, wrong player inference. If "becomes evasive and avoids eye contact" is re-voiced with a Van Maanen's Star register that produces "keeps to themselves, moves through the space quiet" — that is NOT a strong avoidance tell. It could be an introversion tell, a neutral behavior, or nothing. The vocabulary change produced a semantic shift.
**Condition for acceptability:** The spike must test Proposal B's constrained re-voicing on tell strings explicitly and measure whether the phenomenon survives at >98% accuracy. "Phenomenon survives" means: a blind reviewer, shown the base text tell and the re-voiced tell, identifies them as expressing the same observable pattern. Below 98%, fall back to Proposal A passthrough for tells.
@@ -157,7 +157,7 @@ Can a 2B model, given semantic_core = "suppression_behavior", preserve the "exag
**World consistency assessment: Architecturally correct, wrong sequencing.**
Dialogue is where cultural voice matters most to the player. What NPCs *say* is where Krenn identity is most legible — their speech register, their void-oaths used naturally in conversation, their working-class pragmatism in how they respond to the player. I agree with Paula that dialogue is the highest-value target for re-voicing.
Dialogue is where cultural voice matters most to the player. What NPCs *say* is where Van Maanen's Star identity is most legible — their speech register, their void-oaths used naturally in conversation, their working-class pragmatism in how they respond to the player. I agree with Paula that dialogue is the highest-value target for re-voicing.
The problem is dialogue is also the highest-risk target for lore contamination at 2B model size.
@@ -171,11 +171,11 @@ The 400-500 token total prompt for dialogue means the cultural injector (~100-20
For behaviors: "wrong vocabulary once" is the failure mode — detectable, bounded.
For dialogue: "sounds like the wrong franchise for the whole conversation" is the failure mode — immersive, corrosive. An NPC whose ambient behaviors are correctly Krenn-voiced but whose dialogue sounds like a Mass Effect NPC creates a cognitive dissonance that damages trust in the setting. The player will notice "this feels like I've heard this before" more readily in dialogue than in brief behavioral observations.
For dialogue: "sounds like the wrong franchise for the whole conversation" is the failure mode — immersive, corrosive. An NPC whose ambient behaviors are correctly Van Maanen's Star-voiced but whose dialogue sounds like a Mass Effect NPC creates a cognitive dissonance that damages trust in the setting. The player will notice "this feels like I've heard this before" more readily in dialogue than in brief behavioral observations.
**The access/trust tier constraint adds surface:**
Paula's observation that dialogue has access/trust tier tags is correct, and it's a structural advantage for information safety. But from a worldbuilding perspective, those tiers also change the *register* of the dialogue — a high-trust conversation with a Krenn worker sounds different from a low-trust first encounter. A 2B model given cultural injectors + trust tier needs to combine two constraint sets simultaneously without collapsing either. That's a harder instruction-following task.
Paula's observation that dialogue has access/trust tier tags is correct, and it's a structural advantage for information safety. But from a worldbuilding perspective, those tiers also change the *register* of the dialogue — a high-trust conversation with a Van Maanen's Star worker sounds different from a low-trust first encounter. A 2B model given cultural injectors + trust tier needs to combine two constraint sets simultaneously without collapsing either. That's a harder instruction-following task.
**How to make C acceptable:**
@@ -280,7 +280,7 @@ This is not a blocker for any proposal, but it must be decided before the `sr-vo
4. Tell passthrough as absolute — no tell re-voicing in v0.2 under any circumstances
5. Proposal C (dialogue) as explicitly-stated v0.3 target in the D-record
**The corrected Krenn injector (placeholder, for Mellanie to refine):**
**The corrected Van Maanen's Star injector (placeholder, for Mellanie to refine):**
```
[SYSTEM/SHARED] Do not use religious language. No military ranks. Technology terms
@@ -297,6 +297,6 @@ SHOW: BASE → VOICED
"works on the equipment" → "traces the fault, finds it, fixes it without ceremony"
```
This is a working draft, not final copy. The two examples demonstrate Krenn's visible-competence-without-commentary register in practice. The full injector with the example pairs runs ~220-240 tokens — above 150 but within the 250-token soft ceiling I'd recommend for behavior re-voicing.
This is a working draft, not final copy. The two examples demonstrate Van Maanen's Star's visible-competence-without-commentary register in practice. The full injector with the example pairs runs ~220-240 tokens — above 150 but within the 250-token soft ceiling I'd recommend for behavior re-voicing.
**Setting note — the Proposal C vision is correct, just not for v0.2.** Dialogue re-voicing with culture-vector injectors is the right long-term architecture for scaling Krenn voice (and every other culture we build) across the full Reach. The risk profile for v0.2 is too high because we haven't yet proven the behavior pipeline. The correct statement is: build A, validate, extend to C in the next spike.
**Setting note — the Proposal C vision is correct, just not for v0.2.** Dialogue re-voicing with culture-vector injectors is the right long-term architecture for scaling Van Maanen's Star voice (and every other culture we build) across the full Reach. The risk profile for v0.2 is too high because we haven't yet proven the behavior pipeline. The correct statement is: build A, validate, extend to C in the next spike.
@@ -50,7 +50,7 @@ Revised failure mode list, with mitigations:
*Layer 1 — Negative injectors:* NI-1 through NI-5 (see Section 2) in the shared system prompt. These block the most common franchise vocabulary before culture-specific injectors run.
*Layer 2 — Culture injectors with explicit positive anchoring:* The culture injector doesn't just exclude — it provides a positive pattern to match. Two example pairs demonstrating Krenn register show the model what Settled Reach working-class sounds like, not just what it doesn't sound like.
*Layer 2 — Culture injectors with explicit positive anchoring:* The culture injector doesn't just exclude — it provides a positive pattern to match. Two example pairs demonstrating Van Maanen's Star register show the model what Settled Reach working-class sounds like, not just what it doesn't sound like.
*Layer 3 — Build-time validation on baked content:* Before baked hub content ships, run an automated pass checking outputs against a franchise vocabulary blocklist. Flag any line containing identifiable franchise markers for human review. This list is maintained by the copy team (Mellanie) and initially populated from known franchise vocabulary.
@@ -86,11 +86,11 @@ Revised failure mode list, with mitigations:
- "The military," "the navy," "the fleet"
- Generic authority figures: "the government," "the president," "the king"
**The Krenn-specific version:** Krenn NPCs reference the Commission as the distant authority they're suspicious of. A model that doesn't know this will substitute generic institutional vocabulary. "The Commission wants its cut" is correct; "the government takes its share" is not wrong in isolation but it dissolves setting specificity.
**The Van Maanen's Star-specific version:** Van Maanen's Star NPCs reference the Commission as the distant authority they're suspicious of. A model that doesn't know this will substitute generic institutional vocabulary. "The Commission wants its cut" is correct; "the government takes its share" is not wrong in isolation but it dissolves setting specificity.
**Mitigation:**
*Culture injector:* Include the relevant institutional vocabulary for each culture. Krenn culture: Commission (distant, suspect), port authority (local, procedural), shift lead (immediate, competent). These go in the culture-specific injector, not the universal system prompt — institutions are culture-specific.
*Culture injector:* Include the relevant institutional vocabulary for each culture. Van Maanen's Star culture: Commission (distant, suspect), port authority (local, procedural), shift lead (immediate, competent). These go in the culture-specific injector, not the universal system prompt — institutions are culture-specific.
*NI-2 (negative injector):* Blocks military rank vocabulary (a frequent institutional contamination vector) universally.
@@ -102,7 +102,7 @@ Revised failure mode list, with mitigations:
### Failure Mode 4: Earth Social Register
**What it is:** Working-class characters in training data sound like 21st-century Earth working class. Krenn working class has 180 years of post-Earth cultural evolution in a sealed artificial environment. The bleed is subtle: idioms, sports references, religious phrases, nationality markers, and contemporary social cadences.
**What it is:** Working-class characters in training data sound like 21st-century Earth working class. Van Maanen's Star working class has 180 years of post-Earth cultural evolution in a sealed artificial environment. The bleed is subtle: idioms, sports references, religious phrases, nationality markers, and contemporary social cadences.
**How it manifests:**
- Earth idioms: "at the end of the day," "bite the bullet," "burning the midnight oil"
@@ -114,11 +114,11 @@ Revised failure mode list, with mitigations:
*NI-5 (negative injector):* Universal block on Earth-origin social references.
*Culture injectors — positive anchoring:* Krenn-specific oath and filler vocabulary (void take it, stars, cold vacuum) provides a strong positive attractor. The model learns what Krenn characters say *instead of* Earth idioms.
*Culture injectors — positive anchoring:* Van Maanen's Star-specific oath and filler vocabulary (void take it, stars, cold vacuum) provides a strong positive attractor. The model learns what Van Maanen's Star characters say *instead of* Earth idioms.
*Earth idiom detection in build-time validation:* Harder to automate than technology vocabulary. Build-time validation should include a curated Earth idiom blocklist for the highest-frequency offenders. The copy team maintains this. Long-tail idioms caught by human review of sampled outputs.
**Residual risk:** Medium-to-high. Earth idioms are deeply embedded in training data and are semantically similar to what we want (working-class pragmatism). The positive attractor (Krenn vocabulary) is the most important mitigation here — exclusion alone is not reliable enough.
**Residual risk:** Medium-to-high. Earth idioms are deeply embedded in training data and are semantically similar to what we want (working-class pragmatism). The positive attractor (Van Maanen's Star vocabulary) is the most important mitigation here — exclusion alone is not reliable enough.
---
@@ -232,7 +232,7 @@ The compressed version is less precise but hits all five categories. Troblum's t
## 3. Culture Injector Template
This is the standard structure every new culture follows. Krenn is the reference implementation, using Mellanie's corrected clauses.
This is the standard structure every new culture follows. Van Maanen's Star is the reference implementation, using Mellanie's corrected clauses.
### Template structure (~200 tokens, hybrid instruction + 2 examples)
@@ -265,12 +265,12 @@ BASE: [culture-neutral semantic line]
---
### Reference implementation: Krenn System culture
### Reference implementation: Van Maanen's Star culture
```
[BLOCK 1 — REGISTER]
Be direct. Don't waste words. Everyone here is short on time, including you.
Not unfriendly — just compressed. Krenn people say what's needed and stop.
Not unfriendly — just compressed. Van Maanen's Star people say what's needed and stop.
[BLOCK 2 — CULTURAL CONTEXT]
You grew up in a working community where showing up and doing the work matters
@@ -289,7 +289,7 @@ Loyalty runs to your crew, your shift, your street. Not abstractions.
[BLOCK 5 — CULTURE-SPECIFIC NOT-LIST]
No sir/ma'am deference. No quips or banter. No formal phrasing or contractions
avoided (Krenn uses contractions freely: shift's calling, gotta, can't).
avoided (Van Maanen's Star uses contractions freely: shift's calling, gotta, can't).
[BLOCK 6 — EXAMPLES]
BASE: "checks the gate"
@@ -309,17 +309,17 @@ When authoring a culture injector for a new culture, answer these questions:
1. **Register (Block 1):** How does this culture's speech differ from generic SF working-class? What is the most distinctive surface marker?
2. **Root cause (Block 2):** What environmental, historical, or social fact explains why this culture speaks this way? (For Krenn: sealed environment + labor community + 180 years of adaptation.)
2. **Root cause (Block 2):** What environmental, historical, or social fact explains why this culture speaks this way? (For Van Maanen's Star: sealed environment + labor community + 180 years of adaptation.)
3. **Vocabulary (Block 3):** What does this culture swear by? What are their vernacular greetings? What filler words dominate? (These must come from the culture RON `speech` fields — they exist already.)
4. **Values-as-instructions (Block 4):** Pick two values from the culture RON `values` section. Rephrase each as a behavioral instruction in second-person imperative.
5. **Exclusions (Block 5):** What generic SF or Earth registers would be especially wrong for this culture? (Formal bureaucratic speech is wrong for Krenn. The equivalent for a formal/diplomatic culture would be "no casual contractions, no working-class compression.")
5. **Exclusions (Block 5):** What generic SF or Earth registers would be especially wrong for this culture? (Formal bureaucratic speech is wrong for Van Maanen's Star. The equivalent for a formal/diplomatic culture would be "no casual contractions, no working-class compression.")
6. **Examples (Block 6):** Pick two representative base text lines from the culture's zone RON files. Write the voiced version using the register defined above. These are the spike's first test payload.
**The culture injector must be validated against the existing zone RON files.** If the injector produces output that contradicts the authored behaviors in the zone spec (e.g., produces quippy dialogue for Krenn), the injector is wrong, not the zone spec.
**The culture injector must be validated against the existing zone RON files.** If the injector produces output that contradicts the authored behaviors in the zone spec (e.g., produces quippy dialogue for Van Maanen's Star), the injector is wrong, not the zone spec.
---
@@ -327,23 +327,23 @@ When authoring a culture injector for a new culture, answer these questions:
### The question
Jeroen's Decision 2: tells are passthrough but inform the LLM context for dialogue and behavior. Does an avoidance-inflected Krenn NPC sound different from an avoidance-inflected Sovari (or other-culture) NPC? Should the tell-tone modifier be culture-inflected or universal?
Jeroen's Decision 2: tells are passthrough but inform the LLM context for dialogue and behavior. Does an avoidance-inflected Van Maanen's Star NPC sound different from an avoidance-inflected Sovari (or other-culture) NPC? Should the tell-tone modifier be culture-inflected or universal?
### Setting note — the answer is yes, and it matters
Avoidance is a universal human response. The *expression* of avoidance is culturally specific. Two examples:
**Krenn culture (direct-informal, compressed, competence-signaling):**
An avoidance tell in a Krenn context looks like hyper-compression. The NPC who's hiding something becomes MORE task-focused, not less — appearing to have more to do is the most plausible cover in a culture where work is the currency of credibility. Short answers that close off conversation paths. No hostility, just density. "Yeah. What do you need?" instead of genuine engagement.
**Van Maanen's Star culture (direct-informal, compressed, competence-signaling):**
An avoidance tell in a Van Maanen's Star context looks like hyper-compression. The NPC who's hiding something becomes MORE task-focused, not less — appearing to have more to do is the most plausible cover in a culture where work is the currency of credibility. Short answers that close off conversation paths. No hostility, just density. "Yeah. What do you need?" instead of genuine engagement.
**Hypothetical formal/diplomatic culture (not yet designed, but demonstrating contrast):**
Avoidance in a formal culture looks like over-politeness and elaborate redirection. More words, not fewer. A formal character hiding something talks at length about adjacent topics, producing plausible-seeming social warmth that leads nowhere. The tell is the *elaborateness*, not the compression.
**Why this matters for worldbuilding:**
- Players who develop cultural literacy will read Krenn avoidance correctly because it fits the Krenn pattern
- Players who develop cultural literacy will read Van Maanen's Star avoidance correctly because it fits the Van Maanen's Star pattern
- The same player will initially misread formal-culture avoidance (more words ≠ more information, in that culture)
- This rewards cultural investment — players who know Krenn read Krenn NPCs better than new arrivals do
- This is diegetically consistent: the player-character, as someone embedded in Krenn culture, SHOULD have an edge reading Krenn NPCs
- This rewards cultural investment — players who know Van Maanen's Star read Van Maanen's Star NPCs better than new arrivals do
- This is diegetically consistent: the player-character, as someone embedded in Van Maanen's Star culture, SHOULD have an edge reading Van Maanen's Star NPCs
### Should tell-tone modifiers be culture-inflected?
@@ -357,7 +357,7 @@ The tell-to-tone translation table I proposed in Section 1 (Failure Mode 5) need
Example:
| Tell category | Universal base-tone | Krenn-inflected tone |
| Tell category | Universal base-tone | Van Maanen's Star-inflected tone |
|---|---|---|
| Nervous/stress | answers feel distracted | "answers feel clipped, eyes on the work" |
| Guarded/concealment | responses compressed | "too direct — closes conversation paths fast" |
@@ -365,11 +365,11 @@ Example:
| Hostile suppression | controlled and flat | "flat in a way that reads as steady — until it doesn't" |
| Routine deviation | unremarkably normal | "unhurried past normal, like nothing's wrong" |
The Krenn-inflected tones are distinguishable from the universal base tones. They require knowledge of Krenn culture to parse correctly — which is accurate and worldbuilding-good.
The Van Maanen's Star-inflected tones are distinguishable from the universal base tones. They require knowledge of Van Maanen's Star culture to parse correctly — which is accurate and worldbuilding-good.
**Cross-culture readability constraint:**
The culture-inflected expression must remain **recognizable as a stress-tell category** even to a player who doesn't yet know the culture. The player who encounters a Krenn avoidance-tell for the first time should be able to read "something is off" even before they know what Krenn avoidance looks like. The cultural specificity adds richness for experienced players; the base readability is the floor for new ones.
The culture-inflected expression must remain **recognizable as a stress-tell category** even to a player who doesn't yet know the culture. The player who encounters a Van Maanen's Star avoidance-tell for the first time should be able to read "something is off" even before they know what Van Maanen's Star avoidance looks like. The cultural specificity adds richness for experienced players; the base readability is the floor for new ones.
This constraint means: culture-inflected tell-tones must not diverge so far from the universal base-tone that the phenomenon-class becomes unrecognizable. "Too direct — closes conversation paths fast" still reads as avoidance. "Extremely confident and forthcoming" (as a hypothetical suppression tell in a performative culture) would require significant cultural context before it reads as a tell at all — that's too much divergence.
@@ -377,20 +377,20 @@ This constraint means: culture-inflected tell-tones must not diverge so far from
The tell-context prompt template should have two components:
1. Universal phenomenon-class: "This NPC's responses carry an undercurrent of [concealment / avoidance / vigilance / suppression / departure-from-normal]." — This ensures baseline readability.
2. Culture-inflected expression: "In this culture, [concealment] reads as [Krenn-specific description]." — This is the per-culture authoring requirement.
2. Culture-inflected expression: "In this culture, [concealment] reads as [Van Maanen's Star-specific description]." — This is the per-culture authoring requirement.
The universal component is authored once by Gestalt (aligned with the tell taxonomy). The culture-inflected component is authored by Miri + Mellanie for each culture, drawing on the culture profile's speech and values fields.
This is a **new deliverable for Round 3 output:** the Krenn tell-tone table (5 rows) should be authored as part of the culture profile extension, alongside or integrated into the injector system. It is small (5 sentences) but must be correct.
This is a **new deliverable for Round 3 output:** the Van Maanen's Star tell-tone table (5 rows) should be authored as part of the culture profile extension, alongside or integrated into the injector system. It is small (5 sentences) but must be correct.
**Krenn tell-tone table (v1 draft):**
**Van Maanen's Star tell-tone table (v1 draft):**
| Tell category | Krenn-inflected tonal register |
| Tell category | Van Maanen's Star-inflected tonal register |
|---|---|
| Nervous (stress above threshold) | Answers run shorter than usual. Eyes stay on task. Nothing's wrong — they just have things to do. |
| Guarded (concealment) | Direct past the point of directness. Closes conversation paths fast without being unfriendly. |
| Avoidance (relationship-specific) | Task-focused when this person is nearby. Finds work to do. Polite but not engaging. |
| Hostile suppression (deceptive under stress) | Steady. Even. The kind of steady that takes effort to maintain. Not hostile — just flat in a way that doesn't feel natural for Krenn. |
| Hostile suppression (deceptive under stress) | Steady. Even. The kind of steady that takes effort to maintain. Not hostile — just flat in a way that doesn't feel natural for Van Maanen's Star. |
| Routine deviation (changed behavior) | Unhurried. Unremarkably normal. Like nothing's worth noticing. |
These tell-tone descriptions are the LLM context input, not the player-visible text. They shape the *register* of re-voiced content surrounding the tell, not the tell string itself (which passes through untouched).
@@ -403,10 +403,10 @@ These tell-tone descriptions are the LLM context input, not the player-visible t
2. **Finalized universal negative injectors** — ✓ NI-1 through NI-5 at two fidelity levels (full ~265 tokens, compressed ~100 tokens). Troblum to confirm budget compatibility.
3. **Culture injector template** — ✓ Six-block structure with Krenn reference implementation (~200 tokens). Authoring guide for future cultures. Validation constraint (injector outputs must not contradict zone RON authored behaviors).
3. **Culture injector template** — ✓ Six-block structure with Van Maanen's Star reference implementation (~200 tokens). Authoring guide for future cultures. Validation constraint (injector outputs must not contradict zone RON authored behaviors).
4. **Tell-tone cultural inflection** — ✓ Tell-tone modifiers should be culture-inflected but constrained by cross-culture readability. Krenn tell-tone table (v1) authored. Architecture recommendation: two-component tell-context prompt (universal phenomenon-class + culture-inflected expression). New deliverable: each culture profile needs a 5-row tell-tone table.
4. **Tell-tone cultural inflection** — ✓ Tell-tone modifiers should be culture-inflected but constrained by cross-culture readability. Van Maanen's Star tell-tone table (v1) authored. Architecture recommendation: two-component tell-context prompt (universal phenomenon-class + culture-inflected expression). New deliverable: each culture profile needs a 5-row tell-tone table.
**One item requiring coordination:**
The Krenn tell-tone table (Section 4) references tell categories by name (Nervous, Guarded, Avoidance, Hostile suppression, Routine deviation). These must align with whatever taxonomy Gestalt and Tyre formalize. If the canonical tell-category enum is different, the table needs to be re-mapped. I can do that mapping once Tyre confirms the final `TellCategory` names.
The Van Maanen's Star tell-tone table (Section 4) references tell categories by name (Nervous, Guarded, Avoidance, Hostile suppression, Routine deviation). These must align with whatever taxonomy Gestalt and Tyre formalize. If the canonical tell-category enum is different, the table needs to be re-mapped. I can do that mapping once Tyre confirms the final `TellCategory` names.
@@ -22,7 +22,7 @@ I read the behavior pools in `rural-zone-spec.ron`. Then I looked at the hardcod
That gap is enormous. The base texts look like placeholder copy. They look like the developer left notes for the writer. "Tends crops in the field" is what you write when you're sketching the system. "Tends rows of low-growing crops with a long-handled hoe" is what the player actually sees and believes.
This tells me ONE thing before I evaluate anything else: **the base text spec needs a major rethink before this architecture can work.** Right now, "base text" means rough draft. For the re-voicing model to work, base text has to mean something different — it has to mean *complete, evocative, and deliberately minimal.* Not broken. Not placeholder. Intentionally spare in the way that Krenn culture is spare.
This tells me ONE thing before I evaluate anything else: **the base text spec needs a major rethink before this architecture can work.** Right now, "base text" means rough draft. For the re-voicing model to work, base text has to mean something different — it has to mean *complete, evocative, and deliberately minimal.* Not broken. Not placeholder. Intentionally spare in the way that Van Maanen's Star culture is spare.
More on this below. But it's the issue I'm going to fight for hardest.
@@ -34,7 +34,7 @@ More on this below. But it's the issue I'm going to fight for hardest.
The quality ceiling is exactly where it needs to be. The rural zone file reads like real people. The trader who "holds eye contact through a long pause, waiting for the price to land" — I believe that person. That's the game I want to play.
But the math kills it. O(R x Z x C) means that every new culture or zone type the team adds is authoring from scratch. We can't have Krenn-rural AND Krenn-industrial AND Sova-industrial AND a third culture's rural variant without a team of writers and years of budget. The game has to grow. This option doesn't grow.
But the math kills it. O(R x Z x C) means that every new culture or zone type the team adds is authoring from scratch. We can't have Van Maanen's Star-rural AND Van Maanen's Star-industrial AND Sova-industrial AND a third culture's rural variant without a team of writers and years of budget. The game has to grow. This option doesn't grow.
### Option 2: Composable primitives — I'm scared.
@@ -80,7 +80,7 @@ Here's the exact failure mode: an NPC whose Want is [MONEY] has a tell behavior
a) Pass through to the player as base text (intentionally culture-neutral, which actually works — tells feel MORE legible when they're stripped of cultural noise)
b) Have their own separate re-voicing pass with TIGHTER constraints that preserve semantic content
I lean toward option (a). A tell that's culture-neutral IS more suspicious — it stands out. The Krenn guard speaks direct and minimal. If they suddenly have a moment of strange stillness with the freight, that's MORE readable as a tell, not less. The culture voice actually makes tells blend in. The base voice makes them pop.
I lean toward option (a). A tell that's culture-neutral IS more suspicious — it stands out. The Van Maanen's Star guard speaks direct and minimal. If they suddenly have a moment of strange stillness with the freight, that's MORE readable as a tell, not less. The culture voice actually makes tells blend in. The base voice makes them pop.
This could be a feature, not a bug. But it needs to be a decision, not an accident.
@@ -30,10 +30,10 @@ Let me be specific about what failure looks like.
**Source tell:** "looks away when Kael's name comes up" (semantic core: `avoidance_behavior`)
**Good constrained re-voice (Krenn culture, Bold trait):**
**Good constrained re-voice (Van Maanen's Star culture, Bold trait):**
> "goes quiet when Kael comes up — just for a beat, then moves on"
Still avoidance. Krenn directness preserved. The tell pops.
Still avoidance. Van Maanen's Star directness preserved. The tell pops.
**Borderline constrained re-voice:**
> "doesn't have much to say about Kael"
@@ -54,7 +54,7 @@ The worst case is the misleading partial. A missing tell is recoverable — the
**How bad is the damage vs the benefit?**
The benefit is real and significant. A Krenn NPC whose avoidance reads as "goes real quiet, then moves on" hits differently than a Sovari NPC whose avoidance reads as something more ceremonially formal. Cultural voice on tells makes the world feel consistent. The detective puzzle is richer if you have to READ through the culture voice to find the signal.
The benefit is real and significant. A Van Maanen's Star NPC whose avoidance reads as "goes real quiet, then moves on" hits differently than a Sovari NPC whose avoidance reads as something more ceremonially formal. Cultural voice on tells makes the world feel consistent. The detective puzzle is richer if you have to READ through the culture voice to find the signal.
But the failure mode is subtle and hard to catch at scale. Baked content gets validation. Pre-voiced content at runtime — every NPC the player encounters, every seed, every zone they reach before the queue finishes — that's too much to validate exhaustively.
@@ -96,7 +96,7 @@ But from a player experience standpoint: if we ship Proposals A or B, we should
### Proposal B: Two-Track — Behaviors + Tells with Semantic Core
**Player experience verdict:** The highest ceiling, the most interesting result. Culture-voiced tells is the thing I didn't know I wanted until I thought about it. A BOLD Krenn NPC's avoidance tell reads completely differently from a Cautious one. That's detective-game richness.
**Player experience verdict:** The highest ceiling, the most interesting result. Culture-voiced tells is the thing I didn't know I wanted until I thought about it. A BOLD Van Maanen's Star NPC's avoidance tell reads completely differently from a Cautious one. That's detective-game richness.
**My concern:** Constrained re-voicing failure is the scariest failure mode in this whole architecture. Not because it breaks the game loudly — because it breaks it quietly. Players can't tell the tell got corrupted. They just get a worse, less-fair experience.
@@ -137,7 +137,7 @@ But from a player experience standpoint: if we ship Proposals A or B, we should
Here's the player experience argument in plain terms: the world has to feel like one thing. Not "rich when observed, functional when approached." Not "textured from a distance, generic up close." One thing. The culture voice has to be everywhere, or the player stops believing in it the moment it matters most — when they're talking to THE FRIEND, when Kael is deflecting, when the contradiction lands.
Proposal A ships half of that. It's responsible. It's safe. But "the NPC observes in Krenn voice and speaks in form-letter voice" is a seam the player will feel.
Proposal A ships half of that. It's responsible. It's safe. But "the NPC observes in Van Maanen's Star voice and speaks in form-letter voice" is a seam the player will feel.
Proposal C is the full promise. It's more work. It's a larger spike. But it's the promise we made when we said the world would feel inhabited.
@@ -20,7 +20,7 @@ Jeroen's tell treatment is elegant: tells are read-only inputs to the LLM, never
What this means in practice:
An NPC with an avoidance tell behaves like an avoiding person — their voiced dialogue is hesitant, their ambient behaviors are distanced — but the tell itself stands apart. Clinical. Observational. "Keeps their back to the loading bay entrance when the foreman speaks." Everything else is Krenn-voiced and inhabited. That line is a field note.
An NPC with an avoidance tell behaves like an avoiding person — their voiced dialogue is hesitant, their ambient behaviors are distanced — but the tell itself stands apart. Clinical. Observational. "Keeps their back to the loading bay entrance when the foreman speaks." Everything else is Van Maanen's Star-voiced and inhabited. That line is a field note.
This is a feature. Call it intentional. Here's why it works:
@@ -54,7 +54,7 @@ This is the subtler UX challenge. Pre-voicing catches up in the background. An N
Jeroen's "tells inform the LLM context" is the right call. If the player engages an NPC who has an active avoidance tell, the NPC's dialogue should feel avoiding — not because the tell text changes, but because the whole person is avoiding. This is how real people work. The tell is a symptom; the character is the disease.
For the player this creates a moment I'm very excited about: they see the tell (base text, stands out), they engage the NPC in dialogue (Krenn-voiced, hesitant, deflecting), they feel the avoidance everywhere. The tell is confirmed by the conversation. THAT'S the detective loop. Evidence → engagement → confirmation.
For the player this creates a moment I'm very excited about: they see the tell (base text, stands out), they engage the NPC in dialogue (Van Maanen's Star-voiced, hesitant, deflecting), they feel the avoidance everywhere. The tell is confirmed by the conversation. THAT'S the detective loop. Evidence → engagement → confirmation.
---
@@ -8,7 +8,7 @@
## Preamble: What I Read
I read the full workshop brief, `proposed-llm-voice.md`, both zone RON files (`rural-zone-spec.ron`, `industrial-zone-spec.ron`), `culture-krenn.ron`, the generator spike (`generator_spike.rs`), the `NpcBlueprint` struct (`blueprint.rs`), and decisions D-010, D-023, D-024, D-028, D-029, D-034, D-090, D-092, D-121, D-122, D-123, D-124, D-128. Also Q-012 and Q-033.
I read the full workshop brief, `proposed-llm-voice.md`, both zone RON files (`rural-zone-spec.ron`, `industrial-zone-spec.ron`), `culture-van-maanens-star.ron`, the generator spike (`generator_spike.rs`), the `NpcBlueprint` struct (`blueprint.rs`), and decisions D-010, D-023, D-024, D-028, D-029, D-034, D-090, D-092, D-121, D-122, D-123, D-124, D-128. Also Q-012 and Q-033.
---
@@ -42,7 +42,7 @@ What is the action? Laughing. What is the cultural modifier? Catching herself. W
The reassembled version is grammatically correct and semantically equivalent. It is also emotionally empty. The original line works because of "catches herself" — the comma pause, the specificity of the suppression, the choice of "quiet" over "serious" or "professional." These are not modifiers on a verb. They are the verb.
**The grammar-to-sentence problem:** Composable primitives are a grammar. Grammars produce grammatically valid sentences; they do not produce *specifically good* ones. The hand-authored behaviors are good because a human looked at a Krenn foreman and heard a specific voice. That act of hearing cannot be parameterized.
**The grammar-to-sentence problem:** Composable primitives are a grammar. Grammars produce grammatically valid sentences; they do not produce *specifically good* ones. The hand-authored behaviors are good because a human looked at a Van Maanen's Star foreman and heard a specific voice. That act of hearing cannot be parameterized.
**Verdict:** Produces mechanical output. Creates an engine more complex than LLM re-voicing without the quality upside. I'm skeptical this approach can sustain narrative depth. That said — if the spike proves me wrong (some decompositions produce surprisingly specific output), I'd want to revisit.
@@ -62,32 +62,32 @@ This is the option with the most promise and the most risk, and the two are inse
## 2. Culture-Specific Vocabulary at 2B Model Size
Let me complicate this with what I actually see in `culture-krenn.ron`.
Let me complicate this with what I actually see in `culture-van-maanens-star.ron`.
### The Krenn speech register is not what the proposal assumes
### The Van Maanen's Star speech register is not what the proposal assumes
The `proposed-llm-voice.md` uses this as the Krenn injector clause example:
The `proposed-llm-voice.md` uses this as the Van Maanen's Star injector clause example:
> *"Your speech is formal and avoids contractions."*
This is **wrong for Krenn**. The actual Krenn register from `culture-krenn.ron`:
This is **wrong for Van Maanen's Star**. The actual Van Maanen's Star register from `culture-van-maanens-star.ron`:
- Register: `"direct, minimal pleasantries, gets to the point"`
- Filler words: `"look", "right", "yeah", "so", "listen"`
- Greetings: `"hey"`, `"shift treating you alright?"`, `"all good?"`
- Farewells: `"shift's calling"`, `"gotta move"`
Krenn is informal, clipped, and working-class. "Formal and avoids contractions" describes Commonwealth institutional culture or perhaps a Sheldon family retainer. It is the opposite of Krenn. This error in the example injector is not a minor slip — it reveals that the injector authoring requires actual knowledge of the culture RON, not a generic characterization.
Van Maanen's Star is informal, clipped, and working-class. "Formal and avoids contractions" describes Commonwealth institutional culture or perhaps a Sheldon family retainer. It is the opposite of Van Maanen's Star. This error in the example injector is not a minor slip — it reveals that the injector authoring requires actual knowledge of the culture RON, not a generic characterization.
### The void-oaths are the hard test
The exclamations (`"void take it"`, `"blood and void"`, `"cold vacuum"`, `"void's sake"`) are the cultural vocabulary most at risk from a 2B model. These phrases exist nowhere in any training corpus. A 2B model instructed to "include Krenn cultural exclamations" has two failure modes:
The exclamations (`"void take it"`, `"blood and void"`, `"cold vacuum"`, `"void's sake"`) are the cultural vocabulary most at risk from a 2B model. These phrases exist nowhere in any training corpus. A 2B model instructed to "include Van Maanen's Star cultural exclamations" has two failure modes:
1. Invents generic space-opera profanity ("stars and void," "by the black," etc.) — readable but not canonical
2. Produces nothing — defaults to vanilla emotional beats with no exclamations
**The solution is enumeration, not instruction.** The injector clause cannot say "use void-oaths appropriate to the Krenn culture." It must say: "When expressing strong emotion, use ONLY these phrases: `void take it`, `blood and void`, `cold vacuum`, `void's sake`, `damn all`, `stars`." The specific phrases must be injected as a closed vocabulary list, not as a stylistic instruction.
**The solution is enumeration, not instruction.** The injector clause cannot say "use void-oaths appropriate to the Van Maanen's Star culture." It must say: "When expressing strong emotion, use ONLY these phrases: `void take it`, `blood and void`, `cold vacuum`, `void's sake`, `damn all`, `stars`." The specific phrases must be injected as a closed vocabulary list, not as a stylistic instruction.
### Formality levels within Krenn
### Formality levels within Van Maanen's Star
The RON file captures one formality level (social register). But real cultures have register variation — the same Krenn farmer talks differently to their supervisor than to their shift partner than to an outsider. Can injector clauses capture this gradient reliably at 2B?
The RON file captures one formality level (social register). But real cultures have register variation — the same Van Maanen's Star farmer talks differently to their supervisor than to their shift partner than to an outsider. Can injector clauses capture this gradient reliably at 2B?
My assessment: at 2B, probably not reliably. The model can handle one register per culture injector. If we need register variation within a culture (which we will need for relationship-specific dialogue), that variation should be authored at the line level (access tier tags: `insider` vs `authority`) rather than asked of the LLM.
@@ -170,12 +170,12 @@ This is the risk I'd rank highest after tell preservation, because lore contamin
### What failure looks like
A 2B model instructed to "voice a Krenn dock worker" has seen Star Wars, Firefly, Dune, and ten thousand pieces of space opera. It will default toward genre conventions when the injector clauses don't constrain it. Failure modes:
A 2B model instructed to "voice a Van Maanen's Star dock worker" has seen Star Wars, Firefly, Dune, and ten thousand pieces of space opera. It will default toward genre conventions when the injector clauses don't constrain it. Failure modes:
1. **Wrong exclamations**: "By the stars," "What in the void" — plausible-sounding but not canonical Krenn vocabulary
1. **Wrong exclamations**: "By the stars," "What in the void" — plausible-sounding but not canonical Van Maanen's Star vocabulary
2. **Wrong social references**: References to "the Empire," "the Alliance," "credits" (actually correct) or "sol-standard time" — things that don't exist in the Commonwealth
3. **Wrong technology register**: Describing a span gate as a "warp gate" or "jump point," describing inserts as "chips" or "implants" — adjacent to canon but not canon
4. **Wrong socioeconomic register**: Treating a dock worker as aspirationally middle-class (genre convention) rather than working-class pragmatic (Krenn reality)
4. **Wrong socioeconomic register**: Treating a dock worker as aspirationally middle-class (genre convention) rather than working-class pragmatic (Van Maanen's Star reality)
### The containment strategy
@@ -195,13 +195,13 @@ Three layers of prevention:
### If we choose hand-authored only:
- **Immediate**: D-122 (all NPCs generated) becomes incompatible with content availability. A generated world full of NPCs with empty behavior pools produces a dead place, not a living one. The generator spike output looks compelling *because* behaviors exist. Without them, it's a list of names and traits.
- **At scale**: The copy team cannot author behaviors for more than 2-3 culture/zone combinations before the sprint budget runs out. The game stalls at Krenn/rural + Krenn/industrial.
- **At scale**: The copy team cannot author behaviors for more than 2-3 culture/zone combinations before the sprint budget runs out. The game stalls at Van Maanen's Star/rural + Van Maanen's Star/industrial.
- **What survives**: The quality model is still the reference. Even if we move to LLM re-voicing, the hand-authored zone RON behaviors are the gold standard the pipeline is calibrated against.
### If we choose composable primitives:
- **Narrative texture collapses**: Players stop noticing NPCs. The behaviors become grammatically correct descriptions of actions — "a dock worker loads freight, greets passersby, and monitors the gate." Readable, but not a person.
- **The perception mechanic degrades**: If behaviors are assembled from generic components, the signals players use to READ NPCs become harder to distinguish from noise. Tells need to read as specific; composed behaviors are generic by construction.
- **Cross-culture quality drops**: The whole point of composable primitives is culture modifier + role action = culture-specific output. But the culture modifier in a composable system is a vocabulary adjustment. "Adjusting vocabulary" is not the same as "sounding like you live in this place." The cultural texture in the Krenn RON is not in the vocabulary — it's in the social texture of the behaviors (who you wave through at the gate, how you borrow tools).
- **Cross-culture quality drops**: The whole point of composable primitives is culture modifier + role action = culture-specific output. But the culture modifier in a composable system is a vocabulary adjustment. "Adjusting vocabulary" is not the same as "sounding like you live in this place." The cultural texture in the Van Maanen's Star RON is not in the vocabulary — it's in the social texture of the behaviors (who you wave through at the gate, how you borrow tools).
### If we choose naive LLM re-voicing (no protected zones):
- **Tells become unstable**: A tell that was authored as "wipes her hands without making eye contact" might be re-voiced as "quickly cleans up and avoids looking at anyone." Same semantic content, different investigative readability. The player who sees "without making eye contact" has a clue. The player who sees "avoids looking at anyone" has an obvious tell. The ambiguity that makes the perception mechanic rewarding disappears.
@@ -230,11 +230,11 @@ This is not a blocking question for the hybrid architecture direction — I can
| Question | My Answer |
|----------|-----------|
| Which option best serves narrative quality? | Hybrid: LLM re-voicing for Tier 3 and non-sensitive Tier 2, with explicit protected zones for tells, relationship behaviors, and anchor lines |
| Can injectors capture Krenn void-oaths at 2B? | Only if injectors enumerate the specific phrases as a closed list, not as stylistic instruction |
| Can injectors capture Van Maanen's Star void-oaths at 2B? | Only if injectors enumerate the specific phrases as a closed list, not as stylistic instruction |
| Tier 2 boundary? | Behavior-class boundary, not tier boundary: protected = tells + social-target-naming behaviors; re-voiceable = isolated role actions |
| SEE or SAY or both? | SAY first (more appropriate for cultural re-voicing). SEE only after behavior protection is a data model feature |
| Lore contamination prevention? | Layer 1 closed vocabulary, Layer 2 build-time human review on baked content, Layer 3 runtime regex flagging |
| What breaks if we choose wrong? | Hand-authored: content stalls at Krenn. Composable: texture collapses. Naive LLM: tells degrade, perception mechanic loses precision |
| What breaks if we choose wrong? | Hand-authored: content stalls at Van Maanen's Star. Composable: texture collapses. Naive LLM: tells degrade, perception mechanic loses precision |
| My committed question | Are tells a first-class protected field in `NpcBlueprint`, or editorial convention only? |
**The honest summary**: The proposal in `proposed-llm-voice.md` is the right direction, written before the systems that make the direction dangerous were built. The Want/State layer and the perception mechanic changed the calculus. The architecture needs a protected behavior class before narrative quality is safe. But the scale argument is correct and the hybrid approach is viable. I'm not a blocker on this — I'm asking for one data model guarantee.
@@ -25,7 +25,7 @@
Let me complicate this by separating two meanings of "higher value."
**Dialogue is higher value for player attachment.** When a generated Krenn dock worker speaks to the player — greeting, gossip, refusing, disclosing — the player is forming a relationship with a voice. The register, the filler words, the way information is delivered, the pause before a secret: this is where culture makes a person feel like a specific person from a specific place. A dock worker who says "look, I'm not supposed to say this" is Krenn. A dock worker who says "I am not in a position to share that information" is someone's idea of a space NPC. Dialogue re-voicing is where the system earns the quality gap between base text and voiced text.
**Dialogue is higher value for player attachment.** When a generated Van Maanen's Star dock worker speaks to the player — greeting, gossip, refusing, disclosing — the player is forming a relationship with a voice. The register, the filler words, the way information is delivered, the pause before a secret: this is where culture makes a person feel like a specific person from a specific place. A dock worker who says "look, I'm not supposed to say this" is Van Maanen's Star. A dock worker who says "I am not in a position to share that information" is someone's idea of a space NPC. Dialogue re-voicing is where the system earns the quality gap between base text and voiced text.
**Behaviors are higher value for information integrity.** Observable behaviors are the primary channel of the perception mechanic. Players read behaviors to infer hidden state. "Checks a manifest against a handheld scanner, lips moving" is not flavor text — it is structured gameplay information. The risk of re-voicing behaviors incorrectly is that a gameplay-critical signal becomes unreadable, or an ambient behavior accidentally reads as a signal.
@@ -47,7 +47,7 @@ This suggests the sequencing in Proposals A and C is actually backwards from a r
Same semantic content. But the re-voiced version changes the speaker from "someone who noticed something" to "someone who has been watching." That's a character change with narrative consequences — the NPC is now implied to be conducting surveillance, which is a different relationship to the information. In a game about information asymmetry, this matters.
**2. Access tier feel bleed.** Dialogue lines are tagged with access tier (`insider`, `authority`, `peer`, `public`). An `insider` line should feel like information shared between people who trust each other. If the LLM re-voices it into a more precise or formal register (genre-default for "important information"), it reads as `authority` tier despite the tag. The tag governs *eligibility*, but the *feel* of the line is what the player experiences. A culture injector that pushes toward Krenn directness partially protects against this, but at 2B the model may still drift toward the gravity of the information being conveyed.
**2. Access tier feel bleed.** Dialogue lines are tagged with access tier (`insider`, `authority`, `peer`, `public`). An `insider` line should feel like information shared between people who trust each other. If the LLM re-voices it into a more precise or formal register (genre-default for "important information"), it reads as `authority` tier despite the tag. The tag governs *eligibility*, but the *feel* of the line is what the player experiences. A culture injector that pushes toward Van Maanen's Star directness partially protects against this, but at 2B the model may still drift toward the gravity of the information being conveyed.
**3. Trust-gated secret lines need absolute protection.** D-028 Layer 3 secrets are information the NPC holds back until trust is built. These lines often carry the dramatic weight of the whole relationship arc. They should not be re-voiced by any model. A line like "He asked me not to tell anyone. I'm telling you anyway because I think you need to know." is already at the limit of what natural speech allows — re-voicing risks making it either more dramatic (melodramatic) or more casual (trivial). Secrets should be authored, period.
@@ -151,7 +151,7 @@ The "half-measure" criticism in the proposal's own Cons section is worth address
2. The spike must explicitly test constrained re-voicing on the same payload as free re-voicing, and compare output. "Does the phenomenon survive?" must be a measurable spike output, not an assumption.
3. Copy team must be in the loop on semantic core label authoring — this is new content work that doesn't exist yet, and it requires the author to know both the narrative function of each tell AND the correct constraint vocabulary for the model. That's a non-trivial skill combination.
**What B gets right that A doesn't:** The observation that a Krenn tell should read differently from a Sovari tell is correct and worth preserving. If tells are always passthrough, they are culturally neutral — the same behavior regardless of cultural context. Proposal B's ambition is to have culturally-voiced tells, which is richer. That ambition is right; the implementation is risky at 2B.
**What B gets right that A doesn't:** The observation that a Van Maanen's Star tell should read differently from a Sovari tell is correct and worth preserving. If tells are always passthrough, they are culturally neutral — the same behavior regardless of cultural context. Proposal B's ambition is to have culturally-voiced tells, which is richer. That ambition is right; the implementation is risky at 2B.
---
@@ -173,7 +173,7 @@ Round 2 has not addressed lore contamination. All three proposals note it as a r
My proposal for all three:
**Layer 1 — Injector negative vocabulary (mandatory):** Every culture injector must include an explicit NOT-list of canonical terms and their prohibited equivalents. For Krenn:
**Layer 1 — Injector negative vocabulary (mandatory):** Every culture injector must include an explicit NOT-list of canonical terms and their prohibited equivalents. For Van Maanen's Star:
- NOT: "warp gate" / YES: "span gate"
- NOT: "implant", "chip", "neural interface" / YES: "insert"
- NOT: "credits" (actually correct), "stars" (correct), but NOT: "sol-standard", "Earth", "Terran"
@@ -10,7 +10,7 @@
Jeroen's decisions resolve the two tensions I carried out of Rounds 1 and 2:
- **Full pipeline (behaviors + dialogue):** Correct call. The voice gap between observed Krenn behavior and form-letter dialogue creates whiplash at exactly the highest-investment moment — direct conversation. The pipeline has to cover both.
- **Full pipeline (behaviors + dialogue):** Correct call. The voice gap between observed Van Maanen's Star behavior and form-letter dialogue creates whiplash at exactly the highest-investment moment — direct conversation. The pipeline has to cover both.
- **Tells as read-only context:** This is the cleanest possible architecture. The tell stays untouched (base text passthrough), but its presence inflects the re-voicing of surrounding content. Not a compromise — it's the right design. The tell IS the ground truth; the voiced dialogue is how the NPC presents under that pressure.
Everything below is implementation design for those decisions.
@@ -99,9 +99,9 @@ Any of these change what the player knows and how they know it.
### Rule D-6: Tell-context modifier cannot override culture register
**What:** When a tell-context modifier is added to the prompt (see Section 2), it shapes the emotional inflection of the delivery but cannot change the foundational culture register. A Krenn NPC with a Nervous tell still speaks in Krenn register — clipped, direct, minimal pleasantries — but the content of what they say reflects nervous pressure.
**What:** When a tell-context modifier is added to the prompt (see Section 2), it shapes the emotional inflection of the delivery but cannot change the foundational culture register. A Van Maanen's Star NPC with a Nervous tell still speaks in Van Maanen's Star register — clipped, direct, minimal pleasantries — but the content of what they say reflects nervous pressure.
**Why:** Culture is primary (D-121). The tell-context is situational. A culture-primary voice that temporarily breaks its register when nervous is a character detail, not a design principle. The design principle is: all Krenn characters sound Krenn at all times; the tell-context modifies what they say within that register, not whether they sound Krenn.
**Why:** Culture is primary (D-121). The tell-context is situational. A culture-primary voice that temporarily breaks its register when nervous is a character detail, not a design principle. The design principle is: all Van Maanen's Star characters sound Van Maanen's Star at all times; the tell-context modifies what they say within that register, not whether they sound Van Maanen's Star.
**Implementation:** Priority in prompt assembly — culture injector is always applied before tell-context modifier. Tell-context modifier is framed as an emotional inflection, not a register override: "While maintaining the above speech register, this speaker is [TELL_INFLECTION]."
@@ -117,19 +117,19 @@ Each of the 5 `TellCategory` values is now a read-only input to the re-voicing p
**Mechanical source:** Major secret + stress > 50% of tolerance threshold. The NPC is holding something significant and the weight is showing. This is not controlled behavior — the stress has passed the midpoint.
**What it sounds like:** The tell of nervousness in a Krenn register is not dramatics. Krenn people don't wring their hands or speak in hushed tones — they're working-class pragmatic, emotionally controlled by cultural norm. Nervousness shows in *overfunction*: they answer a question they weren't asked, they explain when they weren't expected to, they circle back to a point they already covered. There's excess. They're running slightly ahead of the conversation, filling space that doesn't need filling.
**What it sounds like:** The tell of nervousness in a Van Maanen's Star register is not dramatics. Van Maanen's Star people don't wring their hands or speak in hushed tones — they're working-class pragmatic, emotionally controlled by cultural norm. Nervousness shows in *overfunction*: they answer a question they weren't asked, they explain when they weren't expected to, they circle back to a point they already covered. There's excess. They're running slightly ahead of the conversation, filling space that doesn't need filling.
Counter-intuitively, Krenn nervous can also show as *over-brevity* — clamping down so hard on the excess that every answer becomes monosyllabic. The player's clue is the mismatch: this person who normally speaks in short-but-complete sentences is suddenly giving one-word answers or giving sentences that don't stop.
Counter-intuitively, Van Maanen's Star nervous can also show as *over-brevity* — clamping down so hard on the excess that every answer becomes monosyllabic. The player's clue is the mismatch: this person who normally speaks in short-but-complete sentences is suddenly giving one-word answers or giving sentences that don't stop.
**Dialogue inflection:**
- Volunteer information not yet asked for
- Re-answer a question already answered
- Change subject with slightly too much energy ("Anyway, the—")
- Answers are too specific (naming exact times, bay numbers, procedure steps) or too vague (no specificity at all)
- Farewells are slightly rushed, not the usual Krenn abruptness
- Farewells are slightly rushed, not the usual Van Maanen's Star abruptness
**Prompt modifier clause:**
> *"This speaker is under internal stress they are trying not to show. Their responses may over-explain, volunteer unrequested details, or—if they are clamping down—become unexpectedly brief. They are not dramatic. The excess or the clamping is the tell; the surface is controlled Krenn register."*
> *"This speaker is under internal stress they are trying not to show. Their responses may over-explain, volunteer unrequested details, or—if they are clamping down—become unexpectedly brief. They are not dramatic. The excess or the clamping is the tell; the surface is controlled Van Maanen's Star register."*
---
@@ -137,7 +137,7 @@ Counter-intuitively, Krenn nervous can also show as *over-brevity* — clamping
**Mechanical source:** Contentment < -20 AND Hostile mood. This is externalized — contentment is measurably low and the mood is explicitly hostile. Unlike Nervous or Guarded, this is not a concealment state. The NPC is not hiding what they feel.
**What it sounds like:** Anger in Krenn register is not shouting. It's the removal of social lubrication. Normally a Krenn person gives you enough transaction to complete the exchange — they're direct, but they complete the interaction. An angry Krenn person stops completing the interaction. Answers become sub-minimal. Greetings disappear. The filler words ("look," "right," "yeah") drop out. What's left is the bare mechanical content of the exchange with everything social stripped off.
**What it sounds like:** Anger in Van Maanen's Star register is not shouting. It's the removal of social lubrication. Normally a Van Maanen's Star person gives you enough transaction to complete the exchange — they're direct, but they complete the interaction. An angry Van Maanen's Star person stops completing the interaction. Answers become sub-minimal. Greetings disappear. The filler words ("look," "right," "yeah") drop out. What's left is the bare mechanical content of the exchange with everything social stripped off.
The specific texture: they answer the literal question and nothing more. "Is the foreman available?" → "No." Not "No, try later" (surface warmth), not "Not right now, I think she's in the bay" (cooperative), just "No." The abruptness is not the player's fault; it's the NPC's state.
@@ -149,7 +149,7 @@ The specific texture: they answer the literal question and nothing more. "Is the
- Responses contract toward minimal viable information
**Prompt modifier clause:**
> *"This speaker is in a poor mood and not investing in social exchange. Their responses are minimal — only the literal answer to the question, no elaboration, no pleasantries. They are not rude or aggressive; they are simply not extending social effort. Krenn directness becomes Krenn withdrawal."*
> *"This speaker is in a poor mood and not investing in social exchange. Their responses are minimal — only the literal answer to the question, no elaboration, no pleasantries. They are not rude or aggressive; they are simply not extending social effort. Van Maanen's Star directness becomes Van Maanen's Star withdrawal."*
---
@@ -157,7 +157,7 @@ The specific texture: they answer the literal question and nothing more. "Is the
**Mechanical source:** Contentment > +20 AND at least one positively-trusted relationship. This NPC is in a good state and invested in their connections. No secret is present at this priority — Guarded would outrank Friendly if a Major secret existed.
**What it sounds like:** Friendly in Krenn register is still Krenn — it doesn't become warm in a sentimental way. It becomes *expanded*. Normally Krenn exchanges are transactional completions. A friendly Krenn exchange is a transactional completion that asks one follow-up question, or volunteers a piece of information the other person might find useful. The exchange lasts one beat longer than it needed to. The farewell lands with a little more weight.
**What it sounds like:** Friendly in Van Maanen's Star register is still Van Maanen's Star — it doesn't become warm in a sentimental way. It becomes *expanded*. Normally Van Maanen's Star exchanges are transactional completions. A friendly Van Maanen's Star exchange is a transactional completion that asks one follow-up question, or volunteers a piece of information the other person might find useful. The exchange lasts one beat longer than it needed to. The farewell lands with a little more weight.
This is the tell that's easiest to mistake for the baseline. The player needs to recognize "this person is actively in a good state" rather than "this person is normal." The signal is in the expansion: they gave more than they were asked for.
@@ -169,7 +169,7 @@ This is the tell that's easiest to mistake for the baseline. The player needs to
- Marginally more patient with the other person's pace
**Prompt modifier clause:**
> *"This speaker is in a genuinely good state today — content, connected. Within Krenn directness, they extend slightly more than asked: an extra detail, a follow-up question, a farewell with a little more weight. Not sentimental. Just more than minimum."*
> *"This speaker is in a genuinely good state today — content, connected. Within Van Maanen's Star directness, they extend slightly more than asked: an extra detail, a follow-up question, a farewell with a little more weight. Not sentimental. Just more than minimum."*
---
@@ -177,7 +177,7 @@ This is the tell that's easiest to mistake for the baseline. The player needs to
**Mechanical source:** Major secret at any stress level. Unlike Nervous, the stress has not exceeded the midpoint — the NPC still has the situation under control. This is the "cool customer" tell: something significant to hide, and the discipline to hide it smoothly.
**What it sounds like:** Guarded in Krenn register is almost indistinguishable from baseline — which is the point. The player's signal is negative space. Questions are answered completely and correctly, but they don't lead anywhere. Normally a Krenn answer has a small tail — a reference, a next step, an implied connection. A guarded Krenn answer is sealed: the answer is there, but the transaction completes too cleanly. Nothing to follow up on.
**What it sounds like:** Guarded in Van Maanen's Star register is almost indistinguishable from baseline — which is the point. The player's signal is negative space. Questions are answered completely and correctly, but they don't lead anywhere. Normally a Van Maanen's Star answer has a small tail — a reference, a next step, an implied connection. A guarded Van Maanen's Star answer is sealed: the answer is there, but the transaction completes too cleanly. Nothing to follow up on.
The specific texture: they handle redirections gracefully. If a question touches a sensitive area, they don't change the subject (that's Nervous) — they answer a slightly different version of the question so smoothly that the player might not notice. The answer is technically correct and completely uninformative.
@@ -266,7 +266,7 @@ These are designed to exercise the constraints and tell-context rules defined ab
[SYSTEM: universal negative injectors — no religious references, no military rank terms,
no Earth slang, no contrived banter]
[CULTURE: Krenn system. Direct, working-class, minimal pleasantries. Gets to the point —
[CULTURE: Van Maanen's Star. Direct, working-class, minimal pleasantries. Gets to the point —
not rudeness, but time is real and short of it. Filler words: "look," "right," "yeah."
Farewells: "shift's calling," "gotta move." If expressing surprise or frustration, ONLY use:
"void take it," "stars," "blood and void," "cold vacuum." NOT: "by the stars," "what the void,"
@@ -277,7 +277,7 @@ These are designed to exercise the constraints and tell-context rules defined ab
[BASE]: "You need a keycard for that door."
```
**What we're testing:** Does Gemma 2B produce Krenn direct register on the simplest case? Does it resist adding social warmth or explanation that the base text doesn't contain? Does it resist genre-default guard register ("I'm afraid that door requires authorization, sir")?
**What we're testing:** Does Gemma 2B produce Van Maanen's Star direct register on the simplest case? Does it resist adding social warmth or explanation that the base text doesn't contain? Does it resist genre-default guard register ("I'm afraid that door requires authorization, sir")?
**Quality pass criteria:** Output is one or two sentences, direct, no "sir/ma'am," no institutional formality, no warmth extension. Something like: "That door takes a keycard. Get one from the Terminal." would pass. "You're going to need authorization for that area" would fail (authority register bleed).
@@ -296,7 +296,7 @@ These are designed to exercise the constraints and tell-context rules defined ab
```
[SYSTEM: universal negative injectors]
[CULTURE: Krenn. Direct, working-class, minimal pleasantries. ...]
[CULTURE: Van Maanen's Star. Direct, working-class, minimal pleasantries. ...]
[ACCESS: Insider. Speaker and listener are colleagues — they know each other, there's
an assumption of shared context. Not formal; not intimate.]
@@ -304,12 +304,12 @@ These are designed to exercise the constraints and tell-context rules defined ab
[TELL CONTEXT: This speaker is under internal stress they are trying not to show. Their
responses may over-explain, volunteer unrequested details, or—if they are clamping
down—become unexpectedly brief. They are not dramatic. The excess or the clamping is
the tell; the surface is controlled Krenn register.]
the tell; the surface is controlled Van Maanen's Star register.]
[BASE]: "Shift's been different today."
```
**What we're testing:** Does the Nervous modifier produce meaningful inflection without tipping into melodrama? Does it stay in Krenn register? Specifically: does the NPC over-explain what "different" means (Nervous excess) or under-deliver on it (Nervous clamp)? Does the model avoid "I'm worried" / "something feels wrong" (too explicit for this mechanic)?
**What we're testing:** Does the Nervous modifier produce meaningful inflection without tipping into melodrama? Does it stay in Van Maanen's Star register? Specifically: does the NPC over-explain what "different" means (Nervous excess) or under-deliver on it (Nervous clamp)? Does the model avoid "I'm worried" / "something feels wrong" (too explicit for this mechanic)?
**Quality pass criteria:** Output expands or contracts from the base text in ways that feel like pressure rather than like the NPC is delivering exposition. A pass: "Yeah, different. Cargo sequence was off this morning, had to redo the whole back section. Anyway." (over-explains then exits). A fail: "I'm a bit unsettled today, honestly." (too explicit about internal state).
@@ -328,7 +328,7 @@ These are designed to exercise the constraints and tell-context rules defined ab
```
[SYSTEM: universal negative injectors]
[CULTURE: Krenn. ...]
[CULTURE: Van Maanen's Star. ...]
[ACCESS: Peer. Speaker and listener are on equal social footing. Familiar without
being intimate. Honest but not confiding.]
@@ -364,7 +364,7 @@ These are designed to exercise the constraints and tell-context rules defined ab
```
[SYSTEM: universal negative injectors]
[CULTURE: Krenn. ...]
[CULTURE: Van Maanen's Star. ...]
[ACCESS: Authority. Speaker acknowledges the listener has institutional standing.
Not deferential but procedurally correct. Information flows along institutional lines.]
@@ -377,7 +377,7 @@ These are designed to exercise the constraints and tell-context rules defined ab
[BASE]: "I've logged the discrepancy. It's being reviewed."
```
**What we're testing:** Does RoutineDeviation produce distraction texture without breaking the authority register institutional language? "I've logged the discrepancy. It's being reviewed." is almost already sealed — the test is whether the model can add the distraction quality (truncating, slightly early exit) without tipping into either warmth (wrong register) or dramatics (wrong inflection). Also tests whether institutional vocabulary ("logged," "discrepancy," "reviewed") survives the culture-Krenn injector without being collapsed to informal register.
**What we're testing:** Does RoutineDeviation produce distraction texture without breaking the authority register institutional language? "I've logged the discrepancy. It's being reviewed." is almost already sealed — the test is whether the model can add the distraction quality (truncating, slightly early exit) without tipping into either warmth (wrong register) or dramatics (wrong inflection). Also tests whether institutional vocabulary ("logged," "discrepancy," "reviewed") survives the culture-Van Maanen's Star injector without being collapsed to informal register.
**Quality pass criteria:** The output keeps the institutional vocabulary, closes cleanly, and has a slight truncation or early-exit quality. A pass: "Logged, yeah. Being reviewed. — Look, I've got to—" (incomplete sentence exit, correct content, distracted texture). A fail: "Yeah, I noted it down, should be fine." (too casual; loses institutional register).
@@ -396,19 +396,19 @@ These are designed to exercise the constraints and tell-context rules defined ab
```
[SYSTEM: universal negative injectors]
[CULTURE: Krenn. ...]
[CULTURE: Van Maanen's Star. ...]
[ACCESS: Peer. Lateral relationship, equal footing. No hierarchy.]
[TELL CONTEXT: This speaker is in a poor mood and not investing in social exchange.
Their responses are minimal — only the literal answer to the question, no elaboration,
no pleasantries. They are not rude or aggressive; they are simply not extending social
effort. Krenn directness becomes Krenn withdrawal.]
effort. Van Maanen's Star directness becomes Van Maanen's Star withdrawal.]
[BASE]: "Production's behind. Third time this week."
```
**What we're testing:** Angry inflection in a complaint context. The base text is already fairly minimal — the test is whether the model contracts it further (removes any social acknowledgment of the listener) or accidentally expands it (adds complaining energy that wasn't in the base). Also: does the Krenn anger register stay controlled, or does it tip toward generic frustration vocabulary ("I'm so sick of this")?
**What we're testing:** Angry inflection in a complaint context. The base text is already fairly minimal — the test is whether the model contracts it further (removes any social acknowledgment of the listener) or accidentally expands it (adds complaining energy that wasn't in the base). Also: does the Van Maanen's Star anger register stay controlled, or does it tip toward generic frustration vocabulary ("I'm so sick of this")?
**Quality pass criteria:** Output is at or below the word count of the base text, no social engagement with the listener, no emotional vocabulary that names the feeling. A pass: "Three times." (pure contraction — states the number without even completing the thought). A pass at base-text length: "Production's behind. Third time." (drops "this week" — slightly more closed). A fail: "I'm fed up honestly, this keeps happening and no one does anything about it." (names feeling, expands, too much social presence).
@@ -9,7 +9,7 @@
## Overview
All seven participants completed independent domain inventories after reading the proposal (`proposed-llm-voice.md`), the generator spike, zone RON files, the Krenn culture profile, and relevant D-records. The round produced strong convergence on direction and sharp, actionable disagreement on specific mechanisms — exactly what a divergent inventory round should produce.
All seven participants completed independent domain inventories after reading the proposal (`proposed-llm-voice.md`), the generator spike, zone RON files, the Van Maanen's Star culture profile, and relevant D-records. The round produced strong convergence on direction and sharp, actionable disagreement on specific mechanisms — exactly what a divergent inventory round should produce.
---
@@ -22,7 +22,7 @@ All seven participants completed independent domain inventories after reading th
| Paula | Narrative quality | Option 3 mandatory hybrid | Tells must be first-class data model field, not editorial convention |
| Mellanie | Content authoring | Option 3 | Tell structural separation in RON schema is the one blocker |
| Ozzie | Player experience | Option 3, two non-negotiable preconditions | Base text elevation pass; tells locked (prefers base text passthrough) |
| Miri | World consistency | Option 3 + deep injectors | Proposal's Krenn injector is wrong; needs token budget before committing |
| Miri | World consistency | Option 3 + deep injectors | Proposal's Van Maanen's Star injector is wrong; needs token budget before committing |
| Troblum | Infrastructure | Option 3 conditionally viable | Minimum CPU spec must be defined; correct infrastructure choices required |
**Summary: 7/7 participants favor Option 3 (LLM re-voicing) as the primary path.** No participant endorsed hand-authored pools as the sole strategy or composable primitives as the rendering layer.
@@ -46,8 +46,8 @@ The mechanism of protection is disputed (see Tension T-1), but the requirement i
### C-3: Composable primitives are rejected as the rendering layer
Unanimous. Composable primitives may have value as an **authoring scaffold** (Gestalt), but they cannot serve as the runtime output layer. The quality the Sprint 25 spike established — "wipes grease on the thigh of her coveralls between jobs" — cannot be produced by grammar assembly. The specific, composed nature of authored behaviors is the content.
### C-4: The proposal's Krenn cultural injector example is wrong
Three participants (Paula, Miri, Mellanie) independently identified that the proposal's example injector — *"Your speech is formal and avoids contractions"* — is incorrect for Krenn. Krenn register is direct-informal, clipped, and working-class. Formal-without-contractions describes an entirely different culture. This error must be corrected before any spike validation can produce meaningful results.
### C-4: The proposal's Van Maanen's Star cultural injector example is wrong
Three participants (Paula, Miri, Mellanie) independently identified that the proposal's example injector — *"Your speech is formal and avoids contractions"* — is incorrect for Van Maanen's Star. Van Maanen's Star register is direct-informal, clipped, and working-class. Formal-without-contractions describes an entirely different culture. This error must be corrected before any spike validation can produce meaningful results.
### C-5: Base-text-as-fallback architecture is sound
Unanimous. The proposal's design — base text as both LLM seed and graceful fallback for hardware-limited players — is correct. It solves content scaling, quality floor, hardware flexibility, and the AI-toggle player-choice problem simultaneously.
@@ -96,7 +96,7 @@ Both acknowledge the architecture supports both; this is a sequencing and spike-
### T-4: Model quality vs. hardware feasibility tradeoff
**Tyre** — Gemma 2B Q4 is the primary candidate. Qwen2.5-1.5B as fallback. Good instruction following at 2B.
**Miri** — Skeptical that a 2B model can hold cultural *philosophy* (not just vocabulary) under prompt pressure. The Krenn injector needs ~200-300 words to encode accurately; small models produce worse instruction following with longer prompts.
**Miri** — Skeptical that a 2B model can hold cultural *philosophy* (not just vocabulary) under prompt pressure. The Van Maanen's Star injector needs ~200-300 words to encode accurately; small models produce worse instruction following with longer prompts.
**Troblum** — Phi-3-mini is not "2B class" — it's 3.8B, and the proposal misclassifies it. At minimum-spec CPU-only inference, Phi-3-mini may never finish pre-voicing a zone. Minimum hardware CPU spec must be defined before any model recommendation is final.
@@ -122,8 +122,8 @@ Paula, Mellanie, and Ozzie each identify tell-line structural separation as thei
**B-2: Minimum hardware CPU spec must be defined**
Troblum cannot sign off on any infrastructure feasibility assessment without this. The difference between a 2017 Core i3 and a 2022 Core i5 is 3× inference throughput — enough to determine whether the feature is functional on minimum spec at all. Affects: model selection, queue scheduling, Vulkan acceleration investment decision.
**B-3: The Krenn cultural injector must be rewritten before spike validation**
The proposal's example injector is factually wrong. Any spike test using it produces invalid quality assessments for Krenn culture. Paula, Miri, and Mellanie all flag this. Mellanie is best positioned to write the replacement. This is a prerequisite for the spike, not a risk.
**B-3: The Van Maanen's Star cultural injector must be rewritten before spike validation**
The proposal's example injector is factually wrong. Any spike test using it produces invalid quality assessments for Van Maanen's Star culture. Paula, Miri, and Mellanie all flag this. Mellanie is best positioned to write the replacement. This is a prerequisite for the spike, not a risk.
---
@@ -149,7 +149,7 @@ The three prerequisites before Round 2 can produce implementable decisions:
1. **Tell data model decision** — Is a `semantic_core` field or equivalent added to the `Tell` struct? This unlocks the entire tell-protection architecture debate.
2. **Minimum hardware CPU spec** — One number, from Jeroen or Tyre, unblocks Troblum's infrastructure design.
3. **Corrected Krenn injector** — Mellanie rewrites the Krenn injector clauses (5-10 sentences) before the spike is designed. The existing culture RON `speech` fields are useful source material but were not designed as LLM instructions.
3. **Corrected Van Maanen's Star injector** — Mellanie rewrites the Van Maanen's Star injector clauses (5-10 sentences) before the spike is designed. The existing culture RON `speech` fields are useful source material but were not designed as LLM instructions.
The lore contamination risk (franchise bleed, anachronistic tech, social register drift) has been clearly taxonomized by Paula and Miri with concrete mitigation strategies. This is ready for Round 2 specification.
@@ -53,7 +53,7 @@ Tyre gives concrete spike complexity comparison:
The spike complexity increase for C is real, and the risk of an inconclusive result (quality failure attributable to model, prompt, or content type without clear isolation) is Tyre's primary objection.
**Ozzie dissents productively:** The dialogue gap is real and will be felt by players. An NPC who observes in Krenn voice and speaks in form-letter voice creates a whiplash moment at exactly the highest-investment point (direct conversation). This is a known limitation of A/B, not a resolved one. The correct response is to plan C explicitly, not treat it as hypothetical.
**Ozzie dissents productively:** The dialogue gap is real and will be felt by players. An NPC who observes in Van Maanen's Star voice and speaks in form-letter voice creates a whiplash moment at exactly the highest-investment point (direct conversation). This is a known limitation of A/B, not a resolved one. The correct response is to plan C explicitly, not treat it as hypothetical.
**Consensus position:** Proposal A or B for the v0.2 spike; Proposal C as the Sprint 26/27 extension, planned explicitly as the next step in the same D-record.
@@ -107,9 +107,9 @@ Tyre and Miri answer independently and converge.
**Hybrid format recommendation (Miri, 200-250 token culture injector):**
- ~80-90 tokens: minimal instruction set (register, oath vocabulary list, 3-4 culture-specific NOT-items)
- ~120-140 tokens: 2 brief example pairs demonstrating Krenn register in practice
- ~120-140 tokens: 2 brief example pairs demonstrating Van Maanen's Star register in practice
Small models are pattern matchers before instruction-followers. Examples demonstrating Krenn register are more reliably reproduced than abstract instructions describing it.
Small models are pattern matchers before instruction-followers. Examples demonstrating Van Maanen's Star register are more reliably reproduced than abstract instructions describing it.
**The spike should test 150-token instruction-only vs. 200-token hybrid** and measure: oath vocabulary correct usage rate (>95%), register accuracy (blind review), franchise bleed rate (<2%).
@@ -202,9 +202,9 @@ This is a product/distribution decision, not a technical one. It affects all thr
---
### N-7: Corrected Krenn injectors are ready
### N-7: Corrected Van Maanen's Star injectors are ready
Mellanie delivered 8 corrected Krenn culture injector clauses in `mellanie-round2.md`. Round 1 blocker B-3 (the placeholder injector "formal, avoids contractions" was wrong) is **resolved**. The corrected injectors correctly capture Krenn's direct-informal, working-class register. These are v1 drafts for spike validation, not final copy.
Mellanie delivered 8 corrected Van Maanen's Star culture injector clauses in `mellanie-round2.md`. Round 1 blocker B-3 (the placeholder injector "formal, avoids contractions" was wrong) is **resolved**. The corrected injectors correctly capture Van Maanen's Star's direct-informal, working-class register. These are v1 drafts for spike validation, not final copy.
---
@@ -58,7 +58,7 @@ All 7 participants favor Option 3 (LLM re-voicing). Round 2 does not revisit tha
**D-123 amendment:** Same as Proposal A.
**Pros:** Tells get culture voice (a Krenn tell reads differently from a Sovari tell — richer world). The semantic core constraint is testable: spike can measure whether the phenomenon survives re-voicing. Two-track architecture is future-proof for dialogue.
**Pros:** Tells get culture voice (a Van Maanen's Star tell reads differently from a Sovari tell — richer world). The semantic core constraint is testable: spike can measure whether the phenomenon survives re-voicing. Two-track architecture is future-proof for dialogue.
**Cons:** Constrained re-voicing is harder to validate than passthrough. If the model fails to preserve the semantic core, the tell is corrupted — and the failure is subtle (not missing, just wrong). Requires the copy team to author semantic core labels for every tell type.
@@ -23,7 +23,7 @@
| 640 | story | Spike 1: Manual prompt quality session | copy | high | #639 |
| 641 | story | Spike 2: Pre-voicing pipeline integration | server | high | #639, #640, #642 |
| 642 | task | Data model: Add tell_behaviors field to NpcBlueprint | server | high | — |
| 643 | story | Content: Krenn culture injector clauses | copy | high | — |
| 643 | story | Content: Van Maanen's Star culture injector clauses | copy | high | — |
| 644 | story | Content: Universal negative injectors (NI-1 through NI-5) | copy | medium | — |
| 645 | story | Content: Base text elevation pass | copy | medium | — |
| 646 | story | UX: AI-Enhanced Dialogue toggle + hardware detection | client | medium | #641 |
@@ -38,7 +38,7 @@
```
[#642 tell_behaviors data model]
│
[#643 Krenn injectors] ─────┤
[#643 Van Maanen's Star injectors] ─────┤
│ ▼
└──► [#640 Spike 1: copy] ◄── [#639 Spike 1: server]
│
@@ -37,7 +37,7 @@ No hard minimum — if they have enough RAM, they can try.
**When:** Immediately after Layer 1 passes, model is loaded (this is the same operation — the model must be loaded for the benchmark, and the load itself is the heaviest part). Benchmark runs once per installation. Result is cached in user config. Player can force a re-benchmark via settings.
**What it measures:** Synthetic inference run. Prompt: 150-token system prompt (universal negative injectors + minimal Krenn culture injector + one base text seed). Output: measure wall-clock time for 20 tokens of generation. Tokens/sec = 20 ÷ elapsed_seconds.
**What it measures:** Synthetic inference run. Prompt: 150-token system prompt (universal negative injectors + minimal Van Maanen's Star culture injector + one base text seed). Output: measure wall-clock time for 20 tokens of generation. Tokens/sec = 20 ÷ elapsed_seconds.
**Why 20 tokens:** Fast enough to not feel like a loading screen (2-4 seconds on good hardware, 6-20 seconds on minimum spec). Long enough to average out single-token timing noise.
@@ -237,7 +237,7 @@ Compiled from all three rounds. Severity: HIGH / MEDIUM / LOW. Status: OPEN / MI
**What:** 2B model produces references to things that don't exist in the Settled Reach: Earth place names, modern idioms, wrong-era technology, other-franchise vocabulary.
**Scenario:** Krenn dock worker says "worth a king's ransom" or references "checking his phone" or names a tool that doesn't exist in the setting.
**Scenario:** Van Maanen's Star dock worker says "worth a king's ransom" or references "checking his phone" or names a tool that doesn't exist in the setting.
**Mitigation:**
- Universal negative injectors (NI-1 through NI-5) in shared system/prefix prompt layer covering: religious terms, military ranks, anachronistic tech, banter/wit register, Earth geography
@@ -1,7 +1,7 @@
# Tyre Round 1: Technical Feasibility Inventory
**Domain:** Technical architecture
**Input documents reviewed:** workshop-brief.md, proposed-llm-voice.md, generator_spike.rs, blueprint.rs, culture-krenn.ron, rural-zone-spec.ron, industrial-zone-spec.ron, D-010, D-024, D-121, D-122, D-123, D-128, Q-057, Q-012
**Input documents reviewed:** workshop-brief.md, proposed-llm-voice.md, generator_spike.rs, blueprint.rs, culture-van-maanens-star.ron, rural-zone-spec.ron, industrial-zone-spec.ron, D-010, D-024, D-121, D-122, D-123, D-128, Q-057, Q-012
---
@@ -23,7 +23,7 @@
*cracks knuckles* — Let me be direct about why B is the sweet spot.
**Proposal A** locks tells as passthrough. That's safe but wasteful. The tell system already outputs a `TellCategory` enum (Nervous, Angry, Friendly, Guarded, RoutineDeviation) — it's a closed taxonomy of 5 categories. The tells are not free-form authored content; they're behavioral expressions of simulation state. A Nervous Krenn worker and a Nervous Sovari merchant should look nervous *differently*. Passthrough means they look nervous identically. That's technically correct but culturally flat.
**Proposal A** locks tells as passthrough. That's safe but wasteful. The tell system already outputs a `TellCategory` enum (Nervous, Angry, Friendly, Guarded, RoutineDeviation) — it's a closed taxonomy of 5 categories. The tells are not free-form authored content; they're behavioral expressions of simulation state. A Nervous Van Maanen's Star worker and a Nervous Sovari merchant should look nervous *differently*. Passthrough means they look nervous identically. That's technically correct but culturally flat.
**Proposal C** adds dialogue re-voicing to the same spike. That's scope creep that risks muddying the results. Behaviors are 5-15 word strings with no conversation context. Dialogue is 15-40 words requiring relationship state, access tier, and conversation history. Testing both in one spike means you can't isolate whether a quality failure comes from the model, the prompt, or the content type. Phase it.
@@ -156,7 +156,7 @@ Rephrase the following action description in the specified voice.
Preserve the physical action. Change only style, register, and vocabulary.
Do not add information. Do not explain motivation. One sentence only.
Culture: Krenn (working-class, direct, minimal pleasantries).
Culture: Van Maanen's Star (working-class, direct, minimal pleasantries).
Speech register: direct, gets to the point, no contractions avoided.
Exclamations (use ONLY these): "void take it", "stars", "blood and void",
"cold vacuum", "damn all", "void's sake".
@@ -184,7 +184,7 @@ No. For behavior re-voicing, the model needs:
2. Oath vocabulary (closed list) — so it uses "void take it" not "damn it"
3. Negative constraints — so it doesn't produce franchise bleed
It does NOT need to understand why Krenn people swear by the void. That's a dialogue-level concern, not a behavior-level concern. "Tends crops in the field" becomes "works the irrigation channels before the morning rotation" — register and setting vocabulary are sufficient.
It does NOT need to understand why Van Maanen's Star people swear by the void. That's a dialogue-level concern, not a behavior-level concern. "Tends crops in the field" becomes "works the irrigation channels before the morning rotation" — register and setting vocabulary are sufficient.
**For Proposal B's constrained tell re-voicing:** add ~20 tokens for the semantic core constraint ("PRESERVE: avoidance_behavior. Culture-voice the expression, not the phenomenon."). Total: ~170 tokens. Still within the effective range for a 2B model.
@@ -217,7 +217,7 @@ However, there's a memory impact. At 500-token context, the KV cache per inferen
**Architecturally clean.** One prompt template, one model, one content type. The spike is maximally simple. If we are risk-averse about the v0.2 timeline, this is the right call.
**Technical gap:** Tell behaviors pass through as culture-neutral base text. A Krenn NPC who is Nervous shows exactly the same tell phrasing as a Sovari NPC who is Nervous. Since tells are a fixed-size library (5 categories x N cultures), voicing all of them is cheap. Leaving them unvoiced is a missed opportunity with near-zero risk.
**Technical gap:** Tell behaviors pass through as culture-neutral base text. A Van Maanen's Star NPC who is Nervous shows exactly the same tell phrasing as a Sovari NPC who is Nervous. Since tells are a fixed-size library (5 categories x N cultures), voicing all of them is cheap. Leaving them unvoiced is a missed opportunity with near-zero risk.
### Proposal B: Two-Track
@@ -240,7 +240,7 @@ The `semantic_core` tag maps directly to `TellCategory`:
The prompt for constrained re-voicing adds one line to the behavior prompt:
```
PRESERVE the observable phenomenon: {semantic_core}.
Rephrase in Krenn register. Do not change what the NPC is doing — change how they do it.
Rephrase in Van Maanen's Star register. Do not change what the NPC is doing — change how they do it.
```
This is a constrained localization task, not free generation. A 2B model handles this well because the constraint is specific and verifiable. The spike can include tell re-voicing alongside behavior re-voicing with minimal additional test payloads (5 categories x 1-2 base texts = 5-10 additional test strings).
@@ -209,17 +209,17 @@ Phi-3-mini is the quality fallback, not a peer candidate. If Gemma 2B passes the
| ID | Content type | Base text | Zone | Culture | Traits | Mood | TellCategory | Notes |
|----|-------------|-----------|------|---------|--------|------|-------------|-------|
| B-01 | Behavior | "tends crops in the field" | rural | krenn | Bold, Honest | Neutral | — | Simple role action |
| B-02 | Behavior | "checks a manifest against a handheld scanner, lips moving" | industrial | krenn | Curious, Social | Neutral | — | Detailed role action |
| B-03 | Behavior | "catches {target}'s eye and nods across the room" | industrial | krenn | Social, Compassionate | Neutral | — | Relationship behavior — named target preservation |
| B-04 | Behavior | "talks past {target} without making eye contact" | industrial | krenn | Deceptive, Bold | Neutral | — | Negative relationship — social signal preservation |
| B-05 | Behavior | "sits alone in the break room rubbing the back of her neck, datapad face-down on the table" | industrial | krenn | — | Stressed | — | Long-form atmospheric behavior |
| T-01 | Tell | "shifts weight and checks the time without reason" | any | krenn | — | — | Nervous | Nervous fidget — phenomenon must survive |
| T-02 | Tell | "affects exaggerated calm" | any | krenn | Deceptive | — | Guarded | Suppression — constrained re-voicing test |
| T-03 | Tell | "checks surroundings repeatedly" | any | krenn | Cautious | — | Nervous | Surveillance — must not become avoidance |
| D-01 | Dialogue | "You need a keycard for that door." | industrial | krenn | Bold | Neutral | — | Simple informational dialogue |
| D-02 | Dialogue | "I haven't seen Kael since second shift. Why?" | industrial | krenn | Suspicious, Cautious | Guarded | Guarded | Dialogue with active tell context — tell shapes tone |
| D-03 | Dialogue | "The cargo manifest doesn't match what's in bay seven." | industrial | krenn | Honest, Curious | Alert | — | Information-bearing dialogue — must preserve factual content |
| B-01 | Behavior | "tends crops in the field" | rural | van-maanens-star | Bold, Honest | Neutral | — | Simple role action |
| B-02 | Behavior | "checks a manifest against a handheld scanner, lips moving" | industrial | van-maanens-star | Curious, Social | Neutral | — | Detailed role action |
| B-03 | Behavior | "catches {target}'s eye and nods across the room" | industrial | van-maanens-star | Social, Compassionate | Neutral | — | Relationship behavior — named target preservation |
| B-04 | Behavior | "talks past {target} without making eye contact" | industrial | van-maanens-star | Deceptive, Bold | Neutral | — | Negative relationship — social signal preservation |
| B-05 | Behavior | "sits alone in the break room rubbing the back of her neck, datapad face-down on the table" | industrial | van-maanens-star | — | Stressed | — | Long-form atmospheric behavior |
| T-01 | Tell | "shifts weight and checks the time without reason" | any | van-maanens-star | — | — | Nervous | Nervous fidget — phenomenon must survive |
| T-02 | Tell | "affects exaggerated calm" | any | van-maanens-star | Deceptive | — | Guarded | Suppression — constrained re-voicing test |
| T-03 | Tell | "checks surroundings repeatedly" | any | van-maanens-star | Cautious | — | Nervous | Surveillance — must not become avoidance |
| D-01 | Dialogue | "You need a keycard for that door." | industrial | van-maanens-star | Bold | Neutral | — | Simple informational dialogue |
| D-02 | Dialogue | "I haven't seen Kael since second shift. Why?" | industrial | van-maanens-star | Suspicious, Cautious | Guarded | Guarded | Dialogue with active tell context — tell shapes tone |
| D-03 | Dialogue | "The cargo manifest doesn't match what's in bay seven." | industrial | van-maanens-star | Honest, Curious | Alert | — | Information-bearing dialogue — must preserve factual content |
**11 payloads total.** Each run through both models = 22 outputs per prompt template variant.
@@ -269,7 +269,7 @@ Each output is scored on 5 axes (1-5 scale, scored by Paula and Mellanie indepen
| Criterion | What it measures | Pass threshold |
|-----------|-----------------|----------------|
| **Register accuracy** | Does it sound like Krenn working-class? Not formal, not quippy, not military. | >= 3 |
| **Register accuracy** | Does it sound like Van Maanen's Star working-class? Not formal, not quippy, not military. | >= 3 |
| **Oath preservation** | If an exclamation appears, is it from the canonical list? No franchise bleed? | >= 4 (hard requirement) |
| **Semantic preservation** | Does the output preserve the action/information from the base text? | >= 4 (hard requirement) |
| **Named target survival** | For B-03/B-04: does the `{target}` name survive in the output? | Pass/Fail |
@@ -363,7 +363,7 @@ pub enum VoicePriority {
```rust
pub struct VoiceCacheKey {
pub world_seed: u64,
pub culture_id: String, // "krenn"
pub culture_id: String, // "van-maanens-star"
pub npc_stable_id: StableId,
pub content_type: ContentType, // Behavior | Dialogue
pub content_index: u8, // which behavior/dialogue line
@@ -476,8 +476,8 @@ A build-time step that runs the inference engine on all hub zone NPCs:
# Build tool (not the game binary)
sr-voice-bake \
--model models/gemma-2b-q4.gguf \
--zones content/global/krenn-*.ron \
--culture content/global/culture-krenn.ron \
--zones content/global/van-maanens-star-*.ron \
--culture content/global/culture-van-maanens-star.ron \
--output client/assets/voice_baked/ \
--seed 0 # baked content uses seed 0 as the canonical reference
```
@@ -20,9 +20,9 @@ The Sprint 25 generator produces legible people in legible places. Five reviewer
### The scaling wall
Copy team expanded behavior pools to ~50 lines per role during Sprint 25 (#630). In doing so, they surfaced Q-057: this doesn't scale. Each zone file is really culture x zone content — `krenn-rural-zone.ron` is not a reusable "rural template," it's Krenn-flavored rural content. Adding a second culture or a third zone type means authoring from scratch.
Copy team expanded behavior pools to ~50 lines per role during Sprint 25 (#630). In doing so, they surfaced Q-057: this doesn't scale. Each zone file is really culture x zone content — `van-maanens-star-rural-zone.ron` is not a reusable "rural template," it's Van Maanen's Star-flavored rural content. Adding a second culture or a third zone type means authoring from scratch.
The numbers: 4 roles x ~50 behaviors x N zones x M cultures = thousands of hand-authored lines before the game has meaningful variety. The copy team renamed files from generic (`rural-zone-spec.ron`) to location-specific (`krenn-rural-zone.ron`) to make this explicit.
The numbers: 4 roles x ~50 behaviors x N zones x M cultures = thousands of hand-authored lines before the game has meaningful variety. The copy team renamed files from generic (`rural-zone-spec.ron`) to location-specific (`van-maanens-star-rural-zone.ron`) to make this explicit.
### Three options on the table
@@ -89,7 +89,7 @@ The spike added systems that the original LLM voice proposal didn't account for:
16. The lazy pre-voicing pattern mirrors lazy world generation — can we reuse the same priority/anticipation infrastructure?
### Narrative & World Consistency
16. Can injector clauses preserve culture-specific vocabulary (void-oaths, Krenn speech register) reliably at 2B model size?
16. Can injector clauses preserve culture-specific vocabulary (void-oaths, Van Maanen's Star speech register) reliably at 2B model size?
17. How do we prevent the LLM from introducing lore-breaking content? (References to things that don't exist in the Settled Reach)
18. Does re-voicing work across the 30/50/20 NPC tier model? Tier 3 ambient NPCs get re-voiced, Tier 1 hand-authored — where's the Tier 2 line?
@@ -100,9 +100,9 @@ The spike added systems that the original LLM voice proposal didn't account for:
| `docs/architecture/proposed-llm-voice.md` | Full proposal | The architecture being evaluated |
| `server/src/bin/generator_spike.rs` | gen_want, gen_want_tell, apply_relationship_behaviors | Systems re-voicing must preserve |
| `server/src/npc/blueprint.rs` | NpcBlueprint, NpcWant, CulturalMarkers | Data model re-voicing consumes |
| `content/global/krenn-rural-zone.ron` | Full file | Current hand-authored quality bar |
| `content/global/krenn-industrial-zone.ron` | Full file | Same, different zone for contrast |
| `content/global/culture-krenn.ron` | Speech patterns, exclamations | Culture voice injectors must preserve |
| `content/global/van-maanens-star-rural-zone.ron` | Full file | Current hand-authored quality bar |
| `content/global/van-maanens-star-industrial-zone.ron` | Full file | Same, different zone for contrast |
| `content/global/culture-van-maanens-star.ron` | Speech patterns, exclamations | Culture voice injectors must preserve |
| `decisions/content.md` | D-121 (voice is culture-driven), D-122 (all NPCs generated), D-128 (culture implicit) | Content architecture constraints |
| `decisions/architecture.md` | D-010 (information boundaries), D-024 (NPC 10-axis model) | Architecture constraints |
| `decisions/questions-content.md` | Q-057 (composable behaviors), Q-012 (generation expansion) | Open questions this workshop should resolve |
@@ -96,14 +96,14 @@ Tells are READ-ONLY inputs. The tell text is never sent to the LLM. When an NPC'
**Critical constraint on all tone injectors:** Do not name the internal state. Do not add information. Do not change the content — only the texture of expression. Results must pass the deniability test: could the player explain this phrasing without knowing the tell was active?
**Krenn-culture tell-tone table** (Miri v1 — culture-inflected expressions; one per culture required):
**Van Maanen's Star-culture tell-tone table** (Miri v1 — culture-inflected expressions; one per culture required):
| Tell category | Krenn-inflected tonal register |
| Tell category | Van Maanen's Star-inflected tonal register |
|---|---|
| Nervous | Answers run shorter than usual. Eyes stay on task. Nothing's wrong — they just have things to do. |
| Guarded | Direct past the point of directness. Closes conversation paths fast without being unfriendly. |
| Avoidance/relationship | Task-focused when this person is nearby. Finds work to do. Polite but not engaging. |
| Hostile suppression (Angry) | Steady. Even. The kind of steady that takes effort to maintain. Not hostile — just flat in a way that doesn't feel natural for Krenn. |
| Hostile suppression (Angry) | Steady. Even. The kind of steady that takes effort to maintain. Not hostile — just flat in a way that doesn't feel natural for Van Maanen's Star. |
| RoutineDeviation | Unhurried. Unremarkably normal. Like nothing's worth noticing. |
Architecture: universal-first tell-context prompt. The universal phenomenon-class description (baseline readability) is always present. Cultural flavor is **conditional and additive** — the prompt asks the LLM whether it can add cultural texture without significantly changing the information conveyed. Humans are humans first; shiftiness, micro-expressions, and body language must remain universally recognizable. Cultural convention is sprinkled in sparingly, not substituted. Per-culture tell-tone tables are optional enrichment authored over time, not a launch requirement.
@@ -208,7 +208,7 @@ Key test payloads include:
| Information preservation (dialogue) | No | ≥9/10 outputs |
| Tell-context tone (undertone sensed without naming) | No | ≥8/10 outputs |
| Tell-context: zero explicit state naming | **YES** | 0 instances across all outputs |
| Cultural grammar survival (Krenn legible, blind review) | No | ≥8/10 correct identifications |
| Cultural grammar survival (Van Maanen's Star legible, blind review) | No | ≥8/10 correct identifications |
| No false information (D-010 boundary) | **YES** | 0 instances |
| Qualitative "real person" test | No | ≥1 convincing output per reviewer |
@@ -289,7 +289,7 @@ Layer 1 (RAM check) → Layer 2 (TPT benchmark, 20 tokens) → Layer 3 (recommen
- `voice_injectors` field in culture RON (new field)
- 8-10 explicit LLM persona instruction sentences in second-person imperative register
- 2 brief example pairs demonstrating correct culture voice
- Krenn v2 is finalized (see Section 7.1 below) — ready for Spike 1
- Van Maanen's Star v2 is finalized (see Section 7.1 below) — ready for Spike 1
**Trait modifier clauses (once total, ~10 sentences)**
- 1 injector clause per personality trait, 10 traits
@@ -321,7 +321,7 @@ Layer 1 (RAM check) → Layer 2 (TPT benchmark, 20 tokens) → Layer 3 (recommen
## 7. Key Artifacts
### 7.1 Krenn Culture Injectors v2 (finalized for Spike 1)
### 7.1 Van Maanen's Star Culture Injectors v2 (finalized for Spike 1)
Source: `mellanie-round3.md`
@@ -359,7 +359,7 @@ BASE: "acknowledges a colleague's greeting while continuing to work"
VOICED: "Hey. Yeah. Catch you at shift end."
```
**Assembly notes:** Culture is the baseline for all Krenn NPCs. Void-oaths (clause 4) gated to high-affect contexts only. Trait modifiers and tell-context injectors layer on top.
**Assembly notes:** Culture is the baseline for all Van Maanen's Star NPCs. Void-oaths (clause 4) gated to high-affect contexts only. Trait modifiers and tell-context injectors layer on top.
### 7.2 Finalized Universal Negative Injectors (NI-1 through NI-5)
@@ -408,7 +408,7 @@ BASE: [culture-neutral semantic line]
[CULTURE]: [culture-voiced output]
```
**Per-culture ongoing deliverable:** Each culture profile also requires a 5-row tell-tone table (Miri's Section 4) mapping TellCategory to culture-inflected tonal register. See Krenn reference table in Section 1 above.
**Per-culture ongoing deliverable:** Each culture profile also requires a 5-row tell-tone table (Miri's Section 4) mapping TellCategory to culture-inflected tonal register. See Van Maanen's Star reference table in Section 1 above.
### 7.4 Dialogue Re-voicing Constraints (6 rules)
@@ -555,7 +555,7 @@ These require follow-up but do not block the spike.
| Add `voice_injectors` field to culture RON schema | Tyre | Before Spike 2 |
| Add `tell_behaviors` field to `NpcBlueprint` | Tyre | Before Spike 2 |
| Add `anchor_line: bool` field to individual dialogue lines | Tyre | Before Spike 2 |
| Krenn tell-tone table to be mapped to canonical TellCategory enum once confirmed | Miri | After Spike 1 |
| Van Maanen's Star tell-tone table to be mapped to canonical TellCategory enum once confirmed | Miri | After Spike 1 |
| Confirm full set of negative injectors fit within throughput budget (compressed vs. full NI set) | Troblum | Before Spike 1 |
| ~~Confirm tell-context clauses are culture-neutral (not per-culture) — Mellanie's question~~ **RESOLVED:** Universal baseline always present; cultural flavor is conditional and additive, never substituted. Per-culture tell-tone tables are optional enrichment, not a launch blocker. | Jeroen (decided) | Resolved |
| Diagram: voice pipeline architecture (base text → re-voicing queue → LLM → cache → observer) | Tyre/Qatux | After Spike 1 |
@@ -21,7 +21,7 @@ The full Round 4 interview transcript is at docs/workshops/wheres-the-fun/round4
5. **Skills affect outcome (mostly C).** Everyone sees the same verbs. Skills determine how well you do. Some advanced verbs may still be gated — spec needed for which ones.
6. **Voice: culture-driven, job modifies.** The character IS their background. Job adds a layer. Voice cards authored at the culture level with job-specific modifiers. A Krenn tycoon sounds like a Krenn person who runs businesses, not a generic tycoon. NOTE: this is inverted from "job sets base, culture modifies" — culture is primary.
6. **Voice: culture-driven, job modifies.** The character IS their background. Job adds a layer. Voice cards authored at the culture level with job-specific modifiers. A Van Maanen's Star tycoon sounds like a Van Maanen's Star person who runs businesses, not a generic tycoon. NOTE: this is inverted from "job sets base, culture modifies" — culture is primary.
### Content Architecture
@@ -143,7 +143,7 @@ Round 4 was cross-review: each agent read all other agents' Round 3 proposals an
### MELLANIE (Copy & Voice)
**Agrees with:** Paula (Phase Zero is right; Phase Zero content is the *first* copy deliverable), Araminta (spatial anchoring before any monologue content push — confirmed by Q9 of the interview), Ozzie (the "Character's Instinct" framing — noticing, not telling), Gestalt (VerbPriorityProfiles affect trigger catalog — anomaly triggers must match what each career's verb profile surfaces), Nigel (cross-career comparison requires voice cards distinctive enough that the same event reads utterly differently).
**Core tension identified — voice attribution problem:** The CK3 model says character creation is more fundamental than job. But current voice cards are job-voices. A Krenn-background social manipulator and a military-background enforcer both take law enforcement — same toolbox, different people. Do they share a voice card? If voice comes from character creation, career-level voice cards are the wrong abstraction. This could be a combinatorial explosion or a parametric register model. Needs a decision before more voice card work is produced.
**Core tension identified — voice attribution problem:** The CK3 model says character creation is more fundamental than job. But current voice cards are job-voices. A Van Maanen's Star-background social manipulator and a military-background enforcer both take law enforcement — same toolbox, different people. Do they share a voice card? If voice comes from character creation, career-level voice cards are the wrong abstraction. This could be a combinatorial explosion or a parametric register model. Needs a decision before more voice card work is produced.
**Three career model monologue rhythms:** Active (ambient shift commentary, continuous), WFH/Remote (focused inner monologue about the work in isolation), Gig (episodic decision-making, pre/in/post-job). The trigger catalog as proposed was written for Gig. Active and Remote require different trigger architecture.
@@ -143,13 +143,13 @@ This is not a consensus document. Round 5 is a distributed audit — nine domain
**Three blockers identified:**
1. **Zone identity spec** (Priority 1, blocks generator): Zone types, visual markers, behavioral vocabulary, population demographics, social responsiveness profiles. Must exist before the generator proof-of-life is demonstrated.
2. **Culture profiles** (Priority 1, blocks voice system, NPC generator, AI pipeline): "Culture deferred" cannot mean "culture undefined." Three downstream systems (voice, NPC generator, AI pipeline) all need culture as a working concept immediately. Minimum for v0.2: one culture profile (Krenn System / Station Sova / Velen).
2. **Culture profiles** (Priority 1, blocks voice system, NPC generator, AI pipeline): "Culture deferred" cannot mean "culture undefined." Three downstream systems (voice, NPC generator, AI pipeline) all need culture as a working concept immediately. Minimum for v0.2: one culture profile (Van Maanen's Star / Station Sova / Velen).
3. **Wealth tier + cultural aesthetic specs** (Priority 2, needed for apartment generator): 4-5 wealth tiers as visual vocabularies, correlated with zone location, with cultural aesthetic modifiers.
**IP risk flag on Decision 8:** AI templating without tight culture profile constraints will default to genre conventions. "Krenn System NPCs might start talking like they're from Babylon 5 or Mass Effect." Culture profiles are simultaneously setting design documents AND AI prompt engineering documents.
**IP risk flag on Decision 8:** AI templating without tight culture profile constraints will default to genre conventions. "Van Maanen's Star NPCs might start talking like they're from Babylon 5 or Mass Effect." Culture profiles are simultaneously setting design documents AND AI prompt engineering documents.
**Questions for Jeroen:**
1. Is culture implicit in starting location (tycoon bookmark in Krenn System = Krenn culture), or selected separately?
1. Is culture implicit in starting location (tycoon bookmark in Van Maanen's Star = Van Maanen's Star culture), or selected separately?
2. What does the tycoon own or invest in on Day 1? (Logistics contract, bar, storage franchise, speculative property?)
3. What should the player feel when they look at the span gate from their apartment window?
@@ -284,7 +284,7 @@ The following questions require Jeroen's input before domains can proceed. Group
**Q-WTF-028 (proposed):** What does the tycoon own or invest in on Day 1? (Logistics contract, bar lease, storage franchise, speculative property, or something else?) *(Asked by Miri, Tyre)*
### Culture Architecture (Blocking: Mellanie, Miri, Tyre, Araminta, Gestalt)
**Q-WTF-029 (proposed):** Is culture implicit in the starting bookmark/location (tycoon in Krenn System = Krenn culture), explicitly assigned as part of the bookmark definition, or handled differently? *(Asked by Miri, Tyre, Mellanie, Araminta)*
**Q-WTF-029 (proposed):** Is culture implicit in the starting bookmark/location (tycoon in Van Maanen's Star = Van Maanen's Star culture), explicitly assigned as part of the bookmark definition, or handled differently? *(Asked by Miri, Tyre, Mellanie, Araminta)*
**Q-WTF-030 (proposed):** How many distinct cultures exist in the v0.2 generator output — for both NPC generation and visual grammar? *(Asked by Tyre, Araminta, Miri)*
@@ -37,7 +37,7 @@
**Jeroen:** "Job modifies culture. A character is their component experience. A job is an adder to this."
**Decision:** Culture-driven voice, job modifies. INVERTED from Mellanie's option C. The character IS their background. Job adds a layer. Voice cards are authored at the culture level with job-specific modifiers. A Krenn tycoon sounds like a Krenn person who runs businesses, not a generic tycoon.
**Decision:** Culture-driven voice, job modifies. INVERTED from Mellanie's option C. The character IS their background. Job adds a layer. Voice cards are authored at the culture level with job-specific modifiers. A Van Maanen's Star tycoon sounds like a Van Maanen's Star person who runs businesses, not a generic tycoon.
---
@@ -26,7 +26,7 @@ The interview supplement changes the architecture of my domain and I don't know
The current voice cards (smuggler, detective) are **job-voices**. The CK3 model says character creation — skills, culture — is *more fundamental* than job. The job determines the toolbox (which inserts activate, which contacts exist, what information is available). It doesn't determine the personality.
So: a Krenn-background social manipulator and a military-background enforcer both take the law enforcement job. Same toolbox. Different people. Do they share a voice card?
So: a Van Maanen's Star-background social manipulator and a military-background enforcer both take the law enforcement job. Same toolbox. Different people. Do they share a voice card?
If voice comes from character creation, the career voice card I've been building is the wrong level of abstraction. I'm writing voices for jobs when I should be writing voices for people. That's either a combinatorial explosion (culture × skill × career = how many voices?) or it means voice cards need to parametrize register rather than authoring full distinct pools.
@@ -51,7 +51,7 @@ The interview supplement's CK3 reframe is exciting and changes the content archi
In the current moral arc spec, the smuggler's Phase 1 voice is a single register: pragmatic rationalization, operational confidence, warmth toward Kael. It assumes one type of person doing the smuggling.
But CK3 character creation gives two players the same "smuggler bookmark" while producing meaningfully different characters — different backgrounds, cultures, family histories, skill distributions. A player who came up through Burnelli freight logistics might rationalize Phase 1 as "this is just how logistics works, every freight network has gray zones." A player from a working-class Krenn background might frame it as "the Commission taxes everything that moves and calls it law — we just don't file."
But CK3 character creation gives two players the same "smuggler bookmark" while producing meaningfully different characters — different backgrounds, cultures, family histories, skill distributions. A player who came up through Burnelli freight logistics might rationalize Phase 1 as "this is just how logistics works, every freight network has gray zones." A player from a working-class Van Maanen's Star background might frame it as "the Commission taxes everything that moves and calls it law — we just don't file."
Both are in Phase 1. Both have the same arc. They sound completely different.
@@ -96,7 +96,7 @@ The "mostly C" caveat — some advanced verbs may be gated — is the one area t
### Decision 6 — Voice: culture-driven, job modifies
**The inversion:** This decision inverts the assumed architecture. Culture is the primary voice register; job is the modifier layer. A Krenn tycoon sounds like a Krenn person who runs businesses.
**The inversion:** This decision inverts the assumed architecture. Culture is the primary voice register; job is the modifier layer. A Van Maanen's Star tycoon sounds like a Van Maanen's Star person who runs businesses.
**What this means mechanically:**
+3 -3
View File
@@ -91,9 +91,9 @@ These should not look like the same system. The first post-human verb the player
Strongly endorsed.
Culture is the answer your civilization converged on to "what is intelligence for?" A Krenn person's voice IS a particular answer to that question. Their job expresses it through a specific domain. You are your background before you are your career. The inversion from Mellanie's original proposal (job base, culture modifier) to Jeroen's (culture base, job modifier) corrects a category error: jobs change, background doesn't.
Culture is the answer your civilization converged on to "what is intelligence for?" A Van Maanen's Star person's voice IS a particular answer to that question. Their job expresses it through a specific domain. You are your background before you are your career. The inversion from Mellanie's original proposal (job base, culture modifier) to Jeroen's (culture base, job modifier) corrects a category error: jobs change, background doesn't.
One thematic note for v0.3+ planning: if a character goes Higher, does their cultural voice persist? Does neural modification change who they sound like, or does the culture survive the upgrade? The transhumanist ladder is thematically most powerful if cultural voice is the last thing to change — or the thing that finally changes, signaling that the character has become something other than who they were. The moment the voice stops sounding like a Krenn person who runs businesses is the moment the player knows the transformation is complete.
One thematic note for v0.3+ planning: if a character goes Higher, does their cultural voice persist? Does neural modification change who they sound like, or does the culture survive the upgrade? The transhumanist ladder is thematically most powerful if cultural voice is the last thing to change — or the thing that finally changes, signaling that the character has become something other than who they were. The moment the voice stops sounding like a Van Maanen's Star person who runs businesses is the moment the player knows the transformation is complete.
Flag for later. Don't implement now. But design with it in mind.
@@ -253,7 +253,7 @@ The question is whether limited vocabulary can produce moral particularity. My a
What does the generated NPC have to lose? What do they want? What are they afraid of? What are their limits — the thing they won't do, even if you ask?
A Krenn logistics manager who happens to have the "has dependents" trait is not morally particular. A Krenn logistics manager whose daily behavior shows care for a partner (the insert surfaces their schedule modifications, the monologue notices they always leave on time, they reference "we" in casual conversation), who has a principled refusal about certain cargo types that surfaces if you push, who responds to your third delivery with a small tell that says they're starting to trust you — that person is morally particular.
A Van Maanen's Star logistics manager who happens to have the "has dependents" trait is not morally particular. A Van Maanen's Star logistics manager whose daily behavior shows care for a partner (the insert surfaces their schedule modifications, the monologue notices they always leave on time, they reference "we" in casual conversation), who has a principled refusal about certain cargo types that surfaces if you push, who responds to your third delivery with a small tell that says they're starting to trust you — that person is morally particular.
None of that requires authored names or authored arcs. All of it requires the generator to encode situational specificity alongside cultural register: not just *who this person is* but *what situation they're in* and *what they're trying to do within it*.
@@ -13,7 +13,7 @@
**Jeroen:** "Culture implicit in location."
**Decision 16:** Culture is implicit in the starting location. Tycoon bookmark in Krenn System = Krenn culture. The player does not select culture at creation; it derives from where the bookmark places them. This resolves the culture-everywhere-but-nowhere tension: culture IS in the game from day one, it's just not a character creation slider. The Krenn System provides the cultural context; NPC generation uses regional culture as the primary vector.
**Decision 16:** Culture is implicit in the starting location. Tycoon bookmark in Van Maanen's Star = Van Maanen's Star culture. The player does not select culture at creation; it derives from where the bookmark places them. This resolves the culture-everywhere-but-nowhere tension: culture IS in the game from day one, it's just not a character creation slider. Van Maanen's Star provides the cultural context; NPC generation uses regional culture as the primary vector.
---
@@ -88,7 +88,7 @@ Needs coordination with Gestalt on which verbs will commonly be attempted at low
**This answered my Round 4 Q1 — but only partially, and with a new problem attached.**
Jeroen confirmed: culture is primary, job adds a layer. The character IS their background. Job is what they do with it. A Krenn tycoon sounds like a Krenn person running businesses, not a generic tycoon. This is the right architecture — it produces a richer voice space and explains why two people with the same job might read completely differently.
Jeroen confirmed: culture is primary, job adds a layer. The character IS their background. Job is what they do with it. A Van Maanen's Star tycoon sounds like a Van Maanen's Star person running businesses, not a generic tycoon. This is the right architecture — it produces a richer voice space and explains why two people with the same job might read completely differently.
**The new problem:** Culture is deferred from v0.2 character creation (D2). Skills + bookmark only. So in v0.2, the culture layer doesn't exist.
@@ -120,7 +120,7 @@ This is the right call. The life-sim framing requires it. Rimworld colonists bec
Every line that references a proper noun is dead as production content. "Kael's already at the dock. Good." "She used to just sign. Now she reads every line." These reference authored history that won't exist in the generator model. They're now register demonstrations — examples of the emotional texture and approach — not line templates.
This is a necessary pipeline clarification: audit all existing voice examples and tag them `[register: demonstration]` or `[template: valid]`. Most existing named-NPC lines are the former. They're still useful — "this is how a Krenn smuggler sounds when they have years of history with someone" — but the name is a slot, and the specific behavioral history is a delta the knowledge graph would need to surface.
This is a necessary pipeline clarification: audit all existing voice examples and tag them `[register: demonstration]` or `[template: valid]`. Most existing named-NPC lines are the former. They're still useful — "this is how a Van Maanen's Star smuggler sounds when they have years of history with someone" — but the name is a slot, and the specific behavioral history is a delta the knowledge graph would need to surface.
**The deeper problem: intimacy without history**
@@ -386,7 +386,7 @@ D6 (culture primary) + D2 (culture deferred) = risk of writing "tycoon voice car
### Near-miss 2: Writing named-NPC lines as production content
The existing voice exemplars are register demonstrations, not production templates. Every line referencing Kael, Naia, Maret by name is dead as production content. It's still useful as a register target — this is how the Krenn smuggler sounds when talking about someone they've worked with for years — but the name is a slot, and the specific behavioral reference requires a delta the knowledge graph has to surface.
The existing voice exemplars are register demonstrations, not production templates. Every line referencing Kael, Naia, Maret by name is dead as production content. It's still useful as a register target — this is how the Van Maanen's Star smuggler sounds when talking about someone they've worked with for years — but the name is a slot, and the specific behavioral reference requires a delta the knowledge graph has to surface.
Audit all existing voice examples and tag them `[register: demonstration]` or `[template: valid]`. Most existing named-NPC lines are the former.
+24 -24
View File
@@ -8,11 +8,11 @@
## Preliminary: Lore Check
The interview uses "Krenn tycoon" as a voice example. Confirming this against established records: "Krenn" is our confirmed star system (D-036, D-050), not a species or distinct cultural group. The Krenn System is the mid-Reach G3V system where Station Sova orbits Velen. NPC naming conventions are Krenn System conventions — compact, consonant-heavy, first-name-primary (Kael, Voss, Naia, Pael, etc.). So "Krenn tycoon" = a tycoon from the Krenn System, in the same way you might say "a Londoner." This is consistent with our existing lore.
The interview uses "Van Maanen's Star tycoon" as a voice example. Confirming this against established records: "Van Maanen's Star" is our confirmed star system (D-036, D-050), not a species or distinct cultural group. Van Maanen's Star is the mid-Reach G3V system where Station Sova orbits Velen. NPC naming conventions are Van Maanen's Star conventions — compact, consonant-heavy, first-name-primary (Kael, Voss, Naia, Pael, etc.). So "Van Maanen's Star tycoon" = a tycoon from Van Maanen's Star, in the same way you might say "a Londoner." This is consistent with our existing lore.
What this reveals: "Krenn" as a cultural identity is regional, not ethnic. It's a place that produces a type of person. That's a worldbuilding model I can work with — and it's important, because it means culture in this game is tied to *location* and *history* as much as anything else. A person who grew up on Station Sova speaks and thinks differently from someone who grew up in a core-system transit hub. This is exactly right for the life-sim model.
What this reveals: "Van Maanen's Star" as a cultural identity is regional, not ethnic. It's a place that produces a type of person. That's a worldbuilding model I can work with — and it's important, because it means culture in this game is tied to *location* and *history* as much as anything else. A person who grew up on Station Sova speaks and thinks differently from someone who grew up in a core-system transit hub. This is exactly right for the life-sim model.
However: the Settled Reach has many star systems. If the generator is eventually producing multiple locations, those locations will produce different cultures. For v0.2, the scope question is whether the generator is producing multiple Settled Reach locations or just Sova Transit / the Krenn System at scale. That determines how many cultures I need to design for the first content pass.
However: the Settled Reach has many star systems. If the generator is eventually producing multiple locations, those locations will produce different cultures. For v0.2, the scope question is whether the generator is producing multiple Settled Reach locations or just Sova Transit / Van Maanen's Star at scale. That determines how many cultures I need to design for the first content pass.
---
@@ -47,9 +47,9 @@ Decision 6 says culture is the PRIMARY driver of voice. Decision 7 says the gene
All three downstream decisions depend on culture as a designed game object. Yet culture is deferred from character creation.
This could mean one of three things:
1. **Culture is implicit in bookmark.** The tycoon bookmark in the Krenn System automatically implies Krenn culture. Character creation doesn't need a culture field because location + history determine it. This is elegant and worldbuilding-consistent (culture IS place + history in this model).
1. **Culture is implicit in bookmark.** The tycoon bookmark in Van Maanen's Star automatically implies Van Maanen's Star culture. Character creation doesn't need a culture field because location + history determine it. This is elegant and worldbuilding-consistent (culture IS place + history in this model).
2. **Culture is selected but not called "culture."** Maybe the character creation screen has a "background" or "upbringing" field that produces culture without naming it as such.
3. **Culture is undefined for the player, defined only for NPCs.** The player has no cultural identity; only the generated world does. This would mean the player's voice card doesn't have a culture base — which contradicts "a Krenn tycoon sounds like a Krenn person who runs businesses."
3. **Culture is undefined for the player, defined only for NPCs.** The player has no cultural identity; only the generated world does. This would mean the player's voice card doesn't have a culture base — which contradicts "a Van Maanen's Star tycoon sounds like a Van Maanen's Star person who runs businesses."
I need to know which of these is intended before I can write culture profiles. My preference is option 1 — culture is implicit in starting location — because it keeps the design simple and is worldbuilding-consistent. But I need Jeroen to confirm.
@@ -105,9 +105,9 @@ This is a joint Gestalt + worldbuilding concern. When Gestalt specs the skill sy
**Setting note — CRITICAL WORLDBUILDING DEPENDENCY. This is the most important decision for my domain.**
This is the right model. "A Krenn tycoon sounds like a Krenn person who runs businesses, not a generic tycoon" — yes. The voice should carry place and history first, role second. This is consistent with how real people work: your background shapes your speech far more than your job title.
This is the right model. "A Van Maanen's Star tycoon sounds like a Van Maanen's Star person who runs businesses, not a generic tycoon" — yes. The voice should carry place and history first, role second. This is consistent with how real people work: your background shapes your speech far more than your job title.
But this decision requires culture profiles to exist as authored design documents before Mellanie can write a single voice card. Currently, the only culture profile we have is implicitly Krenn System — the NPC naming conventions in D-036, the atmosphere description, the setting details. That's a thin profile for voice authoring.
But this decision requires culture profiles to exist as authored design documents before Mellanie can write a single voice card. Currently, the only culture profile we have is implicitly Van Maanen's Star — the NPC naming conventions in D-036, the atmosphere description, the setting details. That's a thin profile for voice authoring.
**What a culture profile needs to contain (minimum):**
- How people from this place talk (not just naming conventions — cadence, vocabulary tendencies, what they reference, what they avoid)
@@ -116,9 +116,9 @@ But this decision requires culture profiles to exist as authored design document
- What humor looks like in this culture (dark? Understatement? Optimistic?)
- What class anxiety sounds like from inside this culture
For Krenn System specifically, I have a strong base from D-036 ("quotidian-with-undertow," the sensory vocabulary, the naming conventions, Velen's temperate-maritime character). I can write a full Krenn culture voice profile from this material. But for a generator that produces multiple locations across the Settled Reach, each location needs a culture profile.
For Van Maanen's Star specifically, I have a strong base from D-036 ("quotidian-with-undertow," the sensory vocabulary, the naming conventions, Velen's temperate-maritime character). I can write a full Van Maanen's Star culture voice profile from this material. But for a generator that produces multiple locations across the Settled Reach, each location needs a culture profile.
**Implication for v0.2 scope:** If the generator only produces Krenn System locations in v0.2, I need one culture profile (Krenn). If it produces multiple systems, I need multiple. This is a scope question that determines how much worldbuilding work precedes the content pipeline.
**Implication for v0.2 scope:** If the generator only produces Van Maanen's Star locations in v0.2, I need one culture profile (Van Maanen's Star). If it produces multiple systems, I need multiple. This is a scope question that determines how much worldbuilding work precedes the content pipeline.
---
@@ -134,11 +134,11 @@ The generator-to-NPC pipeline is correct for a life sim. Sims and Rimworld prove
None of this requires authored backstory. It requires the generator to have a good taxonomy of character types, behavioral routines, and emotional state machines.
**What the NPC generator needs from worldbuilding:**
1. **Cultural demographics per zone type.** A logistics hub in the Krenn System has a typical population profile — what cultures/backgrounds are overrepresented? (Velen natives? Migrants from outer-Reach systems? Commission personnel from core worlds?) The generator needs to know what kind of people populate each zone so NPCs feel like they belong to their location.
1. **Cultural demographics per zone type.** A logistics hub in Van Maanen's Star has a typical population profile — what cultures/backgrounds are overrepresented? (Velen natives? Migrants from outer-Reach systems? Commission personnel from core worlds?) The generator needs to know what kind of people populate each zone so NPCs feel like they belong to their location.
2. **Archetype vocabulary within each culture.** Even with generative AI handling dialogue, the NPC's behavioral archetype (dock worker, bar regular, Commission officer) needs to be drawn from a culturally-appropriate set. A Commission officer from the Krenn System has a different typical background and demeanor than one from a core-system posting.
2. **Archetype vocabulary within each culture.** Even with generative AI handling dialogue, the NPC's behavioral archetype (dock worker, bar regular, Commission officer) needs to be drawn from a culturally-appropriate set. A Commission officer from Van Maanen's Star has a different typical background and demeanor than one from a core-system posting.
3. **The "Krenn person" that Jeroen describes isn't just naming conventions.** It's a behavioral type, a way of relating to strangers, a posture toward authority and economic pressure. The generator needs this to produce legible Krenn System NPCs. Without it, all generated NPCs feel like culturally-neutral placeholder humans.
3. **The "Van Maanen's Star person" that Jeroen describes isn't just naming conventions.** It's a behavioral type, a way of relating to strangers, a posture toward authority and economic pressure. The generator needs this to produce legible Van Maanen's Star NPCs. Without it, all generated NPCs feel like culturally-neutral placeholder humans.
**The exciting implication:** If the generator does this well, the world naturally produces cultural texture without hand-authoring. Two NPCs in the logistics hub feel like they're from the same place. A Commission officer who grew up on a core world feels subtly different from one who came up through Velen's transit system. The world has depth without anyone hand-crafting specific characters.
@@ -152,7 +152,7 @@ None of this requires authored backstory. It requires the generator to have a go
The templating pipeline (culture vectors, tone, accents) is the right approach for scale. Limited vocabulary acceptable at first — this is realistic and I'm comfortable with it.
**The IP risk I'm flagging:** Generative AI trained on existing text will have seen every space opera ever written. Left without tight worldbuilding constraints (culture profiles, specific vocabulary restrictions, explicit "this is not X" guardrails), the AI will default to genre conventions. Krenn System NPCs might start talking like they're from Babylon 5 or Mass Effect. The cultures of the Settled Reach will drift toward legible sci-fi tropes unless the culture profiles contain enough specificity to override the AI's default patterns.
**The IP risk I'm flagging:** Generative AI trained on existing text will have seen every space opera ever written. Left without tight worldbuilding constraints (culture profiles, specific vocabulary restrictions, explicit "this is not X" guardrails), the AI will default to genre conventions. Van Maanen's Star NPCs might start talking like they're from Babylon 5 or Mass Effect. The cultures of the Settled Reach will drift toward legible sci-fi tropes unless the culture profiles contain enough specificity to override the AI's default patterns.
**What this means practically:** The culture profiles I write for the templating pipeline need to include:
- What NOT to reference or evoke (no military-imperial syntax, no Star Trek professionalism register, no Mass Effect political correctness)
@@ -192,7 +192,7 @@ This model also prevents the Kenshi problem (world-as-hostile-indifference) from
Full customization is correct — the creation screen is an emotional investment moment, and seeing your character in the world is personal. The worldbuilding dependency: customization options need to feel like they're from the Settled Reach, not from a generic character creator.
**What this means:**
- Clothing options should reflect Krenn System (or broader Settled Reach) fashion — what do working-class Velen natives wear vs Commission personnel vs mid-Reach migrants? These aren't just aesthetic choices; they're worldbuilding expressions.
- Clothing options should reflect Van Maanen's Star (or broader Settled Reach) fashion — what do working-class Velen natives wear vs Commission personnel vs mid-Reach migrants? These aren't just aesthetic choices; they're worldbuilding expressions.
- Wealth affects what's available: a starting tycoon with modest capital has different wardrobe options than someone who starts with inherited wealth.
- Cultural background might shape default suggestions (the customization screen could suggest outfits that "feel right" for someone with the player's starting situation).
@@ -284,7 +284,7 @@ Gestalt's VerbPriorityProfile work needs a worldbuilding input: what does each z
Ozzie's proposed beat sheet is the right structure. My specific contributions to each beat from a worldbuilding perspective:
1. **Character creation**: Cultural context of the starting bookmark (Krenn-dominant for v0.2) should inform what customization options feel "right" without being mandatory
1. **Character creation**: Cultural context of the starting bookmark (Van Maanen's Star-dominant for v0.2) should inform what customization options feel "right" without being mandatory
2. **Alarm clock**: I propose this is the INSERT waking up — a specific digital signature for the insert's daily initialization set to the Groundhog Day tone on Day 1, then silent or ambient thereafter. Diegetically consistent, and makes the insert feel like it's been there the whole time even before the player "activates" it
3. **Appointment arrival**: Zone identity of the commercial district — who populates it, how they hold themselves, what the ambient behavioral vocabulary is for a new person arriving
4. **Insert activation**: Career-specific first-frame data (market state, account position, available opportunities for Tycoon). The insert is the worldbuilding layer that makes this feel like THIS world — it shows you your life in the Settled Reach's specific economic and social vocabulary
@@ -343,7 +343,7 @@ Tyre identified my archetype definitions as the thing everything else fans out f
The zone identity spec must cover:
1. Zone types present in Sova Transit for the Tycoon bookmark: residential (working-class, mid-tier), commercial/service market, administrative/Commission-adjacent, transit/public corridors, logistics/freight
2. NPC archetypes per zone: behavioral tells, cultural alignment, relationship to newcomers, skill-response vocabulary
3. Krenn System culture profile: voice register parameters, behavioral vocabulary, relationship to power structures, AI pipeline constraints
3. Van Maanen's Star culture profile: voice register parameters, behavioral vocabulary, relationship to power structures, AI pipeline constraints
4. Wealth tier vocabulary: 4-5 tiers, visual expression in residential zones, social treatment by NPCs per tier
This is one document. I can write it in one sprint. But I need Jeroen's answers to the culture scope question (Question 1 below) and the tycoon economic context question (Question 2 below) before the economic and cultural sections can be completed.
@@ -362,7 +362,7 @@ Araminta also flagged the near-miss risk of designing archetypes for the detecti
Mellanie raises the voice attribution problem directly: culture-driven voice (Decision 6) requires culture definitions before voice cards can be written. I am the blocker on her work.
The culture profiles I write for the zone identity spec are also the input to Mellanie's voice card architecture. They need to be in the same sprint, or the voice card work can't begin. Mellanie's sequence: confirm voice attribution model → confirm career bookmark → write voice cards → Phase Zero content. My culture profiles are the "confirm voice attribution model" input for the Krenn culture case. I need to write them before Mellanie can write anything.
The culture profiles I write for the zone identity spec are also the input to Mellanie's voice card architecture. They need to be in the same sprint, or the voice card work can't begin. Mellanie's sequence: confirm voice attribution model → confirm career bookmark → write voice cards → Phase Zero content. My culture profiles are the "confirm voice attribution model" input for the Van Maanen's Star culture case. I need to write them before Mellanie can write anything.
Mellanie also identifies Phase 1 life-texture monologue as distinct from Phase 2 consequence monologue. The Phase 1 content (the kind of ambient setting-comment lines that make the world feel inhabited before any authored drama) requires the zone identity spec as its source material. "The recycled air still costs more on the dock floor" — that line is possible because Sova Transit has a specific air recycling economy that I've established. Mellanie can't write those lines for the Tycoon bookmark's commercial district without knowing what the commercial district's specific economic texture is.
@@ -387,11 +387,11 @@ I will write this. But I need answers to two questions before I can complete it
Culture is deferred from character creation but is immediately required by three other systems. The "culture is deferred" decision cannot mean "culture is undefined."
**Minimum for v0.2:** One culture profile (Krenn System / Station Sova / Velen) with:
**Minimum for v0.2:** One culture profile (Van Maanen's Star / Station Sova / Velen) with:
- Regional background and what it produces in people
- Speech patterns and vocabulary tendencies
- Values hierarchy and relationship to Settled Reach power structures
- Behavioral archetypes within this culture (the dock worker archetype looks different in the Krenn System than in a core-system station)
- Behavioral archetypes within this culture (the dock worker archetype looks different in Van Maanen's Star than in a core-system station)
- AI pipeline constraints (what NOT to do, positive exemplars)
If the generator produces multiple cultures in v0.2, I need a profile for each. See Question 1 below.
@@ -401,7 +401,7 @@ If the generator produces multiple cultures in v0.2, I need a profile for each.
Auto-generated apartments reflecting wealth require:
- 4-5 wealth tiers defined as visual vocabularies
- Zone location correlated with wealth tier (which zones have which wealth tier apartments)
- Cultural aesthetic modifiers (how does Krenn System culture modify each wealth tier's visual expression)
- Cultural aesthetic modifiers (how does Van Maanen's Star culture modify each wealth tier's visual expression)
This is parallel work with Araminta. I write the content; she translates to tiles and palette.
@@ -413,11 +413,11 @@ This is parallel work with Araminta. I write the content; she translates to tile
Decision 6 says culture drives voice. Decision 2 defers family/culture from character creation. These are in tension unless there's a resolution I'm missing.
My hypothesis: culture is implicit in the starting bookmark. The tycoon bookmark starting in the Krenn System means your character is culturally Krenn — shaped by Velen's temperate-maritime climate, Station Sova's working-class logistics culture, the mid-Reach's neither-core-nor-frontier character. You don't select "Krenn" from a menu; you select "Sova Transit — Tycoon" and the system derives your cultural context from that.
My hypothesis: culture is implicit in the starting bookmark. The tycoon bookmark starting in Van Maanen's Star means your character is culturally Van Maanen's Star — shaped by Velen's temperate-maritime climate, Station Sova's working-class logistics culture, the mid-Reach's neither-core-nor-frontier character. You don't select "Van Maanen's Star" from a menu; you select "Sova Transit — Tycoon" and the system derives your cultural context from that.
Is this correct? And if so, does v0.2 need the generator to produce only Krenn System locations (making one culture profile sufficient), or will it generate multiple star systems with different cultures from the start?
Is this correct? And if so, does v0.2 need the generator to produce only Van Maanen's Star locations (making one culture profile sufficient), or will it generate multiple star systems with different cultures from the start?
**Why this matters:** Culture profiles are the input to the voice system, NPC generator, and AI pipeline. If v0.2 is Krenn-only, I write one culture profile and we have what we need. If it generates multiple cultures, I need to know how many and what they are before the content pipeline can operate.
**Why this matters:** Culture profiles are the input to the voice system, NPC generator, and AI pipeline. If v0.2 is Van Maanen's Star-only, I write one culture profile and we have what we need. If it generates multiple cultures, I need to know how many and what they are before the content pipeline can operate.
---
@@ -457,7 +457,7 @@ My current differentiating factors:
- Commission as bureaucratic-institutional regulatory presence (not just "factions" — actual paperwork, licensing, audits, the friction of legitimacy)
- The insert as the neurally integrated economic interface (not a screen, not a console — a part of your body that accesses markets)
- Economic activity grounded in wormhole-connected freight infrastructure (cargo is physically real before it's an abstracted commodity)
- Krenn System cultural specificity (this is not generic space trading; it's trading in a particular working-class regional culture)
- Van Maanen's Star cultural specificity (this is not generic space trading; it's trading in a particular working-class regional culture)
- The span gate as visible class marker that the tycoon can see but not freely use
Are there elements of the Tycoon bookmark that risk drifting toward a specific franchise or genre trope? I want to know if there are near-miss risks Jeroen can see that I can't, so I can address them in the zone identity spec and Tycoon FRIEND archetype design before they're baked into the content pipeline.
@@ -56,7 +56,7 @@ Skills + tycoon bookmark gives two variation axes within a single career:
That's the v0.2 replayability space. It's not nothing. But the culture layer is where within-career variety becomes dramatic rather than tactical.
A Krenn tycoon and a Burnelli tycoon operating in the same world seed should have meaningfully different experiences — their cultural networks differ, their social register differs, their economic relationships differ. That's the kind of within-career variety that makes replays feel like different people in the same world, not the same person with different stat points.
A Van Maanen's Star tycoon and a Burnelli tycoon operating in the same world seed should have meaningfully different experiences — their cultural networks differ, their social register differs, their economic relationships differ. That's the kind of within-career variety that makes replays feel like different people in the same world, not the same person with different stat points.
Paula observed this too from the narrative angle: culture affects Phase Zero voice register, which means moral arc content changes by cultural background. Mellanie will need culture as a tag dimension in the copy pool before within-career voice replayability is real.
@@ -120,13 +120,13 @@ The verb gating question Gestalt raised is worth noting here: Decision 5 says "s
**Verdict: The right long-term architecture. v0.2 will be monophonic until culture ships.**
Culture-primary, job-modifier is the correct design. A Krenn tycoon should sound like a Krenn person who runs businesses — not a generic tycoon with cultural flavor sprinkled on. The character's identity is their background; the job is what they're doing with it.
Culture-primary, job-modifier is the correct design. A Van Maanen's Star tycoon should sound like a Van Maanen's Star person who runs businesses — not a generic tycoon with cultural flavor sprinkled on. The character's identity is their background; the job is what they're doing with it.
For replayability, this means two tycoon runs with different cultural backgrounds will eventually feel like completely different people inhabiting the same economic game. The voice variation is a relationship-building tool — if the player forms attachment to their character's voice register, they'll want to try a different voice in the next run.
For v0.2 with culture deferred, all tycoons will have the same cultural voice baseline modified by the tycoon job layer. Every tycoon will sound roughly like "a tycoon." That's acceptable for proof-of-life but should be noted: voice replayability is waiting for the culture layer.
One connection nobody else made: culture-driven voice creates the strongest version of the comparison test. "I played my Krenn tycoon and everything felt like a negotiation — even warmth was strategic." "I played my Burnelli tycoon and it felt like building a family, money was a byproduct of relationships." Same mechanics. Completely different interior experience of the same world. That's what culture-primary voice enables at the narrative level.
One connection nobody else made: culture-driven voice creates the strongest version of the comparison test. "I played my Van Maanen's Star tycoon and everything felt like a negotiation — even warmth was strategic." "I played my Burnelli tycoon and it felt like building a family, money was a byproduct of relationships." Same mechanics. Completely different interior experience of the same world. That's what culture-primary voice enables at the narrative level.
---
@@ -139,7 +139,7 @@ When Jeroen said "Kael should not exist," he liberated the game from a specific
The replayability architecture this enables:
- Run 1's mentor-figure is a cautious Dorvani accountant who's been quietly skimming
- Run 2's mentor-figure is an aggressive Krenn trader who's over-leveraged and needs a partner
- Run 2's mentor-figure is an aggressive Van Maanen's Star trader who's over-leveraged and needs a partner
- Run 3's mentor-figure is a warm Hadaran logistics specialist with a sick child and escalating financial pressure
Same narrative template. Completely different people. The comparison test passes easily: two players with the same tycoon career describe their mentor-figure and they're completely different characters who produced completely different emotional stakes. No metagaming is possible because "who becomes important" is determined by the player's choices, not the designer's placement.
@@ -168,7 +168,7 @@ Mellanie's point about limited vocabulary being acceptable at first is right for
AI-assisted templating for the NPC copy pool is the right approach for the scale required. Hand-authored dialogue for every generated NPC is impossible. Culture vectors + tone + accent prompts → generative AI output → variety at scale.
The replayability dividend: if the templating works, every NPC in every run sounds distinctly themselves rather than interchangeable. Two generated business rivals speak differently because their culture and personality vectors are different. That's what makes comparing playthroughs interesting — not just "I had a rival" but "I had a rival who spoke in clipped Krenn sentences and always implied things rather than stating them."
The replayability dividend: if the templating works, every NPC in every run sounds distinctly themselves rather than interchangeable. Two generated business rivals speak differently because their culture and personality vectors are different. That's what makes comparing playthroughs interesting — not just "I had a rival" but "I had a rival who spoke in clipped Van Maanen's Star sentences and always implied things rather than stating them."
The risk: if the AI outputs are generic despite the vectors, every NPC sounds like a slight variation on "friendly NPC voice" and "hostile NPC voice." The quality floor of the templating pipeline determines whether generated NPCs produce attachment or not.
@@ -115,7 +115,7 @@ No gated verbs means no anxiety about missed options. The player always knows wh
**Gut reaction:** CORRECT. The inversion matters enormously for player experience.
A Krenn tycoon sounds like a Krenn person who runs businesses. Not a generic tycoon who happens to have some cultural flavor. The character IS their background. The job adds a layer. This produces internal monologue that sounds like a PERSON, not a career archetype.
A Van Maanen's Star tycoon sounds like a Van Maanen's Star person who runs businesses. Not a generic tycoon who happens to have some cultural flavor. The character IS their background. The job adds a layer. This produces internal monologue that sounds like a PERSON, not a career archetype.
**The wow moment this enables:** The first time the internal voice fires in a way that feels SPECIFIC — not "I should handle this negotiation carefully" (any tycoon says that) but something that reflects both culture and job in a voice that's distinctly this person's — that's when the character becomes real. The monologue is doing character work, not information work. That's Mellanie's "voice that voices" distinction landing in practice.
@@ -173,7 +173,7 @@ If the player has no specified culture (deferred), whose voice is speaking in th
The options as I see them:
**Option A — Default culture for v0.2:** Every v0.2 character is implicitly a member of a single default culture (probably the most-developed Settled Reach culture — Commonwealth middle class, or Krenn working class). Voice cards are written for that one culture with tycoon job modifier. Cultural diversity is deferred to v0.3+ when culture selection enters character creation.
**Option A — Default culture for v0.2:** Every v0.2 character is implicitly a member of a single default culture (probably the most-developed Settled Reach culture — Commonwealth middle class, or Van Maanen's Star working class). Voice cards are written for that one culture with tycoon job modifier. Cultural diversity is deferred to v0.3+ when culture selection enters character creation.
**Option B — Job-only voice for v0.2:** For v0.2, voice is primarily job-derived (tycoon voice = tycoon voice) with cultural differentiation deferred. This inverts the stated direction but is pragmatically necessary if culture isn't in character creation.
@@ -365,7 +365,7 @@ Decision 6 says culture is primary for voice. Decision 2 defers culture from cha
The options, in my preference order:
1. **Starting location implies culture** — the generator places the player's apartment in a district, and that district has a cultural register. Tycoon starting in a Krenn commercial district = Krenn merchant-class voice. No new creation step required; the generator already knows where the apartment is.
1. **Starting location implies culture** — the generator places the player's apartment in a district, and that district has a cultural register. Tycoon starting in a Van Maanen's Star commercial district = Van Maanen's Star merchant-class voice. No new creation step required; the generator already knows where the apartment is.
2. **Single default culture for v0.2** — one implicit Commonwealth middle-class register for all v0.2 characters. Cultural diversity comes in v0.3+ when creation expands.
3. **Lightweight culture selector in v0.2 creation** — add "where are you from?" as a simple dropdown to character creation, not the full family/history system. This gives the voice an anchor without requiring the full CK3 culture architecture.
+5 -5
View File
@@ -138,7 +138,7 @@ Runtime (Decision 9, deferred):
For v0.2, we're building Decision 8 (build-time templating), not Decision 9 (runtime LLM). The build-time pipeline is:
1. Define culture vectors (Krenn, Burnelli, etc.) with tone, vocabulary, speech pattern parameters
1. Define culture vectors (Van Maanen's Star, Burnelli, etc.) with tone, vocabulary, speech pattern parameters
2. Define role templates (bartender, dock worker, merchant, etc.) with role-specific knowledge and concerns
3. Use AI to generate large line pools tagged by culture x role x situation x emotion
4. Human review pass to curate quality and consistency
@@ -265,7 +265,7 @@ The VerbPriorityProfile still matters -- career-aware ordering of which verbs ap
**Mellanie's critical question, answered.**
The character IS their background. Job adds a layer. A Krenn tycoon sounds like a Krenn person who runs businesses.
The character IS their background. Job adds a layer. A Van Maanen's Star tycoon sounds like a Van Maanen's Star person who runs businesses.
**What this means for the content architecture:**
@@ -279,7 +279,7 @@ detective_voice_card.yaml (job-level)
We get:
```
krenn_voice.yaml (culture-level base)
van_maanens_star_voice.yaml (culture-level base)
+ tycoon_modifier.yaml (job-level overlay)
burnelli_voice.yaml (culture-level base)
+ tycoon_modifier.yaml (job-level overlay)
@@ -317,7 +317,7 @@ Base sprite (body type/silhouette)
This is primarily a CLIENT system (Godot sprite composition) but the SERVER needs to store and transmit appearance data. The `Appearance` struct in the player character needs to be part of the ObserverSnapshot so that other players (future multiplayer) and the rendering system can reconstruct the character's look.
For generated NPCs, the generator needs to produce appearance data consistent with their culture and role. A Krenn dock worker looks different from a Burnelli merchant. The appearance generation is another dimension of the NPC generation pipeline.
For generated NPCs, the generator needs to produce appearance data consistent with their culture and role. A Van Maanen's Star dock worker looks different from a Burnelli merchant. The appearance generation is another dimension of the NPC generation pipeline.
**Effort:** Character appearance system (client-side sprite composition + server-side data model): 2-3 sprints. NPC appearance generation (culture + role -> appearance parameters): integrated with NPC generation pipeline, adds ~1 sprint to that work.
@@ -503,7 +503,7 @@ Decision 2 says skills + bookmark only. Decision 6 says voice is culture-driven.
Options:
- **(a) Default culture:** All v0.2 player characters share a generic culture. Voice cards use a baseline register. Culture variation exists only in NPCs.
- **(b) Bookmark-derived:** The tycoon bookmark implies a culture based on its starting location. "You're a tycoon in Sova Transit" gives you Sova Transit's dominant culture.
- **(c) Culture IS part of the bookmark:** The bookmark definition includes a culture assignment. Multiple tycoon bookmark variants (Krenn tycoon, Burnelli tycoon) would each be a separate bookmark with a different culture.
- **(c) Culture IS part of the bookmark:** The bookmark definition includes a culture assignment. Multiple tycoon bookmark variants (Van Maanen's Star tycoon, Burnelli tycoon) would each be a separate bookmark with a different culture.
Option (a) is simplest but contradicts Decision 6's spirit. Option (b) is natural but ties culture to location. Option (c) is most faithful to Decision 6 but expands the bookmark system.
@@ -11,7 +11,7 @@
The v0.1 playtest revealed a fundamental framing error: The Settled Reach was built as a detective puzzle game, but the designer's vision is a single-character life sim (Sims meets Rimworld from a third-person perspective). NPCs were dots, the world was a game level with no sense of place, and no emotional loop could fire because the preconditions for recognizing characters as people didn't exist.
The workshop produced 24 locked design decisions across two interview sessions, establishing the v0.2 direction: a generator-first proof-of-life that auto-generates locations at scale with legible characters, starting with a tycoon (small business owner) bookmark in the Krenn System.
The workshop produced 24 locked design decisions across two interview sessions, establishing the v0.2 direction: a generator-first proof-of-life that auto-generates locations at scale with legible characters, starting with a tycoon (small business owner) bookmark in Van Maanen's Star.
---
@@ -41,7 +41,7 @@ The workshop produced 24 locked design decisions across two interview sessions,
| # | Decision | Resolves |
|---|----------|----------|
| 16 | Culture implicit in starting location (Krenn System = Krenn culture) | Culture architecture gap |
| 16 | Culture implicit in starting location (Van Maanen's Star = Van Maanen's Star culture) | Culture architecture gap |
| 17 | Traits + behavior first; relationships Sims + Rimworld style; codify for systems | NPC personality |
| 18 | Fully emergent moral arc for v0.2; generator proves relationships readable first | Tycoon arc |
| 19 | Broad economic verb vocabulary (life verbs, not tycoon-specific) | Verb map |
@@ -57,7 +57,7 @@ The workshop produced 24 locked design decisions across two interview sessions,
**Core identity:** Single-character life sim with emergent narrative. Sims meets Rimworld from a third-person perspective. Detective, smuggler, tycoon are jobs you can have, not the game's identity.
**Starting experience:** CK3-style bookmark selection (skills + bookmark). Tycoon bookmark for v0.2: you're an existing small business owner in the Krenn System. Wake up in your auto-generated apartment (reflects economic position). Groundhog Day alarm clock homage. Insert activates. Go to work. The world provides opportunity and consequence; the player provides the story.
**Starting experience:** CK3-style bookmark selection (skills + bookmark). Tycoon bookmark for v0.2: you're an existing small business owner in Van Maanen's Star. Wake up in your auto-generated apartment (reflects economic position). Groundhog Day alarm clock homage. Insert activates. Go to work. The world provides opportunity and consequence; the player provides the story.
**Generator-first approach:** The proof-of-life is the generator producing usable output: auto-generated locations at scale with legible characters. Template assembly (not procedural geography) for v0.2. Sprint 25 generator spike is the critical path.
@@ -107,7 +107,7 @@ All 9 agents independently identified that generated NPCs must have sufficient p
Unanimous: "The engine is a life-sim engine that was accidentally shipped with a detective-game UI." The simulation, knowledge graph, perception, and verb systems survive. The fix is building the information layer the simulation was always meant to feed.
### 3. Culture Architecture Resolved
7 of 9 agents flagged the tension between "culture deferred from creation" and "culture primary for voice." Resolved by Decision 16: culture is implicit in starting location. Krenn System provides the cultural context. Five downstream pipelines unblocked.
7 of 9 agents flagged the tension between "culture deferred from creation" and "culture primary for voice." Resolved by Decision 16: culture is implicit in starting location. Van Maanen's Star provides the cultural context. Five downstream pipelines unblocked.
### 4. Tycoon is Richer Than Expected
Multiple agents independently discovered the tycoon bookmark is thematically and mechanically richer than detective: economic complicity is more realistic (Gore), Sova Transit's atmosphere was built for tycoon (Miri), tycoon blends all three career models naturally (Tyre), tycoon insert is setting delivery at its most diegetic (Mellanie).
@@ -124,7 +124,7 @@ The generator proof-of-life is the first deliverable. If the generator can't pro
**Generator prerequisites (must exist before/during the spike):**
- Zone identity spec (Miri) — what zone types mean in the Settled Reach's social vocabulary
- One culture profile: Krenn System / Station Sova (Miri) — blocks voice, NPC gen, AI pipeline
- One culture profile: Van Maanen's Star / Station Sova (Miri) — blocks voice, NPC gen, AI pipeline
- NpcBlueprint struct design (Tyre) — generator output format
**Estimated timeline (Tyre):** 7 sprints to proof-of-life playtest (generated location + legible characters + tycoon bookmark from creation to Day 3).
@@ -132,7 +132,7 @@ The generator proof-of-life is the first deliverable. If the generator can't pro
### Dependency Chain
```
Miri: Zone Identity Spec + Krenn Culture Profile
Miri: Zone Identity Spec + Van Maanen's Star Culture Profile
|-- Araminta: zone visual grammar, tile palettes
|-- Tyre: generator zone template parameters, NpcBlueprint
|-- Mellanie: culture-primary voice cards
+3 -3
View File
@@ -76,7 +76,7 @@ The game targets 300 populated worlds before any DLC content. This requires a ge
**Missing from initial proposals, added by lead: Economics.** What makes extra income tempting. This determines the nature of the contested resource — whether the smuggling is sympathetic (healthcare for people who cannot afford it) or predatory (luxury goods for status). The economic pressure ingredient determines the moral texture of the entire grey economy.
**The derivation function:** The generator takes ingredient selections and derives mechanical parameters deterministically. Same ingredients always produce the same society. Randomization happens at ingredient SELECTION, not at derivation. Style briefs (Miri's Krenn brief) are reference implementations — proof that the derivation function produces quality output for specific ingredient sets.
**The derivation function:** The generator takes ingredient selections and derives mechanical parameters deterministically. Same ingredients always produce the same society. Randomization happens at ingredient SELECTION, not at derivation. Style briefs (Miri's Van Maanen's Star brief) are reference implementations — proof that the derivation function produces quality output for specific ingredient sets.
### Cultural Brief = Generation Seed
@@ -84,7 +84,7 @@ The game targets 300 populated worlds before any DLC content. This requires a ge
**World seed = numeric seed (pool draws) + cultural assembly (content generation).** Same cultural assembly + different numeric seed = same culture, different drama. Different cultural assembly + same numeric seed = parallel structure, different culture.
Miri's Krenn brief is a proof-of-concept output; the ingredient menu is the real product. The generator must reproduce the Krenn brief's feel when given Krenn's ingredient combination. Validation: if the generator's output for `frost:0.55 + salt:0.30 + iron:0.15 / economic-trade / logistics / tight-margin+prohibition` matches the hand-authored Krenn culture, the derivation function works.
Miri's Van Maanen's Star brief is a proof-of-concept output; the ingredient menu is the real product. The generator must reproduce the Van Maanen's Star brief's feel when given Van Maanen's Star's ingredient combination. Validation: if the generator's output for `frost:0.55 + salt:0.30 + iron:0.15 / economic-trade / logistics / tight-margin+prohibition` matches the hand-authored Van Maanen's Star culture, the derivation function works.
### Three-System NPC Architecture
@@ -148,7 +148,7 @@ Tier 1 emotional depth, NO contradiction arc, no secret. The honest person in a
Gore proposed THE MIRROR as a formal pattern; Paula converged independently, describing it as "Tier 1.5 Production Emotional NPC" with 50-70 authored lines. Both agree: the MIRROR must NOT have a contradiction arc or secret. The MIRROR's power is simplicity and transparency. When events drag the MIRROR into the conspiracy, the damage is devastating — the player broke the one genuinely innocent person.
The Kael/Hael sonic collision (tension T-03 from Round 1) was resolved by renaming Hael to Naia Tamm, following Krenn naming conventions from Miri's regional brief. Unanimous support.
The Kael/Hael sonic collision (tension T-03 from Round 1) was resolved by renaming Hael to Naia Tamm, following Van Maanen's Star naming conventions from Miri's regional brief. Unanimous support.
### 8 PC Archetypes (Fluid)
+1 -1
View File
@@ -27,7 +27,7 @@ Cultural groups are assembled by picking and combining from a menu of ingredient
- People migrate between heritages. Drift varies per location.
- Economics is missing from Nigel's 7 mechanical questions — must be added (what makes extra income tempting).
**On heritage specificity:** The specific real-world roots (Finnish/Estonian/Latvian for Krenn) are Miri's reference material for building the culture, not something the player should clock directly. A character with a Nordic-sounding name in an East Asian-heritage district isn't wrong — they're a person with a history. The culture is the place, not the individual.
**On heritage specificity:** The specific real-world roots (Finnish/Estonian/Latvian for Van Maanen's Star) are Miri's reference material for building the culture, not something the player should clock directly. A character with a Nordic-sounding name in an East Asian-heritage district isn't wrong — they're a person with a history. The culture is the place, not the individual.
---
+2 -2
View File
@@ -213,7 +213,7 @@ This is the tricky bucket. These things have a global identity but local presenc
| Contraband types | Definition, legality, market dynamics | What's actually flowing through THIS district, volume, routes | Lattice components defined globally; Sova's ring is local |
| FactId confidence states | Definition of confidence levels | Starting knowledge per NPC per district | `contraband.ring_exists` is a global FactId; the smuggler starts at KnowsDetails in Sova |
| Relationship templates | State machine, transition rules | Actual NPC-to-NPC and NPC-to-PC relationships | RelationshipState::Friendly is global; Kael-to-smuggler is local |
| Regional cultural flavor | Naming pattern template | Specific names, aesthetic markers, language echoes | "Compact, consonant-heavy" is Krenn System's cultural profile |
| Regional cultural flavor | Naming pattern template | Specific names, aesthetic markers, language echoes | "Compact, consonant-heavy" is Van Maanen's Star's cultural profile |
### Proposed Content Directory Structure
@@ -245,7 +245,7 @@ content/
medical-grade.yaml
severance-equipment.yaml
regions/
krenn-system.yaml # regional style guide (naming, culture)
van-maanens-star-system.yaml # regional style guide (naming, culture)
districts/
sova-transit/
+8 -8
View File
@@ -84,11 +84,11 @@ The workshop asks: "Should the player notice heritage, or is it ambient?"
Neither. Cultural identity in this game is **the immune system of the community**, and the detective is the foreign body.
### What Krenn System culture actually is
### What Van Maanen's Star culture actually is
The wiki describes Krenn System culture as "compact names, first-name-primary, pragmatic, mind-your-business ethos." That's fine as a naming guide. It's radically incomplete as a cultural description, because it doesn't say what the culture *does*.
The wiki describes Van Maanen's Star culture as "compact names, first-name-primary, pragmatic, mind-your-business ethos." That's fine as a naming guide. It's radically incomplete as a cultural description, because it doesn't say what the culture *does*.
What Krenn System culture does is **protect the ring**.
What Van Maanen's Star culture does is **protect the ring**.
Not intentionally. Not conspiratorially. But structurally:
- **Mind-your-business ethos** = nobody reports Torek's spending, nobody asks where Kael goes at night, nobody questions Voss's schedule changes. The cultural norm IS the ring's security model.
@@ -114,7 +114,7 @@ Cultural identity should manifest as the **difficulty gradient the detective fac
Heritage should be like gravity. You don't notice it. You notice when it's absent.
The player should never think "oh, this is a Krenn System cultural value." They should think "why won't anyone talk to me?" (detective) or "I'd never bring that up at Lera's" (smuggler). The culture is the water they swim in. It becomes visible only when someone (the detective, Olin the outsider) doesn't understand the rules.
The player should never think "oh, this is a Van Maanen's Star cultural value." They should think "why won't anyone talk to me?" (detective) or "I'd never bring that up at Lera's" (smuggler). The culture is the water they swim in. It becomes visible only when someone (the detective, Olin the outsider) doesn't understand the rules.
Miri will have more to say about the specific cultural clusters, heritage drift over 180 years, naming conventions. That's important work. My contribution is this: **whatever the cultural details are, they must serve the game's mechanical and thematic needs**. The mind-your-business ethos isn't decoration. It's the reason the ring survives. It's the reason the detective's job is hard. It's the reason Maret is silent and Lera is blind and Hael is confused. Culture IS the gameplay.
@@ -122,10 +122,10 @@ Miri will have more to say about the specific cultural clusters, heritage drift
Beyond naming and aesthetics, each regional style guide should include:
1. **Default social norm toward authority**: How do locals treat institutional representatives? (Krenn System: polite distance, cooperation without volunteering, first-name-basis to deformalize authority)
2. **Privacy expectations**: What's considered "your business" vs. community knowledge? (Krenn System: income source is private, spending is visible but uncommented upon, relationships are acknowledged but not interrogated)
3. **Loyalty structure**: Family first? Community first? Institution first? (Krenn System: family > workplace bonds > district solidarity > institutional allegiance)
4. **The thing nobody discusses**: Every community has a shared silence. (Krenn System: everyone knows the grey economy exists. Nobody names it.)
1. **Default social norm toward authority**: How do locals treat institutional representatives? (Van Maanen's Star: polite distance, cooperation without volunteering, first-name-basis to deformalize authority)
2. **Privacy expectations**: What's considered "your business" vs. community knowledge? (Van Maanen's Star: income source is private, spending is visible but uncommented upon, relationships are acknowledged but not interrogated)
3. **Loyalty structure**: Family first? Community first? Institution first? (Van Maanen's Star: family > workplace bonds > district solidarity > institutional allegiance)
4. **The thing nobody discusses**: Every community has a shared silence. (Van Maanen's Star: everyone knows the grey economy exists. Nobody names it.)
These aren't flavor entries. They're **mechanical parameters for dialogue selection**. When the detective asks Lera about Torek's spending, Lera's deflection isn't personality — it's culture. A regional style guide that doesn't capture this is incomplete.
+12 -12
View File
@@ -61,35 +61,35 @@ Environmental text is everything the player reads that isn't dialogue or monolog
**Things that change per region:**
1. **Language register of official signage.** Krenn System is pragmatic, first-name-primary, blunt. Official signs should reflect this: "Bay 3 - Outbound Freight" not "Outbound Freight Processing Bay 3, Section C." Short. Functional. No institutional padding. A system settled by a different cultural cluster might have more formal signage, honorific address, or multilingual notices.
1. **Language register of official signage.** Van Maanen's Star is pragmatic, first-name-primary, blunt. Official signs should reflect this: "Bay 3 - Outbound Freight" not "Outbound Freight Processing Bay 3, Section C." Short. Functional. No institutional padding. A system settled by a different cultural cluster might have more formal signage, honorific address, or multilingual notices.
2. **Bar menu items and pricing.** "Grain spirit" is Krenn culture. "Ale" is generic. What's the local specialty? What are the food items? Menu text reveals economic class (prices), cultural heritage (dish names), and station infrastructure (what can you grow/import?). Lera's menu should feel Krenn — compact, no-frills, a handful of options that regulars know by heart. A bar on a different station might have fifteen options with descriptions.
2. **Bar menu items and pricing.** "Grain spirit" is Van Maanen's Star culture. "Ale" is generic. What's the local specialty? What are the food items? Menu text reveals economic class (prices), cultural heritage (dish names), and station infrastructure (what can you grow/import?). Lera's menu should feel Van Maanen's Star — compact, no-frills, a handful of options that regulars know by heart. A bar on a different station might have fifteen options with descriptions.
3. **Graffiti and informal markings.** This is where culture bleeds through most. Krenn graffiti would be terse, practical, maybe operational — dock workers leaving notes for each other, complaints about shift schedules, inside jokes that require context. On a station with strong political movements, graffiti might be slogans. On a station with religious heritage, you might see blessings or warnings.
3. **Graffiti and informal markings.** This is where culture bleeds through most. Van Maanen's Star graffiti would be terse, practical, maybe operational — dock workers leaving notes for each other, complaints about shift schedules, inside jokes that require context. On a station with strong political movements, graffiti might be slogans. On a station with religious heritage, you might see blessings or warnings.
4. **Terminal screen content.** Commission kiosk displays, freight manifests, public information terminals. The *information architecture* reflects the culture that built the station. Krenn systems are functional — no branding, minimal graphics, data-dense. A Syndic-influenced system might have corporate branding everywhere. An Unbound-sympathetic station might have privacy warnings on every lattice-connected terminal.
4. **Terminal screen content.** Commission kiosk displays, freight manifests, public information terminals. The *information architecture* reflects the culture that built the station. Van Maanen's Stars are functional — no branding, minimal graphics, data-dense. A Syndic-influenced system might have corporate branding everywhere. An Unbound-sympathetic station might have privacy warnings on every lattice-connected terminal.
5. **Safety notices and legal text.** "Unauthorized lattice modification: Category 3 violation" is institutional Commission language. But how a station *posts* that notice reveals its relationship with the Commission. Krenn: small, regulatory-standard, nobody reads it. A compliant Core system: prominent, well-maintained, multiple languages. A fringe settlement: defaced, covered over, or missing entirely.
5. **Safety notices and legal text.** "Unauthorized lattice modification: Category 3 violation" is institutional Commission language. But how a station *posts* that notice reveals its relationship with the Commission. Van Maanen's Star: small, regulatory-standard, nobody reads it. A compliant Core system: prominent, well-maintained, multiple languages. A fringe settlement: defaced, covered over, or missing entirely.
6. **News ticker / Meridian feed.** Headlines reflect both the Reach-wide news cycle AND local editorial voice. Krenn System ticker should feel like a working-class local paper — freight prices, shift schedule changes, sports results, a distant political story filtered through "how does this affect us?" framing. The same headline on a Core system ticker would be written for a different audience entirely.
6. **News ticker / Meridian feed.** Headlines reflect both the Reach-wide news cycle AND local editorial voice. Van Maanen's Star ticker should feel like a working-class local paper — freight prices, shift schedule changes, sports results, a distant political story filtered through "how does this affect us?" framing. The same headline on a Core system ticker would be written for a different audience entirely.
7. **Door labels and wayfinding.** Krenn uses shorthand. "B-7" not "Maintenance Corridor B, Section 7." Regulars know where things are. New arrivals get lost. This IS gameplay — the detective navigates an unfamiliar space using terse labels, while the smuggler reads them as operational shorthand.
7. **Door labels and wayfinding.** Van Maanen's Star uses shorthand. "B-7" not "Maintenance Corridor B, Section 7." Regulars know where things are. New arrivals get lost. This IS gameplay — the detective navigates an unfamiliar space using terse labels, while the smuggler reads them as operational shorthand.
### How this affects my authoring workflow
**Current problem:** I don't have a regional style brief to write against.
When I wrote the monologue guide examples, I used Krenn culture intuitively — compact names, pragmatic language, industrial atmosphere. But "intuitively" isn't reproducible. If I write the news ticker tomorrow, I need to know:
When I wrote the monologue guide examples, I used Van Maanen's Star culture intuitively — compact names, pragmatic language, industrial atmosphere. But "intuitively" isn't reproducible. If I write the news ticker tomorrow, I need to know:
- What heritage languages leave traces in daily speech? (Do people say "varelse" instead of "thing"? Is there a word for the smell of recycled air that has no English equivalent?)
- What naming conventions do businesses follow? (Is "The Last Shift" a Krenn-style bar name? Or is it too on-the-nose for a culture that actually works shifts?)
- What naming conventions do businesses follow? (Is "The Last Shift" a Van Maanen's Star-style bar name? Or is it too on-the-nose for a culture that actually works shifts?)
- What food and drink items exist? (I can't write a menu without a food vocabulary.)
- What media exists? (Is the news ticker text-only? Images? Video? Audio? This affects my writing format.)
- What slang exists for contraband, for the Commission, for lattice technology? (NPCs need to talk about these things without using dictionary definitions. "Running components" not "transporting unlicensed lattice modifications.")
**What I need from Topic 3 outputs:**
1. A **Krenn System regional brief** with naming conventions, slang vocabulary (15-20 terms minimum), food/drink list, media format, and cultural markers.
1. A **Van Maanen's Star regional brief** with naming conventions, slang vocabulary (15-20 terms minimum), food/drink list, media format, and cultural markers.
2. A **regional style guide template** so that when v0.2 adds a new system, I know exactly what cultural information I need before I can write environmental text for it.
3. An **environmental text type catalog** — every type of in-world text the player can encounter, with character limits, display rules, and cultural variation notes.
@@ -99,7 +99,7 @@ Here's what I think we need, with authoring notes:
| Text Type | Location | Cultural Variation | Approx. Count |
|-----------|----------|-------------------|---------------|
| Door/bay labels | All locations | Shorthand style (Krenn = terse) | 15-20 |
| Door/bay labels | All locations | Shorthand style (Van Maanen's Star = terse) | 15-20 |
| Safety notices | Hub, corridors | Commission language + local compliance level | 5-8 |
| Terminal screens | Commission kiosk, hub manifests | Data density, branding | 8-12 |
| Bar menu | The Last Shift | Food/drink names, prices, cultural flavor | 1 (the menu) |
@@ -129,7 +129,7 @@ The environmental text itself is culturally authored once. The character-specifi
3. **Standardize dual-lens note format** — one sentence per character, imperative voice.
4. **Extract voice cards per character** — 5-10 reference lines per playable character showing voice register, vocabulary, and perspective.
5. **Build prerequisite validation** into the content pipeline — schema check against fact catalog, not human review.
6. **Prioritize the Krenn System regional brief** — blocking dependency for all environmental text authoring.
6. **Prioritize Van Maanen's Star regional brief** — blocking dependency for all environmental text authoring.
7. **Define the environmental text type catalog** — what types exist, where they appear, character limits, cultural variation rules.
8. **Standardize mood list usage** — simultaneous states only, not alternatives.
+59 -59
View File
@@ -1,10 +1,10 @@
# Workshop Round 1 — Miri (Worldbuilder / Setting Designer)
**Topics assigned:** 3 (Regional Style Guide + Krenn System Cultural Brief), 4 (Growth Planning / Wiki Scaling)
**Topics assigned:** 3 (Regional Style Guide + Van Maanen's Star Cultural Brief), 4 (Growth Planning / Wiki Scaling)
---
## Topic 3: Regional Style Guide — Pattern + Krenn System Brief
## Topic 3: Regional Style Guide — Pattern + Van Maanen's Star Brief
### Part A: Regional Style Guide Template
@@ -159,23 +159,23 @@ Earth-heritage to where it is now?**
---
### Part B: Krenn System Regional Brief (Filled Template)
### Part B: Van Maanen's Star Regional Brief (Filled Template)
---
# Krenn System — Regional Style Guide
# Van Maanen's Star — Regional Style Guide
## 1. Heritage Profile
**Founding cluster:** The Krenn System was settled primarily by a **Northern European / Baltic coalition** — specifically a consortium organized out of Finnish, Estonian, and Latvian settler groups, with significant Dutch and Norwegian commercial backing. The settlement was an economic venture: the Syndic shipping combine *Talvik Logistics* (Finnish-Estonian origin) identified the system's gate position as optimal for freight transit and funded the initial infrastructure buildout.
**Founding cluster:** Van Maanen's Star was settled primarily by a **Northern European / Baltic coalition** — specifically a consortium organized out of Finnish, Estonian, and Latvian settler groups, with significant Dutch and Norwegian commercial backing. The settlement was an economic venture: the Syndic shipping combine *Talvik Logistics* (Finnish-Estonian origin) identified the system's gate position as optimal for freight transit and funded the initial infrastructure buildout.
The founding population was ~60% Finnish-Estonian-Latvian, ~25% Dutch-Norwegian (commercial/engineering cadre), ~15% mixed (recruited skilled labor from various origins — some Central European, some East Asian, some from earlier Reach settlements). This mix matters: the cultural identity isn't any single Earth nationality. It's what happened when these groups spent 180 years sharing a logistics hub and raising children together.
**Settlement era:** Mid-colonization. Krenn was settled ~180 years ago, after the initial wave of core-system settlements but before the frontier push. Old enough to feel established. Not old enough to be a founding culture of the Reach.
**Settlement era:** Mid-colonization. Van Maanen's Star was settled ~180 years ago, after the initial wave of core-system settlements but before the frontier push. Old enough to feel established. Not old enough to be a founding culture of the Reach.
**Settlement motivation:** Economic. Krenn exists because the gate connections made it a freight node. Nobody came to Krenn for the scenery. The founding charter was a logistics contract, not a constitution.
**Settlement motivation:** Economic. Van Maanen's Star exists because the gate connections made it a freight node. Nobody came to Van Maanen's Star for the scenery. The founding charter was a logistics contract, not a constitution.
**Secondary populations:** Over 180 years, Krenn has absorbed workers from connected systems — economic migrants following logistics jobs. Most secondary arrivals have been culturally absorbed within 1-2 generations. Current population reflects the founding cluster strongly, with occasional "off-pattern" names from later arrivals that locals treat as unremarkable.
**Secondary populations:** Over 180 years, Van Maanen's Star has absorbed workers from connected systems — economic migrants following logistics jobs. Most secondary arrivals have been culturally absorbed within 1-2 generations. Current population reflects the founding cluster strongly, with occasional "off-pattern" names from later arrivals that locals treat as unremarkable.
**Syndic presence:** *Talvik Logistics* (founding combine) was absorbed ~120 years ago into a larger Syndic conglomerate, which was itself restructured ~80 years ago into the *Sova Logistics Consortium* — the entity that currently employs most of the district. The Talvik name survives in a few place names and as a surname. Corporate naming influences are visible in older infrastructure (numbered bays, standardized designations) but informal naming has claimed most daily-use spaces.
@@ -192,25 +192,25 @@ The founding population was ~60% Finnish-Estonian-Latvian, ~25% Dutch-Norwegian
- **Mid-form (2 syllables, standard):** Torek, Lera, Maret, Resha, Devra, Harek, Sabel
- **Full-form (2 syllables, slightly more formal):** Sera, Nils, Kosse, Naia, Pael, Olin
**Phonetic signature:** Krenn names are compact and consonant-forward. Vowels tend toward **a, e, o** (open, central). The sounds **ae, ei, ou** appear as diphthongs. Hard consonants dominate: **k, t, r, v, s, d, n, l, p**. Soft sounds (**sh, ch, zh**) are rare. Double consonants are uncommon in first names but appear in surnames. Names rarely exceed 2 syllables in daily use.
**Phonetic signature:** Van Maanen's Star names are compact and consonant-forward. Vowels tend toward **a, e, o** (open, central). The sounds **ae, ei, ou** appear as diphthongs. Hard consonants dominate: **k, t, r, v, s, d, n, l, p**. Soft sounds (**sh, ch, zh**) are rare. Double consonants are uncommon in first names but appear in surnames. Names rarely exceed 2 syllables in daily use.
**How to tell if a name "sounds Krenn":** Say it aloud. If it's crisp, lands hard, and takes less than a second to say, it fits. If it flows or elongates, it doesn't. "Kael" is Krenn. "Kaelinar" is not. "Torek" is Krenn. "Toreksha" is not.
**How to tell if a name "sounds Van Maanen's Star":** Say it aloud. If it's crisp, lands hard, and takes less than a second to say, it fits. If it flows or elongates, it doesn't. "Kael" is Van Maanen's Star. "Kaelinar" is not. "Torek" is Van Maanen's Star. "Toreksha" is not.
**Drift from Earth heritage:**
- Finnish names like *Kalle, Matti, Väinö, Aino* → shortened, vowel-smoothed → **Kael, Maret, Venn**
- Estonian names like *Toomas, Rein, Leelo, Helle* → consonant-hardened, trimmed → **Torek, Renn, Lera, Hael**
- Latvian names like *Valdis, Daina, Pēteris* → compressed → **Voss, Drin, Pell**
- Dutch/Norwegian names like *Nils, Sabel, Harek* → these survived closer to origin because the commercial cadre had institutional prestige. Dutch/Norwegian-origin names read slightly "higher status" to Krenn ears, though this association is fading.
- Dutch/Norwegian names like *Nils, Sabel, Harek* → these survived closer to origin because the commercial cadre had institutional prestige. Dutch/Norwegian-origin names read slightly "higher status" to Van Maanen's Star ears, though this association is fading.
**Generational layers:**
- **Older residents (60+, pre-rejuvenation age):** Slightly longer names, closer to heritage. "Torek" is an older-generation name. "Maret" is on the boundary.
- **Current working generation (25-50):** The short forms dominate. "Kael," "Renn," "Tav."
- **Children:** Even more compressed. Single-syllable names are increasingly common. Some genuinely novel — parents combine syllables from both heritage streams.
- **New arrivals from other systems** are identifiable by name pattern. A name like "Ashira" or "Tomás" signals non-Krenn origin immediately.
- **New arrivals from other systems** are identifiable by name pattern. A name like "Ashira" or "Tomás" signals non-Van Maanen's Star origin immediately.
### 2b. Personal Names — Family Names
**Structure:** Fixed surnames, inherited patrilineally or matrilineally (family choice, no cultural default — this ambiguity is itself a Krenn trait). Many working-class Krenn residents rarely use their surname at all. In Sova Transit District, most people are known by first name only.
**Structure:** Fixed surnames, inherited patrilineally or matrilineally (family choice, no cultural default — this ambiguity is itself a Van Maanen's Star trait). Many working-class Van Maanen's Star residents rarely use their surname at all. In Sova Transit District, most people are known by first name only.
**Usage rules:**
- Surnames used in: official documents, Commission interactions, authority contexts, introductions to strangers (sometimes), legal proceedings.
@@ -224,21 +224,21 @@ The founding population was ~60% Finnish-Estonian-Latvian, ~25% Dutch-Norwegian
- Estonian-origin: *-maa, -sik, -vere* sometimes survive. *Sessik* retains the Estonian *-sik* suffix.
- Latvian-origin: *-is, -s* ending trimmed. *Lintars → Lintar.*
- Dutch/Norwegian-origin: Often survived intact because they were already short. *Voss, Nils, Sabel.*
- **Blended surnames** (combining heritage streams) are a post-settlement innovation. *Davan* is not Finnish or Dutch — it emerged on Krenn.
- **Blended surnames** (combining heritage streams) are a post-settlement innovation. *Davan* is not Finnish or Dutch — it emerged on Van Maanen's Star.
### 2c. Place Names
**Pattern:** Krenn place names follow a three-layer system:
**Pattern:** Van Maanen's Star place names follow a three-layer system:
1. **Institutional names (official, rarely used):** Corporate or bureaucratic. "Sova Transit Logistics Hub, Bay 7-C." "Krenn System Administration, Sector 12." These appear on legal documents and institutional signage. Nobody says them.
1. **Institutional names (official, rarely used):** Corporate or bureaucratic. "Sova Transit Logistics Hub, Bay 7-C." "Van Maanen's Star Administration, Sector 12." These appear on legal documents and institutional signage. Nobody says them.
2. **Established names (standard use):** Heritage-influenced or descriptive. "Station Sova" (Estonian-origin, means "suitable/fitting" — the founders named it for the gate position). "Krenn" itself (possibly Finnish *krenni*, an old dialect word for "crossroads" — the etymology is debated, which is itself a cultural detail). "The Terminal" (English-origin descriptive, reflecting the commercial-cadre influence on workplace naming).
2. **Established names (standard use):** Heritage-influenced or descriptive. "Station Sova" (Estonian-origin, means "suitable/fitting" — the founders named it for the gate position). "Van Maanen's Star" itself (possibly Finnish *krenni*, an old dialect word for "crossroads" — the etymology is debated, which is itself a cultural detail). "The Terminal" (English-origin descriptive, reflecting the commercial-cadre influence on workplace naming).
3. **Informal names (locals only):** Personal or experiential. "Lera's" instead of "The Last Shift." "The B" for Corridor B-7. "Topside" for Level 3. These names are social shibboleths — knowing them signals belonging.
**Place name examples at different scales:**
- System: **Krenn System** (heritage-origin, debated etymology)
- Planet: **Krenn Prime** (institutional naming — "Prime" is a Concordat Standard convention for the primary habitable world)
- System: **Van Maanen's Star** (heritage-origin, debated etymology)
- Planet: **Van Maanen's Star Prime** (institutional naming — "Prime" is a Concordat Standard convention for the primary habitable world)
- Station: **Station Sova** (heritage-origin: Estonian *sova*, "suitable")
- District: **Sova Transit District** (functional-descriptive)
- Location: **The Terminal** (worker-descriptive), **The Last Shift** (worker-descriptive, ironic — named for the drink you have before your last shift ends, which is every shift)
@@ -259,10 +259,10 @@ The founding population was ~60% Finnish-Estonian-Latvian, ~25% Dutch-Norwegian
### 3a. Substrate Language
**Primary heritage languages:** Finnish, Estonian, Latvian — collapsed into a shared substrate over 180 years. Most Krenn residents cannot speak any heritage language fluently. What survives are words, cadences, and grammatical tendencies embedded in how they speak Concordat Standard.
**Primary heritage languages:** Finnish, Estonian, Latvian — collapsed into a shared substrate over 180 years. Most Van Maanen's Star residents cannot speak any heritage language fluently. What survives are words, cadences, and grammatical tendencies embedded in how they speak Concordat Standard.
**Survival domains:**
- **Profanity:** Heritage swearing survives because it's emotionally charged and taught informally. "Perkele" (Finnish, emphatic curse) is still used on Krenn, shortened to **"perk"** — used the way English-speakers use "damn." Most speakers don't know the origin.
- **Profanity:** Heritage swearing survives because it's emotionally charged and taught informally. "Perkele" (Finnish, emphatic curse) is still used on Van Maanen's Star, shortened to **"perk"** — used the way English-speakers use "damn." Most speakers don't know the origin.
- **Food:** Heritage food words persist because recipes carry them. *Leib* (bread, Estonian/Latvian origin), *kalaa* (fish/protein, Finnish-adapted), *supp* (soup, shared Baltic).
- **Family terms:** *Ema* (mother, Estonian), *isa* (father, Estonian/Finnish blend) — used by some families, especially older ones. Younger families increasingly use Concordat Standard terms.
- **Workplace slang:** Technical terms from the founding-era logistics vocabulary. *Tööd* (work/shift, Estonian-derived, now means specifically the boring maintenance tasks nobody wants to do — "I drew tööd duty"). *Vakt* (watch/guard shift, Norwegian-origin, now specifically means the period when someone is on lookout during ring operations — the word has been criminalized by usage without anyone planning it).
@@ -271,7 +271,7 @@ The founding population was ~60% Finnish-Estonian-Latvian, ~25% Dutch-Norwegian
### 3b. Lexicon
**Heritage words that survive in daily Krenn speech:**
**Heritage words that survive in daily Van Maanen's Star speech:**
| Word | Origin | Meaning | Usage context |
|------|--------|---------|---------------|
@@ -300,7 +300,7 @@ The founding population was ~60% Finnish-Estonian-Latvian, ~25% Dutch-Norwegian
| quiet credit | Supplemental income from ring activity | Euphemism — never said to outsiders |
| hard name | Using someone's surname, implying formality or hostility | Social register marker |
**Profanity pattern:** Krenn profanity is short and percussive, matching the naming phonetics. "Perk" is the all-purpose emphatic. "Gate-rot" is the locally-coined equivalent of "bullshit" (from the ozone smell near span gates — something that's unpleasant and pervasive). "Talvik's teeth" is an older oath (referencing the founding Syndic) that only people over 50 use — younger workers think it sounds ridiculous.
**Profanity pattern:** Van Maanen's Star profanity is short and percussive, matching the naming phonetics. "Perk" is the all-purpose emphatic. "Gate-rot" is the locally-coined equivalent of "bullshit" (from the ozone smell near span gates — something that's unpleasant and pervasive). "Talvik's teeth" is an older oath (referencing the founding Syndic) that only people over 50 use — younger workers think it sounds ridiculous.
**Greeting/farewell conventions:**
- **Peers meeting:** First name, nod. No verbal greeting formula. If you say "hello" formally, you're either an outsider or making a point.
@@ -320,22 +320,22 @@ The founding population was ~60% Finnish-Estonian-Latvian, ~25% Dutch-Norwegian
### 4a. Architecture & Interior
**Construction style:** Pure station-functional. Krenn architecture is not heritage architecture — it's prefab modules and retrofitted bays. Cultural identity shows not in what was built but in **how people have modified what was built**: hand-lettered signs replacing corporate signage, warm lighting replacing institutional fixtures, personal objects in shared spaces.
**Construction style:** Pure station-functional. Van Maanen's Star architecture is not heritage architecture — it's prefab modules and retrofitted bays. Cultural identity shows not in what was built but in **how people have modified what was built**: hand-lettered signs replacing corporate signage, warm lighting replacing institutional fixtures, personal objects in shared spaces.
**Personal space decoration:**
- Lockers in The Terminal: stickers (some heritage-themed — stylized Finnish/Estonian folk patterns, modernized and mass-produced), shift-end doodles (a minor tradition — drawing something small on the last day of a work cycle), photographs of family and friends.
- Residential pods: more heritage expression than public spaces. Some families maintain a small **nurk** (Estonian: "corner" — a small shelf or niche with family items, heritage objects, sometimes a photograph of an Earth-origin landscape they've never seen). The nurk tradition is fading — younger families don't bother.
**Public space texture:**
- Bilingual signage: Concordat Standard (official, clean, institutional) alongside hand-lettered Krenn vernacular (additions, corrections, complaints, directions). The contrast between the two register layers is visually distinctive.
- Graffiti: sparse, functional. Maintenance workers leave marks (dates, arrows, initials). Some ring-adjacent marks in corridors. No elaborate mural tradition — Krenn culture doesn't produce decorative public art. Occasional stickers with folk-pattern motifs.
- Bilingual signage: Concordat Standard (official, clean, institutional) alongside hand-lettered Van Maanen's Star vernacular (additions, corrections, complaints, directions). The contrast between the two register layers is visually distinctive.
- Graffiti: sparse, functional. Maintenance workers leave marks (dates, arrows, initials). Some ring-adjacent marks in corridors. No elaborate mural tradition — Van Maanen's Star culture doesn't produce decorative public art. Occasional stickers with folk-pattern motifs.
**Color palette:** Krenn doesn't have a deliberate color culture, but the built environment creates one: **industrial white** (workplace), **warm amber** (bar and social spaces, from aging fixtures), **emergency red** (corridors), **cool gray** (station infrastructure). Personal color preferences tend toward earth tones and muted blues — loud colors read as "trying too hard" in Krenn social context.
**Color palette:** Van Maanen's Star doesn't have a deliberate color culture, but the built environment creates one: **industrial white** (workplace), **warm amber** (bar and social spaces, from aging fixtures), **emergency red** (corridors), **cool gray** (station infrastructure). Personal color preferences tend toward earth tones and muted blues — loud colors read as "trying too hard" in Van Maanen's Star social context.
### 4b. Food & Drink
**Heritage cuisine that survived:** Baltic-Nordic comfort food, heavily adapted to station ingredients.
- **Bread culture:** Leib (dark, dense, slightly sour) is the one food tradition that has survived nearly intact. Station-grown grain + synthesized rye flavoring. Every Krenn station has someone who bakes leib. On Sova, it's a vendor on Level 2 near the residential pods.
- **Bread culture:** Leib (dark, dense, slightly sour) is the one food tradition that has survived nearly intact. Station-grown grain + synthesized rye flavoring. Every Van Maanen's Star station has someone who bakes leib. On Sova, it's a vendor on Level 2 near the residential pods.
- **Fish/protein:** Kalaa (generic protein) is served in styles that echo Finnish and Estonian fish preparation — salt-cured, smoked-flavored (synthetic smoke), served cold with bread. The actual protein is station-standard cultured material, but the preparation method carries heritage.
- **Soup:** Hot, thick, heavy. The default comfort food. "Supp" covers everything from a thin broth to a dense stew. Lera serves three variations at The Last Shift.
- **Drinking:** Station-brewed spirits (clear, strong, slightly chemical — the working descendant of vodka/aquavit traditions). Imported beer is a status purchase. Synthetic coffee is universal. There's a local drink called **kuum** (Estonian: "hot") that's a spiced warm beverage somewhere between coffee and mulled wine, served at shift transitions. It's the drink that says "I'm off the clock."
@@ -346,18 +346,18 @@ The founding population was ~60% Finnish-Estonian-Latvian, ~25% Dutch-Norwegian
**Work clothing:** Standard-issue logistics coveralls (provided by Sova Logistics Consortium, charcoal gray, company logo on the back that everyone ignores). Workers personalize with pins, patches, rolled sleeves, and the way they wear the collar (up = cold, down = normal, folded in a specific way = off-shift signal that communicates "don't give me tasks").
**Off-duty dress:** Practical, layers. No strong fashion culture. Muted colors. A new or conspicuously expensive item of clothing is noticed and commented on — this is why Torek's new jacket is a social tell. Krenn workers don't display wealth. Displaying wealth signals either off-system origin or off-books income.
**Off-duty dress:** Practical, layers. No strong fashion culture. Muted colors. A new or conspicuously expensive item of clothing is noticed and commented on — this is why Torek's new jacket is a social tell. Van Maanen's Star workers don't display wealth. Displaying wealth signals either off-system origin or off-books income.
**Visible cultural markers:** Lattice port customization is the main expression — the lattice connection point at the base of the skull can be fitted with decorative covers. Krenn workers tend toward simple metal covers (brushed steel, copper). Ornate covers signal higher economic status or off-system sensibility. Some older workers have small tattoos in Baltic folk-pattern styles — angular, geometric, usually on forearms or shoulders. This tradition is dying out.
**Visible cultural markers:** Lattice port customization is the main expression — the lattice connection point at the base of the skull can be fitted with decorative covers. Van Maanen's Star workers tend toward simple metal covers (brushed steel, copper). Ornate covers signal higher economic status or off-system sensibility. Some older workers have small tattoos in Baltic folk-pattern styles — angular, geometric, usually on forearms or shoulders. This tradition is dying out.
### 4d. Music & Entertainment
**Heritage music:** Almost entirely lost as a living tradition. What survives: a rhythmic pattern in popular music on Krenn that musicologists might trace to Finnish and Estonian folk scales (minor, modal) but that no one on Krenn would identify as heritage. The Meridian music feed at Lera's plays generic ambient — nobody changes it because the ambient has become the soundtrack of the place.
**Heritage music:** Almost entirely lost as a living tradition. What survives: a rhythmic pattern in popular music on Van Maanen's Star that musicologists might trace to Finnish and Estonian folk scales (minor, modal) but that no one on Van Maanen's Star would identify as heritage. The Meridian music feed at Lera's plays generic ambient — nobody changes it because the ambient has become the soundtrack of the place.
**Local entertainment:**
- **Card games:** The dominant social entertainment. A game called **kolm** (Estonian: "three") is played at The Last Shift — a trick-taking game for 3-5 players with a bluffing element. It's the social ritual that cements bar culture. Harek runs the regular game.
- **Meridian feeds:** News, entertainment, sports broadcasts from larger systems. Consumed individually, discussed socially.
- **Storytelling:** Not a strong tradition. Krenn people are reserved. But: shift stories are the closest thing — "you'll never believe what came through the gate today" is a genre. These stories are told at the bar, get embellished over time, and serve the function of oral history without the formality.
- **Storytelling:** Not a strong tradition. Van Maanen's Star people are reserved. But: shift stories are the closest thing — "you'll never believe what came through the gate today" is a genre. These stories are told at the bar, get embellished over time, and serve the function of oral history without the formality.
---
@@ -367,12 +367,12 @@ The founding population was ~60% Finnish-Estonian-Latvian, ~25% Dutch-Norwegian
**Trust model:** Trust is earned through **shared labor and shared time**. New arrivals are treated with polite distance that can last months. There is no shortcut — no credential, no introduction, no display of competence fast-tracks trust. You earn it by being here, doing your job, not causing problems, and not asking questions that aren't your business.
This is the detective's primary social challenge. Institutional authority (Commission credentials) doesn't buy trust in Krenn culture — if anything, it reduces it, because institutional authority is external. The detective must earn trust the Krenn way: by being present, being consistent, and not pushing. This takes time the investigation doesn't have.
This is the detective's primary social challenge. Institutional authority (Commission credentials) doesn't buy trust in Van Maanen's Star culture — if anything, it reduces it, because institutional authority is external. The detective must earn trust the Van Maanen's Star way: by being present, being consistent, and not pushing. This takes time the investigation doesn't have.
**Authority signals:**
- **Naming:** Title+surname = formal authority. First name = peer or accepted.
- **Spatial:** Voss's glass-fronted office above the bay floor = visible authority. Lera's position behind the bar = social authority. Devra's use of the corner booth = informal power.
- **Speech:** Direct, short sentences = Krenn norm. Elaborate speech = institutional outsider or someone performing authority.
- **Speech:** Direct, short sentences = Van Maanen's Star norm. Elaborate speech = institutional outsider or someone performing authority.
**Insider/outsider dynamics:** You're "from here" when people stop using your surname. This can take anywhere from 3 months (if you fit in well and don't ask questions) to never (if you're visibly institutional). The detective will be "hard-named" for the duration of v0.1. The smuggler has always been first-named.
@@ -392,30 +392,30 @@ This is the detective's primary social challenge. Institutional authority (Commi
## 6. The 180-Year Drift
**What was preserved deliberately:**
- The name "Krenn" — debated etymology, fiercely defended identity. People identify as "from Krenn" regardless of which station or world they live on in-system.
- Leib (bread). Consistently baked in heritage style across all Krenn stations. The one food item that is identifiably and deliberately cultural.
- The name "Van Maanen's Star" — debated etymology, fiercely defended identity. People identify as "from Van Maanen's Star" regardless of which station or world they live on in-system.
- Leib (bread). Consistently baked in heritage style across all Van Maanen's Star stations. The one food item that is identifiably and deliberately cultural.
- The nurk tradition (home shelf with heritage items) — maintained by some families, fading but not gone.
**What was preserved accidentally:**
- Naming phonetics. Nobody decided Krenn names should be short and consonant-heavy. But when Finnish, Estonian, and Latvian naming traditions blend in a working-class logistics culture that values directness, compression happens naturally. 180 years of children being named by parents who spoke shorter every generation produced the current name pool.
- Substrate vocabulary. "Perk" and "kylm" and "hüva" survived because they were used daily, not because anyone taught them formally. Most Krenn speakers would be surprised to learn these words have Earth-heritage origins.
- Reserve. The Krenn social style — minimal greeting, first-name-primary, distrust of elaboration, privacy as default — echoes Finnish *sisu* and Estonian *maarahvas* identity, but no one on Krenn would make that connection. It just feels like "how people are here."
- Naming phonetics. Nobody decided Van Maanen's Star names should be short and consonant-heavy. But when Finnish, Estonian, and Latvian naming traditions blend in a working-class logistics culture that values directness, compression happens naturally. 180 years of children being named by parents who spoke shorter every generation produced the current name pool.
- Substrate vocabulary. "Perk" and "kylm" and "hüva" survived because they were used daily, not because anyone taught them formally. Most Van Maanen's Star speakers would be surprised to learn these words have Earth-heritage origins.
- Reserve. The Van Maanen's Star social style — minimal greeting, first-name-primary, distrust of elaboration, privacy as default — echoes Finnish *sisu* and Estonian *maarahvas* identity, but no one on Van Maanen's Star would make that connection. It just feels like "how people are here."
**What was lost:**
- Heritage languages as coherent systems. Nobody on Krenn speaks Finnish, Estonian, or Latvian. The substrate words are fossils, not a living language.
- National identity. No one on Krenn identifies as Finnish or Estonian. Some families know their heritage origin; most don't care. "Krenn" has fully replaced Earth-national identity.
- Heritage languages as coherent systems. Nobody on Van Maanen's Star speaks Finnish, Estonian, or Latvian. The substrate words are fossils, not a living language.
- National identity. No one on Van Maanen's Star identifies as Finnish or Estonian. Some families know their heritage origin; most don't care. "Van Maanen's Star" has fully replaced Earth-national identity.
- Religious traditions. The founding cluster was largely secular. Whatever religious practices individual settlers brought didn't survive the transition to station-community life.
- Decorative arts. Folk patterns survive as sticker designs and occasional tattoos. No living craft tradition.
**What is new (emerged on Krenn):**
- The first-name-primary social convention. This is a Krenn innovation — the founding cultures all used surnames more regularly. The logistics-working-class context stripped formal naming as unnecessary. This convention is now a Krenn identity marker.
- Shift-cycle social rhythms. The 5+2 cycle, the shift-end bar migration, the end-of-cycle card game — these are Krenn traditions with no Earth analogue. They emerged from station life.
**What is new (emerged on Van Maanen's Star):**
- The first-name-primary social convention. This is a Van Maanen's Star innovation — the founding cultures all used surnames more regularly. The logistics-working-class context stripped formal naming as unnecessary. This convention is now a Van Maanen's Star identity marker.
- Shift-cycle social rhythms. The 5+2 cycle, the shift-end bar migration, the end-of-cycle card game — these are Van Maanen's Star traditions with no Earth analogue. They emerged from station life.
- The spatial vocabulary (gate-side/wall-side, the social meaning of the corridor/bar threshold). Station architecture creating new cultural language.
- Kolm (the card game). No single heritage origin — elements of Finnish *paskahousu*, Estonian *kaardimäng*, and what appears to be original invention. It's the district's defining social ritual.
**What is contested:**
- Heritage display. Older residents (and some families) maintain nurk shrines and use more heritage vocabulary. Younger workers find this affected or irrelevant. Neither side argues about it openly — that would violate the privacy norm. The tension is expressed through mild eye-rolls, not confrontation.
- Naming trends. Some parents give children heritage-length names (Katariina, Aleksander) as a cultural statement. Other parents give children maximally compressed names (Ren, Tev, Kai) as a statement of belonging to Krenn-as-it-is rather than Krenn-as-it-was. Neither group discusses it. Both groups notice.
- Naming trends. Some parents give children heritage-length names (Katariina, Aleksander) as a cultural statement. Other parents give children maximally compressed names (Ren, Tev, Kai) as a statement of belonging to Van Maanen's Star-as-it-is rather than Van Maanen's Star-as-it-was. Neither group discusses it. Both groups notice.
---
@@ -441,8 +441,8 @@ Let me check the D-040 structure against the growth scenario.
```
wiki/
star-systems/
krenn/
krenn-system.md # system profile
van-maanens-star/
van-maanens-star-system.md # system profile
station-sova/
station-sova.md # station profile
sova-transit-district/
@@ -457,7 +457,7 @@ wiki/
factions/ # flat — global entities
technology/ # flat — global
cultural-groups/ # flat — this is where regional briefs live
krenn-system.md # the brief I just wrote
van-maanens-star-system.md # the brief I just wrote
contraband/
lore/
```
@@ -466,7 +466,7 @@ wiki/
```
wiki/
star-systems/
krenn/
van-maanens-star/
... # unchanged
vael/ # new system
vael-system.md
@@ -479,7 +479,7 @@ wiki/
kael-davan.md
[new NPCs from new systems]
cultural-groups/
krenn-system.md
van-maanens-star-system.md
vael-system.md # new regional brief
morat-system.md # new regional brief
```
@@ -492,13 +492,13 @@ The real concern is location names that collide. "The Terminal" could exist in m
**Proposal: Location filenames include system prefix in the ID, not the path.**
The file path already disambiguates: `star-systems/krenn/station-sova/.../the-terminal.md` vs. `star-systems/vael/station-whoever/.../the-terminal.md`. But for cross-references, every entry's YAML frontmatter should include a `canonical_id` that is globally unique:
The file path already disambiguates: `star-systems/van-maanens-star/station-sova/.../the-terminal.md` vs. `star-systems/vael/station-whoever/.../the-terminal.md`. But for cross-references, every entry's YAML frontmatter should include a `canonical_id` that is globally unique:
```yaml
---
canonical_id: krenn.sova.transit.the-terminal
canonical_id: van-maanens-star.sova.transit.the-terminal
type: location
system: krenn
system: van-maanens-star
station: sova
district: sova-transit
status: canonical
@@ -507,9 +507,9 @@ status: canonical
Cross-references use `canonical_id`, not file paths. This is already implied by D-040 ("Hierarchical with cross-references via IDs, not file paths") but should be made explicit in the wiki style guide.
**For characters:** Character filenames are already unique (first-last format). If we get a second "Kael" in another system, the file is `kael-torren.md` or whatever the full name is. The `canonical_id` would include system origin: `krenn.kael-davan`.
**For characters:** Character filenames are already unique (first-last format). If we get a second "Kael" in another system, the file is `kael-torren.md` or whatever the full name is. The `canonical_id` would include system origin: `van-maanens-star.kael-davan`.
**For factions:** Global factions don't collide. Local factions (like The Ring) get system-prefixed IDs: `krenn.sova.the-ring`.
**For factions:** Global factions don't collide. Local factions (like The Ring) get system-prefixed IDs: `van-maanens-star.sova.the-ring`.
### What Changes When Systems Are Added
@@ -521,9 +521,9 @@ Cross-references use `canonical_id`, not file paths. This is already implied by
### One Structural Recommendation
**Add `cultural-groups/` entries to the wiki now, starting with Krenn.**
**Add `cultural-groups/` entries to the wiki now, starting with Van Maanen's Star.**
D-040 defined the directory but we haven't created the actual file. The regional brief I wrote above should become `wiki/cultural-groups/krenn-system.md`. When v0.2 adds systems, new briefs follow the template. This is the pattern — establish it with one example, then replicate.
D-040 defined the directory but we haven't created the actual file. The regional brief I wrote above should become `wiki/cultural-groups/van-maanens-star-system.md`. When v0.2 adds systems, new briefs follow the template. This is the pattern — establish it with one example, then replicate.
**The index (`wiki/index.md`) should add a Cultural Groups section** linking to these briefs. Currently the index has World, Locations, Factions, NPCs, Technology, Contraband, Knowledge Systems, and Authoring Guides. Cultural Groups is a missing category that will matter as soon as writers need to name NPCs in a second system.
@@ -546,14 +546,14 @@ This workflow is the answer to "do we restructure or namespace from the start?"
### For the team to decide:
1. **Adopt the Regional Style Guide Template** (Part A above) as a required document for every new region in the game.
2. **Adopt the Krenn System Regional Brief** (Part B above) as the canonical cultural reference for v0.1 content.
2. **Adopt Van Maanen's Star Regional Brief** (Part B above) as the canonical cultural reference for v0.1 content.
3. **Confirm `wiki/cultural-groups/` as the home** for regional briefs (per D-040, but currently empty).
4. **Add canonical_id convention** to wiki frontmatter for collision-safe cross-referencing.
5. **Establish the "regional brief first" workflow** — no content creation for a new region until Miri has written and the team has approved its cultural brief.
### New tickets for SI (if proposals adopted):
- Create `wiki/cultural-groups/krenn-system.md` from the brief in this document.
- Create `wiki/cultural-groups/van-maanens-star-system.md` from the brief in this document.
- Add Cultural Groups section to `wiki/index.md`.
- Define `canonical_id` format in `wiki/_meta/naming-conventions.md`.
- Update wiki templates to include `canonical_id` field in YAML frontmatter.
+1 -1
View File
@@ -50,7 +50,7 @@ role: "Off-duty pilot"
social_site: "bar"
tier: 3
axes:
want: "Find a reason to stay in Krenn System instead of taking the next cargo run"
want: "Find a reason to stay in Van Maanen's Star instead of taking the next cargo run"
routine:
schedule:
- time: "16:00-20:00"
+1 -1
View File
@@ -125,7 +125,7 @@ THAT'S the game. That's what we're building. And the wiki, as written, has the r
**Topic 2 (Style Guides):** I don't care about template formatting. I care about one thing: does the style guide say "every NPC needs a moment that makes the player feel something"? If not, add that. I've seen too many profiles that are mechanically complete and emotionally dead. Renn. Tav. Drin. They follow the template. They don't have a soul. The style guide should mandate a "gut-check line" — one voice sample that, if you read it out loud, makes you pause. If the line doesn't do that, the profile isn't done.
**Topic 3 (Regional Style):** The names are fine. "Kael Davan," "Sera Venn," "Lera Sessik" — compact, distinct, pronounceable, feel like a coherent culture. Keep doing what you're doing. But the NAMES aren't what make a culture feel real. It's the details. "Lera's doing that thing with the grain spirit again" — THAT tells me more about Krenn System culture than any naming convention document. More of that. What do people eat? What's the local slang? What do they complain about? The wiki should have a "daily life" section that's all texture, no mechanics.
**Topic 3 (Regional Style):** The names are fine. "Kael Davan," "Sera Venn," "Lera Sessik" — compact, distinct, pronounceable, feel like a coherent culture. Keep doing what you're doing. But the NAMES aren't what make a culture feel real. It's the details. "Lera's doing that thing with the grain spirit again" — THAT tells me more about Van Maanen's Star culture than any naming convention document. More of that. What do people eat? What's the local slang? What do they complain about? The wiki should have a "daily life" section that's all texture, no mechanics.
**Topic 5 (Content Structure):** I want to flag one thing: the content directory needs to make it easy for modders to add an NPC that FEELS like they belong. Not just technically correct — emotionally integrated. If a modder adds a new NPC to the bar, they should have a template that includes dual-lens notes, a gut-check voice line, and triangle integration. If the template only has mechanical axes, we'll get mechanical NPCs. The template should teach modders to write characters, not fill out forms.
+2 -2
View File
@@ -404,7 +404,7 @@ This would give the smuggler's knowledge model parity with the detective's.
1. **D-036 convention**: "Compact, consonant-heavy, first-name-primary in social contexts." This was the guiding principle. First-name-primary means family names exist but aren't used socially.
2. **Phonological palette**: Short, hard-consonant names. Mostly monosyllabic (Voss, Drin, Sess, Renn, Pell, Tav, Hael) or disyllabic (Kael, Sera, Lera, Torek, Devra, Maret, Resha, Harek, Sabel, Olin). The longest name is "Torek Lintar." This was intentional — Krenn System culture is pragmatic and compact, so names should be too.
2. **Phonological palette**: Short, hard-consonant names. Mostly monosyllabic (Voss, Drin, Sess, Renn, Pell, Tav, Hael) or disyllabic (Kael, Sera, Lera, Torek, Devra, Maret, Resha, Harek, Sabel, Olin). The longest name is "Torek Lintar." This was intentional — Van Maanen's Star culture is pragmatic and compact, so names should be too.
3. **Family names for institutionally visible characters**: Kael Davan (the detective looks up "Davan, K." in records), Sera Venn (Commission employee — institutional records use full names), Lera Sessik (business owner — license is under a full name), Torek Lintar (dock worker with institutional records), Maret Korr (freight scheduler — manifest system uses full names).
@@ -414,7 +414,7 @@ This would give the smuggler's knowledge model parity with the detective's.
2. **The "-el" cluster**: Kael, Hael, Sabel all end in "-el." Kael and Hael are partners — was the sonic echo intentional? Partially. I wanted the names to feel like they belonged to the same culture. But three "-el" names in 17 is a high density and could cause confusion, especially Kael/Hael (one letter apart).
3. **Missing cultural specificity**: D-036 says "Krenn System conventions" but doesn't specify the real-world linguistic roots. The names feel vaguely Northern European / Scandinavian, but this is accidental similarity, not intentional derivation. We need Miri to ground this.
3. **Missing cultural specificity**: D-036 says "Van Maanen's Star conventions" but doesn't specify the real-world linguistic roots. The names feel vaguely Northern European / Scandinavian, but this is accidental similarity, not intentional derivation. We need Miri to ground this.
### How naming affects NPC authoring
@@ -43,12 +43,12 @@
| P-24 | **Prerequisite validation** in content pipeline — schema check against fact catalog. | Mellanie | Tyre (validation pipeline) | High priority |
| P-25 | **Standardize mood list usage** — simultaneous emotional states only, not alternatives. | Mellanie | — | Medium priority |
### Topic 3: Regional Style Guide + Krenn System
### Topic 3: Regional Style Guide + Van Maanen's Star
| # | Proposal | Author | Support | Status |
|---|----------|--------|---------|--------|
| P-26 | **Regional style guide template** (6 sections: Heritage Profile, Naming Conventions, Language Echoes, Aesthetic Markers, Social Structure, 180-Year Drift). | Miri | — | Ready for adoption |
| P-27 | **Krenn System regional brief** — Nordic-Baltic heritage, fully specified for v0.1. | Miri | — | Ready for adoption |
| P-27 | **Van Maanen's Star regional brief** — Nordic-Baltic heritage, fully specified for v0.1. | Miri | — | Ready for adoption |
| P-28 | Cultural identity as **mechanical resistance** — regional style guides must include social norms toward authority, privacy expectations, loyalty structures, shared silence. | Gore | Miri (social structure section aligns) | Consensus forming |
| P-29 | **All NPCs get canonical full names** — stored in Core Identity, surface in institutional contexts. | Paula | Miri (family name heritage pool provided) | Consensus forming |
| P-30 | **Document phonological naming rules** — syllable count, consonant preferences, vowel preferences, family name patterns. | Paula | Miri (phonetic signature defined) | Ready to merge |
@@ -64,8 +64,8 @@
| P-35 | **NPCs flat until collision** — disambiguate with `-{district}` suffix only when needed. | Tyre | — | For Round 2 |
| P-36 | **World hierarchy flat with cross-references** — spatial hierarchy in content, not directory. | Tyre | — | For Round 2 |
| P-37 | **Filesystem is navigation, not identity** — unique identity in YAML frontmatter, not paths. | Tyre | Miri (canonical_id convention) | Consensus forming |
| P-38 | **`canonical_id` convention** in wiki frontmatter for collision-safe cross-referencing (e.g., `krenn.sova.transit.the-terminal`). | Miri | Tyre (identity in frontmatter) | Consensus forming |
| P-39 | Add **`cultural-groups/` section** to wiki index + create `krenn-system.md` as first entry. | Miri | — | Ready for adoption |
| P-38 | **`canonical_id` convention** in wiki frontmatter for collision-safe cross-referencing (e.g., `van-maanens-star.sova.transit.the-terminal`). | Miri | Tyre (identity in frontmatter) | Consensus forming |
| P-39 | Add **`cultural-groups/` section** to wiki index + create `van-maanens-star-system.md` as first entry. | Miri | — | Ready for adoption |
### Topic 5: Content Directory + Moddability
@@ -135,7 +135,7 @@
**The tension:**
- Paula flags Kael/Hael as one letter apart — potential confusion in dialogue, monologue, and player memory.
- Miri's Krenn naming brief includes both names as valid Krenn phonology (short, consonant-heavy, -el ending).
- Miri's Van Maanen's Star naming brief includes both names as valid Van Maanen's Star phonology (short, consonant-heavy, -el ending).
- Changing either name has cascade effects (Kael appears in ~10+ files, Hael in ~5+).
- **Unresolved:** Is this a real usability problem, or acceptable cultural texture? If a problem, which name changes?
@@ -180,7 +180,7 @@
- Miri proposes wiki restructure to `star-systems/{system}/station-X/.../` deep nesting with `characters/` flat.
- Tyre proposes wiki keeps current shallow structure (`locations/{system}/slug.md`, `npcs/` flat).
- Both agree content directory (`content/`) uses `districts/` as atomic unit.
- Current wiki already has: `locations/krenn-system/`, `npcs/`, `world/` — closer to Tyre's proposal.
- Current wiki already has: `locations/van-maanens-star-system/`, `npcs/`, `world/` — closer to Tyre's proposal.
- Miri's proposal references D-040 (which I note doesn't exist in the current decisions directory — this may be a forward reference or error).
- **Needs clarification:** Is Miri proposing a wiki restructure or describing a future state? Does D-040 exist?
@@ -204,7 +204,7 @@
| C-01 | THE FRIEND is never proc-gen | Authored pool, randomized selection | High | Gore, Nigel, Gestalt, Paula |
| C-02 | All NPCs need canonical full names | Store in Core Identity, surface in institutional contexts | High | Paula, Miri |
| C-03 | Regional style guide template | Adopt Miri's 6-section template | High | Miri, Gore, Mellanie |
| C-04 | Krenn System regional brief | Adopt Miri's Nordic-Baltic brief as canonical | High | Miri (author), Mellanie (unblocked) |
| C-04 | Van Maanen's Star regional brief | Adopt Miri's Nordic-Baltic brief as canonical | High | Miri (author), Mellanie (unblocked) |
| C-05 | Formalized tier templates | Paula's Tier 1/2/3 templates + Gestalt's mechanical checklists | High | Paula, Gestalt, Mellanie |
| C-06 | Content directory: `global/` + `districts/` | Both Tyre and Gestalt converge on this split | High | Tyre, Gestalt |
| C-07 | Schema per content type | Per-type schemas, not monolithic | High | Tyre, Gestalt |
@@ -243,7 +243,7 @@
| **Gore** | 7 (P-01 through P-03, P-49 through P-51, P-28) | 1, 3, 6 | Thematic spine (complicity), FRIEND never proc-gen, cultural identity as mechanical resistance |
| **Gestalt** | 9 (P-04 through P-06, P-15 through P-17, P-41, P-52 through P-54) | 1, 2, 5, 6 | Triangle analysis, mechanical requirements, content directory, PC upgrade pipeline |
| **Paula** | 12 (P-07 through P-11, P-18, P-19, P-29 through P-31, P-58 through P-60) | 1, 2, 3, 6 | Smuggler lens gap, tier templates, naming analysis, PC conversion |
| **Miri** | 5 (P-26, P-27, P-33, P-38, P-39) | 3, 4 | Regional style guide template + Krenn brief, canonical_id, growth planning |
| **Miri** | 5 (P-26, P-27, P-33, P-38, P-39) | 3, 4 | Regional style guide template + Van Maanen's Star brief, canonical_id, growth planning |
| **Ozzie** | 5 (P-12 through P-14, P-61, P-62) | 1, 6 | Emotional gut-checks, NPC soul assessment, PC-as-NPC wow moments |
| **Mellanie** | 8 (P-20 through P-25, P-32, P-25) | 2, 3 | Authoring conventions, location shortcodes, environmental text catalog |
| **Nigel** | 5 (P-46 through P-48, P-55 through P-57) | 5, 6 | Mod pool_eligible, template role slots, three randomization axes |
@@ -258,7 +258,7 @@
- **Ozzie on Hael:** "Not Kael, not Sera — HAEL. The partner sitting in the bar, checking the door every time it opens. [...] THAT'S the game."
- **Paula on detective bias:** "The smuggler's content pipeline is systematically under-served compared to the detective's."
- **Gestalt on T1:** "The smuggler's role is 'caught between' — but what do they DO?"
- **Miri on naming drift:** "Nobody decided Krenn names should be short and consonant-heavy. But when Finnish, Estonian, and Latvian naming traditions blend in a working-class logistics culture that values directness, compression happens naturally."
- **Miri on naming drift:** "Nobody decided Van Maanen's Star names should be short and consonant-heavy. But when Finnish, Estonian, and Latvian naming traditions blend in a working-class logistics culture that values directness, compression happens naturally."
- **Mellanie on blocking dependency:** "I don't have a regional style brief to write against. [...] The brief is my blocking dependency."
- **Nigel on mods as replayability:** "Mods are replayability we don't have to build."
- **Ozzie on the wow moment:** "The wow moment isn't 'I read my backstory.' The wow moment is 'I HAVE a backstory and I'm discovering it the way I'd discover a real place — by living in it.'"
+7 -7
View File
@@ -8,7 +8,7 @@
### The Problem, Stated Precisely
We have 45 wiki files today. The v0.1 vertical slice has 1 system, 1 station, 1 district, 3 social sites, 17 NPCs. When we add a second system — or a second station in Krenn — every generic name collides. "The Terminal" exists on every logistics station. "Maintenance Corridors" is universal. "Drin" is a common enough name to recur.
We have 45 wiki files today. The v0.1 vertical slice has 1 system, 1 station, 1 district, 3 social sites, 17 NPCs. When we add a second system — or a second station in Van Maanen's Star — every generic name collides. "The Terminal" exists on every logistics station. "Maintenance Corridors" is universal. "Drin" is a common enough name to recur.
The question isn't *whether* to namespace. It's *how deep to nest* before the directory structure becomes a tax on contributors instead of an aid.
@@ -24,7 +24,7 @@ locations/
{location-slug}.md
```
Current state (`locations/krenn-system/the-terminal.md`) already follows this. Good. Don't go deeper.
Current state (`locations/van-maanens-star-system/the-terminal.md`) already follows this. Good. Don't go deeper.
Why not 3 levels (`locations/{system}/{station}/{slug}.md`)? Because:
- Tab-completing a 4-segment path is annoying. Contributors will get the nesting wrong.
@@ -37,7 +37,7 @@ If two locations in the same system share a slug (e.g., two stations both have "
```
locations/
krenn-system/
van-maanens-star-system/
the-terminal.md # Station Sova's logistics hub
the-last-shift.md
maintenance-corridors.md
@@ -60,7 +60,7 @@ npcs/
# If v0.2 introduces a second "Drin":
npcs/
drin.md # rename to drin-sova.md
drin-sova.md # Krenn System Drin (retroactive rename)
drin-sova.md # Van Maanen's Star Drin (retroactive rename)
drin-tavros.md # Tavros System Drin
```
@@ -85,12 +85,12 @@ I don't recommend this for v0.1 (17 NPCs, one district, unnecessary nesting). Bu
```
world/
krenn-system.md # links to station-sova.md
van-maanens-star-system.md # links to station-sova.md
station-sova.md # links to sova-transit-district.md
sova-transit-district.md # links to location pages
```
The spatial hierarchy lives in the *content* (wiki cross-links), not the *directory*. This is the same principle as Rule 1 — identity in content, navigation in paths. If we nested `world/krenn-system/station-sova/sova-transit-district.md`, contributors would drown in path segments. Three flat files with hyperlinks do the job better.
The spatial hierarchy lives in the *content* (wiki cross-links), not the *directory*. This is the same principle as Rule 1 — identity in content, navigation in paths. If we nested `world/van-maanens-star-system/station-sova/sova-transit-district.md`, contributors would drown in path segments. Three flat files with hyperlinks do the job better.
### Scaling Analysis
@@ -570,7 +570,7 @@ Total for full content pipeline: ~4.5 sprints. But we don't need all of it for v
| Wiki path | Content path | Notes |
|---|---|---|
| `wiki/npcs/kael-davan.md` | `content/districts/sova-transit/npcs/kael-davan.yaml` | NPC is district-scoped |
| `wiki/locations/krenn-system/the-terminal.md` | `content/districts/sova-transit/locations/the-terminal.yaml` | Location is district-scoped |
| `wiki/locations/van-maanens-star-system/the-terminal.md` | `content/districts/sova-transit/locations/the-terminal.yaml` | Location is district-scoped |
| `wiki/factions/lattice-commission.md` | `content/global/factions/lattice-commission.yaml` | Faction is global |
| `wiki/knowledge/fact-catalog.md` | `content/global/knowledge/facts.yaml` | All FactIds in one file |
| `wiki/authoring/monologue-guide.md` | N/A (authoring reference, not engine content) | Wiki-only |
+5 -5
View File
@@ -29,7 +29,7 @@ I read Tyre's proposal carefully. We agree on ~80% of the structure. Let me map
| Separate `dialogue/` and `monologue/` dirs | `lines/{location}/` with files inside | **Tyre wins: `lines/`** | Cleaner. `lines/terminal/dialogue.yaml` + `lines/terminal/monologue-smuggler.yaml` keeps everything per-location without parallel directory trees. |
| `triangles/` as standalone dir | `templates/` (social site defs that include triangle specs) | **Tyre wins: `templates/`** | Triangles are a property of social sites, not standalone objects. A triangle definition makes no sense without its template context. |
| `facts/` per district for local FactId instances | All facts in `global/knowledge/facts.yaml` | **I push back here.** See below. |
| `regions/` for style guides | Not addressed | **Add `global/regions/`** | Miri's Krenn brief needs a home. Regional style guides are global (same culture applies wherever that culture exists). |
| `regions/` for style guides | Not addressed | **Add `global/regions/`** | Miri's Van Maanen's Star brief needs a home. Regional style guides are global (same culture applies wherever that culture exists). |
| No manifest | `_meta/manifest.yaml` | **Tyre wins: add `_meta/`** | Needed for pack metadata, load order, versioning. |
### The Local Facts Question
@@ -96,7 +96,7 @@ content/
entity-attributes.yaml
relationship-states.yaml
regions/
krenn-system.yaml # Miri's regional style guide
van-maanens-star-system.yaml # Miri's regional style guide
districts/
sova-transit/
@@ -500,7 +500,7 @@ I still recommend one brief Nils comm interaction in v0.1 — even a text-only l
## 5. Routine Format + Cultural Patterns
My Round 1 proposed a structured `routine:` YAML block. Miri's Krenn brief introduces cultural patterns that the routine should accommodate: shift-end bar culture, kuum (transition drink), kolm (card game), 5+2 work cycles.
My Round 1 proposed a structured `routine:` YAML block. Miri's Van Maanen's Star brief introduces cultural patterns that the routine should accommodate: shift-end bar culture, kuum (transition drink), kolm (card game), 5+2 work cycles.
### The Problem
@@ -561,8 +561,8 @@ routine:
Under the Daily Routine section, AFTER the YAML block:
> **Cultural context (Krenn System):**
> - Kael's shift startup involves grabbing leib from the canteen and eating standing — Krenn workers don't sit for breakfast
> **Cultural context (Van Maanen's Star):**
> - Kael's shift startup involves grabbing leib from the canteen and eating standing — Van Maanen's Star workers don't sit for breakfast
> - Break at 10:30 is social: lunch with the smuggler (if applicable), shared kalaa and supp
> - "Shift-end" at the bar means ordering kuum first (the spiced transition drink), then switching to grain spirit if staying. Kael usually shifts to the bar 2-3 days per work cycle
> - Hael expects Kael home by 17:00 on non-bar days. Late arrivals trigger Hael's worry axis
+7 -7
View File
@@ -40,7 +40,7 @@ Nigel's three-column replayability table (Seed A/B/C) is the right vision. I'm s
## 2. Complicity, Culture, and Miri's Masterwork
Miri's Krenn System regional brief is the best work product in this workshop. I'm saying this not because it's detailed — though it is — but because it *explains why the game works mechanically*.
Miri's Van Maanen's Star regional brief is the best work product in this workshop. I'm saying this not because it's detailed — though it is — but because it *explains why the game works mechanically*.
### The cultural immune system, made concrete
@@ -56,7 +56,7 @@ This isn't cultural decoration. This is the *mechanical substrate* that makes th
| **Labor solidarity** ("Workers cover for each other — a late arrival is clocked in on time") | The ring operates inside a pre-existing culture of mutual cover | The detective can't find allies willing to break solidarity norms |
| **First-name-primary social context** (institutional identity deemphasized) | Authority feels like an imposition, not a service | The detective will be "hard-named" (surname) for the entire v0.1 — a constant social marker of outsider status |
| **Earned trust through shared labor and time** ("No shortcut — no credential, no introduction") | New arrivals (Olin, the detective) are treated with polite distance that can last months | The detective cannot fast-track trust. Institutional credentials *reduce* trust. |
| **Greeting conventions** ("Greeting a stranger is slightly aggressive — it demands engagement") | Social norms prevent casual inquiry | The detective will misread Krenn reserve as hostility |
| **Greeting conventions** ("Greeting a stranger is slightly aggressive — it demands engagement") | Social norms prevent casual inquiry | The detective will misread Van Maanen's Star reserve as hostility |
| **"Vakt" has been criminalized by usage** (Norwegian word for lookout, now ring operational slang) | The culture's own language has been co-opted by the criminal operation | Cultural substrate vocabulary creates insider/outsider speech markers |
### Complicity isn't just individual — it's cultural
@@ -65,17 +65,17 @@ Round 1, I argued the game's theme is complicity. Miri's brief reveals something
Nobody in Sova Transit District *decided* to protect the ring. The culture did it for them. "Mind your own business" predates the ring by a century. "Workers cover for each other" is a labor solidarity norm, not a criminal conspiracy. "Don't ask about someone's finances" is a privacy value, not an obstruction of justice.
The ring is a parasite on cultural virtues. That's what makes the moral calculus genuinely hard. The detective isn't just fighting criminals — they're fighting a community's *values*. Cracking the ring requires Krenn people to violate their own social norms: to volunteer information, to report a coworker, to cooperate with institutional authority, to use someone's surname in a context that signals betrayal. Every witness the detective turns is a person who has to *stop being Krenn* in the ways that matter.
The ring is a parasite on cultural virtues. That's what makes the moral calculus genuinely hard. The detective isn't just fighting criminals — they're fighting a community's *values*. Cracking the ring requires Van Maanen's Star people to violate their own social norms: to volunteer information, to report a coworker, to cooperate with institutional authority, to use someone's surname in a context that signals betrayal. Every witness the detective turns is a person who has to *stop being Van Maanen's Star* in the ways that matter.
**This is the game's deepest thematic claim: the same values that make a community good — solidarity, privacy, trust, loyalty — are the values that enable its exploitation.**
And the smuggler knows this. The smuggler doesn't exploit these values cynically. The smuggler IS these values. First-named, bar-regular, leib-eating, kolm-playing, "hüva"-saying, district-belonging. The smuggler's cover isn't a disguise. It's an identity. The smuggler IS Krenn. And Krenn, by being Krenn, protects the ring.
And the smuggler knows this. The smuggler doesn't exploit these values cynically. The smuggler IS these values. First-named, bar-regular, leib-eating, kolm-playing, "hüva"-saying, district-belonging. The smuggler's cover isn't a disguise. It's an identity. The smuggler IS Van Maanen's Star. And Van Maanen's Star, by being Van Maanen's Star, protects the ring.
### Mechanical expression
How does this play?
**Dialogue access tiers should encode cultural resistance.** Not just relationship-gated but culture-gated. Even a friendly NPC in Krenn culture doesn't discuss other people's business. The detective at `peer` access with Lera still can't get Lera to talk about Torek's spending — because in Krenn culture, talking about someone else's finances is hostile regardless of your relationship with the asker. The smuggler asking the same question gets a different response not because of trust level but because the smuggler is *from here* — the question lands differently in the cultural context.
**Dialogue access tiers should encode cultural resistance.** Not just relationship-gated but culture-gated. Even a friendly NPC in Van Maanen's Star culture doesn't discuss other people's business. The detective at `peer` access with Lera still can't get Lera to talk about Torek's spending — because in Van Maanen's Star culture, talking about someone else's finances is hostile regardless of your relationship with the asker. The smuggler asking the same question gets a different response not because of trust level but because the smuggler is *from here* — the question lands differently in the cultural context.
**Proposal:** Add a `cultural_gate` modifier to dialogue access. This isn't a new access tier — it's a modifier on existing tiers that reflects whether the asker is culturally inside or outside. The detective at `peer` with a cultural outsider modifier gets fewer disclosures than the smuggler at `peer` without it. Same access tier, different cultural context, different output.
@@ -225,7 +225,7 @@ The four questions the team lead asked me to address turn out to be one question
1. The FRIEND pool question is about whether emotional depth can be systematized. Answer: the system (pool selection) can be generalized. The content (authored lines, tells, contradiction beats) cannot. Emotion doesn't template.
2. The cultural identity question is about whether setting can do mechanical work. Answer: yes — Miri's Krenn culture IS the difficulty gradient, IS the social camouflage, IS the reason the ring survives. Culture is a game system, not a paint job.
2. The cultural identity question is about whether setting can do mechanical work. Answer: yes — Miri's Van Maanen's Star culture IS the difficulty gradient, IS the social camouflage, IS the reason the ring survives. Culture is a game system, not a paint job.
3. The smuggler lens gap is about whether moral experience can be modeled with the same tools as investigation. Answer: partly. The tools exist (attributes, monologue triggers, phased arcs). But the *vocabulary* needs to shift from information-discovery to cost-accounting. The smuggler's knowledge graph isn't "what I've found out" — it's "what I've become."
@@ -241,7 +241,7 @@ The four questions the team lead asked me to address turn out to be one question
| 2 | **FRIEND minimum depth: full Tier 1, no exceptions.** Every FRIEND candidate gets 70-100 authored lines, 5-phase arc, tell progression, dual-lens notes. | Content standard | The emotional payload requires authored specificity |
| 3 | **THE MIRROR pattern**: New NPC archetype — honest character with Tier 1 emotional depth but no contradiction arc, no secret, no tell system. Hael is the first MIRROR. | Design pattern | Fills a role the existing template system can't express |
| 4 | **Complicity as named theme**: The wiki index and design documents should explicitly name "complicity" as the game's thematic core, alongside "asymmetric information" as the mechanical core. | Thematic | Names what the game is about; anchors all content authoring |
| 5 | **Cultural gate modifier for dialogue access**: Regional culture modifies dialogue disclosure independently of relationship state. Krenn culture reduces disclosure to outsiders regardless of trust level. | Mechanic | Makes cultural identity mechanically load-bearing |
| 5 | **Cultural gate modifier for dialogue access**: Regional culture modifies dialogue disclosure independently of relationship state. Van Maanen's Star culture reduces disclosure to outsiders regardless of trust level. | Mechanic | Makes cultural identity mechanically load-bearing |
| 6 | **Smuggler moral arc vocabulary**: Add moral-weight attributes (`moral_weight`, `cover_integrity`, `loyalty_conflict`, `trust_read`) and smuggler-specific monologue triggers (`moral_pang`, `loyalty_test`) to the content spec. | Content spec | Gives the smuggler experience mechanical parity with the detective |
| 7 | **"Thematic Question" field in NPC profiles**: Each NPC's answer to "Is this enough?" — authoring guidance that connects every character to the game's philosophical spine. | Style guide | Ensures content authors write to the theme, not just the mechanics |
+10 -10
View File
@@ -6,7 +6,7 @@
## 1. Environmental Text — Concrete Examples Using Miri's Brief
Miri delivered. The Krenn brief gives me everything I needed: substrate vocabulary, food names, greeting conventions, graffiti style, social register rules. I can write now. Here are worked examples for four environmental text types.
Miri delivered. The Van Maanen's Star brief gives me everything I needed: substrate vocabulary, food names, greeting conventions, graffiti style, social register rules. I can write now. Here are worked examples for four environmental text types.
### Bar Menu — The Last Shift
@@ -27,7 +27,7 @@ Card game: corner booth, 19:00
Ask Sess.
```
**Authoring notes:** No descriptions. Krenn culture doesn't explain food — you know what supp is or you ask. Prices in small denominations (working-class bar, not a restaurant). Kuum is shift-end culture — the drink that says "I'm off the clock." The card game note is handwritten, informal, part of the furniture. The detective reads this menu and learns nothing. The smuggler reads it and sees home.
**Authoring notes:** No descriptions. Van Maanen's Star culture doesn't explain food — you know what supp is or you ask. Prices in small denominations (working-class bar, not a restaurant). Kuum is shift-end culture — the drink that says "I'm off the clock." The card game note is handwritten, informal, part of the furniture. The detective reads this menu and learns nothing. The smuggler reads it and sees home.
**Monologue pairing:**
- Smuggler: *"Same menu. Lera hasn't changed the prices in a year. The supp's better than it has any right to be."*
@@ -50,7 +50,7 @@ Report concerns: Commission Kiosk, Level 3.
Reg. LC-2041-Sova | Posted per Concordat Standard §14.7
```
Small. Regulatory-standard formatting. Corner of a wall by the entrance, partially obscured by a freight schedule pinned over it. Nobody reads it. The fact that it's half-covered IS the cultural detail — Krenn compliance with Commission regulation is perfunctory, not enthusiastic.
Small. Regulatory-standard formatting. Corner of a wall by the entrance, partially obscured by a freight schedule pinned over it. Nobody reads it. The fact that it's half-covered IS the cultural detail — Van Maanen's Star compliance with Commission regulation is perfunctory, not enthusiastic.
**Monologue pairing:**
- Smuggler: *"Still there. Nobody's read that notice since they posted it. Probably not even Sera."*
@@ -99,7 +99,7 @@ Same headline. One sees bureaucratic noise. The other sees a potential tool.
perk this schedule
```
Sparse. Functional. Krenn graffiti isn't art — it's communication. `DK 04.12 — checked` is a maintenance worker's mark (initials + date). `kylm` is someone complaining the ventilation is broken again — heritage word used reflexively. The folk-pattern sticker is heritage expression, dying out but present. `vakt 22:30` is operational — a lookout time, ring-adjacent, written where only people who use the corridor would see it. `perk this schedule` is universal dock-worker frustration.
Sparse. Functional. Van Maanen's Star graffiti isn't art — it's communication. `DK 04.12 — checked` is a maintenance worker's mark (initials + date). `kylm` is someone complaining the ventilation is broken again — heritage word used reflexively. The folk-pattern sticker is heritage expression, dying out but present. `vakt 22:30` is operational — a lookout time, ring-adjacent, written where only people who use the corridor would see it. `perk this schedule` is universal dock-worker frustration.
**Monologue pairing:**
- Smuggler: *"Vakt at twenty-two thirty. Someone's running tonight. Not our schedule."*
@@ -151,7 +151,7 @@ Paula proposed formal tier templates (structural spec for Tier 1/2/3 profiles).
## Part 3: Regional Culture
3.1 Regional Style Guide Template (Miri)
3.2 Krenn System Brief (Miri) — cross-ref to wiki/cultural-groups/
3.2 Van Maanen's Star Brief (Miri) — cross-ref to wiki/cultural-groups/
3.3 Environmental Text Type Catalog (Mellanie)
## Part 4: Content Pipeline
@@ -201,7 +201,7 @@ The detective sees a logistics hub. The smuggler sees the place where Kael works
situation: [arrival, shift_start]
```
Smuggler uses Krenn substrate vocabulary (`kylm`), predicts a specific person's mood from an environmental cue, speaks in fragments. Detective counts heads and categorizes spatial layout. Same room. Different languages.
Smuggler uses Van Maanen's Star substrate vocabulary (`kylm`), predicts a specific person's mood from an environmental cue, speaks in fragments. Detective counts heads and categorizes spatial layout. Same room. Different languages.
---
@@ -231,7 +231,7 @@ Smuggler uses Krenn substrate vocabulary (`kylm`), predicts a specific person's
subject: torek_lintar
```
Smuggler uses the Krenn slang: `ticking` (drawing institutional attention). One word carries the whole cultural norm — don't be visible. It's not analysis, it's instinct. Concern, not curiosity. The smuggler cares because Torek's visibility endangers the community.
Smuggler uses the Van Maanen's Star slang: `ticking` (drawing institutional attention). One word carries the whole cultural norm — don't be visible. It's not analysis, it's instinct. Concern, not curiosity. The smuggler cares because Torek's visibility endangers the community.
Detective uses the surname (`Lintar`), counts drinks, identifies the brand tag, and runs the math. Income vs. expenditure. Clinical. The detective doesn't care about Torek — the detective cares about the anomaly.
@@ -273,10 +273,10 @@ Detective sees the same behavior and asks the question. No names (the detective
| **Names NPCs** | First name, always | Surname or role descriptor until relationship forms |
| **Sentence style** | Fragments. Rhythmic. Breath-length. | Complete. Clipped. Controlled. |
| **Emotional register** | Fond, worried, protective, guilty | Analytical, suspicious, conflicted, clinical |
| **Cultural markers** | Uses Krenn substrate (kylm, perk, ticking, hüva) | Uses institutional vocabulary (filing, noted, behavioral inconsistency) |
| **Cultural markers** | Uses Van Maanen's Star substrate (kylm, perk, ticking, hüva) | Uses institutional vocabulary (filing, noted, behavioral inconsistency) |
| **Default mood** | Comfortable (pre-contradiction), concerned (post) | Analytical (pre-contradiction), conflicted (post) |
| **What they notice first** | Who's here, who's missing, who's tense | What's out of pattern, what doesn't add up |
| **Heritage language** | Fluent in Krenn slang — it's their first language | Doesn't use it — institutional outsider |
| **Heritage language** | Fluent in Van Maanen's Star slang — it's their first language | Doesn't use it — institutional outsider |
---
@@ -348,7 +348,7 @@ Put this in the style guide as a review checkpoint, not a writing rule. You can'
| # | Proposal | Status |
|---|----------|--------|
| 1 | Four environmental text types with concrete Krenn-voiced examples | Delivered above — bar menu, safety notice, news ticker, graffiti |
| 1 | Four environmental text types with concrete Van Maanen's Star-voiced examples | Delivered above — bar menu, safety notice, news ticker, graffiti |
| 2 | Combined style guide structure (Paula templates + my conventions + Gestalt constraints + Miri regional) | Proposed TOC above |
| 3 | Smuggler voice card with paired examples showing dual-lens cultural register | Delivered above — three pairs + summary table |
| 4 | Anchor line requirement per tier (operationalizing Ozzie's gut-check rule) | Proposed with tier-specific application + practical test |
+44 -44
View File
@@ -6,11 +6,11 @@
## 1. Full Canonical Names for All NPCs
Paula is right: single-name NPCs metagame as "less important." Every NPC in the Krenn System has a full canonical name. The game surfaces them in lattice queries, manifests, posted schedules, and Commission records. Social contexts use first names only — the full name is canonical data, not social data.
Paula is right: single-name NPCs metagame as "less important." Every NPC in Van Maanen's Star has a full canonical name. The game surfaces them in lattice queries, manifests, posted schedules, and Commission records. Social contexts use first names only — the full name is canonical data, not social data.
### Naming principles applied
From the Round 1 Krenn brief:
From the Round 1 Van Maanen's Star brief:
- **First names:** 1-2 syllables, consonant-forward, vowels toward a/e/o
- **Surnames:** 2 syllables, endings from the heritage pool: -an, -en, -ik, -ar, -ev, -mm, -sk, -ur, -ak
- **Dutch/Norwegian-origin surnames** (Voss, Nils, Sabel) survived closer to source — slightly "higher status" feel
@@ -27,16 +27,16 @@ From the Round 1 Krenn brief:
| **Torek Lintar** | *(unchanged)* | Established. Lintar is Latvian-influenced. |
| **Devra** | **Devra Talsen** | "Talsen" — Latvian-influenced (from Talsi). Ring coordinator with a name that suggests roots in the system's earlier settlement wave. |
| **Maret Korr** | *(unchanged)* | Established. Korr is Finnish-origin (from Korhonen). |
| **Resha** | **Resha Neven** | "Neven" — blended surname, softer than most Krenn names. Fits a new hire who hasn't been compressed by the culture yet. |
| **Resha** | **Resha Neven** | "Neven" — blended surname, softer than most Van Maanen's Star names. Fits a new hire who hasn't been compressed by the culture yet. |
| **Hael** | **See Section 2 below — rename proposed.** | |
| **Harek** | **Harek Valde** | "Valde" — from Latvian "Valdis." Fits an ex-security person. Slightly formal sound. |
| **Renn** | **Renn Harsk** | "Harsk" — short, sharp. Fits a courier. The detective's lattice query: "Harsk, R. — Logistics Associate, Sova Consortium." |
| **Pell** | **Pell Torssen** | "Torssen" — fossilized patronymic (Norwegian-origin). A name that sounds slightly old-fashioned, fitting for someone whose family has been on Krenn for generations. Pell's wavering loyalty reads differently if you know his family has deep roots. |
| **Drin** | **Drin Rosta** | "Rosta" — from the founding-era naming pool. Maintenance tech with an old Krenn name. |
| **Pell** | **Pell Torssen** | "Torssen" — fossilized patronymic (Norwegian-origin). A name that sounds slightly old-fashioned, fitting for someone whose family has been on Van Maanen's Star for generations. Pell's wavering loyalty reads differently if you know his family has deep roots. |
| **Drin** | **Drin Rosta** | "Rosta" — from the founding-era naming pool. Maintenance tech with an old Van Maanen's Star name. |
| **Sess** | **Sess Kolvur** | "Kolvur" — mixed-heritage, Estonian "kol-" + drift suffix. The bartender with the longest surname in the room — and nobody ever uses it. |
| **Olin** | **Olin Tavren** | "Tavren" — deliberately longer and slightly off-pattern for Krenn. This is a tell: Olin's surname doesn't fit local convention as cleanly as the others. It could signal off-system origin, or it could be a family name from Krenn Prime rather than the station-culture pool. The ambiguity is load-bearing for Olin's ambiguous newcomer status. |
| **Sabel** | **Sabel Hersk** | "Hersk" — Norwegian-influenced, short. Off-station fence with a name that sounds Krenn-adjacent but could belong to any of three connected systems. |
| **Tav** | **Tav Merik** | "Merik" — Estonian-influenced. The youngest ring member with a perfectly ordinary Krenn name. Nothing about his name draws attention. That's the point — Tav is invisible by design. |
| **Olin** | **Olin Tavren** | "Tavren" — deliberately longer and slightly off-pattern for Van Maanen's Star. This is a tell: Olin's surname doesn't fit local convention as cleanly as the others. It could signal off-system origin, or it could be a family name from Van Maanen's Star Prime rather than the station-culture pool. The ambiguity is load-bearing for Olin's ambiguous newcomer status. |
| **Sabel** | **Sabel Hersk** | "Hersk" — Norwegian-influenced, short. Off-station fence with a name that sounds Van Maanen's Star-adjacent but could belong to any of three connected systems. |
| **Tav** | **Tav Merik** | "Merik" — Estonian-influenced. The youngest ring member with a perfectly ordinary Van Maanen's Star name. Nothing about his name draws attention. That's the point — Tav is invisible by design. |
| **Nils Davan** | *(already established, off-stage)* | Shares surname with Kael (siblings). |
### Where full names surface in gameplay
@@ -71,9 +71,9 @@ Kael is THE FRIEND for the smuggler. Hael is the emotional fulcrum (Gore's asses
**Proposed new name: Naia.**
- **Phonetics:** Two syllables, open vowels, clearly distinct from "Kael." No confusion possible.
- **Heritage:** Finnish/Estonian-origin (from Naima/Naia). Fits Krenn phonetic patterns — open, consonant-light, slightly softer than most Krenn names. This softness is appropriate: Naia is a teacher, not a dock worker. The name carries a different register than the hard-consonant logistics names around it, which subtly signals Naia's position as a civilian in a working-class district. Not out of place — just from a slightly different layer of Krenn culture.
- **Heritage:** Finnish/Estonian-origin (from Naima/Naia). Fits Van Maanen's Star phonetic patterns — open, consonant-light, slightly softer than most Van Maanen's Star names. This softness is appropriate: Naia is a teacher, not a dock worker. The name carries a different register than the hard-consonant logistics names around it, which subtly signals Naia's position as a civilian in a working-class district. Not out of place — just from a slightly different layer of Van Maanen's Star culture.
- **Full name: Naia Tamm.** "Tamm" — Estonian-origin (tamm = oak). Short, solid, grounding.
- **Setting justification:** Naia is a teacher at the station school. Teachers tend to come from the residential population rather than the logistics workforce. Residential Krenn names draw more from the Finnish/Estonian pool and less from the compressed dock-worker style. This is a subtle generational and class distinction that enriches the setting without being remarked upon.
- **Setting justification:** Naia is a teacher at the station school. Teachers tend to come from the residential population rather than the logistics workforce. Residential Van Maanen's Star names draw more from the Finnish/Estonian pool and less from the compressed dock-worker style. This is a subtle generational and class distinction that enriches the setting without being remarked upon.
**What changes:**
- Every reference to "Hael" in the wiki becomes "Naia"
@@ -86,7 +86,7 @@ Kael is THE FRIEND for the smuggler. Hael is the emotional fulcrum (Gore's asses
---
## 3. Environmental Text Examples in Krenn Register
## 3. Environmental Text Examples in Van Maanen's Star Register
Mellanie needs concrete examples to write against. Here are four, with cultural reasoning.
@@ -120,7 +120,7 @@ NO TABS OVER 50. YOU KNOW WHO YOU ARE.
- "Lera's plate" is the daily special. Nobody asks what it is. It's whatever Lera made. Ordering it is a trust signal — you trust the cook.
- Import ale is 2.4x the price of station ale. This makes it a visible status purchase. When Torek buys import ales for the table, people notice. That price differential IS the financial tell.
- "NO TABS OVER 50" — Lera's voice. Direct, no-nonsense, with a needle aimed at specific regulars. This line tells you more about the bar's social contract than any description could.
- No ingredient lists, no allergen warnings, no Meridian-linked nutritional data. This is a Krenn establishment. You eat what's served.
- No ingredient lists, no allergen warnings, no Meridian-linked nutritional data. This is a Van Maanen's Star establishment. You eat what's served.
### 3b. Safety Notice (Hub Wall, Near Scanner Bays)
@@ -147,9 +147,9 @@ or via Meridian channel LC-COMPLIANCE-KRENN.
```
**Cultural notes:**
- Institutional language. Concordat Standard. No Krenn vernacular on Commission documents.
- Institutional language. Concordat Standard. No Van Maanen's Star vernacular on Commission documents.
- The penalty range (2,000-15,000 credits) means a Category 3 fine could wipe out 10 months of a dock worker's margin income. This is not abstract — every worker who reads this (and they have) knows exactly what it means for someone earning 2,400/month with 200 margin. The fine is designed to be ruinous. That's the point. That's why the ring exists.
- "Report suspected violations" — this line is doing heavy thematic lifting. In Krenn culture, reporting is a violation of the mind-your-business norm. The Commission asks workers to do something their culture considers hostile. The notice has been up for years. Nobody has ever used channel LC-COMPLIANCE-KRENN from this district.
- "Report suspected violations" — this line is doing heavy thematic lifting. In Van Maanen's Star culture, reporting is a violation of the mind-your-business norm. The Commission asks workers to do something their culture considers hostile. The notice has been up for years. Nobody has ever used channel LC-COMPLIANCE-KRENN from this district.
- The notice is posted next to the shift schedule. Workers see it every day. It's wallpaper. The detective sees it and thinks "compliance infrastructure." The smuggler sees through it — it's the cost-of-doing-business calculation made literal.
- The tag line — "Protecting Neural Integrity" — is Commission branding. Workers have opinions about this phrase. None of them are positive.
@@ -207,8 +207,8 @@ Sparse. Functional. Layers of age. Not artistic — operational and human.
- **Maintenance markers** are the oldest layer. "K.T. 2193" — a worker's initials and the year. These are navigational. They're also the only record that someone named K.T. was here 30 years ago. The corridor remembers.
- **"still kylm in sector 3"** — heritage substrate word in casual complaint. Nobody writing this was making a cultural statement. They were cold and annoyed. The word survived because it's what you say when you're cold.
- **The diamond mark (◇)** — a ring symbol. Meaningless to anyone who doesn't know. The detective, if they map the marks to the dead drop locations, can build a pattern. The smuggler walks past it without thinking. It's like a doorbell — functional, invisible to anyone who isn't looking for it.
- **"Talvik promised us quarters by '98"** — heritage corporate reference. Talvik Logistics (founding Syndic, absorbed ~120 years ago) apparently promised worker housing that never materialized. The complaint is 19 years old. The bitterness persists. This is Krenn heritage showing through: not in celebration, but in grievance. The workers remember what they were promised.
- **"the floor debates. we breathe recycled air."** — "the floor" is local slang for the Assembly (from my Round 1 brief). This is political expression in its most compressed Krenn form: two facts, placed side by side, the juxtaposition doing all the work. No argument. No demand. Just: they talk, we breathe. Draw your own conclusion.
- **"Talvik promised us quarters by '98"** — heritage corporate reference. Talvik Logistics (founding Syndic, absorbed ~120 years ago) apparently promised worker housing that never materialized. The complaint is 19 years old. The bitterness persists. This is Van Maanen's Star heritage showing through: not in celebration, but in grievance. The workers remember what they were promised.
- **"the floor debates. we breathe recycled air."** — "the floor" is local slang for the Assembly (from my Round 1 brief). This is political expression in its most compressed Van Maanen's Star form: two facts, placed side by side, the juxtaposition doing all the work. No argument. No demand. Just: they talk, we breathe. Draw your own conclusion.
---
@@ -216,23 +216,23 @@ Sparse. Functional. Layers of age. Not artistic — operational and human.
Gore's Round 1 insight is exactly right: the mind-your-business ethos IS the ring's security model. Let me ground this in the heritage and map it to the access tier system.
### Heritage roots of the Krenn privacy norm
### Heritage roots of the Van Maanen's Star privacy norm
The Nordic-Baltic founding cluster brought three converging cultural traits:
1. **Finnish *sisu*** — a concept roughly meaning "stoic determination" or "grim endurance." In Krenn drift, this became the expectation that you handle your problems without involving others. Asking for help is not weak, but burdening others with your business is rude.
1. **Finnish *sisu*** — a concept roughly meaning "stoic determination" or "grim endurance." In Van Maanen's Star drift, this became the expectation that you handle your problems without involving others. Asking for help is not weak, but burdening others with your business is rude.
2. **Estonian *maarahvas* identity** — literally "land people," the historical Estonian self-concept of being practical, quiet, self-reliant rural folk. On a station, this became: you work, you go home, you don't make noise. The contrast with institutional authority (historically Russian/German overlords for Estonians) maps directly onto the Krenn attitude toward the Commission — a distant authority that doesn't understand local life.
2. **Estonian *maarahvas* identity** — literally "land people," the historical Estonian self-concept of being practical, quiet, self-reliant rural folk. On a station, this became: you work, you go home, you don't make noise. The contrast with institutional authority (historically Russian/German overlords for Estonians) maps directly onto the Van Maanen's Star attitude toward the Commission — a distant authority that doesn't understand local life.
3. **Scandinavian *janteloven*** — the "law of Jante," the social norm against standing out or claiming superiority. In Krenn drift, this became: visible wealth is suspicious, self-promotion is distasteful, and the worst thing you can do is act like you're better than your neighbors. This is why Torek's spending is a social violation before it's a criminal tell — he's breaking *janteloven* by being visibly affluent.
3. **Scandinavian *janteloven*** — the "law of Jante," the social norm against standing out or claiming superiority. In Van Maanen's Star drift, this became: visible wealth is suspicious, self-promotion is distasteful, and the worst thing you can do is act like you're better than your neighbors. This is why Torek's spending is a social violation before it's a criminal tell — he's breaking *janteloven* by being visibly affluent.
These three currents merged over 180 years into the Krenn norm: **privacy is the default, solidarity is assumed, and authority is external.** Nobody codified it. It's how people raise their children. It's what "being from here" means.
These three currents merged over 180 years into the Van Maanen's Star norm: **privacy is the default, solidarity is assumed, and authority is external.** Nobody codified it. It's how people raise their children. It's what "being from here" means.
### How this maps to dialogue access tiers (D-028 Layer 1)
Gore is right that this isn't flavor — it's mechanical. Here's the mapping:
| Access Tier | Cultural Interpretation in Krenn | Who Gets It | Examples |
| Access Tier | Cultural Interpretation in Van Maanen's Star | Who Gets It | Examples |
|-------------|--------------------------------|-------------|---------|
| **public** | What you'd say to anyone in earshot. Safe topics. Weather (ventilation), work complaints, sport results. | Everyone, including the detective from day one. | "The ventilation in Sector 3 is still broken." / "Did you see the match last night?" |
| **peer** | What you'd say to someone you work with. Shift gossip, mild complaints about Voss, opinions about food. NOT anything about income, relationships, or the ring. | Workers who share shift time. The smuggler from day one. The detective only after weeks of consistent, non-threatening presence. | "Voss is on one today." / "Maret's been quiet. Hope she's alright." |
@@ -242,13 +242,13 @@ Gore is right that this isn't flavor — it's mechanical. Here's the mapping:
### The detective's progression challenge
In Krenn culture, the detective's Commission credentials guarantee **authority** access — which is the *least useful* tier for investigation. NPCs in authority mode answer questions technically and volunteer nothing. The cultural norm actively works against institutional investigation.
In Van Maanen's Star culture, the detective's Commission credentials guarantee **authority** access — which is the *least useful* tier for investigation. NPCs in authority mode answer questions technically and volunteer nothing. The cultural norm actively works against institutional investigation.
To get **peer** access, the detective must:
- Be consistently present (same bar, same shift transitions, same routines)
- Not push (asking direct questions about other people is rude; the detective must learn to listen, not interrogate)
- Demonstrate that they are a person, not just a role (use first name, order from the menu, comment on the ventilation)
- Wait. In Krenn culture, trust accrues with time, not gestures.
- Wait. In Van Maanen's Star culture, trust accrues with time, not gestures.
To get **insider** access, the detective would need:
- Someone to vouch for them (Sera might, for specific NPCs — but Sera is hiding things, so her vouching is compromised)
@@ -259,7 +259,7 @@ The detective's investigation timeline doesn't allow for natural trust-building.
### The smuggler's embedded advantage
The smuggler starts at **peer** minimum for all Hub and Bar NPCs, and **insider** for ring members. This isn't a status effect — it's the natural result of having lived here, worked here, and earned trust the Krenn way: through shared labor and shared time.
The smuggler starts at **peer** minimum for all Hub and Bar NPCs, and **insider** for ring members. This isn't a status effect — it's the natural result of having lived here, worked here, and earned trust the Van Maanen's Star way: through shared labor and shared time.
The smuggler's challenge is maintaining these tiers. If the investigation pressures the community, NPCs might withdraw from **peer** to **public** even with the smuggler — not because they distrust the smuggler, but because the cultural response to external threat is to close ranks and share less with everyone. "Kylm in Sector 3" conversations increase. Real talk decreases. The smuggler feels the chill.
@@ -288,9 +288,9 @@ Map the region's social norms to the five dialogue access tiers:
---
## 5. Wiki Structure — Where the Krenn Brief Lives
## 5. Wiki Structure — Where the Van Maanen's Star Brief Lives
**Confirmed: `wiki/cultural-groups/krenn-system.md`.**
**Confirmed: `wiki/cultural-groups/van-maanens-star-system.md`.**
Per D-040, `wiki/cultural-groups/` is the designated home for regional style guides. The directory exists in the taxonomy but is currently empty.
@@ -300,21 +300,21 @@ Per D-040, `wiki/cultural-groups/` is the designated home for regional style gui
wiki/
cultural-groups/
_template.md # The regional style guide template (Part A from my Round 1)
krenn-system.md # The Krenn System brief (Part B from my Round 1, updated per Round 2)
van-maanens-star-system.md # Van Maanen's Star brief (Part B from my Round 1, updated per Round 2)
```
**YAML frontmatter for `krenn-system.md`:**
**YAML frontmatter for `van-maanens-star-system.md`:**
```yaml
---
canonical_id: krenn-system.culture
canonical_id: van-maanens-star-system.culture
type: cultural-group
region: krenn-system
region: van-maanens-star-system
status: canonical
created: 2026-02-12
updated: 2026-02-12
cross_references:
- krenn-system.star-system
- van-maanens-star-system.star-system
- sova.station
- sova-transit.district
---
@@ -324,7 +324,7 @@ cross_references:
```markdown
### Cultural Groups (Regional Style Guides)
- [Krenn System](cultural-groups/krenn-system.md) — Nordic-Baltic heritage, 180 years settled
- [Van Maanen's Star](cultural-groups/van-maanens-star-system.md) — Nordic-Baltic heritage, 180 years settled
```
When v0.2 adds systems, new briefs follow the template and slot into this directory. The pattern is established.
@@ -335,13 +335,13 @@ When v0.2 adds systems, new briefs follow the template and slot into this direct
### To Gore (complicity as theme)
Your framing of complicity is excellent and it enriches the cultural analysis. The Krenn mind-your-business norm isn't just a social habit — it's complicity infrastructure. "Not asking" is a form of participation. Every resident who doesn't report Torek's spending, doesn't question Voss's schedule changes, doesn't follow Kael to Corridor B-7 — they're all making a choice. The culture makes that choice feel like the default, like not-choosing, like minding your own business. But it IS a choice. And the detective's arrival forces the community to see it as one.
Your framing of complicity is excellent and it enriches the cultural analysis. The Van Maanen's Star mind-your-business norm isn't just a social habit — it's complicity infrastructure. "Not asking" is a form of participation. Every resident who doesn't report Torek's spending, doesn't question Voss's schedule changes, doesn't follow Kael to Corridor B-7 — they're all making a choice. The culture makes that choice feel like the default, like not-choosing, like minding your own business. But it IS a choice. And the detective's arrival forces the community to see it as one.
Your "Thematic Question" proposal ("Is this enough?") should be connected to the regional brief. In Krenn culture, the answer to "Is this enough?" is shaped by the *janteloven* drift: wanting more is suspect. Being satisfied with what you have is the cultural expectation. But the economic squeeze (200 credit margin) means satisfaction is a lie — or a performance. The cultural norm says "this is enough." The bank account says otherwise. That tension between cultural contentment and economic reality is the soil the ring grows in.
Your "Thematic Question" proposal ("Is this enough?") should be connected to the regional brief. In Van Maanen's Star culture, the answer to "Is this enough?" is shaped by the *janteloven* drift: wanting more is suspect. Being satisfied with what you have is the cultural expectation. But the economic squeeze (200 credit margin) means satisfaction is a lie — or a performance. The cultural norm says "this is enough." The bank account says otherwise. That tension between cultural contentment and economic reality is the soil the ring grows in.
### To Ozzie (environmental texture as wow factor)
Your instinct about texture over naming conventions is exactly right. The names establish phonetic identity. The food, the slang, the complaints, the graffiti — that's what makes Krenn feel *lived in*. The environmental text examples above are my direct answer to your Round 1 ask: "What do people eat? What's the local slang? What do they complain about?"
Your instinct about texture over naming conventions is exactly right. The names establish phonetic identity. The food, the slang, the complaints, the graffiti — that's what makes Van Maanen's Star feel *lived in*. The environmental text examples above are my direct answer to your Round 1 ask: "What do people eat? What's the local slang? What do they complain about?"
The "Talvik promised us quarters by '98 / still waiting" graffiti is the kind of detail that rewards the player who reads walls. The smuggler walks past it — it's part of the background. The detective who reads it and queries "Talvik" in the Meridian learns about the founding Syndic, the economic history, and why workers here have a long memory for broken promises. That's environmental storytelling through cultural specificity.
@@ -349,16 +349,16 @@ The "Talvik promised us quarters by '98 / still waiting" graffiti is the kind of
Full names provided above. The naming phonological rules from my Round 1 brief are now validated against all 17 NPCs. Everything fits. The one drift I want to note: Olin Tavren's slightly off-pattern surname is deliberate. If Olin is from off-system (or pretending to be), a name that doesn't quite fit local convention is itself a clue. The detective's pattern recognition should flag this, eventually.
I've also provided the heritage basis for each surname so content authors can generate new Krenn names by following the same roots. When we need NPC #18 or #25 or #100, the rules are documented.
I've also provided the heritage basis for each surname so content authors can generate new Van Maanen's Star names by following the same roots. When we need NPC #18 or #25 or #100, the rules are documented.
### To Mellanie (environmental text unblocked)
The four examples above (menu, safety notice, ticker, graffiti) should give you enough cultural register to begin writing the full environmental text catalog. Key reference points from the Krenn brief you'll use most:
The four examples above (menu, safety notice, ticker, graffiti) should give you enough cultural register to begin writing the full environmental text catalog. Key reference points from the Van Maanen's Star brief you'll use most:
- **Substrate vocabulary** (Round 1, Section 3b): supp, kalaa, leib, kuum, perk, kylm, hüva, selge, käik, laev
- **Slang** (Round 1, Section 3b): shift-end, gate-side, wall-side, ticking, quiet credit, hard name
- **Profanity**: perk (emphatic), gate-rot (bullshit)
- **Sign register**: Krenn official = terse/functional. Informal (Lera's) = hand-lettered, personality. Commission = institutional, formal, ignored.
- **Sign register**: Van Maanen's Star official = terse/functional. Informal (Lera's) = hand-lettered, personality. Commission = institutional, formal, ignored.
- **Food and drink**: grain spirit, station ale, import ale, kuum, supp, kalaa, leib, protein plate
If you need more vocabulary or specific cultural references for a particular text type, ask — I can extend the brief for any domain.
@@ -367,13 +367,13 @@ If you need more vocabulary or specific cultural references for a particular tex
Your "filesystem is navigation, not identity" principle aligns with my `canonical_id` proposal. I'm not suggesting we change Tyre's directory structure — his `locations/{system}/{slug}.md` is correct. The `canonical_id` lives in YAML frontmatter, not in the path. Tyre's Rule 1 (max 2 levels) holds.
One addition: the content directory should include `content/global/regions/krenn-system.yaml` (per Gestalt's proposed structure). This is the machine-readable version of the cultural brief — naming phonological rules as generation parameters, substrate vocabulary as tagged word pools, access tier cultural profile as dialogue selection weights.
One addition: the content directory should include `content/global/regions/van-maanens-star-system.yaml` (per Gestalt's proposed structure). This is the machine-readable version of the cultural brief — naming phonological rules as generation parameters, substrate vocabulary as tagged word pools, access tier cultural profile as dialogue selection weights.
### To Gestalt (routine axis + cultural constraints)
Your observation that routine is the most mechanically overloaded axis connects directly to the cultural brief. In Krenn culture, routine IS identity. Deviation from routine is the primary tell — not because Krenn people are rigid, but because the culture values predictability as a form of social contract. "Kael is always at the dock by 0600" is both a schedule entry and a trust statement. When Kael starts arriving late, the routine deviation is visible not just mechanically but socially — everyone notices because the culture expects consistency.
Your observation that routine is the most mechanically overloaded axis connects directly to the cultural brief. In Van Maanen's Star culture, routine IS identity. Deviation from routine is the primary tell — not because Van Maanen's Star people are rigid, but because the culture values predictability as a form of social contract. "Kael is always at the dock by 0600" is both a schedule entry and a trust statement. When Kael starts arriving late, the routine deviation is visible not just mechanically but socially — everyone notices because the culture expects consistency.
This means: the routine axis for Krenn NPCs should reflect higher regularity than NPCs from cultures with more flexible social expectations. A future system settled by a more individualistic cultural cluster might have NPCs with looser routines, making deviation detection harder. The cultural brief informs the mechanical parameters.
This means: the routine axis for Van Maanen's Star NPCs should reflect higher regularity than NPCs from cultures with more flexible social expectations. A future system settled by a more individualistic cultural cluster might have NPCs with looser routines, making deviation detection harder. The cultural brief informs the mechanical parameters.
---
@@ -385,14 +385,14 @@ This means: the routine axis for Krenn NPCs should reflect higher regularity tha
| 2 | Rename Hael → Naia Tamm (phonetic collision fix) | Ready for decision | Requires find-replace in ~8 wiki files |
| 3 | Four environmental text examples (menu, notice, ticker, graffiti) | Delivered | Unblocks Mellanie |
| 4 | Access tier cultural profile as required section in regional style guide | Ready for decision | Amendment to Round 1 template |
| 5 | Cultural brief location: `wiki/cultural-groups/krenn-system.md` | Confirmed | Index update needed |
| 5 | Cultural brief location: `wiki/cultural-groups/van-maanens-star-system.md` | Confirmed | Index update needed |
| 6 | Olin Tavren's off-pattern surname as deliberate ambiguity signal | Setting note | Accepted or rejected with name table |
### New tickets for SI (if proposals adopted):
- Apply full canonical names to all NPC wiki pages (find-replace per name table)
- Rename Hael → Naia across all wiki files (if approved)
- Create `wiki/cultural-groups/krenn-system.md` from Round 1 + Round 2 content
- Create `wiki/cultural-groups/van-maanens-star-system.md` from Round 1 + Round 2 content
- Create `wiki/cultural-groups/_template.md` from Round 1 template + Round 2 Section 5c addition
- Add Cultural Groups section to `wiki/index.md`
- Create environmental text examples file: `wiki/authoring/environmental-text-examples.md`
+3 -3
View File
@@ -158,13 +158,13 @@ This is the record of what the randomizer decided. It's saved with the game stat
### I'm walking this back. Partially.
Gore is right that the game is about complicity, and the specific contraband type is load-bearing for the moral texture. Miri's Krenn brief is beautiful and culturally specific — the Commission regulation of lattice components isn't arbitrary, it's locally embedded. "The Commission regulates lattice tech" → "people can't afford upgrades" → "the ring exists because the system fails" → "pragmatic Krenn culture doesn't moralize about how needs get met." That chain only works for lattice components.
Gore is right that the game is about complicity, and the specific contraband type is load-bearing for the moral texture. Miri's Van Maanen's Star brief is beautiful and culturally specific — the Commission regulation of lattice components isn't arbitrary, it's locally embedded. "The Commission regulates lattice tech" → "people can't afford upgrades" → "the ring exists because the system fails" → "pragmatic Van Maanen's Star culture doesn't moralize about how needs get met." That chain only works for lattice components.
If I shuffle the primary contraband to severance tech, the cultural logic breaks. "The ring is smuggling counter-surveillance equipment" doesn't connect to "affordable healthcare" or "the system failed working people." Severance tech is political, not economic. It changes the ring from "healthcare providers" to "political resistance" — and that's a different game in a different setting.
### Revised proposal: fix primary, vary secondary
**Primary contraband is fixed per district.** Sova Transit District smuggles lattice components. Period. That's culturally grounded, morally load-bearing, and tied to the specific Commission-regulation dynamics of Krenn System. It's what makes the detective's job morally ambiguous. It's what makes the smuggler's justification honest. Gore's complicity thesis depends on this.
**Primary contraband is fixed per district.** Sova Transit District smuggles lattice components. Period. That's culturally grounded, morally load-bearing, and tied to the specific Commission-regulation dynamics of Van Maanen's Star. It's what makes the detective's job morally ambiguous. It's what makes the smuggler's justification honest. Gore's complicity thesis depends on this.
**Secondary contraband varies per seed.** What ELSE is in the crates?
@@ -275,7 +275,7 @@ The D-029 entanglement ratio (30/50/20 flat/mundane/entangled) constrains the ra
### 2. Miri's cultural brief + my replay variation = cultural tells vary too
Miri's Krenn brief gives us "perk" (Finnish curse), "kylm" (cold), "vakt" (lookout shift — criminalized by usage). Beautiful. Now consider: what if heritage vocabulary usage is ITSELF a randomizable social tell?
Miri's Van Maanen's Star brief gives us "perk" (Finnish curse), "kylm" (cold), "vakt" (lookout shift — criminalized by usage). Beautiful. Now consider: what if heritage vocabulary usage is ITSELF a randomizable social tell?
In seed A, Drin uses "vakt" casually — it's just a word for shift, nobody reacts. In seed B, the word "vakt" has been heat-mapped by Devra as ring-specific slang, and anyone who uses it in front of the detective gets a nervous correction from Renn. The same word has different social charge per seed.
+4 -4
View File
@@ -80,11 +80,11 @@ Do it. It's a good scene beat. But it's Round 2 of detective content polish when
---
## Tension 3: The Cheers Moment — Does Miri's Krenn Brief Give Me the Texture?
## Tension 3: The Cheers Moment — Does Miri's Van Maanen's Star Brief Give Me the Texture?
### YES. ABSOLUTELY YES.
Miri, your Krenn brief is EXACTLY what I needed. I'm going to be specific about what I'm taking from it and why.
Miri, your Van Maanen's Star brief is EXACTLY what I needed. I'm going to be specific about what I'm taking from it and why.
### The "everyone knows your name" opening — smuggler version
@@ -120,7 +120,7 @@ Based on Miri's brief, here's my list for the first 60 seconds (smuggler):
### What I still want
One thing Miri's brief doesn't cover that I think matters: **what does the station SOUND like?** Not full sound design — that's Inigo's domain. But Miri's cultural brief should note whether Krenn culture is QUIET (people talk softly, ambient noise is machinery) or LOUD (shift-change chaos, people calling to each other across bays). I think Krenn is quiet in social contexts and loud in work contexts. The bar is subdued — people talk over drinks, not over each other. The hub is industrial noise. This matters for establishing mood and for the detective's "outsider entering a quiet community" experience.
One thing Miri's brief doesn't cover that I think matters: **what does the station SOUND like?** Not full sound design — that's Inigo's domain. But Miri's cultural brief should note whether Van Maanen's Star culture is QUIET (people talk softly, ambient noise is machinery) or LOUD (shift-change chaos, people calling to each other across bays). I think Van Maanen's Star is quiet in social contexts and loud in work contexts. The bar is subdued — people talk over drinks, not over each other. The hub is industrial noise. This matters for establishing mood and for the detective's "outsider entering a quiet community" experience.
---
@@ -201,7 +201,7 @@ That's the pitch. That's what goes on the back of the box. That's what the trail
| **1** | Keep Hael Tier 2 but add ~15-20 lines: hopeful/confiding voice, door-checking beat, Kael-Hael togetherness scene | Emotional impact without mechanical bloat |
| **2** | Build smuggler emotional accumulation mechanics (guilt tracking, complicity-aware monologue) | Parity with detective's investigation arc |
| **3** | Sera's composure crack: one half-sentence in early game about Kael | Detective experience polish + retroactive wow on replay |
| **4** | Smuggler's Cheers opening using Miri's Krenn brief: kuum, chin-lift, "Hüva," heritage food, substrate vocabulary | The "everyone knows your name" first 60 seconds |
| **4** | Smuggler's Cheers opening using Miri's Van Maanen's Star brief: kuum, chin-lift, "Hüva," heritage food, substrate vocabulary | The "everyone knows your name" first 60 seconds |
| **5** | FRIEND pool architecture from v0.1, content in v0.2. Second FRIEND drawn from existing NPCs elevated to Tier 1 | Replayability without sacrificing emotional depth |
| **6** | Smuggler-specific attribute keys (Paula's proposal) + emotional layer (guilt_interactions, complicity_acknowledged) | Monologue mechanical grounding for both characters |
| **7** | Style guide "gut-check line" requirement: every NPC profile needs one voice sample that makes you pause | Quality floor for all future NPCs |
+1 -1
View File
@@ -265,7 +265,7 @@ When creating a PC-candidate NPC:
## 3. Naming Process with Miri
Miri's Krenn System brief is excellent. The phonological rules are now explicit: Nordic-Baltic heritage, consonant-forward, vowels tend toward a/e/o, hard consonants dominate, 1-2 syllables in daily use. The surname patterns are documented: Finnish -nen suffixes dropped, Estonian -sik/-vere sometimes survive, Dutch/Norwegian names survived closer to origin.
Miri's Van Maanen's Star brief is excellent. The phonological rules are now explicit: Nordic-Baltic heritage, consonant-forward, vowels tend toward a/e/o, hard consonants dominate, 1-2 syllables in daily use. The surname patterns are documented: Finnish -nen suffixes dropped, Estonian -sik/-vere sometimes survive, Dutch/Norwegian names survived closer to origin.
### Generating Missing Full Names
@@ -160,7 +160,7 @@ Awaiting Tyre and Miri Round 2.
| P-70 | **Hael: Tier 2 + 15-20 extra lines** (not Tier 1 promotion, not MIRROR). Add hopeful/confiding voice, door-checking beat, Kael-Hael togetherness scene. | T-08, Gore MIRROR |
| P-71 | **Smuggler emotional accumulation attributes**: `guilt_interactions`, `complicity_acknowledged`, `protective_actions`. | P-07 (Paula), T-04 |
| P-72 | **Sera composure crack** — one half-sentence in early game: "About Kael — no, it's nothing." | P-12 (Ozzie R1) |
| P-73 | **Smuggler "Cheers moment" opening** using Miri's Krenn brief: kuum vendor, chin-lift, hüva, heritage food. | P-62 (Ozzie R1), Miri brief |
| P-73 | **Smuggler "Cheers moment" opening** using Miri's Van Maanen's Star brief: kuum vendor, chin-lift, hüva, heritage food. | P-62 (Ozzie R1), Miri brief |
| P-74 | **Second FRIEND drawn from existing NPCs** elevated to Tier 1. "MARET? She was just background noise last time." | T-01, Nigel pool |
| P-75 | **Green→amber reframe**: Color shift should feel like CLARITY, not LOSS. "Green was a lie. Amber is honesty." | Gore contaminated trust |
@@ -168,7 +168,7 @@ Awaiting Tyre and Miri Round 2.
| # | Proposal | Cross-refs |
|---|----------|------------|
| P-76 | **Environmental text concrete examples** delivered: bar menu, safety notice, news ticker cycle, corridor graffiti. All voiced with Krenn cultural markers. | P-32 (Mellanie R1), Miri brief |
| P-76 | **Environmental text concrete examples** delivered: bar menu, safety notice, news ticker cycle, corridor graffiti. All voiced with Van Maanen's Star cultural markers. | P-32 (Mellanie R1), Miri brief |
| P-77 | **Combined style guide TOC** — merges Paula templates + Mellanie conventions + Gestalt constraints + Miri regional into unified document. | P-18 (Paula), P-15 (Gestalt), P-26 (Miri) |
| P-78 | **Smuggler voice card** with three paired examples showing dual-lens cultural register. Summary table: thinks in people vs data, first names vs surnames, fragments vs complete sentences. | T-04, Miri brief |
| P-79 | **Anchor line requirement** per tier (operationalizing Ozzie's gut-check): Tier 1 = 2+ anchors across phases. Tier 2 = 1 anchor minimum. Tier 3 = voice hint should gesture at humanity. | P-14 (Ozzie R1) |
@@ -196,7 +196,7 @@ Awaiting Tyre and Miri Round 2.
| C-01 | THE FRIEND never proc-gen, pool-based selection | High | **Confirmed** | Gore/Nigel/Ozzie all restate |
| C-02 | All NPCs need canonical full names | High | High (no new data) | Awaiting Paula/Miri R2 |
| C-03 | Regional style guide template | High | **Confirmed** | Gore endorses Miri, Ozzie uses for concrete examples |
| C-04 | Krenn System brief canonical | High | **Confirmed** | Gore calls it "best work product in workshop," Ozzie builds opening from it, Mellanie produces environmental text from it |
| C-04 | Van Maanen's Star brief canonical | High | **Confirmed** | Gore calls it "best work product in workshop," Ozzie builds opening from it, Mellanie produces environmental text from it |
| C-05 | Formalized tier templates | High | **Confirmed** | Mellanie proposes merged style guide TOC |
| C-06 | Content directory: global + districts | High | **Confirmed** | Nigel adopts Tyre's structure |
| C-10 | Smuggler needs own knowledge vocabulary | High | **Strongly confirmed** | All 4 respondents endorse, Gore extends with moral arc |
@@ -221,7 +221,7 @@ Awaiting Tyre and Miri Round 2.
| Q-W12 | (NEW) THE MIRROR: new pattern vs enhanced Tier 2? | Gore vs Ozzie — needs project lead |
| Q-W13 | (NEW) `cultural_gate` as dialogue modifier — mechanical feasibility? | Gestalt R2, Tyre R2 |
| Q-W14 | (NEW) Seed configuration schema location — content/ or runtime/? | Tyre R2 |
| Q-W15 | (NEW) Sound texture for Krenn culture — quiet social / loud work? | Ozzie asks Miri/Inigo |
| Q-W15 | (NEW) Sound texture for Van Maanen's Star culture — quiet social / loud work? | Ozzie asks Miri/Inigo |
---
+14 -14
View File
@@ -61,7 +61,7 @@ content/
access-tiers.yaml # public/peer/insider/authority/hostile
activities.yaml # NEW: canonical routine activity enum
regions/
krenn-system.yaml # Regional style reference (from Miri's brief)
van-maanens-star-system.yaml # Regional style reference (from Miri's brief)
districts/
sova-transit/
@@ -122,7 +122,7 @@ content/
| `triangles/` separated from `templates/` | Gestalt's Round 1 structure | Triangles are relationship structures, templates are spatial/social structures. Separation lets mods add triangles without touching templates. |
| `pools.yaml` added | Nigel's `pool_eligible` concept + Gore's FRIEND pool | Seed-time selection needs explicit pool definitions (see Section 2) |
| `global/enums/activities.yaml` added | Gestalt's routine YAML format | Routine `activity` values need a canonical enum (see Section 4) |
| `global/regions/` added | Miri's Krenn brief | Regional style data as engine-readable YAML, not just wiki docs |
| `global/regions/` added | Miri's Van Maanen's Star brief | Regional style data as engine-readable YAML, not just wiki docs |
| Underscore-prefix convention formalized | Tyre Round 1, refined | Clear signal: `_foo` = infrastructure, `foo` = content |
### Location shortcodes (Mellanie's dependency)
@@ -427,7 +427,7 @@ activities:
### How Miri's cultural patterns inform schedule authoring
Miri's brief describes the **5+2 work cycle** and **shift-end bar migration** as Krenn cultural patterns. These aren't engine data — they're authoring guidance:
Miri's brief describes the **5+2 work cycle** and **shift-end bar migration** as Van Maanen's Star cultural patterns. These aren't engine data — they're authoring guidance:
| Cultural pattern | Schedule implication | Authoring rule |
|---|---|---|
@@ -436,7 +436,7 @@ Miri's brief describes the **5+2 work cycle** and **shift-end bar migration** as
| Kuum at transitions | Hot drink at shift boundaries | `social_break` activity at shift start/end = where the casual dialogue fires |
| Card game evenings | Kolm at the bar, Harek's regular game | Harek + 2-3 regulars with `social_evening` at `bar` overlapping |
The cultural brief lives in `global/regions/krenn-system.yaml` as reference data. It doesn't drive the engine directly — it drives the AUTHORS who fill in the routine YAML.
The cultural brief lives in `global/regions/van-maanens-star-system.yaml` as reference data. It doesn't drive the engine directly — it drives the AUTHORS who fill in the routine YAML.
### Engine consumption
@@ -470,24 +470,24 @@ Miri proposed two things I want to address: `wiki/cultural-groups/` as a new dir
### `cultural-groups/` — fits perfectly
`wiki/cultural-groups/krenn-system.md` is a flat directory. No nesting. Exactly like `factions/`, `technology/`, `contraband/`. This is a new top-level wiki category, not a nesting violation. Add it.
`wiki/cultural-groups/van-maanens-star-system.md` is a flat directory. No nesting. Exactly like `factions/`, `technology/`, `contraband/`. This is a new top-level wiki category, not a nesting violation. Add it.
The wiki index should add:
```markdown
### Cultural Groups (Regional Style Briefs)
- [Krenn System](cultural-groups/krenn-system.md) — Baltic-Nordic blend, logistics culture
- [Van Maanen's Star](cultural-groups/van-maanens-star-system.md) — Baltic-Nordic blend, logistics culture
```
### `canonical_id` — endorsed with format refinement
Miri proposed: `canonical_id: krenn.sova.transit.the-terminal`. I'd standardize the format:
Miri proposed: `canonical_id: van-maanens-star.sova.transit.the-terminal`. I'd standardize the format:
```yaml
# Format: {system}.{station}.{district}.{entity-type}.{slug}
# Examples:
canonical_id: krenn.sova.transit.location.the-terminal
canonical_id: krenn.sova.transit.npc.kael-davan
canonical_id: van-maanens-star.sova.transit.location.the-terminal
canonical_id: van-maanens-star.sova.transit.npc.kael-davan
canonical_id: global.faction.lattice-commission
canonical_id: global.technology.neural-lattice
```
@@ -498,8 +498,8 @@ For the content directory, the canonical_id maps to file paths:
| `canonical_id` | Content path |
|---|---|
| `krenn.sova.transit.npc.kael-davan` | `content/districts/sova-transit/npcs/kael-davan.yaml` |
| `krenn.sova.transit.location.the-terminal` | `content/districts/sova-transit/locations/the-terminal.yaml` |
| `van-maanens-star.sova.transit.npc.kael-davan` | `content/districts/sova-transit/npcs/kael-davan.yaml` |
| `van-maanens-star.sova.transit.location.the-terminal` | `content/districts/sova-transit/locations/the-terminal.yaml` |
| `global.faction.lattice-commission` | `content/global/factions/lattice-commission.yaml` |
The mapping is derivable — content loader can resolve `canonical_id` to file path and vice versa. Cross-references in content YAML use `canonical_id`, not file paths. This is Miri's proposal, architecturally validated.
@@ -509,10 +509,10 @@ The mapping is derivable — content loader can resolve `canonical_id` to file p
Miri's Round 1 shows a wiki structure with 4 levels of spatial nesting:
```
wiki/star-systems/krenn/station-sova/sova-transit-district/the-terminal.md
wiki/star-systems/van-maanens-star/station-sova/sova-transit-district/the-terminal.md
```
The current wiki uses 2 levels: `locations/krenn-system/the-terminal.md`. I maintain that 2 levels is the right cap for navigation paths. The `canonical_id` carries the full spatial address — the filesystem doesn't need to.
The current wiki uses 2 levels: `locations/van-maanens-star-system/the-terminal.md`. I maintain that 2 levels is the right cap for navigation paths. The `canonical_id` carries the full spatial address — the filesystem doesn't need to.
**Compromise:** Keep wiki paths at max 2 levels for locations. Use `canonical_id` in frontmatter for full spatial addressing. The wiki index provides the navigational hierarchy through cross-links, not directory depth. This gives Miri's disambiguation without my tab-completion nightmare.
@@ -605,7 +605,7 @@ Summarizing everything into concrete outputs.
| Document | Owner | Blocks |
|---|---|---|
| `wiki/cultural-groups/krenn-system.md` | Miri | All environmental text authoring |
| `wiki/cultural-groups/van-maanens-star-system.md` | Miri | All environmental text authoring |
| Cultural Groups section in `wiki/index.md` | Miri/Qatux | Wiki navigation |
| Location shortcode table | Mellanie/Tyre | All YAML content authoring |
| Freeform tag vocabulary (living list) | Mellanie | Content consistency |
+14 -14
View File
@@ -17,7 +17,7 @@ Gore named complicity as the game's theme. He's right about Sova. He's wrong abo
Complicity works in Sova because of a specific configuration:
- The smuggler **participates** in something they know is morally ambiguous
- The detective **disrupts** something the community considers normal
- The culture (Krenn privacy norms) makes non-cooperation the default
- The culture (Van Maanen's Star privacy norms) makes non-cooperation the default
- The contraband (lattice components) serves genuine needs
Change ANY of those variables and complicity stops being the right word. Consider:
@@ -74,7 +74,7 @@ And the PLAYER experiences that configuration as complicity. Another district wh
### Why culture matters mechanically
Miri's Krenn brief proved that culture isn't decoration — it's a game system. The Nordic-Baltic privacy norms ARE the difficulty gradient for the detective. The labor solidarity norms ARE the smuggler's camouflage. Culture determines:
Miri's Van Maanen's Star brief proved that culture isn't decoration — it's a game system. The Nordic-Baltic privacy norms ARE the difficulty gradient for the detective. The labor solidarity norms ARE the smuggler's camouflage. Culture determines:
| System | Cultural Input | Mechanical Output |
|---|---|---|
@@ -93,7 +93,7 @@ I'd propose **6-8 heritage clusters** for the full game. Each must be mechanical
| # | Heritage Cluster | Cultural DNA | Mechanical Signature | Access Tier Profile |
|---|---|---|---|---|
| 1 | **Nordic-Baltic** (Krenn) | Finnish/Estonian/Latvian/Norwegian drift | Privacy-default, labor solidarity, institutional distrust | Hard outsider wall. `peer` requires months. `authority` gets compliance but zero information. |
| 1 | **Nordic-Baltic** (Van Maanen's Star) | Finnish/Estonian/Latvian/Norwegian drift | Privacy-default, labor solidarity, institutional distrust | Hard outsider wall. `peer` requires months. `authority` gets compliance but zero information. |
| 2 | **Mediterranean-Near Eastern** | Greek/Turkish/Lebanese drift | Hospitality-default, honor networks, generosity-as-status | Easy initial warmth (fast `peer`), but deep trust is family-only. Gossip flows freely — too freely. Information hides in noise. |
| 3 | **East Asian** | Japanese/Korean/Vietnamese drift | Hierarchical respect, obligation networks, face-saving | `authority` gets deference but performative cooperation. Real information flows through obligation chains, not direct questioning. The detective must EARN an obligation. |
| 4 | **West African** | Yoruba/Akan/Wolof drift | Communal decision-making, storytelling tradition, elder-respect | Information flows freely through communal events but is couched in story and metaphor. Direct questions are rude. The detective must learn to LISTEN. |
@@ -114,7 +114,7 @@ Each blend creates a NEW access tier profile by interpolating between parent clu
### Distribution
Not every system gets a unique culture. Multiple systems can share a heritage cluster (like multiple Nordic-Baltic settled systems with Krenn-like norms). The full game's cultural map might look like:
Not every system gets a unique culture. Multiple systems can share a heritage cluster (like multiple Nordic-Baltic settled systems with Van Maanen's Star-like norms). The full game's cultural map might look like:
| Heritage Cluster | # of Systems | Notes |
|---|---|---|
@@ -131,7 +131,7 @@ Not every system gets a unique culture. Multiple systems can share a heritage cl
### The authoring constraint
Each cultural cluster requires ONE Miri-quality regional brief (~the Krenn System brief). 6-8 briefs total. Each brief includes:
Each cultural cluster requires ONE Miri-quality regional brief (~Van Maanen's Star brief). 6-8 briefs total. Each brief includes:
- Heritage lineage and drift patterns
- Naming conventions (phonological rules, surname patterns)
- Substrate vocabulary (10-15 heritage words)
@@ -286,7 +286,7 @@ content/
triangle.pattern.yaml # Triangle structure requirements
regions/ # Heritage cluster briefs (NEW — promoted from global/)
nordic-baltic.yaml # Cluster 1 (Krenn, etc.)
nordic-baltic.yaml # Cluster 1 (Van Maanen's Star, etc.)
mediterranean.yaml # Cluster 2
east-asian.yaml # Cluster 3
west-african.yaml # Cluster 4
@@ -296,7 +296,7 @@ content/
cosmopolitan.yaml # Cluster 8
systems/ # Star systems (NEW level)
krenn/
van-maanens-star/
system.yaml # System metadata, wormhole connections
districts/
sova-transit/
@@ -304,7 +304,7 @@ content/
npcs/, locations/, templates/, triangles/, lines/)
sova-residential/ # Second district on same station
...
krenn-prime-port/ # Planet-side district
van-maanens-star-prime-port/ # Planet-side district
...
tavros/
system.yaml
@@ -332,7 +332,7 @@ The platform architecture must support three content delivery models:
# content/_meta/manifest.yaml
packs:
- id: core
districts: [krenn/sova-transit, krenn/sova-residential, ...]
districts: [van-maanens-star/sova-transit, van-maanens-star/sova-residential, ...]
version: 1.0
```
@@ -358,7 +358,7 @@ pack:
type: mod
requires: [core >= 1.0]
extends:
districts: [krenn/sova-transit]
districts: [van-maanens-star/sova-transit]
adds:
npcs: [jax-korrenson]
merges:
@@ -387,7 +387,7 @@ At scale, content must reference entities in other districts:
These cross-references use the `canonical_id` system (Miri/Tyre R2):
```yaml
# In krenn/sova-transit/npcs/sabel.yaml
# In van-maanens-star/sova-transit/npcs/sabel.yaml
relationships:
- npc: tavros.exchange.npc.sabel-partner # Cross-district reference
type: "business associate"
@@ -412,7 +412,7 @@ At Sova scale, Nigel identified three randomization axes (FRIEND pool, contraban
| The specific line of dialogue | AUTHORED | "There you are. Good — I was starting to worry." |
| The tell behavior | AUTHORED | "Looks left when lying" |
| The contradiction arc | AUTHORED | 5 phases, each with specific authored beats |
| The cultural norms | AUTHORED | Krenn privacy-default, labor solidarity |
| The cultural norms | AUTHORED | Van Maanen's Star privacy-default, labor solidarity |
| Which NPC delivers that line | RANDOMIZED (pool selection) | Kael or Renn as FRIEND |
| Which NPC has which role | RANDOMIZED (role-slot assignment) | Drin or Maret as compromised inspector |
| Which contraband is in the crates | RANDOMIZED (per-seed) | Lattice components or medical-grade |
@@ -587,13 +587,13 @@ archetype:
Each district that supports the smuggler archetype provides a LOCAL INSTANCE:
```yaml
# In systems/krenn/districts/sova-transit/archetypes/smuggler.yaml
# In systems/van-maanens-star/districts/sova-transit/archetypes/smuggler.yaml
archetype_instance:
archetype: smuggler
pc_candidates: [kael-davan-smuggler-pc] # Which NPCs can be this archetype
local_override:
moral_arc_type: complicity # matches default for Sova
cultural_voice: krenn # uses Krenn substrate vocabulary
cultural_voice: van-maanens-star # uses Van Maanen's Star substrate vocabulary
network_role: logistics # smuggler's function in this specific ring
```
+7 -7
View File
@@ -63,7 +63,7 @@ These three answers generate everything else. NPCs are people who have answered
## 2. Cultural Groups as Civilizational Philosophies
Miri's Krenn brief is the gold standard. But Miri built it as a cultural artifact — names, food, greetings, aesthetics. I want to complement that with the *philosophical* dimension.
Miri's Van Maanen's Star brief is the gold standard. But Miri built it as a cultural artifact — names, food, greetings, aesthetics. I want to complement that with the *philosophical* dimension.
### Every cultural group is an answer to "Is this enough?"
@@ -71,7 +71,7 @@ Cultural groups aren't just naming conventions and food. They're civilizational
| Cultural Cluster | Heritage Inspiration | Civilizational Posture | What "Enough" Means | What Disrupts It |
|---|---|---|---|---|
| **Krenn** (Sova) | Nordic-Baltic | Pragmatic collectivism | Stability, community, privacy | Outsiders asking questions; internal exposure |
| **Van Maanen's Star** (Sova) | Nordic-Baltic | Pragmatic collectivism | Stability, community, privacy | Outsiders asking questions; internal exposure |
| **Core worlds** (TBD) | Cosmopolitan blend | Institutional trust | Status, career, institutional respect | Institutional failure; discovering the system is hollow |
| **Frontier** (TBD) | American frontier + South African settler | Self-reliant individualism | Freedom, autonomy, no one owes anyone | Scarcity; discovering you need others |
| **Syndic-corporate** (TBD) | East Asian corporate + Dutch trading | Meritocratic ambition | Achievement, growth, competitive excellence | Plateau; discovering success is empty |
@@ -83,7 +83,7 @@ Seven cultural clusters is probably the right number for the full game. Enough t
### The Miri Standard
Miri's Krenn brief should be the template. But I'd add one section to the Regional Style Guide Template:
Miri's Van Maanen's Star brief should be the template. But I'd add one section to the Regional Style Guide Template:
```
## 7. Civilizational Posture
@@ -105,7 +105,7 @@ solidarity, duty, freedom, ambition — also creates exploitable
weakness. This is the thematic hook for every story set here.}
```
That last field is the one that matters most. In Krenn, I identified it as: "the same values that make a community good — solidarity, privacy, trust — are the values that enable its exploitation." Every cultural group has a version of this. The military culture's discipline enables blind obedience. The corporate culture's ambition enables exploitation. The spiritual culture's trust enables fraud. The Unbound's privacy enables isolation.
That last field is the one that matters most. In Van Maanen's Star, I identified it as: "the same values that make a community good — solidarity, privacy, trust — are the values that enable its exploitation." Every cultural group has a version of this. The military culture's discipline enables blind obedience. The corporate culture's ambition enables exploitation. The spiritual culture's trust enables fraud. The Unbound's privacy enables isolation.
**This is the game's structural thesis: every human virtue has a shadow, and the shadow is where stories live.**
@@ -113,9 +113,9 @@ That last field is the one that matters most. In Krenn, I identified it as: "the
**Seven cultural clusters, 20+ regional variants.**
The seven clusters above represent the major philosophical positions. Within each cluster, individual star systems have their own regional flavor — like Miri's Krenn brief within the pragmatic-collectivist cluster. A second Nordic-Baltic logistics system would share the cluster's philosophical posture but have different naming conventions, different drift patterns, different local history.
The seven clusters above represent the major philosophical positions. Within each cluster, individual star systems have their own regional flavor — like Miri's Van Maanen's Star brief within the pragmatic-collectivist cluster. A second Nordic-Baltic logistics system would share the cluster's philosophical posture but have different naming conventions, different drift patterns, different local history.
Content scaling: Miri writes one cluster-level philosophical brief. Then writes regional variants per system within that cluster. Each regional brief inherits the cluster's posture and customizes the surface (names, food, aesthetics, dialect). The cluster brief is ~1 page. Each regional brief is ~5 pages (like Miri's Krenn brief). At 20 systems, that's 7 cluster briefs + 20 regional briefs = ~107 pages of cultural worldbuilding. Significant but finite.
Content scaling: Miri writes one cluster-level philosophical brief. Then writes regional variants per system within that cluster. Each regional brief inherits the cluster's posture and customizes the surface (names, food, aesthetics, dialect). The cluster brief is ~1 page. Each regional brief is ~5 pages (like Miri's Van Maanen's Star brief). At 20 systems, that's 7 cluster briefs + 20 regional briefs = ~107 pages of cultural worldbuilding. Significant but finite.
---
@@ -389,7 +389,7 @@ This sequence works at any scale. NPC #1 (Kael) and NPC #300 (a bartender in a f
3. **The Lens Validator.** A tool that takes every NPC dialogue line and checks: does this line read differently for each PC archetype active in this district? If a line reads identically to the Worker and the Investigator, it's missing the dual-lens (or multi-lens, at scale) resonance.
4. **The Voice Auditor.** A tool that compares an NPC's voice samples, authored dialogue, and expanded dialogue against the regional cultural brief. Does this person sound like they're from Krenn? Do they use substrate vocabulary? Does their sentence length match the cultural profile? Catches cultural drift in expanded content.
4. **The Voice Auditor.** A tool that compares an NPC's voice samples, authored dialogue, and expanded dialogue against the regional cultural brief. Does this person sound like they're from Van Maanen's Star? Do they use substrate vocabulary? Does their sentence length match the cultural profile? Catches cultural drift in expanded content.
---
+12 -12
View File
@@ -43,17 +43,17 @@ Miri will map the full cultural geography. From my seat, here's what I need and
Each cultural group changes EVERYTHING I write:
- Environmental text (signs, menus, graffiti, terminals)
- Substrate vocabulary (which heritage words leak through)
- Speech rhythm (Krenn is clipped and consonant-forward; a different culture might be flowing and vowel-rich)
- Speech rhythm (Van Maanen's Star is clipped and consonant-forward; a different culture might be flowing and vowel-rich)
- Social register rules (when do you use surnames? what's rude? what's welcoming?)
- Monologue voice (the PC's internal language absorbs the culture they're embedded in)
Maintaining consistent voice across a cultural register requires holding the whole brief in my head while writing. Switching between registers mid-session produces contamination — Krenn words leak into a non-Krenn district, or the speech rhythm drifts. This is the real constraint, not the writing itself.
Maintaining consistent voice across a cultural register requires holding the whole brief in my head while writing. Switching between registers mid-session produces contamination — Van Maanen's Star words leak into a non-Van Maanen's Star district, or the speech rhythm drifts. This is the real constraint, not the writing itself.
**Practical limit: 4-6 cultural registers in active production at any time.** I can hold Krenn plus three or four others in working memory. Beyond that, I need to re-read the brief every session, which halves my output speed.
**Practical limit: 4-6 cultural registers in active production at any time.** I can hold Van Maanen's Star plus three or four others in working memory. Beyond that, I need to re-read the brief every session, which halves my output speed.
### What I need per cultural group (minimum)
| Item | Why | Example (Krenn) |
| Item | Why | Example (Van Maanen's Star) |
|------|-----|-----------------|
| 10-15 substrate words with usage context | So NPC and environmental text sounds right | kylm, perk, leib, hüva, selge |
| 5-8 local slang terms | So ring/community talk sounds situated | ticking, quiet credit, shift-end, wall-side |
@@ -68,13 +68,13 @@ That's 8 items per group. Multiply by 6 groups for the initial game: 48 referenc
### Cultural diversity as narrative range
The game needs cultural variety not for representation points but because **cultural register IS gameplay.** The detective's challenge changes when authority-address rules change. A district where formal address means respect (Core system, institutional culture) plays differently from a district where formal address means hostility (Krenn, working-class pragmatism). Same mechanic, different feel.
The game needs cultural variety not for representation points but because **cultural register IS gameplay.** The detective's challenge changes when authority-address rules change. A district where formal address means respect (Core system, institutional culture) plays differently from a district where formal address means hostility (Van Maanen's Star, working-class pragmatism). Same mechanic, different feel.
For the full game, I'd propose a cultural spectrum:
| Cluster | Heritage | Speech Feel | Authority Dynamic |
|---------|----------|-------------|-------------------|
| Krenn (delivered) | Nordic-Baltic working-class | Clipped, sparse, substrate words | Formal = outsider/hostile |
| Van Maanen's Star (delivered) | Nordic-Baltic working-class | Clipped, sparse, substrate words | Formal = outsider/hostile |
| Core system (proposed) | Institutional cosmopolitan | Precise, measured, multi-syllabic | Formal = expected, informal = unprofessional |
| Frontier settlement (proposed) | Mixed-heritage pioneer | Loose, drawling, improvised compounds | Formal = suspicious, everyone's first-name |
| Enclave (proposed) | Preserved single-heritage | Heritage language dominant, Concordat Standard is the second language | Authority depends on whether you're kin |
@@ -132,21 +132,21 @@ From the writer's chair, the content directory needs three things at scale that
### Voice reference indexing
When I'm writing monologue for a Tier 2 NPC in district #14, I need to check: does this NPC's speech pattern match other NPCs in the same cultural group? Am I accidentally writing Krenn rhythm for a Core system character?
When I'm writing monologue for a Tier 2 NPC in district #14, I need to check: does this NPC's speech pattern match other NPCs in the same cultural group? Am I accidentally writing Van Maanen's Star rhythm for a Core system character?
At 300+ NPCs, I can't hold all voice samples in my head. I need a way to query: "show me all voice samples for cultural-group X, mood Y." This could be a tag on voice sample lines in the NPC YAML:
```yaml
voice_sample:
- mood: casual
cultural_group: krenn
cultural_group: van-maanens-star
text: "Shift's looking smooth today."
- mood: stressed
cultural_group: krenn
cultural_group: van-maanens-star
text: "Just — follow the schedule I posted."
```
Then a CLI tool: `make voice-ref --culture krenn --mood stressed` returns all stressed-mood Krenn voice samples. That's my consistency check. Without it, voice drift is inevitable by district #5.
Then a CLI tool: `make voice-ref --culture van-maanens-star --mood stressed` returns all stressed-mood Van Maanen's Star voice samples. That's my consistency check. Without it, voice drift is inevitable by district #5.
### Cross-district monologue tracking
@@ -185,7 +185,7 @@ Nigel's three axes (FRIEND identity, contraband type, who's compromised) are rig
If the player selects an archetype and gets assigned a specific NPC-turned-PC, the PC's voice should vary. Not the structure — the register. D-028 mentions "3 voice options per character: sardonic/anxious/casual for smuggler, clinical/weary/sharp for detective."
At scale, this is a multiplier. Each PC archetype × each voice option × each district's cultural register = a distinct monologue feel. A sardonic smuggler in Krenn sounds different from a sardonic smuggler in a Core system. The sardonic-ness is the same; the cultural substrate changes.
At scale, this is a multiplier. Each PC archetype × each voice option × each district's cultural register = a distinct monologue feel. A sardonic smuggler in Van Maanen's Star sounds different from a sardonic smuggler in a Core system. The sardonic-ness is the same; the cultural substrate changes.
This means the monologue pool needs a `voice` tag:
@@ -212,7 +212,7 @@ Three lines for the same trigger, same character, different voice. The randomize
### The cultural axis
If the full game spans 6+ cultural groups, and the PC might be from any of them, the monologue needs to reflect cultural origin. A Krenn-raised detective on a Core system station uses `perk` under their breath. A Core-raised detective on Krenn doesn't know why nobody will tell them anything.
If the full game spans 6+ cultural groups, and the PC might be from any of them, the monologue needs to reflect cultural origin. A Van Maanen's Star-raised detective on a Core system station uses `perk` under their breath. A Core-raised detective on Van Maanen's Star doesn't know why nobody will tell them anything.
This is a combinatorial explosion if fully authored. My proposal: author the HOME-CULTURE variant (PC is local) at full depth. Generate the OUTSIDER variant (PC is from elsewhere) using cultural-mismatch transformation rules:
- Replace substrate words with Concordat Standard equivalents
+33 -33
View File
@@ -20,7 +20,7 @@ Other regions of the Settled Reach would have systems that are broken in differe
| System Failure Mode | Human Response | Theme Flavor | Example Region |
|---|---|---|---|
| Regulation without justice (Krenn) | Quiet grey economy, cultural immune system | **Complicity** — knowing and not acting | Working-class logistics hub |
| Regulation without justice (Van Maanen's Star) | Quiet grey economy, cultural immune system | **Complicity** — knowing and not acting | Working-class logistics hub |
| Abundance without meaning | Existential drift, voluntary risk-seeking | **Ennui** — having everything and wanting nothing | Wealthy core world |
| Scarcity without solidarity | Exploitation, predatory hierarchies | **Desperation** — doing terrible things to survive | Frontier mining colony |
| Order without accountability | Institutional corruption, bureaucratic cruelty | **Rot** — the system works perfectly and destroys people | Administrative capital |
@@ -29,7 +29,7 @@ Other regions of the Settled Reach would have systems that are broken in differe
Each of these is a version of "What do systems do to the people inside them?" Each creates a different investigation texture, a different moral calculus, a different reason the player feels conflicted about their NPC.
**Complicity is the Krenn flavor.** It's the best possible starting flavor because it's the most subtle — the system isn't visibly cruel, the people aren't visibly suffering, and the illegality is morally defensible. That subtlety forces the player to engage with genuine ambiguity rather than simple moral judgment.
**Complicity is the Van Maanen's Star flavor.** It's the best possible starting flavor because it's the most subtle — the system isn't visibly cruel, the people aren't visibly suffering, and the illegality is morally defensible. That subtlety forces the player to engage with genuine ambiguity rather than simple moral judgment.
But the game becomes richer as it adds regions where the moral texture is different. A detective investigating institutional corruption on an administrative world faces a different question: the system IS the crime, and dismantling it might be worse than tolerating it. A smuggler on a frontier colony isn't moving healthcare — they're moving survival supplies, and the moral calculus is starker.
@@ -55,9 +55,9 @@ This is squarely my domain. Let me think about what the Settled Reach looks like
### Design principles for cultural diversity
**Principle 1: Heritage clusters, not nations.** No region in the Settled Reach is "the French system" or "the Japanese system." Every settlement was founded by a coalition of heritage groups that blended over 50-300 years. The Krenn System isn't Finnish — it's a Nordic-Baltic blend with Dutch-Norwegian commercial influence, 180 years drifted. This blending is what makes each region feel original rather than Earth-transplanted.
**Principle 1: Heritage clusters, not nations.** No region in the Settled Reach is "the French system" or "the Japanese system." Every settlement was founded by a coalition of heritage groups that blended over 50-300 years. Van Maanen's Star isn't Finnish — it's a Nordic-Baltic blend with Dutch-Norwegian commercial influence, 180 years drifted. This blending is what makes each region feel original rather than Earth-transplanted.
**Principle 2: Settlement motivation shapes culture more than heritage.** Two regions founded by similar heritage groups but for different reasons (one economic, one ideological) will feel more different from each other than two regions founded by different heritage groups for the same reason. Krenn was an economic venture — logistics hub. A system founded by religious separatists from the same Nordic heritage pool would feel radically different despite sharing naming phonetics.
**Principle 2: Settlement motivation shapes culture more than heritage.** Two regions founded by similar heritage groups but for different reasons (one economic, one ideological) will feel more different from each other than two regions founded by different heritage groups for the same reason. Van Maanen's Star was an economic venture — logistics hub. A system founded by religious separatists from the same Nordic heritage pool would feel radically different despite sharing naming phonetics.
**Principle 3: Age matters.** Early-settled systems (300+ years) have deeper drift, more blending, and weaker heritage connections. Recently settled systems (50-100 years) still have living memory of founding cultures. This creates a natural gradient from "cosmopolitan old-core" to "distinctly heritage frontier."
@@ -71,15 +71,15 @@ For a full-scale game, I'd propose **8-10 major cultural regions**, organized no
#### Tier A: Core Regions (old, wealthy, politically significant)
**1. The Administrative Heart** — Founded by Western European / East Asian bureaucratic traditions. 250+ years old. The seat of Concord Assembly politics. Heritage: blended to near-unrecognizable — "cosmopolitan Reach Standard" IS the culture. Investigation texture: institutional corruption, paper trails, polite lies. The mind-your-business ethos here isn't cultural silence (Krenn) — it's professional discretion. Everyone knows everything and says nothing because careers depend on strategic ignorance. Access tier challenge: authority access is easy (institutional credentials work), insider access is almost impossible (real trust requires decades of shared institutional history).
**1. The Administrative Heart** — Founded by Western European / East Asian bureaucratic traditions. 250+ years old. The seat of Concord Assembly politics. Heritage: blended to near-unrecognizable — "cosmopolitan Reach Standard" IS the culture. Investigation texture: institutional corruption, paper trails, polite lies. The mind-your-business ethos here isn't cultural silence (Van Maanen's Star) — it's professional discretion. Everyone knows everything and says nothing because careers depend on strategic ignorance. Access tier challenge: authority access is easy (institutional credentials work), insider access is almost impossible (real trust requires decades of shared institutional history).
**2. The Old Money World** — Founded by North American / Northern European corporate dynasties. 200+ years old. Wealth so embedded it's invisible. Heritage: deliberately maintained as aesthetic — they have art, cuisine, architecture, all meticulously curated, but it's performance, not living culture. Investigation texture: the mystery isn't what people are hiding, it's what they've normalized. Crimes aren't secrets — they're traditions. Thematic texture: ennui. Access tier challenge: peer access requires wealth display (the detective's institutional salary is comically insufficient); insider access requires family connections or blackmail.
#### Tier B: Working Regions (established, functional, the economic backbone)
**3. The Logistics Nexus (Krenn System)** — Already established. Nordic-Baltic heritage, 180 years, freight culture. Investigation texture: cultural silence, quiet grey economy. Complicity.
**3. The Logistics Nexus (Van Maanen's Star)** — Already established. Nordic-Baltic heritage, 180 years, freight culture. Investigation texture: cultural silence, quiet grey economy. Complicity.
**4. The Industrial Belt** — Founded by Slavic / Central European mining and manufacturing traditions. 150 years old. Multiple stations orbiting a resource-rich gas giant. Heritage: stronger than Krenn because the work is harder and the solidarity is fiercer. Investigation texture: labor politics, union-like structures, the ring equivalent is a cooperative, not a conspiracy. Workers don't mind their own business — they mind EACH OTHER'S business, which means the detective faces a wall of coordinated resistance, not individual silence. Access tier challenge: peer access requires demonstrating you work with your hands. The culture despises desk workers and institutional inspectors equally.
**4. The Industrial Belt** — Founded by Slavic / Central European mining and manufacturing traditions. 150 years old. Multiple stations orbiting a resource-rich gas giant. Heritage: stronger than Van Maanen's Star because the work is harder and the solidarity is fiercer. Investigation texture: labor politics, union-like structures, the ring equivalent is a cooperative, not a conspiracy. Workers don't mind their own business — they mind EACH OTHER'S business, which means the detective faces a wall of coordinated resistance, not individual silence. Access tier challenge: peer access requires demonstrating you work with your hands. The culture despises desk workers and institutional inspectors equally.
**5. The Agricultural World** — Founded by South Asian / Sub-Saharan African agrarian traditions. 170 years old. One of the few systems with meaningful planetary surface living. Heritage: strong food culture, extended family structures, seasonal rhythms alien to station life. Investigation texture: generational grudges, land disputes, family honor, the conspiracy is embedded in clan structures rather than workplace structures. The smuggling here isn't lattice components — it's genetic material, seed stock, agricultural patents. Access tier challenge: family connections are everything. An outsider without a local family sponsor is a ghost.
@@ -101,7 +101,7 @@ For a full-scale game, I'd propose **8-10 major cultural regions**, organized no
For a full game: **8-10 regions** provides enough diversity that every playthrough in a new region feels mechanically distinct. But the game doesn't need all 10 at launch beyond v0.1. The scaling path is:
- **v0.1:** 1 region (Krenn). Proves the template.
- **v0.1:** 1 region (Van Maanen's Star). Proves the template.
- **v0.2:** 2-3 regions. Proves cultural diversity creates gameplay diversity.
- **v1.0:** 5-6 regions. Full game with meaningful variety.
- **Post-launch / DLC / mods:** 8-10+ regions. The template system means modders can add regions following the style guide.
@@ -110,9 +110,9 @@ For a full game: **8-10 regions** provides enough diversity that every playthrou
Regions don't exist in isolation. The Settled Reach has inter-regional dynamics that create larger-scale narrative:
- **Economic dependency:** Frontier regions depend on logistics hubs (Krenn) for supplies. Agricultural worlds feed everyone. Research outposts depend on institutional funding. These dependencies create inter-regional smuggling routes and political leverage.
- **Economic dependency:** Frontier regions depend on logistics hubs (Van Maanen's Star) for supplies. Agricultural worlds feed everyone. Research outposts depend on institutional funding. These dependencies create inter-regional smuggling routes and political leverage.
- **Cultural friction:** Heritage Preserves resent cosmopolitan core worlds. Frontier systems resent regulation from distant administrators. Industrial belt workers resent the wealth of old-money worlds. These frictions are the macro-political landscape that Gore and Paula should map.
- **Migration patterns:** People move between regions, carrying cultural expectations. A Krenn worker who transfers to a frontier station brings the mind-your-business norm to a place where everyone is in everyone's business. Cultural collision is a character generator.
- **Migration patterns:** People move between regions, carrying cultural expectations. A Van Maanen's Star worker who transfers to a frontier station brings the mind-your-business norm to a place where everyone is in everyone's business. Cultural collision is a character generator.
- **Gate network topology:** The wormhole network determines which regions are neighbors, which are isolated, and which are chokepoints. This is load-bearing for both economics and investigation. A detective who needs to reach a frontier system may have to pass through a hostile autonomous zone. The travel itself becomes gameplay.
---
@@ -128,17 +128,17 @@ These patterns work in ANY region, and the regional brief provides the local fla
| Pattern | Why Universal | What the Regional Brief Customizes |
|---|---|---|
| **Social site template** (D-025) | Every region has places where people gather, work, and socialize | The *type* of gathering (bar vs. teahouse vs. market square vs. research lab common room), the social norms within it |
| **Triangle model** (D-024) | Conflicting interests exist in every community | The *nature* of conflicts (Krenn: quiet, structural; Industrial Belt: loud, political; Old Money: polite, lethal) |
| **Access tier system** (D-028) | Every culture has insider/outsider dynamics | The *difficulty gradient* and *what earns each tier* (Krenn: time; Agricultural: family; Frontier: reputation; Research: competence) |
| **THE FRIEND pattern** (D-034) | Every playthrough needs an emotional anchor | The *character type* who becomes THE FRIEND (Krenn: coworker; Agricultural: cousin; Research: mentor) |
| **Tell system** | People reveal themselves through behavior in every culture | The *cultural baseline* against which deviation is measured (Krenn: stoic silence is normal, so animation is a tell; Industrial Belt: loud solidarity is normal, so withdrawal is a tell) |
| **Triangle model** (D-024) | Conflicting interests exist in every community | The *nature* of conflicts (Van Maanen's Star: quiet, structural; Industrial Belt: loud, political; Old Money: polite, lethal) |
| **Access tier system** (D-028) | Every culture has insider/outsider dynamics | The *difficulty gradient* and *what earns each tier* (Van Maanen's Star: time; Agricultural: family; Frontier: reputation; Research: competence) |
| **THE FRIEND pattern** (D-034) | Every playthrough needs an emotional anchor | The *character type* who becomes THE FRIEND (Van Maanen's Star: coworker; Agricultural: cousin; Research: mentor) |
| **Tell system** | People reveal themselves through behavior in every culture | The *cultural baseline* against which deviation is measured (Van Maanen's Star: stoic silence is normal, so animation is a tell; Industrial Belt: loud solidarity is normal, so withdrawal is a tell) |
| **Routine model** | People everywhere have daily rhythms | The *rhythm itself* (shift-based vs. seasonal vs. academic vs. chaotic) |
| **Contraband model** (D-037) | Every community has something the system denies them | The *specific thing* and its moral weight (lattice components vs. seeds vs. research data vs. weapons) |
| **PC-as-NPC** | Works with any NPC profile that meets archetype requirements | The *archetype pool* available in each region |
| **Three-tier content model** (D-023) | Tier 1/2/3 depth distribution works everywhere | The *content* at each tier is completely local |
| **30/50/20 entanglement ratio** (D-029) | Investigation needs noise to make signal meaningful everywhere | The *nature* of mundane noise (Krenn: neighbor disputes; Agricultural: inheritance arguments; Frontier: business competition) |
| **30/50/20 entanglement ratio** (D-029) | Investigation needs noise to make signal meaningful everywhere | The *nature* of mundane noise (Van Maanen's Star: neighbor disputes; Agricultural: inheritance arguments; Frontier: business competition) |
### Local to Krenn (content, not template)
### Local to Van Maanen's Star (content, not template)
These are Sova-specific instances, NOT patterns to replicate:
@@ -180,7 +180,7 @@ At full scale, the content directory serves:
### What the directory needs to support
**1. Regional isolation.** A content author working on the Industrial Belt should never need to read Krenn files. Each region is self-contained except for cross-references to global definitions.
**1. Regional isolation.** A content author working on the Industrial Belt should never need to read Van Maanen's Star files. Each region is self-contained except for cross-references to global definitions.
**2. Global schema stability.** The tag taxonomy, FactId vocabulary, relationship state machine, and access tier definitions are global. Changing them affects every region. These must be versioned and changes must be backwards-compatible.
@@ -212,7 +212,7 @@ content/
hubris.yaml
regions/
krenn-system/
van-maanens-star-system/
brief.yaml # Regional style guide (GATING DOCUMENT)
sova-transit/
district.yaml
@@ -223,7 +223,7 @@ content/
dialogue/
monologue/
factions.yaml # Local faction presence
[future: krenn-prime-surface/]
[future: van-maanens-star-prime-surface/]
[future: orbital-3/]
[future: industrial-belt/]
@@ -241,7 +241,7 @@ The regional brief IS the content API. It defines:
```yaml
# brief.yaml for any region
region_id: krenn-system
region_id: van-maanens-star-system
heritage_cluster: [finnish, estonian, latvian, dutch, norwegian]
settlement_age_years: 180
settlement_motivation: economic
@@ -291,7 +291,7 @@ contraband:
archetypes_supported: [smuggler, detective]
```
This YAML brief is both human-readable documentation and machine-readable generation parameters. When the NPC generation system needs to create a Krenn NPC, it reads the naming pools, phonetic rules, and social norm parameters. When a content author needs to write Krenn dialogue, they reference the substrate vocabulary and access tier profile. When the randomizer selects a contraband type, it reads the regional contraband definition.
This YAML brief is both human-readable documentation and machine-readable generation parameters. When the NPC generation system needs to create a Van Maanen's Star NPC, it reads the naming pools, phonetic rules, and social norm parameters. When a content author needs to write Van Maanen's Star dialogue, they reference the substrate vocabulary and access tier profile. When the randomizer selects a contraband type, it reads the regional contraband definition.
**The brief is the API between worldbuilding and implementation.**
@@ -334,17 +334,17 @@ This is the new randomization axis that only exists at multi-region scale:
**Cultural context changes HOW investigation works, not just WHAT you investigate.**
- In Krenn, investigation means waiting, listening, earning trust through silent presence. The gameplay is patience-based.
- In Van Maanen's Star, investigation means waiting, listening, earning trust through silent presence. The gameplay is patience-based.
- In the Industrial Belt, investigation means navigating organized collective resistance. The gameplay is political — you need allies to crack the wall.
- In the Frontier Station, investigation means dealing with chaos. Nobody's covering for anyone; they're all too busy covering for themselves. The gameplay is pattern-finding in noise.
- In the Old Money World, investigation means decoding social performance. Everyone is polite and nobody means a word they say. The gameplay is reading subtext.
- In the Research Outpost, investigation means proving you're smart enough to be told the truth. The gameplay is competence-display.
**This is the deepest replayability.** Different seeds within Krenn give you different NPCs, different FRIENDs, different contraband. But a different REGION gives you a fundamentally different game. The detective who learned patience in Krenn must learn political navigation in the Industrial Belt. The skills (player skills, not character skills) that worked in one region may fail in another.
**This is the deepest replayability.** Different seeds within Van Maanen's Star give you different NPCs, different FRIENDs, different contraband. But a different REGION gives you a fundamentally different game. The detective who learned patience in Van Maanen's Star must learn political navigation in the Industrial Belt. The skills (player skills, not character skills) that worked in one region may fail in another.
### Randomization and the storyteller
The storyteller (D-005, Q-010) should understand cultural context. In Krenn, the storyteller knows that trust accrues slowly and should pace revelations accordingly — the first 30 minutes should feel quiet. In the Frontier Station, the storyteller knows that chaos is the norm and should introduce complications faster. The regional brief's parameters inform the storyteller's pacing model.
The storyteller (D-005, Q-010) should understand cultural context. In Van Maanen's Star, the storyteller knows that trust accrues slowly and should pace revelations accordingly — the first 30 minutes should feel quiet. In the Frontier Station, the storyteller knows that chaos is the norm and should introduce complications faster. The regional brief's parameters inform the storyteller's pacing model.
This means: **the storyteller is culturally literate.** It reads the regional brief and adjusts its behavior accordingly. This is an architectural requirement that should be established early, even if the storyteller itself is designed later.
@@ -371,7 +371,7 @@ Beyond the universal pair, each region could support 1-2 additional archetypes t
| Region | Universal | Region-Specific | Why It Works |
|---|---|---|---|
| **Krenn (Logistics)** | Smuggler, Detective | — | The universal pair is sufficient here. Logistics culture is clean enough that two perspectives cover the space. |
| **Van Maanen's Star (Logistics)** | Smuggler, Detective | — | The universal pair is sufficient here. Logistics culture is clean enough that two perspectives cover the space. |
| **Industrial Belt** | Smuggler, Detective | **Union Rep** | Someone whose job is to navigate labor-management tensions. Insider access to workers, institutional access to management. Sees the conspiracy as a labor issue, not a criminal one. A third lens: solidarity. |
| **Agricultural World** | Smuggler, Detective | **Family Member** | Someone embedded in the clan structure who isn't directly involved in the conspiracy but whose family is. Insider access through blood, outsider perspective through personal morality. A third lens: loyalty. |
| **Frontier Station** | Smuggler, Detective | **Fixer** | Someone who solves problems for everyone — legal or otherwise. Access to both sides but trusted by neither. A third lens: pragmatism. |
@@ -402,7 +402,7 @@ The content cost per archetype is significant: a full monologue pool (separate f
Two playthroughs as the smuggler in the same district should still feel different because of seed variation (different FRIEND, different contraband, different network). But two playthroughs as the smuggler in DIFFERENT DISTRICTS should feel profoundly different because the cultural context changes what "being an insider" means.
In Krenn, the smuggler is protected by cultural silence. In the Industrial Belt, the smuggler is protected by collective action. In the Frontier Station, the smuggler is protected by chaos. Same archetype, different survival strategy, different moral texture.
In Van Maanen's Star, the smuggler is protected by cultural silence. In the Industrial Belt, the smuggler is protected by collective action. In the Frontier Station, the smuggler is protected by chaos. Same archetype, different survival strategy, different moral texture.
---
@@ -451,13 +451,13 @@ Stage 4: GENERATED FILL (Procedural + Review)
### What the regional brief enables at scale
**Naming generation.** The brief defines phonetic rules, heritage pools, and example names. A generation system (LLM-based or rule-based — Q-012 applies here) can produce names that "sound right" for any region by following the brief's parameters. An author reviewing generated names just needs to check: "Does this sound Krenn?" If the brief is good, the answer is obvious.
**Naming generation.** The brief defines phonetic rules, heritage pools, and example names. A generation system (LLM-based or rule-based — Q-012 applies here) can produce names that "sound right" for any region by following the brief's parameters. An author reviewing generated names just needs to check: "Does this sound Van Maanen's Star?" If the brief is good, the answer is obvious.
**Routine generation.** The brief defines economic rhythms (shift-based, seasonal, academic, chaotic). Routines are generated from the region's time structure. A Krenn NPC works shifts. An Agricultural NPC follows planting/harvest cycles. A Frontier NPC has irregular hours because nothing is stable. The brief provides the parameters.
**Routine generation.** The brief defines economic rhythms (shift-based, seasonal, academic, chaotic). Routines are generated from the region's time structure. A Van Maanen's Star NPC works shifts. An Agricultural NPC follows planting/harvest cycles. A Frontier NPC has irregular hours because nothing is stable. The brief provides the parameters.
**Dialogue generation.** The brief defines substrate vocabulary, slang, profanity patterns, greeting conventions, and access tier cultural profiles. The 4x generation expansion (Q-012) uses these parameters to produce lines that sound culturally appropriate. "Hüva, let's go" is a Krenn line. The generation system knows this because the brief lists "hüva" as a casual affirmative.
**Dialogue generation.** The brief defines substrate vocabulary, slang, profanity patterns, greeting conventions, and access tier cultural profiles. The 4x generation expansion (Q-012) uses these parameters to produce lines that sound culturally appropriate. "Hüva, let's go" is a Van Maanen's Star line. The generation system knows this because the brief lists "hüva" as a casual affirmative.
**Voice validation.** The brief provides a voice check: "Does this line sound like it comes from this culture?" A Krenn character doesn't say elaborate, flowery sentences. A Research Outpost character doesn't say "perk." The brief is the validation rubric.
**Voice validation.** The brief provides a voice check: "Does this line sound like it comes from this culture?" A Van Maanen's Star character doesn't say elaborate, flowery sentences. A Research Outpost character doesn't say "perk." The brief is the validation rubric.
### The scaling math
@@ -499,13 +499,13 @@ This pattern scales to 300+ NPCs because the work is parallelizable by region, a
Not the NPC profiles. Not the dialogue pools. Not the code architecture. The regional brief defines the parameters that make everything else work. Every content decision flows from it. Every generation system reads from it. Every quality gate uses it as the rubric.
The investment in making the Krenn brief thorough (Rounds 1-2 of this workshop) is establishing the standard for every future region. If the brief is weak, everything downstream is garbage. If the brief is strong, everything downstream is either good or fixably wrong.
The investment in making the Van Maanen's Star brief thorough (Rounds 1-2 of this workshop) is establishing the standard for every future region. If the brief is weak, everything downstream is garbage. If the brief is strong, everything downstream is either good or fixably wrong.
### 2. Cultural diversity is the deepest replayability axis
Nigel correctly identifies FRIEND shuffling, contraband variation, and network shuffling as key replayability vectors. But these all operate WITHIN a region. The deepest replayability is BETWEEN regions: the same archetype, the same mechanical templates, but a fundamentally different cultural context that changes how every system feels.
A player who has mastered investigation in Krenn (patience, listening, earning trust through presence) will feel like a beginner in the Industrial Belt (political navigation, collective resistance) or the Frontier Station (chaos, pattern-finding). This isn't artificial difficulty — it's genuine cognitive challenge because the RULES OF SOCIAL ENGAGEMENT are different.
A player who has mastered investigation in Van Maanen's Star (patience, listening, earning trust through presence) will feel like a beginner in the Industrial Belt (political navigation, collective resistance) or the Frontier Station (chaos, pattern-finding). This isn't artificial difficulty — it's genuine cognitive challenge because the RULES OF SOCIAL ENGAGEMENT are different.
### 3. The gate network is the cultural map's skeleton
@@ -536,7 +536,7 @@ The risk is that individual regions could drift toward recognizable SF tropes (t
| Question | Answer |
|---|---|
| **Is complicity the whole-game theme?** | No. Complicity is Krenn's flavor of the master theme: "What do systems do to the people inside them?" Each region expresses a different failure mode. |
| **Is complicity the whole-game theme?** | No. Complicity is Van Maanen's Star's flavor of the master theme: "What do systems do to the people inside them?" Each region expresses a different failure mode. |
| **How many cultural groups?** | 8-10 major regions at full scale, organized by settlement motivation and economic function, not just heritage. Each creates mechanically distinct gameplay. |
| **Which patterns are universal?** | All mechanical templates (social sites, triangles, access tiers, tells, FRIEND arcs, contraband models). Content is local; structure is global. |
| **Content directory as platform?** | Regional brief as gating document in `content/regions/{region}/brief.yaml`. Self-contained regions, stable global schema, mod-friendly isolation. |
+19 -19
View File
@@ -40,18 +40,18 @@ Complicity works for EVERYONE because everyone is complicit. The smuggler is com
### Complicity mutates across cultures — that's the scale play
Gore framed it for Krenn: "the same values that make a community good enable its exploitation." That's Krenn-specific complicity. But complicity looks DIFFERENT in different cultures:
Gore framed it for Van Maanen's Star: "the same values that make a community good enable its exploitation." That's Van Maanen's Star-specific complicity. But complicity looks DIFFERENT in different cultures:
| Cultural Context | Form of Complicity | Player Experience |
|---|---|---|
| **Krenn System** (Baltic-Nordic, labor solidarity) | Community solidarity protects the ring. "Mind your own business" is a virtue weaponized. | The smuggler belongs. The detective disrupts a community by investigating it. |
| **Van Maanen's Star** (Baltic-Nordic, labor solidarity) | Community solidarity protects the ring. "Mind your own business" is a virtue weaponized. | The smuggler belongs. The detective disrupts a community by investigating it. |
| **Merchant hub** (cosmopolitan, transactional) | Financial opacity protects the ring. "Everyone has business arrangements" is the norm. | The smuggler is a business operator. The detective is bad for trade. |
| **Military outpost** (hierarchical, chain of command) | Institutional loyalty protects the ring. "Don't question your superior" is doctrine. | The smuggler hides behind rank. The detective threatens the chain of command. |
| **Religious enclave** (community of faith, confession culture) | Spiritual authority protects the ring. "What's confessed is forgiven" creates a privacy moat. | The smuggler confesses but doesn't stop. The detective can't access what's been absolved. |
| **Research station** (academic, intellectual) | Professional reputation protects the ring. "We don't police each other's research" enables misuse. | The smuggler's operation is "just a side project." The detective is anti-science. |
| **Old-money core world** (aristocratic, patronage networks) | Class solidarity protects the ring. "One doesn't discuss money" is breeding. | The smuggler is a patron. The detective is vulgar. |
Every district has a ring. Every ring is protected by the local culture's BEST qualities. The player who mastered Krenn's form of complicity walks into a merchant hub and discovers that EVERYTHING they learned about how complicity works is wrong. The silence culture doesn't apply here — it's about financial records and shell accounts and plausible intermediaries.
Every district has a ring. Every ring is protected by the local culture's BEST qualities. The player who mastered Van Maanen's Star's form of complicity walks into a merchant hub and discovers that EVERYTHING they learned about how complicity works is wrong. The silence culture doesn't apply here — it's about financial records and shell accounts and plausible intermediaries.
**That's the replayability EXPLODING.** Not just different FRIENDs, not just different NPCs — different RULES for how complicity operates. The detective who learned to read Baltic reserve can't read merchant cordiality. The smuggler whose cover was labor solidarity can't use the same cover in an academic context. The CHARACTER SKILLS don't transfer, even if the PLAYER SKILLS do.
@@ -59,7 +59,7 @@ Every district has a ring. Every ring is protected by the local culture's BEST q
Gore proposed "Is this enough?" as each character's thematic question. At full scale, each district answers that question differently:
- Krenn: "Is the money enough to justify what it costs the people I love?"
- Van Maanen's Star: "Is the money enough to justify what it costs the people I love?"
- Merchant hub: "Is the profit enough to justify what it costs my integrity?"
- Military outpost: "Is the order enough to justify what it costs my conscience?"
- Research station: "Is the discovery enough to justify what it costs my ethics?"
@@ -72,9 +72,9 @@ Same question. Different currencies. Different costs. The player who plays five
### Every culture is a gameplay system, not a paint job
Miri's Krenn brief proved something we need to generalize: **culture is mechanics.** The Finnish-Baltic reserve isn't flavor — it's the difficulty gradient. The labor solidarity isn't worldbuilding — it's the ring's immune system.
Miri's Van Maanen's Star brief proved something we need to generalize: **culture is mechanics.** The Finnish-Baltic reserve isn't flavor — it's the difficulty gradient. The labor solidarity isn't worldbuilding — it's the ring's immune system.
At full scale, every district needs what Krenn has: a cultural brief that explains HOW this culture's virtues protect the local ring and obstruct the local detective. The cultural brief IS the game design document for that district's social mechanics.
At full scale, every district needs what Van Maanen's Star has: a cultural brief that explains HOW this culture's virtues protect the local ring and obstruct the local detective. The cultural brief IS the game design document for that district's social mechanics.
### Cultural groups as replayability multipliers
@@ -96,23 +96,23 @@ But here's the critical insight: **cultures can't just be stat modifiers.** If a
### The cultural immune system framework
Every culture brief should answer these questions (generalizing from Krenn):
Every culture brief should answer these questions (generalizing from Van Maanen's Star):
1. **What is the default social privacy norm?** (Krenn: don't discuss others' business. Merchant: don't discuss deal terms. Military: don't discuss operations above your clearance.)
2. **What earns trust?** (Krenn: shared labor over time. Merchant: successful transactions. Military: demonstrated competence and loyalty to unit.)
3. **How does the culture handle outsiders?** (Krenn: polite distance. Merchant: calculate what you're worth. Military: evaluate your rank and credentials.)
4. **What cultural practice has been co-opted by the ring?** (Krenn: "vakt" as lookout slang. Merchant: encrypted transaction ledgers. Military: "need to know" operational security.)
5. **What cultural virtue does the ring exploit?** (Krenn: solidarity. Merchant: discretion. Military: obedience.)
6. **How does the ring recruit?** (Krenn: "We're helping people who need affordable lattice mods." Merchant: "This is just another business arrangement." Military: "Orders from above.")
7. **What does exposure look like culturally?** (Krenn: betrayal of the community. Merchant: contract violation. Military: insubordination.)
1. **What is the default social privacy norm?** (Van Maanen's Star: don't discuss others' business. Merchant: don't discuss deal terms. Military: don't discuss operations above your clearance.)
2. **What earns trust?** (Van Maanen's Star: shared labor over time. Merchant: successful transactions. Military: demonstrated competence and loyalty to unit.)
3. **How does the culture handle outsiders?** (Van Maanen's Star: polite distance. Merchant: calculate what you're worth. Military: evaluate your rank and credentials.)
4. **What cultural practice has been co-opted by the ring?** (Van Maanen's Star: "vakt" as lookout slang. Merchant: encrypted transaction ledgers. Military: "need to know" operational security.)
5. **What cultural virtue does the ring exploit?** (Van Maanen's Star: solidarity. Merchant: discretion. Military: obedience.)
6. **How does the ring recruit?** (Van Maanen's Star: "We're helping people who need affordable lattice mods." Merchant: "This is just another business arrangement." Military: "Orders from above.")
7. **What does exposure look like culturally?** (Van Maanen's Star: betrayal of the community. Merchant: contract violation. Military: insubordination.)
These seven questions produce a unique social SYSTEM for each district. The detective can't just "investigate harder" — they have to learn a new social language for each district. The smuggler can't just "maintain cover" — they have to maintain a different KIND of cover.
### Anti-metagaming through cultural diversity
And here's the kicker for replayability: **the player who mastered Krenn can't metagame a merchant district.** The strategies are different. The tells are different. The social vulnerability points are different. The cultural gate modifiers (Gore's proposal from Round 2) apply DIFFERENT filters.
And here's the kicker for replayability: **the player who mastered Van Maanen's Star can't metagame a merchant district.** The strategies are different. The tells are different. The social vulnerability points are different. The cultural gate modifiers (Gore's proposal from Round 2) apply DIFFERENT filters.
I played Krenn twice and I figured out that worker solidarity is the blind spot. I start a merchant district and... worker solidarity doesn't exist here. Everyone's an independent operator. The blind spot is financial record-keeping conventions. Completely different puzzle. My Krenn expertise is useless.
I played Van Maanen's Star twice and I figured out that worker solidarity is the blind spot. I start a merchant district and... worker solidarity doesn't exist here. Everyone's an independent operator. The blind spot is financial record-keeping conventions. Completely different puzzle. My Van Maanen's Star expertise is useless.
That's anti-metagaming through CONTENT DIVERSITY, not through randomization. The randomizer handles within-district variation. Cultural diversity handles between-district variation. Together, they make the game unsolvable in the most satisfying way.
@@ -398,9 +398,9 @@ Each row is a completely different game about complicity. The same district. The
And here's where it gets TRULY replayable: archetypes interact DIFFERENTLY with different cultures.
The detective is a fish out of water in Krenn (Baltic reserve, labor solidarity obstructs). But the detective might be culturally AT HOME in a merchant hub district (investigation = audit, which merchants understand). The smuggler is culturally embedded in Krenn but would be a business operator in the merchant hub — different cover, different social mechanics, different vulnerabilities.
The detective is a fish out of water in Van Maanen's Star (Baltic reserve, labor solidarity obstructs). But the detective might be culturally AT HOME in a merchant hub district (investigation = audit, which merchants understand). The smuggler is culturally embedded in Van Maanen's Star but would be a business operator in the merchant hub — different cover, different social mechanics, different vulnerabilities.
The newcomer is always culturally alien — that's the archetype. But the NATURE of their alienation varies. In Krenn, they struggle with social reserve. In a military culture, they struggle with hierarchy. In a religious enclave, they struggle with faith-as-social-currency.
The newcomer is always culturally alien — that's the archetype. But the NATURE of their alienation varies. In Van Maanen's Star, they struggle with social reserve. In a military culture, they struggle with hierarchy. In a religious enclave, they struggle with faith-as-social-currency.
Each archetype x culture combination is a unique social puzzle. That's 5 archetypes x 6 cultures = 30 unique social navigation challenges before seeds even enter the picture.
@@ -503,7 +503,7 @@ The Settled Reach ships with 6 districts across 3 star systems. Each district ha
The modding community has added 20 more districts. Some are studio-certified masterworks. Some are rough-but-interesting experiments. The content pool has grown from 17 NPCs per district to 40+, with pools deep enough that the randomizer can construct thousands of unique configurations.
Two players meet. One says: "I played the enforcer in the Krenn System. My FRIEND was Renn — he was the one who introduced me to the ring before the game started. When he wavered, I had to threaten him. He was my friend and I threatened him."
Two players meet. One says: "I played the enforcer in Van Maanen's Star. My FRIEND was Renn — he was the one who introduced me to the ring before the game started. When he wavered, I had to threaten him. He was my friend and I threatened him."
The other says: "I played the newcomer in a merchant hub. I didn't know there was a ring for the first 15 minutes. I thought I was playing a social sim. Then I found out my landlord was a FRIEND-candidate and she'd been keeping me AWAY from the evidence. She was protecting me. I didn't want to be protected."
+12 -12
View File
@@ -20,7 +20,7 @@ But here's the thing: complicity is a FLAVOR of the game's actual theme. And the
That's the question every district asks, in a different voice.
- **Sova (logistics hub, Krenn System):** What do you owe your community? Complicity. The ring provides what the system won't. Minding your business IS loyalty. The detective asks: is exposure justice or vandalism?
- **Sova (logistics hub, Van Maanen's Star):** What do you owe your community? Complicity. The ring provides what the system won't. Minding your business IS loyalty. The detective asks: is exposure justice or vandalism?
- **A medical research station:** What do you owe the sick? A district where experimental lattice treatments are tested on desperate patients. The smuggler here moves test subjects, not components. The detective discovers the trials are saving lives AND killing people. Complicity shifts to: is consent meaningful when the alternative is death?
- **A political capital:** What do you owe the truth? A district where information is the contraband. News suppression, Meridian censorship, faction PR. The smuggler is a data courier. The detective is investigating leaks — but who decides what's a leak and what's journalism?
- **A frontier settlement:** What do you owe the future? A place where survival demands compromise. The ring here doesn't smuggle goods — it smuggles people. Illegal immigration to a colony that needs bodies but won't admit it. The detective arrives to enforce quotas that the community depends on violating.
@@ -48,7 +48,7 @@ Every district gets a **moral signature** — a one-sentence thematic question d
Here's what matters: **when the player walks into a new district, does it FEEL different?** Not "are the names different" — does the AIR feel different? Does the social rhythm change? Does the bar serve different food and play different music and have a different relationship with silence?
Miri's Krenn brief succeeded because it didn't just name things. It described HOW PEOPLE GREET EACH OTHER (chin-lift, no words), WHAT THEY EAT (leib, supp, kalaa), HOW THEY SWEAR (perk), and WHEN THEY DRINK (kuum at shift transition). That's cultural texture the player absorbs without thinking about it.
Miri's Van Maanen's Star brief succeeded because it didn't just name things. It described HOW PEOPLE GREET EACH OTHER (chin-lift, no words), WHAT THEY EAT (leib, supp, kalaa), HOW THEY SWEAR (perk), and WHEN THEY DRINK (kuum at shift transition). That's cultural texture the player absorbs without thinking about it.
### How many cultural groups?
@@ -58,21 +58,21 @@ For 5 star systems with ~4 districts each (20 districts total for the full game)
Each cultural group needs to deliver THREE things to the player:
1. **An ambient feel in the first 30 seconds.** You walk in and something is different. The greetings are different (Krenn: chin-lift silence. Another culture: verbal greeting formula, maybe even physical contact. The player's monologue notes it: "People touch each other when they say hello here. Different."). The food is different. The bar's energy is different. The SOUND is different (one culture is loud, communal; another is quiet, private).
1. **An ambient feel in the first 30 seconds.** You walk in and something is different. The greetings are different (Van Maanen's Star: chin-lift silence. Another culture: verbal greeting formula, maybe even physical contact. The player's monologue notes it: "People touch each other when they say hello here. Different."). The food is different. The bar's energy is different. The SOUND is different (one culture is loud, communal; another is quiet, private).
2. **A social rule the player has to learn.** In Krenn, the rule is: don't ask questions. Mind your business. Surnames are formal. In another culture, the rule might be: reputation is everything, insults demand response, silence is suspicious. The detective and smuggler each interact with these rules differently. The detective's institutional authority might be RESPECTED in one culture and DESPISED in another.
2. **A social rule the player has to learn.** In Van Maanen's Star, the rule is: don't ask questions. Mind your business. Surnames are formal. In another culture, the rule might be: reputation is everything, insults demand response, silence is suspicious. The detective and smuggler each interact with these rules differently. The detective's institutional authority might be RESPECTED in one culture and DESPISED in another.
3. **A way the culture protects or exposes the ring.** In Krenn, the mind-your-business ethos protects the ring. In another culture where gossip is social currency, the ring is constantly at risk of exposure through chatter. The smuggler's challenge shifts. The detective's approach shifts. Same game structure, different social terrain.
3. **A way the culture protects or exposes the ring.** In Van Maanen's Star, the mind-your-business ethos protects the ring. In another culture where gossip is social currency, the ring is constantly at risk of exposure through chatter. The smuggler's challenge shifts. The detective's approach shifts. Same game structure, different social terrain.
### Cultural diversity as replayability
Nigel's randomization axes (FRIEND pool, contraband type, who's compromised) are all within-district variation. Cultural groups are BETWEEN-district variation. A player who's mastered the social dynamics of Krenn culture enters a completely different social landscape in System B. Their smuggler skills translate mechanically but not socially. Their detective approach that worked in Krenn fails spectacularly in a culture with different authority dynamics.
Nigel's randomization axes (FRIEND pool, contraband type, who's compromised) are all within-district variation. Cultural groups are BETWEEN-district variation. A player who's mastered the social dynamics of Van Maanen's Star culture enters a completely different social landscape in System B. Their smuggler skills translate mechanically but not socially. Their detective approach that worked in Van Maanen's Star fails spectacularly in a culture with different authority dynamics.
THAT'S long-term wow. Not just "new NPCs" but "new RULES for how people treat each other." The player has to relearn social navigation every time they change cultural contexts.
### What I need from Miri at scale
A cultural brief for every group at the depth of the Krenn brief. Not 8-12 full briefs right now — but a cultural MAP that shows: which groups exist, how they relate to each other (shared heritage? historical conflict? economic dependency?), and what each group's social "rule" is. The full briefs can come district by district. But the map needs to exist before we plan beyond Krenn.
A cultural brief for every group at the depth of the Van Maanen's Star brief. Not 8-12 full briefs right now — but a cultural MAP that shows: which groups exist, how they relate to each other (shared heritage? historical conflict? economic dependency?), and what each group's social "rule" is. The full briefs can come district by district. But the map needs to exist before we plan beyond Van Maanen's Star.
---
@@ -95,7 +95,7 @@ A cultural brief for every group at the depth of the Krenn brief. Not 8-12 full
| Pattern | Why it's local | Example |
|---------|---------------|---------|
| **Contraband type** | The moral texture of what's being moved defines the district's question | Lattice components (access), people (immigration), data (truth), pleasure (consent) |
| **The ring structure** | Criminal organizations differ by culture and economy | Krenn: family-loyalty network. Another district: corporate shell game. Another: political faction with armed wing. |
| **The ring structure** | Criminal organizations differ by culture and economy | Van Maanen's Star: family-loyalty network. Another district: corporate shell game. Another: political faction with armed wing. |
| **Authority dynamics** | How the detective's institutional power is received | Respected, feared, resented, ignored, co-opted |
| **Mundane life texture** | What "daily life" means here | Shift work vs. market stalls vs. academic cycles vs. festival rhythms |
| **The quiet moment content** | What the character reflects on when idle | Shifts with the district's mood and the player's accumulating experience |
@@ -132,7 +132,7 @@ I'm not the architecture person, but I know what the platform needs to DELIVER f
1. **No loading screens between districts.** The player walks through a gate or boards a transport and arrives. The content loads seamlessly. If the directory structure makes this hard, fix the directory structure. Immersion breaks destroy everything we're building.
2. **Cultural consistency within districts, diversity between.** When the engine loads a district's content pack, everything in that pack must feel cohesive — names, slang, food, greetings, all from the same cultural brief. The content directory should make it IMPOSSIBLE to accidentally serve Krenn dialogue in a non-Krenn district.
2. **Cultural consistency within districts, diversity between.** When the engine loads a district's content pack, everything in that pack must feel cohesive — names, slang, food, greetings, all from the same cultural brief. The content directory should make it IMPOSSIBLE to accidentally serve Van Maanen's Star dialogue in a non-Van Maanen's Star district.
3. **Mod districts feel like real districts.** The architecture should be such that a modder who follows the template produces a district that's indistinguishable from official content in quality (assuming they put in the authoring work). The player shouldn't be able to tell modded from official.
@@ -168,11 +168,11 @@ The authored core is: FRIEND contradiction arcs, key monologue lines, cultural t
At full scale, the player should be able to have this experience:
Playthrough 1: They're a smuggler in Krenn. Kael is their FRIEND. They discover the exit attempt. They feel guilty about Hael. They resolve it somehow.
Playthrough 1: They're a smuggler in Van Maanen's Star. Kael is their FRIEND. They discover the exit attempt. They feel guilty about Hael. They resolve it somehow.
Playthrough 2: They're a detective in a DIFFERENT system. Different culture, different contraband, different moral question. They meet a MIRROR NPC — a smuggler who reminds them of who they were in Playthrough 1. The MIRROR is doing what the player did. The detective must decide whether to treat the MIRROR the way THEY were investigated.
Playthrough 3: They return to Krenn as a detective. Different seed. Kael isn't THE FRIEND this time — Maret is. The player ALREADY KNOWS Kael's secret from Playthrough 1, but their character doesn't. Kael is background noise. And Maret — the anxious scheduler they barely noticed last time — is now the person they're growing to trust. And the player thinks: "Wait. Was Maret always this important? Was I blind the first time?"
Playthrough 3: They return to Van Maanen's Star as a detective. Different seed. Kael isn't THE FRIEND this time — Maret is. The player ALREADY KNOWS Kael's secret from Playthrough 1, but their character doesn't. Kael is background noise. And Maret — the anxious scheduler they barely noticed last time — is now the person they're growing to trust. And the player thinks: "Wait. Was Maret always this important? Was I blind the first time?"
That three-playthrough arc is the game's masterpiece. It's not authored. It's EMERGENT from authored content + randomized context + player memory. And it only works if we build the full variation space.
@@ -213,7 +213,7 @@ The Newcomer also has the most DANGEROUS relationship with THE FRIEND. The Newco
### PC archetypes and cultural groups interact
The same archetype plays differently in different cultures. The Investigator in a culture that respects institutional authority has a different experience from the Investigator in Krenn where authority is politely distrusted. The Newcomer in a culture where strangers are welcomed has a different ramp from the Newcomer in Krenn where trust takes months.
The same archetype plays differently in different cultures. The Investigator in a culture that respects institutional authority has a different experience from the Investigator in Van Maanen's Star where authority is politely distrusted. The Newcomer in a culture where strangers are welcomed has a different ramp from the Newcomer in Van Maanen's Star where trust takes months.
This is the full combinatorial space: 6 archetypes x 8-12 cultural groups x variable randomization = a game that no two players will ever describe the same way.
+5 -5
View File
@@ -49,7 +49,7 @@ The content directory includes a `moral_texture` field in every district definit
## 2. Cultural Groups at Scale
Miri's Krenn System brief gave us Nordic-Baltic heritage for one system. The full game needs 8-12 cultural groups, and here's the part most people miss: **cultural groups are political groups**.
Miri's Van Maanen's Star brief gave us Nordic-Baltic heritage for one system. The full game needs 8-12 cultural groups, and here's the part most people miss: **cultural groups are political groups**.
### Why Culture Is Mechanical
@@ -87,7 +87,7 @@ Naming Conventions: [Phonological rules, surname patterns, address forms]
For a game with ~20 districts across 4-6 star systems:
- **4-6 "founding" cultures** — the original settlement waves that colonized the Reach. These are the dominant cultures in the oldest, most established systems. High institutional trust, formal naming, slower trust mechanics.
- **3-4 "second wave" cultures** — later arrivals who settled less desirable systems or came as labor. Often working-class, informal, faster trust but higher solidarity (protect their own). Krenn's Nordic-Baltic group fits here.
- **3-4 "second wave" cultures** — later arrivals who settled less desirable systems or came as labor. Often working-class, informal, faster trust but higher solidarity (protect their own). Van Maanen's Star's Nordic-Baltic group fits here.
- **1-2 "recent arrival" groups** — settlers from outside the Reach who bring entirely different norms. Create the "outsider" experience for PCs from these backgrounds. Lower starting trust everywhere, but bring unique knowledge or skills.
- **1 "synthetic" culture** — a culture that emerged in the Reach itself, not imported. Maybe a station-born identity, or a Meridian (FTL corridor) traveler culture. No real-world analogue — invented from scratch.
@@ -171,7 +171,7 @@ Tyre's three-layer stack (base/DLC/mods) is architecturally right. Let me add th
|-------|----------------|---------|
| **Universal** | Pattern definitions, archetype specs, cultural group briefs, tag taxonomies | THE FRIEND pattern spec, smuggler archetype, tag enum lists |
| **Faction** | Faction definitions, faction-level NPCs, cross-system storylines | Commission leadership, Syndic trade routes, conspiracy threads |
| **System** | System-level setting, dominant cultural group, inter-district connections | Krenn System brief, Krenn-specific naming tables, system events |
| **System** | System-level setting, dominant cultural group, inter-district connections | Van Maanen's Star brief, Van Maanen's Star-specific naming tables, system events |
| **District** | The actual playable content — NPCs, triangles, social sites, dialogue pools | Sova Transit District, all its NPCs, all its dialogue YAML |
This hierarchy matters because STORIES CROSS BOUNDARIES. The conspiracy doesn't respect district lines. A faction's influence spans systems. A cultural group's norms apply across multiple districts. The content directory must make these cross-references explicit and validatable.
@@ -184,8 +184,8 @@ The biggest structural challenge at scale: how does content in District A refere
A player playing in Sova doesn't need District B's content loaded. But a character in Sova might reference events in District B, or an NPC might have a `known_by` entry from an NPC who lives in District B. These references are:
1. **Soft references** — dialogue lines that mention another district by name. No mechanical dependency. Handled by the tag system (freeform tags like `references:krenn_central`).
2. **Hard references** — a FactId in District A that depends on a FactId in District B. Example: `conspiracy.krenn_cell` in Sova references `conspiracy.krenn_network` which is defined at the system level. Hard references require the referenced content to exist in the content directory. Validated by schema.
1. **Soft references** — dialogue lines that mention another district by name. No mechanical dependency. Handled by the tag system (freeform tags like `references:van_maanens_star_central`).
2. **Hard references** — a FactId in District A that depends on a FactId in District B. Example: `conspiracy.van_maanens_star_cell` in Sova references `conspiracy.van_maanens_star_network` which is defined at the system level. Hard references require the referenced content to exist in the content directory. Validated by schema.
3. **Migration references** — an NPC who appears in multiple districts (rare, high-value). Example: a Commission investigator who was in District A and transferred to District B. Carries relationship history from one district to another. This is the most complex case — the NPC has TWO district entries (one per district) with a shared identity record at the system level.
### Content Validation at Scale
+5 -5
View File
@@ -30,7 +30,7 @@ Miri delivered one cultural brief in ~4 hours of workshop time. That brief is ex
| Scale | Cultural Groups | Miri-Hours | Calendar Time (1 Miri) |
|-------|----------------|------------|----------------------|
| v0.1 | 1 (Krenn) | ~4h | Done |
| v0.1 | 1 (Van Maanen's Star) | ~4h | Done |
| v0.2 | 3-4 | ~12-16h | 1-2 weeks |
| v1.0 | 8-12 | ~32-48h | 4-6 weeks |
| Full game | 15-25 | ~60-100h | 2-3 months |
@@ -82,7 +82,7 @@ From the production management perspective, I'm categorizing every pattern by **
| THE MIRROR candidate | 10-15 hours each | N/A | 1:1 |
| Tier 1 contradiction arc | 8-12 hours | N/A | 1:1 |
| District-specific FactIds | 2-3 hours per district | N/A | 1:1 |
| Environmental text (Krenn-specific) | 4-6 hours per district | N/A | 1:1 |
| Environmental text (Van Maanen's Star-specific) | 4-6 hours per district | N/A | 1:1 |
**The bottleneck is clear: Tier 1 content.** Everything else scales through templates and generation. THE FRIEND and THE MIRROR are 15-22 hours of irreducible authored content per instance. At 2-3 FRIENDs per district and 1 MIRROR per district, that's 45-80 hours of Tier 1 authoring per district.
@@ -200,9 +200,9 @@ content/
systems.yaml # All star systems, coordinates, gate connections
routes.yaml # Travel routes between systems
districts/
sova-transit/ # Krenn System
sova-transit/ # Van Maanen's Star
vael-docks/ # Vael System
prime-central/ # Krenn Prime (surface)
prime-central/ # Van Maanen's Star Prime (surface)
```
Each district YAML includes its system and station reference. The galaxy index is global — it's the map. Districts are the content. The separation is clean.
@@ -265,7 +265,7 @@ Putting it all together into a release plan:
| Release | Districts | PC Archetypes | FRIEND Pool | Cultural Groups | Content Hours |
|---------|-----------|--------------|-------------|----------------|--------------|
| v0.1 | 1 (Sova Transit) | 2 | 1 per character | 1 (Krenn) | ~200h (done) |
| v0.1 | 1 (Sova Transit) | 2 | 1 per character | 1 (Van Maanen's Star) | ~200h (done) |
| v0.2 | 3 (+ 2 new) | 2 | 2 per character | 3 | ~600h |
| v0.3 | 6 (+ 3 new) | 3 (+ 1 new) | 2-3 per character | 5 | ~900h |
| v0.4 | 10 (+ 4 new) | 3 | 3 per character | 7 | ~800h |
+11 -11
View File
@@ -20,7 +20,7 @@ The engine doesn't know about "complicity." It knows about:
|---|---|---|
| Moral arc phases (state progression) | Comfort → Doubt → Reckoning → Compromise | **Yes** — any moral journey follows a phase progression. The phase names are content, not code. |
| Monologue triggers (`moral_pang`, `loyalty_test`) | Smuggler-specific guilt triggers | **Partially** — the trigger types are engine features, but new themes might need new trigger types. A "survival" theme might need `resource_scarcity_observation` or `triage_decision`. |
| Cultural gate modifier (Gore's proposal) | Krenn privacy norms reduce disclosure | **Yes** — every culture has social norms that modify disclosure. The modifier system is general. The RULES per culture are content. |
| Cultural gate modifier (Gore's proposal) | Van Maanen's Star privacy norms reduce disclosure | **Yes** — every culture has social norms that modify disclosure. The modifier system is general. The RULES per culture are content. |
| Knowledge confidence progression | Suspects → KnowsOf → KnowsDetails → Direct | **Yes** — this is epistemology, not theme. Every information-asymmetric situation uses this. |
| Contradiction detection | FRIEND's hidden behavior conflicts with presented behavior | **Yes** — cognitive dissonance is universal. THE FRIEND pattern works for any relationship where someone conceals something from someone they care about. |
| THE MIRROR pattern | Hael's transparency amplifies everyone's dishonesty | **Partially** — the "honest character in a dishonest world" works for complicity/deception themes. A survival-themed district might need THE MIRROR to be "the person who refuses to compromise even when everyone else has." Same mechanical pattern (character without a secret who makes others uncomfortable), different moral content. |
@@ -67,9 +67,9 @@ Culture is **reference data that modifies entity behavior at creation and dialog
### The data model for culture at scale
```yaml
# global/regions/krenn-system.yaml
# global/regions/van-maanens-star-system.yaml
culture:
id: krenn
id: van-maanens-star
heritage_blend: ["finnish", "estonian", "latvian"]
drift_years: 180
@@ -123,9 +123,9 @@ The engine needs a **cultural distance model**:
cultural_distance(observer, subject) → modifier_strength
```
If both are Krenn, full cultural norms apply. If the observer is Krenn and the subject is from Vael System, some norms apply at reduced strength (shared labor solidarity if they work together, but outsider trust baseline still applies). If both are from different cultures entirely, minimal cultural modifier — fall back to personality-driven behavior.
If both are Van Maanen's Star, full cultural norms apply. If the observer is Van Maanen's Star and the subject is from Vael System, some norms apply at reduced strength (shared labor solidarity if they work together, but outsider trust baseline still applies). If both are from different cultures entirely, minimal cultural modifier — fall back to personality-driven behavior.
**Implementation approach:** Each NPC has a `culture_id` field. The dialogue selection system looks up the cultural distance between the speaking NPC and the listener. Cultural modifiers apply at `distance_modifier * full_strength`. For v0.1, every NPC in Sova is Krenn and every outsider (detective) gets full outsider penalty. For full game, the distance calculation is a simple lookup table:
**Implementation approach:** Each NPC has a `culture_id` field. The dialogue selection system looks up the cultural distance between the speaking NPC and the listener. Cultural modifiers apply at `distance_modifier * full_strength`. For v0.1, every NPC in Sova is Van Maanen's Star and every outsider (detective) gets full outsider penalty. For full game, the distance calculation is a simple lookup table:
| Observer Culture | Subject Culture | Distance | Modifier Strength |
|---|---|---|---|
@@ -235,7 +235,7 @@ This is the section I care most about. The content directory isn't just a file l
| Requirement | What It Means | Technical Approach |
|---|---|---|
| **Lazy loading** | Only load the player's current district + queued adjacent districts. Don't load all 20+ districts at once. | Content loader uses a manifest graph. District YAML declares dependencies. Loader resolves the dependency tree and loads only what's needed. |
| **Cross-district references** | NPC in district A mentions faction headquartered in district B. Canonical_id `krenn.sova.transit.npc.kael-davan` resolves across any loaded district. | The `canonical_id` resolver is a global registry populated at manifest-load time (just IDs and paths, not full content). Full content loads on demand. |
| **Cross-district references** | NPC in district A mentions faction headquartered in district B. Canonical_id `van-maanens-star.sova.transit.npc.kael-davan` resolves across any loaded district. | The `canonical_id` resolver is a global registry populated at manifest-load time (just IDs and paths, not full content). Full content loads on demand. |
| **Hot-reloading** | Dev-only: change a monologue line, see it in-game without restart. | `notify` crate file watcher on `content/` directory. On change: re-validate changed file → re-parse → hot-swap into running ECS world. Line pools and schedule data are hot-swappable. NPC creation requires restart. |
| **Validation pipeline** | `make validate-content` catches errors before they reach the engine. | JSON Schema validation (structural) + cross-reference resolver (semantic) + tier-conditional rules + custom DSL checks. CI runs this on every content PR. |
| **DLC packaging** | A DLC is a content pack: new districts + new global entries + extensions to existing districts. | DLC is a content directory with the same structure as base. `_meta/manifest.yaml` declares: base version dependency, ADD/REPLACE/MERGE operations, new district list. Load order: base → DLC1 → DLC2 → mods. |
@@ -384,7 +384,7 @@ content/
activities.yaml
moral-arc-phases.yaml # Configurable per thematic texture
regions/ # 15-25 cultural groups
krenn-system.yaml
van-maanens-star-system.yaml
vael-system.yaml
...
thematic-textures/ # 4-6 moral textures (SI's palette)
@@ -394,7 +394,7 @@ content/
identity.yaml
districts/
sova-transit/ # Krenn System, Station Sova
sova-transit/ # Van Maanen's Star, Station Sova
district.yaml # Metadata: system, station, culture_id, theme_texture
facts.yaml # District-specific FactIds (Gestalt's split)
pools.yaml # All pool definitions for seed-time selection
@@ -408,7 +408,7 @@ content/
bar/
corridor/
vael-docks/ # Vael System
prime-central/ # Krenn Prime (surface city)
prime-central/ # Van Maanen's Star Prime (surface city)
... # 20+ districts total
```
@@ -418,7 +418,7 @@ At 20 districts, this is ~1000-2000 YAML files total. Each is small (1-10KB). To
If the game has DLC and mod support, content WILL change post-release. The canonical_id system handles this:
- A canonical_id is permanent. Once `krenn.sova.transit.npc.kael-davan` exists, it exists forever.
- A canonical_id is permanent. Once `van-maanens-star.sova.transit.npc.kael-davan` exists, it exists forever.
- Content behind a canonical_id can change (REPLACE operation), but the ID persists.
- Save games reference canonical_ids, not file paths. If a DLC changes Kael's dialogue, existing saves still reference `kael-davan` and get the updated content.
- If a mod is removed, the loader detects missing canonical_ids referenced in the save game and flags them. The game can degrade gracefully (NPC exists but has fallback content) or warn the player.
@@ -625,7 +625,7 @@ For Tier 2 line expansion (write 10, generate 40):
Input:
- 10 authored dialogue lines (human-written, voice-perfect)
- NPC profile YAML (personality, role, relationships)
- Cultural brief (Krenn norms, vocabulary, speech patterns)
- Cultural brief (Van Maanen's Star norms, vocabulary, speech patterns)
- Tag taxonomy (D-035 tags for each generated line)
- Voice card (character-specific writing guide)
+2 -2
View File
@@ -135,7 +135,7 @@ culture:
moral_texture: complicity # pragmatic-collectivism + economic-opportunity + logistics
```
This IS Sova's culture — generated from ingredients rather than hand-written. The Krenn brief becomes the **benchmark output** that the generator must match when given these particular ingredient selections.
This IS Sova's culture — generated from ingredients rather than hand-written. The Van Maanen's Star brief becomes the **benchmark output** that the generator must match when given these particular ingredient selections.
### The mechanical parameter derivation rules
@@ -684,7 +684,7 @@ Seed Configuration Generator
└── Produces: Per-seed configuration (which pools draw which results)
```
The beauty: **each generator is independently testable.** The Cultural Parameter Generator can be validated against Miri's Krenn brief. The NPC Generator can be validated against Paula's Sova NPCs. The FRIEND Skinner can be validated against our hand-authored FRIENDs. Each generator has a benchmark. Each can be iterated independently.
The beauty: **each generator is independently testable.** The Cultural Parameter Generator can be validated against Miri's Van Maanen's Star brief. The NPC Generator can be validated against Paula's Sova NPCs. The FRIEND Skinner can be validated against our hand-authored FRIENDs. Each generator has a benchmark. Each can be iterated independently.
But when they INTERACT — when the Cultural Parameter Generator feeds the NPC Generator which feeds the Triangle Generator which feeds the District Composer — the output space explodes combinatorially. 300 worlds. All different. All mechanically coherent. All asking the same question.
+2 -2
View File
@@ -80,7 +80,7 @@ My Round 3 clusters dissolve into ingredient combinations:
| Old Cluster | Actual Ingredient Combination |
|---|---|
| Pragmatic Collectivist (Krenn) | Nordic-Baltic heritage + economic_settlement + logistics_function + collective_security + no_corp + 180yr_drift + regulatory_exclusion |
| Pragmatic Collectivist (Van Maanen's Star) | Nordic-Baltic heritage + economic_settlement + logistics_function + collective_security + no_corp + 180yr_drift + regulatory_exclusion |
| Core Institutional | Cosmopolitan heritage + governance_settlement + administrative_function + institutional_trust + heavy_corp + 250yr_drift + monopoly_extraction |
| Frontier Individualist | Mixed heritage + economic_settlement + extraction_function + individual_liberty + no_corp + 60yr_drift + scarcity |
| Syndic-Corporate | East Asian/Dutch heritage + commercial_settlement + trade_function + meritocratic_advancement + dominant_corp + 150yr_drift + monopoly_extraction |
@@ -110,7 +110,7 @@ OUTPUT: Derived properties:
The derivation isn't random. It's DETERMINISTIC given the inputs. Same ingredients always produce the same society. The randomization happens at ingredient SELECTION, not at derivation.
This means style briefs — Miri's Krenn brief and its equivalents — are REFERENCE IMPLEMENTATIONS. They're what the derivation function produces for a specific ingredient set. You don't need 300 style briefs. You need the derivation function, plus 10-20 reference implementations that demonstrate it works correctly and that writers can use as models for the authored content that sits on top.
This means style briefs — Miri's Van Maanen's Star brief and its equivalents — are REFERENCE IMPLEMENTATIONS. They're what the derivation function produces for a specific ingredient set. You don't need 300 style briefs. You need the derivation function, plus 10-20 reference implementations that demonstrate it works correctly and that writers can use as models for the authored content that sits on top.
---
@@ -22,15 +22,15 @@ This is right. And it changes my job description.
### What I used to do (20-district model)
Read Miri's Krenn brief. Hold the whole register in my head. Write all Krenn content in one voice. Switch to the next brief. Repeat.
Read Miri's Van Maanen's Star brief. Hold the whole register in my head. Write all Van Maanen's Star content in one voice. Switch to the next brief. Repeat.
### What I do now (300-world model)
Define the PARAMETERS that make a voice sound right. Not "write Krenn dialogue" but "define what makes dialogue sound working-class-logistics-heritage-Nordic-Baltic."
Define the PARAMETERS that make a voice sound right. Not "write Van Maanen's Star dialogue" but "define what makes dialogue sound working-class-logistics-heritage-Nordic-Baltic."
### The ingredient categories I need to parameterize
| Category | What the generator needs from me | Example (Krenn ingredients) |
| Category | What the generator needs from me | Example (Van Maanen's Star ingredients) |
|----------|----------------------------------|----------------------------|
| **Sentence rhythm** | Fragment frequency, max comfortable sentence length, clause-chaining habits | 70% fragments, max 8 words comfortable, no subordinate clauses |
| **Formality gradient** | How register shifts with access tier | public: clipped neutral / peer: fragments + substrate / insider: full substrate + first names / authority: formal + hostile |
@@ -271,7 +271,7 @@ Compare to my Round 3 estimate: 13,500-31,200 authored lines for 20 districts. T
**Anchor lines.** Still Sacred. Still hand-authored. Still the gut-check test. At 300-world scale, anchor lines live in the FRIEND arc templates (30-50 arcs), not in per-NPC profiles. Each FRIEND arc template includes its anchor lines. The generator assigns arcs to NPCs but doesn't modify the anchors.
**Environmental text as worldbuilding.** Still true. But at 300 worlds, I'm not writing 65-90 items per district. I'm writing environmental text TEMPLATE POOLS (signs, menus, graffiti, notices, tickers) and cultural parameter transforms that make the templates world-specific. The template says "BAR MENU." The parameters say "Krenn-derived: sparse, no descriptions, heritage food names, small denominations." The generator produces a specific menu for a specific bar on a specific world.
**Environmental text as worldbuilding.** Still true. But at 300 worlds, I'm not writing 65-90 items per district. I'm writing environmental text TEMPLATE POOLS (signs, menus, graffiti, notices, tickers) and cultural parameter transforms that make the templates world-specific. The template says "BAR MENU." The parameters say "Van Maanen's Star-derived: sparse, no descriptions, heritage food names, small denominations." The generator produces a specific menu for a specific bar on a specific world.
### What my Round 3 proposals got wrong
@@ -315,7 +315,7 @@ Given the 300-world reframe, here's what I should author first, in priority orde
### Priority 1: Cultural ingredient specs (the foundation everything else builds on)
Using the Krenn brief as source material, extract and formalize the 8 parameter categories for the Nordic-Baltic ingredient set. This is the first ingredient set. It becomes the template for all others.
Using the Van Maanen's Star brief as source material, extract and formalize the 8 parameter categories for the Nordic-Baltic ingredient set. This is the first ingredient set. It becomes the template for all others.
### Priority 2: Smuggler and detective voice profiles as continuous axes
@@ -323,7 +323,7 @@ Convert my Round 2 voice cards from prose descriptions into axis-based parameter
### Priority 3: FRIEND arc voice seeds (pattern-level, not character-level)
Author 3-5 complete FRIEND arcs as Sacred content. Each arc is a full 5-phase emotional journey with voice lines at every phase. These are the seed arcs. Test them against the Krenn cultural parameters to verify they survive cultural transforms.
Author 3-5 complete FRIEND arcs as Sacred content. Each arc is a full 5-phase emotional journey with voice lines at every phase. These are the seed arcs. Test them against the Van Maanen's Star cultural parameters to verify they survive cultural transforms.
### Priority 4: Environmental text template pools
+14 -14
View File
@@ -18,7 +18,7 @@ Everything I proposed in Round 3 was designed for 8-10 hand-authored regions. At
| Quality from expert review | Quality from **constraint specification** — the generator can't produce garbage |
| Each region needs a worldbuilder | The worldbuilder designs the **menu**; generators cook the meals |
The Krenn System brief from Rounds 1-2 is now a **proof-of-concept output** — one meal from the kitchen. The real product is the recipe book + the ingredient pantry + the cooking rules.
Van Maanen's Star brief from Rounds 1-2 is now a **proof-of-concept output** — one meal from the kitchen. The real product is the recipe book + the ingredient pantry + the cooking rules.
---
@@ -52,7 +52,7 @@ I'm proposing **10 roots**. A society picks 1-3 and blends them with drift weigh
A society picks 1-3 roots with blend weights summing to 1.0. The generator blends parameters:
```yaml
# Example: Krenn System
# Example: Van Maanen's Star
heritage:
primary: frost # weight: 0.55
secondary: salt # weight: 0.30
@@ -61,8 +61,8 @@ heritage:
```
The generator produces:
- **Naming phonetics:** 55% Frost rules (compact, consonant-cluster) + 30% Salt rules (clipped, dental) + 15% Iron (heavy, rhythmic) = short, hard names with practical feel. This IS Krenn naming — we just derived it from parameters instead of hand-authoring it.
- **Social dynamics:** 55% reserve + 30% pragmatism + 15% solidarity = mind-your-business with transactional undertones and labor solidarity. This IS Krenn culture.
- **Naming phonetics:** 55% Frost rules (compact, consonant-cluster) + 30% Salt rules (clipped, dental) + 15% Iron (heavy, rhythmic) = short, hard names with practical feel. This IS Van Maanen's Star naming — we just derived it from parameters instead of hand-authoring it.
- **Social dynamics:** 55% reserve + 30% pragmatism + 15% solidarity = mind-your-business with transactional undertones and labor solidarity. This IS Van Maanen's Star culture.
- **Trust model:** Dominant = patience (Frost) modified by fair-dealing expectation (Salt) = trust earned through time + demonstrated reliability.
**Drift adjustment:** The drift stage modifies how blended the roots are. At "pioneer" (0-50yr), the primary root dominates strongly (weight 0.8+). At "mature" (150-300yr), the roots are more evenly blended and novel elements emerge. At "ancient" (300+), the heritage is substrate — barely detectable, mostly novel.
@@ -75,7 +75,7 @@ drift_modifiers:
ancient: # primary ×0.5, secondary ×0.5, tertiary ×0.5, novel: 0.8
```
The "novel" factor represents cultural elements that have no heritage origin — they emerged from local conditions. Krenn's first-name-primary convention is novel: no founding culture used it, but it emerged from logistics-class social compression. At 300 worlds, the generator needs to introduce novel elements proportional to drift stage.
The "novel" factor represents cultural elements that have no heritage origin — they emerged from local conditions. Van Maanen's Star's first-name-primary convention is novel: no founding culture used it, but it emerged from logistics-class social compression. At 300 worlds, the generator needs to introduce novel elements proportional to drift stage.
### Ingredient Category B: Settlement Motivation
@@ -126,7 +126,7 @@ What the settlement DOES now. May differ from original motivation.
| **Prohibition economy** | The desired thing is banned. Extra income = access to the forbidden. | Ideological — "the ban is wrong" | Busting this forces the player to evaluate the ban |
| **Generational extraction** | Wealth flows out of the community to distant owners. Extra income = keeping what's yours. | Righteous — "they're stealing from us first" | Busting this feels like being the owner's enforcer |
**Krenn is "tight margin" + "prohibition economy"** — workers need extra income AND lattice components are banned. The double pressure creates the specific moral texture where the ring is both economically rational and ideologically defensible.
**Van Maanen's Star is "tight margin" + "prohibition economy"** — workers need extra income AND lattice components are banned. The double pressure creates the specific moral texture where the ring is both economically rational and ideologically defensible.
At 300 worlds, the generator picks 1-2 pressure types per society. The combination determines the grey economy flavor, which determines the contraband type, which determines the investigation's moral weight.
@@ -160,8 +160,8 @@ When the generator assembles a society from ingredients, it produces a profile.
```yaml
# Generated society profile
society_id: krenn-sova-transit
world_id: krenn-system
society_id: van-maanens-star-sova-transit
world_id: van-maanens-star-system
# Ingredients (input)
heritage:
@@ -271,9 +271,9 @@ environment:
| **Contraband System** | `grey_economy.*`, `economic_pressure` | Determines what's being smuggled and why |
| **Triangle Generator** | `social.solidarity_type`, `grey_economy.structure` | Creates culturally appropriate conflict patterns |
### Validation: Can this reproduce Krenn?
### Validation: Can this reproduce Van Maanen's Star?
If I feed the Krenn ingredients into this system, does the output match what I hand-authored in Rounds 1-2?
If I feed the Van Maanen's Star ingredients into this system, does the output match what I hand-authored in Rounds 1-2?
| Hand-authored (Round 1-2) | Generator would produce | Match? |
|---|---|---|
@@ -415,7 +415,7 @@ The society profile modifies which patterns and motivations are common:
| `drift_stage: pioneer` | More REMNANTs (founders still alive) | More OPERATORs (everyone is building/doing) |
| `drift_stage: ancient` | More GHOSTs (referenced history) | More CIVILIANs (society is calcified, few active operators) |
This means: a Frost/Salt/Iron society (Krenn-like) with high privacy and labor solidarity NATURALLY produces more NOBODYs and CIVILIANs than a Tide/Vine society with low privacy and family solidarity, which NATURALLY produces more WITNESSes and THRESHOLDs. The cultural parameters shape the NPC population without explicit per-society rules.
This means: a Frost/Salt/Iron society (Van Maanen's Star-like) with high privacy and labor solidarity NATURALLY produces more NOBODYs and CIVILIANs than a Tide/Vine society with low privacy and family solidarity, which NATURALLY produces more WITNESSes and THRESHOLDs. The cultural parameters shape the NPC population without explicit per-society rules.
---
@@ -481,7 +481,7 @@ Not every archetype is equally viable in every culture:
| `drift_stage: pioneer` | Everyone is a Newcomer; archetype distinctions are flatter |
| `economic_function: transit` | Drifter is the norm; Local barely exists |
This means: the SAME archetype plays differently in different cultures. An Investigator in a Frost/Salt culture (Krenn-like) faces patient silence. An Investigator in a Tide/Vine culture faces elaborate social performance. An Investigator in an Iron culture faces organized collective resistance. Eight archetypes times the ingredient variation space produces hundreds of distinct play experiences.
This means: the SAME archetype plays differently in different cultures. An Investigator in a Frost/Salt culture (Van Maanen's Star-like) faces patient silence. An Investigator in a Tide/Vine culture faces elaborate social performance. An Investigator in an Iron culture faces organized collective resistance. Eight archetypes times the ingredient variation space produces hundreds of distinct play experiences.
---
@@ -556,7 +556,7 @@ The gate network is the cultural map's skeleton. At 300 worlds:
The lead flagged varying gravity as a perception element. From a worldbuilding perspective:
- Station worlds = standard gravity (simulated). Feels like home for long-term residents.
- Surface worlds = variable gravity. Krenn Prime has a specific gravity that station-born visitors notice.
- Surface worlds = variable gravity. Van Maanen's Star Prime has a specific gravity that station-born visitors notice.
- Low-gravity stations = social markers. People move differently, carry differently, fight differently.
- Gravity variation is a WORLDBUILDING INGREDIENT, not just a physics parameter. A society that lives in low gravity for 200 years develops different body language, different spatial norms, different architecture. The heritage root blending should include a `gravity_norm` parameter.
@@ -579,7 +579,7 @@ At 10 regions, I could manually verify each culture against known SF properties.
|---|---|---|
| Arc heritage + academic settlement + meritocratic authority | Banks's Culture (post-scarcity intellectual society) | The Culture lacks the heritage-drift mechanic and the grey economy. Our version has economic pressure and smuggling. Distinct. |
| Iron heritage + extractive economics + debt-trap pressure | Alien franchise (company-colony, exploited workers) | Common SF trope, not specific enough to one franchise. Our version has the ingredients system rather than a monolithic "evil corporation." |
| Frost heritage + logistics + tight-margin + prohibition | Hamilton's Commonwealth (only if we use Commonwealth-specific names/tech) | Already verified in Rounds 1-2. Krenn is structurally original. |
| Frost heritage + logistics + tight-margin + prohibition | Hamilton's Commonwealth (only if we use Commonwealth-specific names/tech) | Already verified in Rounds 1-2. Van Maanen's Star is structurally original. |
| Dust heritage + communal + survival-gap | Le Guin's Anarres (The Dispossessed) | Our version has a grey economy; Anarres explicitly doesn't. Distinct. |
| Jade heritage + hierarchical + institutional-military | Generic "space samurai" trope | Heritage drift should prevent this. At mature drift, the Jade root is substrate, not surface. The society shouldn't feel like "Japan in space." |
+6 -6
View File
@@ -390,13 +390,13 @@ This means the generator produces a gate graph per seed:
```yaml
gate_topology:
seed: 847291
core_worlds: [earth, augusta, krenn_prime, ...] # Always present (Sacred)
core_worlds: [earth, augusta, van_maanens_star_prime, ...] # Always present (Sacred)
accessible_worlds: 52 # Fixed count (Middle Kingdom)
connections:
- from: krenn_prime
- from: van_maanens_star_prime
to: sova_station
type: permanent # Always open
- from: krenn_prime
- from: van_maanens_star_prime
to: haven_drift
type: discoverable # Available through quest/event
- from: augusta
@@ -413,9 +413,9 @@ This ties directly to THE NOBODY. A NOBODY who turns out to be a navigator opens
### What This Means for Chapter-Level Replayability
Playthrough 1: Seed gives you Krenn System → Merchant Hub → Military Outpost. Three worlds, three cultures, three moral textures. Your story is about navigating from collective solidarity to transactional relationships to rigid hierarchy.
Playthrough 1: Seed gives you Van Maanen's Star → Merchant Hub → Military Outpost. Three worlds, three cultures, three moral textures. Your story is about navigating from collective solidarity to transactional relationships to rigid hierarchy.
Playthrough 2: Different seed gives you Krenn System → Research Station → Religious Enclave. Same starting point, completely different second and third acts. Your story is about navigating from blue-collar pragmatism to intellectual risk-taking to faith-based community.
Playthrough 2: Different seed gives you Van Maanen's Star → Research Station → Religious Enclave. Same starting point, completely different second and third acts. Your story is about navigating from blue-collar pragmatism to intellectual risk-taking to faith-based community.
Playthrough 3: Same seed as Playthrough 1, but you befriend a different NOBODY in the Merchant Hub — a navigator who opens a gate to a Frontier world. Now you have a FOURTH world that Playthrough 1 never accessed. Your story branches in a direction the seed alone didn't determine.
@@ -512,7 +512,7 @@ The template produces Tier-1-depth content without Tier-1-effort per NPC. The QU
**2. Cultural briefs become generator input parameters, not documentation.**
Miri's Krenn brief is beautiful. It's also 5 pages of prose. At 300 worlds, we can't write 300 Krenn-quality briefs.
Miri's Van Maanen's Star brief is beautiful. It's also 5 pages of prose. At 300 worlds, we can't write 300 Van Maanen's Star-quality briefs.
The solution: **cultural ingredients produce mechanical parameters, not prose.** The prose is for the FIRST 5-10 worlds (the hand-authored reference implementations). The generator learns the PATTERN from the ingredients menu and produces culturally-consistent parameters for the remaining 290.
+2 -2
View File
@@ -247,9 +247,9 @@ At 300 worlds, the gate network determines which worlds the player CAN REACH. Co
The player experience:
**Playthrough 1:** You start in Krenn. The gate network gives you access to Systems A, B, and C. You explore them. You never see Systems D, E, or F.
**Playthrough 1:** You start in Van Maanen's Star. The gate network gives you access to Systems A, B, and C. You explore them. You never see Systems D, E, or F.
**Playthrough 2:** You start in Krenn. Different seed. Now you have access to Systems A, D, and G. System B — the place you spent 20 hours in last playthrough — is UNREACHABLE. It exists in the universe. You can't get there. And System D is somewhere you've never been.
**Playthrough 2:** You start in Van Maanen's Star. Different seed. Now you have access to Systems A, D, and G. System B — the place you spent 20 hours in last playthrough — is UNREACHABLE. It exists in the universe. You can't get there. And System D is somewhere you've never been.
The player thinks: "The universe is bigger than my playthrough. I CAN'T see it all. Each game gives me a SLICE of the Settled Reach."
@@ -11,7 +11,7 @@
| ID | Title | Action | Rationale |
|----|-------|--------|-----------|
| #301 | Wiki taxonomy and structure — full future-ready schema | **Update description** — workshop produced concrete taxonomy rules (Tyre R2 §5, Miri canonical_id). Assign to **copy** team. | Workshop directly addresses this ticket's scope. |
| #319 | Krenn System wiki entry — first star system | **Update description** — Miri delivered Krenn System brief in workshop (Round 1+2). Assign to **copy** team. Will be fulfilled by new ticket for cultural-groups file. | Miri's brief supersedes the original scope. |
| #319 | Van Maanen's Star wiki entry — first star system | **Update description** — Miri delivered Van Maanen's Star brief in workshop (Round 1+2). Assign to **copy** team. Will be fulfilled by new ticket for cultural-groups file. | Miri's brief supersedes the original scope. |
| #368 | Knowledge vocabulary for v0.1 content (#309) | **Mark done** — the wiki at `wiki/` is the output. Currently in_progress. | Workshop is the review of #368's output. |
| #261 | Dual Lens Authoring Guide | **No change** — still blocking. Workshop confirms its importance. Assign to **copy** team when ready. | Workshop style guide work complements but doesn't replace #261. |
@@ -48,12 +48,12 @@
- Parent: workshop epic
- Description: Phonetic collision fix (Kael/Hael). Rename to Naia Tamm per Miri R2 §2. Find-and-replace across ~8 wiki files. Triangle 4 becomes Naia-Kael-Sera. Source: Paula R1, Miri R2.
**A3. Create wiki/cultural-groups/krenn-system.md**
**A3. Create wiki/cultural-groups/van-maanens-star-system.md**
- Type: task
- Priority: high
- Team: copy
- Parent: workshop epic
- Description: Compile Miri's Round 1 + Round 2 Krenn System cultural brief into canonical wiki page. Includes: heritage analysis (Finnish-Estonian-Latvian-Norwegian blend), naming conventions, substrate vocabulary (10+ heritage words), social norms, food/drink, greeting conventions, access tier cultural profile. YAML frontmatter with canonical_id. Source: Miri R1+R2.
- Description: Compile Miri's Round 1 + Round 2 Van Maanen's Star cultural brief into canonical wiki page. Includes: heritage analysis (Finnish-Estonian-Latvian-Norwegian blend), naming conventions, substrate vocabulary (10+ heritage words), social norms, food/drink, greeting conventions, access tier cultural profile. YAML frontmatter with canonical_id. Source: Miri R1+R2.
**A4. Create wiki/cultural-groups/_template.md — regional style guide pattern**
- Type: task
@@ -67,7 +67,7 @@
- Priority: medium
- Team: copy
- Parent: workshop epic
- Description: Add Cultural Groups section to wiki index between Factions and NPCs. Link to krenn-system.md and _template.md. Source: Miri R2 §5, Tyre R2 §5.
- Description: Add Cultural Groups section to wiki index between Factions and NPCs. Link to van-maanens-star-system.md and _template.md. Source: Miri R2 §5, Tyre R2 §5.
**A6. Add smuggler-perspective FactId progression text to fact-catalog.md**
- Type: task
@@ -116,7 +116,7 @@
- Priority: medium
- Team: copy
- Parent: workshop epic
- Description: Create wiki/authoring/environmental-text-examples.md with Krenn-voiced examples for 4 text types: bar menu, safety notice, news ticker cycle, corridor graffiti. Include cultural notes and monologue pairings (smuggler + detective). Source: Miri R2 §3 (4 examples), Mellanie R2 §1 (4 examples). Merge both sets.
- Description: Create wiki/authoring/environmental-text-examples.md with Van Maanen's Star-voiced examples for 4 text types: bar menu, safety notice, news ticker cycle, corridor graffiti. Include cultural notes and monologue pairings (smuggler + detective). Source: Miri R2 §3 (4 examples), Mellanie R2 §1 (4 examples). Merge both sets.
### B. Style Guides & Spec Documents (copy team)
@@ -146,7 +146,7 @@
- Priority: high
- Team: copy
- Parent: workshop epic
- Description: Two deliverables: (1) Smuggler voice card — paired examples with detective showing dual-lens register differences (Mellanie R2 §3). Thinks in people vs data, first names vs surnames, fragments vs complete sentences, Krenn substrate vocabulary. (2) Smuggler moral arc — 4 phases (Comfort→Doubt→Reckoning→Compromise), smuggler-specific FactIds (operations.cover_integrity, operations.personnel_stability, operations.institutional_pressure, operations.moral_weight, operations.exit_cost), monologue triggers (sense_atmosphere_shift, witness_exposure_risk, observe_loyalty_fracture, feel_complicity_deepen, recognize_no_exit, read_the_room). Source: Gore R2 §3, Paula R2 §1, Mellanie R2 §3.
- Description: Two deliverables: (1) Smuggler voice card — paired examples with detective showing dual-lens register differences (Mellanie R2 §3). Thinks in people vs data, first names vs surnames, fragments vs complete sentences, Van Maanen's Star substrate vocabulary. (2) Smuggler moral arc — 4 phases (Comfort→Doubt→Reckoning→Compromise), smuggler-specific FactIds (operations.cover_integrity, operations.personnel_stability, operations.institutional_pressure, operations.moral_weight, operations.exit_cost), monologue triggers (sense_atmosphere_shift, witness_exposure_risk, observe_loyalty_fracture, feel_complicity_deepen, recognize_no_exit, read_the_room). Source: Gore R2 §3, Paula R2 §1, Mellanie R2 §3.
**B5. NPC-format briefs for both PCs — Concept A v0.1**
- Type: story
@@ -232,7 +232,7 @@
- Priority: medium
- Team: copy
- Parent: workshop epic
- Description: Design the cultural_gate modifier that adjusts dialogue disclosure based on cultural insider/outsider status, independent of relationship state. Krenn culture reduces disclosure to outsiders (detective) regardless of trust level. Not a new access tier — a modifier on existing tiers. Needs mechanical spec from Gestalt + feasibility from Tyre. Source: Gore R2 §2.
- Description: Design the cultural_gate modifier that adjusts dialogue disclosure based on cultural insider/outsider status, independent of relationship state. Van Maanen's Star culture reduces disclosure to outsiders (detective) regardless of trust level. Not a new access tier — a modifier on existing tiers. Needs mechanical spec from Gestalt + feasibility from Tyre. Source: Gore R2 §2.
**D2. Seed configuration schema design**
- Type: story
@@ -262,7 +262,7 @@
Workshop Epic
├── A1 (full names) ── no deps
├── A2 (Hael→Naia rename) ── no deps
├── A3 (Krenn brief) ── no deps
├── A3 (Van Maanen's Star brief) ── no deps
├── A4 (regional template) ── no deps
├── A5 (wiki index update) ── blocked by A3, A4
├── A6 (smuggler FactId text) ── blocked by B4
@@ -64,7 +64,7 @@ We need explicit style guides that make the wiki reproducible. Not just "here's
---
## Topic 3: Regional Style Guide — Pattern + Krenn System Brief
## Topic 3: Regional Style Guide — Pattern + Van Maanen's Star Brief
**The question:** How do we ensure naming and cultural flavor feel historically cohesive rather than generic sci-fi?
@@ -72,7 +72,7 @@ We need explicit style guides that make the wiki reproducible. Not just "here's
**Scope for this workshop:** NOT a full set of regional briefs. We need:
1. **A pattern/template** for regional style guides — what a style guide for any region should contain
2. **One filled brief** for Krenn System / Sova Transit District — the v0.1 location, fully specified
2. **One filled brief** for Van Maanen's Star / Sova Transit District — the v0.1 location, fully specified
3. **Naming principles** — how real-world naming patterns evolve over ~180 years of space settlement
The pattern should cover:
@@ -84,7 +84,7 @@ The pattern should cover:
- Aesthetic markers (architecture, food, dress — things that inform environmental text)
**Questions:**
1. **Miri:** What cultural cluster makes sense for Krenn System? What does 180 years of drift look like?
1. **Miri:** What cultural cluster makes sense for Van Maanen's Star? What does 180 years of drift look like?
2. **Gore:** How does cultural identity connect to the game's themes? Should the player notice heritage, or is it ambient?
3. **Paula:** How do naming conventions affect NPC authoring? Do the current 17 NPCs already follow a pattern?
4. **Mellanie:** What environmental text (signs, menus, graffiti) changes based on regional culture?
@@ -95,7 +95,7 @@ The pattern should cover:
**The question:** How do we prevent name collisions, ambiguity, and organizational confusion as the wiki grows beyond v0.1?
Current issue: "The Terminal" could exist in multiple systems. "Maintenance Corridors" is generic. We already moved locations to `locations/krenn-system/` for disambiguation, but this needs a principled approach.
Current issue: "The Terminal" could exist in multiple systems. "Maintenance Corridors" is generic. We already moved locations to `locations/van-maanens-star-system/` for disambiguation, but this needs a principled approach.
**Specific concerns:**
- Location names that recur across systems (terminals, bars, maintenance areas)
@@ -158,7 +158,7 @@ The wiki is the authoring source. But the game needs content in engine-readable
**Round 2 — Synthesis.** Cross-pollinate. Respond to each other's proposals. Produce:
1. Decisions to record (new D-entries or amendments)
2. Style guide documents to create
3. Regional brief for Krenn System
3. Regional brief for Van Maanen's Star
4. Content directory structure proposal
5. New tickets for SI to create
6. Amendments to existing wiki pages
@@ -167,7 +167,7 @@ The wiki is the authoring source. But the game needs content in engine-readable
- **Style guide template:** Reusable pattern for NPC, location, faction, technology wiki pages
- **Regional style guide pattern:** Template for any region's cultural naming/flavor guide
- **Krenn System regional brief:** Filled-in style guide for v0.1 location
- **Van Maanen's Star regional brief:** Filled-in style guide for v0.1 location
- **Wiki taxonomy rules:** Nesting and naming conventions document
- **Content directory structure:** Proposed `content/` layout with mod overlay spec
- **PC-as-NPC spec:** How player character briefs integrate with NPC templates
@@ -70,7 +70,7 @@ The specific v0.1 decisions (Naia rename, NPC architecture, THE NOBODY, THE MIRR
| ID | Action |
|----|--------|
| #301 | Update description with concrete taxonomy rules from workshop |
| #319 | Update — Miri's Krenn brief supersedes original scope |
| #319 | Update — Miri's Van Maanen's Star brief supersedes original scope |
| #368 | Mark done — wiki at wiki/ is the delivered output |
| #261 | No change — confirmed still blocking, assign to copy when ready |
@@ -82,7 +82,7 @@ The specific v0.1 decisions (Naia rename, NPC architecture, THE NOBODY, THE MIRR
| Series | Count | Examples |
|--------|-------|---------|
| A (Wiki content updates) | 12 | A1 canonical names, A2 Hael→Naia rename, A3 Krenn brief, A7 smuggler attributes, A11 Triangle 1 fix |
| A (Wiki content updates) | 12 | A1 canonical names, A2 Hael→Naia rename, A3 Van Maanen's Star brief, A7 smuggler attributes, A11 Triangle 1 fix |
| B (Style guides + specs) | 5 | B1 NPC Authoring Style Guide, B2 MIRROR spec, B3 PC-as-NPC spec, B4 Smuggler voice card |
| C (Content directory + schemas) | 10 | C1 design doc, C2 directory skeleton, C3 schemas, C9 validate-content CLI |
| D (Design specs) | 4 | D1 cultural_gate design, D2 seed config schema, D3 secondary contraband, D4 news ticker |