docs(decisions): add D-032 through D-039 from content workshop

D-032: separate monologue pools per character
D-033: entity color = relationship to player
D-034: THE FRIEND production-level NPC pattern
D-035: converged tag taxonomy for line pools
D-036: Sova Transit District / Krenn System setting
D-037: contraband specification (unlicensed lattice components)
D-038: audio in v0.1 scope (8 files via Stable Audio Open)
D-039: v0.1 wow moment scope (all 6 moments)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-11 20:27:37 +01:00
co-authored by Claude Opus 4.6
parent e96ec80d9c
commit 745ce01117
3 changed files with 114 additions and 3 deletions
+65 -1
View File
@@ -40,6 +40,70 @@ How narrative, NPCs, and world content are created: content tiers, NPC generatio
- **Raised by:** Gore (thematic), Paula (30/50/20 split), Nigel (anti-metagaming), Team Leader (majority unentangled)
- **Dissent:** None
### D-032: Separate monologue pools per character
- **Date:** 2026-02-11
- **Decision:** Internal monologue content is hard-partitioned by playable character. The smuggler and detective have completely separate monologue pools — no shared lines. The `character` tag on monologue lines is a hard partition, not a filter. File structure uses separate files per character per location (e.g., `monologue-smuggler.yaml`, `monologue-detective.yaml`).
- **Rationale:** Shared monologue would dilute character voice and undermine the dual-lens experience. Each character's internal voice must be independently coherent. Same trigger, different pool — this is how mirror moments work without either pool knowing about the other.
- **Cross-reference:** Dialogue lines remain character-agnostic — the access tier system (D-028 Layer 1) handles per-character filtering without separate pools.
- **Raised by:** Mellanie (Round 1 proposal), confirmed as non-negotiable by project lead
- **Dissent:** None
### D-034: THE FRIEND — production-level NPC pattern
- **Date:** 2026-02-11
- **Decision:** Each playable character has one "FRIEND" NPC — a production-level complex character that exercises every content and systems pipeline at full depth. THE FRIEND is the emotional centerpiece of v0.1 and carries D-027 success criterion #3 ("player names an NPC they felt conflicted about"). THE FRIEND follows a reusable pattern: 3+ relationship phases (warmth → trust → doubt → conflict), observable contradiction discoverable through observation not dialogue, sympathetic motivation, no clean resolution, dual-lens resonance, triangle integration, tell progression, and dialogue shift pre/post discovery.
- **Assignments:**
- **Smuggler's FRIEND: Kael Davan** — dock worker, ring member, smuggler's closest colleague. Contradiction: meeting with unknown contact in restricted corridor (trying to exit the ring to protect partner Hael). Exercises: full 10-axis model, multi-phase dialogue, tell system, named monologue, dual-lens notes.
- **Detective's FRIEND: Sera Venn** — Commission field tech, bar regular, detective's social anchor. Contradiction: avoids Torek Lintar (sitting on unreported evidence about Kael's manifest discrepancies, protecting friend Hael). Exercises: institutional access + personal loyalty conflict, avoidance pattern as tell, trust-contamination arc.
- **Content requirements per FRIEND NPC:** ~70-100 authored lines (25-35 dialogue, 15-20 trust-gated, 5-8 unprompted, 10-15 monologue per character, 5-8 tell observation, 3-5 contradiction discovery). No generation expansion — all hand-authored.
- **Cross-reference:** NPC triangle model ([D-024](#d-024-npc-generation-model--10-axes--combat-component)), relationship web ([D-029](#d-029-population-entanglement-ratio--305020)), vertical slice criteria ([D-027](scope.md#d-027-vertical-slice--smuggler--detective-two-character-proof))
- **Raised by:** Ozzie (emotional concept, Round 1), Paula (structural design and both FRIEND profiles, Round 2), project lead (confirmed, directive #4). Sera Venn confirmed by project lead over Mellanie's alternative proposal (Lera Sessik).
- **Dissent:** Mellanie proposed Lera Sessik (bar owner) as detective's FRIEND. Project lead selected Paula's Sera Venn design. Lera remains bar owner / mundane triangle member.
### D-035: Converged tag taxonomy for dialogue and monologue line pools
- **Date:** 2026-02-11
- **Decision:** Tagged line pools (D-028) use a converged taxonomy of 6 structural tags + 3 selection tags per dialogue line. Monologue lines add 3 additional tags.
- **Structural tags (required on every dialogue line):**
- `id` (string): `{template}_{d|m|e}_{###}` — machine-parseable, stable
- `text` (string): the authored line
- `role` (enum): template-defined role (not NPC name — NPC assignment is runtime)
- `access` (list\<enum\>): `public`, `insider`, `authority`, `peer`, `hostile` — D-028 Layer 1 hard filter
- `trust` (enum): `surface`, `real`, `secret` — D-028 Layer 3 hard filter
- `situation` (list\<enum\>): 13 situations for v0.1 — D-028 Layer 2 context filter
- **Selection tags (recommended, defaults if empty):**
- `topic` (list\<enum\>): 9 topics for v0.1 — D-028 Layer 4 weighted selection
- `mood` (list\<enum\>): 8 moods for v0.1 — D-028 Layer 4 weighted selection
- `tags` (list\<string\>): freeform escape hatch for author intent
- **Monologue-specific additions:**
- `character` (enum): `smuggler`, `detective` — hard partition per D-032
- `trigger` (enum): 9 trigger types (enter_location, observe_npc, hear_sound, observe_anomaly, post_conversation, discover_evidence, witness_interaction, time_idle, return_visit)
- `prerequisite` (map or null): knowledge state gate
- **Authoring-only tags (not consumed by engine):** `dual_lens` (map, per-character notes), `notes` (string)
- **Key design choices:** Location and content type dropped from per-line tags (implicit from directory structure and file naming). `access` is list (a line can be eligible for multiple tiers). `topic` and `mood` are lists. Layer 2 relationship history expressed through engine-state-to-situation mapping, not per-line tags.
- **Cross-reference:** Dialogue architecture ([D-028](#d-028-dialogue-architecture--tagged-line-pools-with-four-relational-layers))
- **Raised by:** Gestalt (schema design, Round 1/2), Mellanie (authoring validation, Round 1/2). Converged across both agents in Round 2.
- **Dissent:** None. Minor consolidations: Mellanie's 8 moods mapped to Gestalt's 8 (different names, same concepts). Mellanie's `crime` topic deliberately excluded (NPCs think of it as `cargo` or `money`).
### D-036: Sova Transit District / Krenn System as v0.1 setting
- **Date:** 2026-02-11
- **Decision:** The v0.1 vertical slice is set in Sova Transit District, a freight logistics hub on Station Sova in the Krenn System. This is the first concrete, named star system in The Settled Reach. The Krenn System is a mid-Reach G3V system, ~180 years settled, population ~2.4 million, working-class pragmatic culture. Station Sova is a logistics hub (~12,000 population). Sova Transit District is a 40-year-old prefab-modular-retrofitted freight district with three social sites: The Terminal (logistics hub), The Last Shift (bar), and maintenance corridors/smuggling spaces.
- **Setting details (canonical):**
- NPC naming: Krenn System conventions — compact, consonant-heavy, first-name-primary in social contexts (Kael, Voss, Lera, Torek, Drin, Maret, Hael, Sera, Nils, Kosse, Naia, Pael, Tev, Ren)
- Bar naming: "The Last Shift" (official), "Lera's" (informal, used by regulars)
- Atmosphere: "quotidian-with-undertow" — comfortable enough to be complacent, tight enough that extra income is tempting
- Sensory: span gate hum, industrial lubricant, recycled air, cargo machinery
- **Cross-reference:** Vertical slice ([D-027](scope.md#d-027-vertical-slice--smuggler--detective-two-character-proof)), contraband ([D-037](#d-037-contraband-specification))
- **Raised by:** Miri (Sova setting brief, Round 1; Krenn System profile, Round 2), project lead (confirmed as worldbuilding milestone, directive #6)
- **Dissent:** None
### D-037: Contraband specification — unlicensed lattice components
- **Date:** 2026-02-11
- **Decision:** The primary contraband in the v0.1 smuggling scenario is unlicensed lattice components — aftermarket neural lattice modifications that bypass Commission regulation. Secondary contraband: medical-grade neural lattice replacements (diverted from Syndic supply chains) and Severance counter-surveillance technology.
- **Moral dimension:** The ring is smuggling *access*, not weapons. People want better lattice capability than Commission-regulated channels provide. Medical-grade replacements serve people whose lattices are degrading and who can't afford institutional replacement. This creates genuine moral ambiguity: the smuggler isn't a villain, they're providing a service the legitimate system won't.
- **Gameplay relevance:** Lattice components connect to the perception system (D-017) — a smuggled upgrade could theoretically change what the player perceives. Manifest discrepancies are the primary investigation vector. The detective's analytical lattice can flag cargo anomalies.
- **Cross-reference:** Perception modes ([D-017](perception.md#d-017-perception-modes-as-character-build-system)), setting ([D-036](#d-036-sova-transit-district--krenn-system-as-v01-setting))
- **Raised by:** Miri (Round 1 proposal, Round 2 validation), Paula (moral dimension endorsement), full team validated
- **Dissent:** None
---
*5 decisions. Last updated: 2026-02-11*
*10 decisions. Last updated: 2026-02-11*
+17 -1
View File
@@ -86,6 +86,22 @@ How the player observes and interacts with the world: camera, fog, line-of-sight
- **v0.1:** Top-down only. No cutscenes. Those are milestone features.
- **Raised by:** Team Leader (Jeroen), after full team review of tradeoffs in Round 12.
### D-033: Entity color = relationship to player
- **Date:** 2026-02-11
- **Decision:** Entity color in the top-down view represents the character's *relationship* to the player character, not an objective property. The same NPC can appear as different colors to different characters. Color is a client-side derivation from `RelationshipState` component + knowledge state — not an NPC property.
- **Color palette:**
- **Unknown/Neutral:** Cool teal `#4a9ebb` — default for unassessed NPCs
- **Known/Friendly:** Soft green `#6bc9a6` — people the character knows and trusts
- **Person of Interest:** Warm amber `#e8c547` — monologue or case file has flagged something
- **Hostile/Dangerous:** Muted red `#d45d5d` — character KNOWS there's danger (subjective, not omniscient)
- **Static objects:** Muted grey `#8b8ba0` — furniture, equipment, environmental
- **Player character:** `#e0e8ff` (detective, cool) / `#e8e0d0` (smuggler, warm)
- **Key principle:** Red means danger TO YOUR CHARACTER, not danger in the abstract. The detective might see amber (flagged in case file) where the smuggler sees green (trusted colleague). This IS asymmetric information rendered visually.
- **Transition behavior:** Color shifts smoothly (0.5s fade) when relationship state changes. THE FRIEND's first color shift (green → amber) should be the first relationship color change in the session — maximum emotional impact.
- **Cross-reference:** Internal monologue ([D-016](#d-016-internal-monologue-as-core-perceptionatmosphere-system)), THE FRIEND pattern ([D-034](content.md#d-034-the-friend--production-level-npc-pattern))
- **Raised by:** Araminta (Round 1 proposal, color palette design), project lead (approved, directive #2)
- **Dissent:** None
---
*6 decisions. Last updated: 2026-02-11*
*7 decisions. Last updated: 2026-02-11*
+32 -1
View File
@@ -101,6 +101,37 @@ What we're building: game concept, design pillars, prototype definition, map spe
- **Raised by:** Team Leader (smuggler+detective choice), Nigel (two-character requirement), Ozzie (30-min runway), Gore (emotional criterion), Gestalt (systems criterion)
- **Dissent:** None
### D-038: Audio in v0.1 scope — 8 files via Stable Audio Open
- **Date:** 2026-02-11
- **Decision:** Audio is included in v0.1 scope. Minimum viable set: 8 AI-generated audio files, produced using Stable Audio Open (self-hosted, free commercial use under $1M revenue). Audio is additive — the game works through text + visuals without it, but audio multiplies atmosphere.
- **Audio asset list:**
1. `amb_station_base.ogg` — station hum, span gate vibration, ventilation (60-90s loop, global ambient)
2. `amb_workplace_layer.ogg` — cargo machinery, scanner pings, distant voices (45-60s, logistics hub overlay)
3. `amb_bar_layer.ogg` — conversation murmur, glass sounds, low Meridian music (45-60s, bar overlay)
4. `amb_corridor_layer.ogg` — echoing footsteps, ventilation whistle, louder gate hum (45-60s, corridor overlay)
5. `sfx_footstep_metal.ogg` — single footstep on metal grating (0.3-0.5s, walk trigger)
6. `sfx_footstep_metal_run.ogg` — faster footstep (0.2-0.3s, run trigger)
7. `sfx_monologue_chime.ogg` — soft crystalline tone, "neural lattice firing" feel (0.5-1.0s, monologue appearance)
8. `sfx_monologue_chime_urgent.ogg` — sharper variant for contradiction/anomaly observations (0.5-1.0s)
- **Architecture:** Event-driven with asset registry + visual fallback. Simulation emits typed sound events; client renders as audio (if asset exists) or visual indicator + monologue trigger (if not). Ambient loops managed separately from event-driven sounds. Monologue chime is a UI sound, not a simulation sound.
- **Cross-reference:** Three-range sound model ([D-018](perception.md#d-018-three-range-sound-model)), sound event architecture (Gestalt R2 section 6)
- **Raised by:** Ozzie (Round 1 minimum viable proposal, Round 2 full spec), project lead (confirmed, directives #3 and #9)
- **Dissent:** Mellanie and Araminta both proposed deferring audio; project lead overruled. Visual sound indicators remain complementary to audio (not replacement).
### D-039: v0.1 wow moment scope — all 6 moments
- **Date:** 2026-02-11
- **Decision:** All 6 wow moments identified by Ozzie are in v0.1 scope. The original 4 "essential" moments are promoted to must-have. The 2 "nice-to-have" moments are also promoted to must-have (project lead directive).
- **The 6 wow moments (chronological in a 30-minute session):**
1. **Arrival** (minute 0-1): Station hum playing, NPCs already moving, first monologue chime. "Where am I? This feels real." Content: opening monologue, station ambient, pre-populated routines.
2. **The Character's Eye** (minute 5-15): Monologue flags something the player didn't notice. Urgent chime. "My character is smarter than me." Content: observation monologue + NPC routine deviation.
3. **THE FRIEND's Contradiction** (minute 20-25): THE FRIEND in the wrong place, urgent chime, deflection when asked. "I trusted you. What are you doing?" Content: full FRIEND content package + spatial staging.
4. **The Divergence Reveal** (second playthrough, minute 5-10): Same room, different colors, different names, different monologue. "I was only seeing HALF of this." Content: all dual-lens content for first location.
5. **The News Ticker Gut-Punch**: Same ticker, opposite monologue reactions per character. "The asymmetry in three words." Content: ticker + dual monologue reactions.
6. **The Quiet Moment**: Idle in a corridor, unprompted reflective monologue. "I care about this person." Content: 2 monologue lines + time_idle trigger.
- **Cross-reference:** Vertical slice criteria ([D-027](#d-027-vertical-slice--smuggler--detective-two-character-proof)), THE FRIEND ([D-034](content.md#d-034-the-friend--production-level-npc-pattern))
- **Raised by:** Ozzie (Round 1 identification, Round 2 budget), project lead (all 6 promoted, directive #8)
- **Dissent:** None
---
*9 decisions (7 active, 2 superseded). Last updated: 2026-02-11*
*11 decisions (9 active, 2 superseded). Last updated: 2026-02-11*