Files
settled-reach/docs/design/v0.1-wow-moments-checklist.md
jpmschweitzerandClaude Fable 5 ca255dc16c chore(meta): cascade refocus — supersede v0.2 cluster, re-home backlog tree, capture workshop WIP
Governance:
- D-166 amendment (2026-06-12): outside-in build order (geo → econ-on-world →
  building templates → door boundary contracts → NPC/interiors → gameplay);
  Phase 5 ramps in parallel once outsides are walkable (gate: T-962)
- D-114/D-115/D-117/D-118/D-120 marked superseded by D-166 (inbound anchors fixed)
- D-221 amended: milestones retired, cascade-hierarchy gating is canonical
- Q-077/Q-068/Q-036 resolved (answered by events); Q-110 (scale anchoring) and
  Q-111 (live-econ coupling) opened from cascade grounding

Ticket tree (147 stray backlog tickets dispositioned):
- New parents: T-1036 (post-cascade gameplay parking), T-1037 (maintenance initiative)
- Re-homed: 15 → Phase 4 (T-750), 30 → Phase 5 (T-749), 11 → Phase 6 (T-751),
  21 → gameplay parking, 28 → maintenance; children follow their epics
- Cancelled 12 administrative shells (mirror tickets, emptied pre-cascade umbrellas,
  v0.2 pivot shell T-603); T-9/T-28 closed done; T-745 in_progress
- New grounded tickets T-1038..T-1044: inter-settlement road/rail graph, L3→L4
  dispatch threading, river-channel-anchor bug, 64m landform-repeat bug,
  region seam blending, road-entry octants, drainage re-run fix

Docs:
- CLAUDE.md cascade paragraph updated to the amended rule
- 20 v0.1-era docs/design files marked superseded with pointers;
  content-structure-canonical retitled (v0.2 label dropped)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 12:26:32 +02:00

21 KiB

title, description, type, status, ticket, decision_refs, author, created, updated, superseded_by
title description type status ticket decision_refs author created updated superseded_by
v0.1 Wow Moment Content Checklist Delivery status tracker for all six D-039 wow moments with content deliverables and implementation dependencies design superseded #400
D-027
D-032
D-034
D-035
D-038
D-039
D-041
D-054
D-056
D-058
D-059
2026-02-12 2026-02-12 D-166

SUPERSEDED (2026-06-12, cascade-refocus sweep): superseded by D-166 (its governing D-039 is already superseded; the cascade replaces the v0.1 delivery program). Kept as historical record; do not build against it.

v0.1 Wow Moment Content Checklist

Source: D-039 (6 wow moments for 30-minute session) Ticket: #400 (v0.1 wow moment content checklist) Last updated: 2026-02-12


Overall Completion Status

# Moment Content Implementation Status
1 Arrival 1 of 5 deliverables ready 3 of 8 tickets done Not started
2 The Character's Eye 0 of 4 deliverables ready 1 of 6 tickets done Not started
3 THE FRIEND's Contradiction 0 of 5 deliverables ready 1 of 7 tickets done Not started
4 The Divergence Reveal 0 of 4 deliverables ready 0 of 5 tickets done Not started
5 The News Ticker Gut-Punch 0 of 3 deliverables ready 0 of 4 tickets done Not started
6 The Quiet Moment 0 of 2 deliverables ready 0 of 3 tickets done Not started

Summary: 1 of 23 content deliverables ready. 5 of 33 implementation tickets done. All 6 moments currently blocked by upstream authoring and architecture work, with #261 (Dual Lens Authoring Guide) as the critical path root.


Moment 1: Arrival

Description: Station hum playing, NPCs already moving on routines, first monologue chime fires. The player's first impression: "Where am I? This feels real." The world is already alive before the player does anything.

Timing: Minute 0-1 of session

Content deliverables:

  • Opening monologue lines -- smuggler arrival (10-15 tightly sequenced lines, per #299)
  • Opening monologue lines -- detective arrival (10-15 tightly sequenced lines, per #300)
  • Diegetic tutorial monologue lines -- per character (8-10 lines each teaching movement, fog, sound, NPC interaction, insert; per #330)
  • Audio asset specification defined (D-038: amb_station_base.ogg, sfx_monologue_chime.ogg)
  • Audio asset files -- station ambient + monologue chime (2 of the 8 minimum viable files; per #327)

Implementation tickets:

  • #229 -- Define ObserverSnapshot structure (done)
  • #280 -- Define core types: ObserverSnapshot, PlayerInput, SimBridge (done)
  • #294 -- Create UI shell stubs: HUD, minimap, monologue display (done)
  • #88 -- Daily routine system: DailyRoutine component, time-based transitions (backlog)
  • #101 -- Routine execution system: schedule-driven NPC movement (backlog)
  • #119 -- Monologue event generation - server: trigger on perception events (backlog)
  • #122 -- Monologue display - client: text display, timed queue management (backlog)
  • #327 -- Audio asset set: 8 minimum viable files via Stable Audio Open (backlog)

Content tickets:

  • #259 -- First 5 minutes experience design (backlog)
  • #299 -- Opening hook content: smuggler first 5 minutes (backlog, blocked by #261, #310, #309, #315)
  • #300 -- Opening hook content: detective first 5 minutes (backlog, blocked by #261, #310, #309, #315)
  • #330 -- Diegetic tutorial monologue lines: per character (backlog, blocked by #299, #300)
  • #255 -- Client audio manager (backlog)
  • #125 -- Close-range stereo audio - client (backlog, blocked by #255)

Dependencies:

  • #261 (Dual Lens Authoring Guide) must be complete before opening hook content can be authored
  • #310 (Character voice speech patterns) must exist for consistent voice in opening lines
  • Monologue server system (#119, #120) must be implemented to deliver lines
  • Monologue client display (#122) must be implemented to render lines
  • NPC routine system (#88, #101) must be running so NPCs are already moving at session start
  • Audio manager (#255) and audio assets (#327) must exist for station hum and monologue chime

Status: Not started -- all content deliverables blocked by #261 (Dual Lens Authoring Guide). UI shell stubs exist; core architecture defined. Audio assets not yet produced.


Moment 2: The Character's Eye

Description: While the player explores, their character's monologue flags something the player did not notice -- an NPC routine deviation, a behavioral anomaly, a spatial detail. The urgent monologue chime fires. The player realizes: "My character is smarter than me." This is the moment the monologue system proves its worth as a perception mechanic, not just flavor text.

Timing: Minute 5-15 of session

Content deliverables:

  • Observation monologue lines -- per character (within #399 monologue pool: ~100 lines per character, categories include NPC routine commentary, contradiction hints, environmental observations)
  • NPC routine deviation content -- at least 1 NPC must deviate from established routine in a way the monologue system can flag
  • Tell observation lines for Kael Davan (8 lines across 4 tell categories; part of #297 content pack)
  • Tell observation lines for Sera Venn (part of #298 content pack)

Implementation tickets:

  • #112 -- Observer visibility query (done: given observer entity, return visible entities and tiles)
  • #239 -- Observation event generator: compare snapshot against knowledge, emit ObservationEvents (backlog)
  • #243 -- Routine deviation detection: compare NPC position vs known routine pattern (backlog, blocked by #88)
  • #119 -- Monologue event generation - server: trigger on perception events (backlog, blocked by #239)
  • #120 -- Monologue line pool system: tag-based line selection (backlog)
  • #90 -- Personality and tell system: TellSystem with 5 categories, v0.1 rendered as monologue text (backlog)

Content tickets:

  • #399 -- Monologue content pool: minimum viable ~200 lines (backlog, blocked by #261, #382)
  • #297 -- THE FRIEND: Kael Davan full profile + content pack, includes tell observation lines (backlog, blocked by #261, #310)
  • #298 -- THE FRIEND: Sera Venn full profile + content pack, includes tell observation lines (backlog, blocked by #261, #310)

Dependencies:

  • Observation event pipeline (#239) must compare snapshot against knowledge graph to detect anomalies
  • Routine deviation detection (#243) must be running so NPCs can break patterns
  • Monologue pool system (#120) must support tag-based selection with observe_anomaly and observe_npc triggers
  • Urgent monologue chime audio asset (sfx_monologue_chime_urgent.ogg) from #327
  • D-059 monologue display constraints: observe_anomaly is priority 1 (highest), ensuring it interrupts lower-priority monologue

Status: Not started -- observation pipeline (#239) and routine deviation detection (#243) are the key server blockers. Content blocked by #261 and #382.


Moment 3: THE FRIEND's Contradiction

Description: THE FRIEND NPC -- Kael Davan (smuggler path) or Sera Venn (detective path) -- is observed in the wrong place at the wrong time. The urgent monologue chime fires. The character's internal voice registers the contradiction. If the player asks the FRIEND about it, they deflect. The player feels: "I trusted you. What are you doing?" This is D-027 success criterion #3: the player names an NPC they felt conflicted about.

Timing: Minute 20-25 of session

Content deliverables:

  • Kael Davan full content pack: ~91 authored lines across 5 arc phases (comfort, first crack, contradiction, confrontation, contaminated trust) per D-058 template and #297
  • Sera Venn full content pack: ~70-100 authored lines with equivalent phase structure, per #298
  • Contradiction discovery monologue: 1 critical monologue line per character per FRIEND (the wow moment #3 trigger; highest-stakes single line in the project)
  • Confrontation dialogue: 8-12 lines per FRIEND for post-contradiction conversation with deflection
  • Spatial staging data: Kael in Corridor B-7 during shift transition; Sera avoiding Torek Lintar in specific location with time window

Implementation tickets:

  • #366 -- Observer snapshot knowledge integration (done)
  • #239 -- Observation event generator: detect spatial anomaly (FRIEND at contradiction location) (backlog)
  • #243 -- Routine deviation detection: flag FRIEND breaking established pattern (backlog, blocked by #88)
  • #304 -- Entity color system spec: relationship-to-player mapping including green-to-amber shift on PersonOfInterest transition (backlog, blocked by #303)
  • #119 -- Monologue event generation - server: trigger urgent monologue on contradiction observation (backlog)
  • #120 -- Monologue line pool system: prerequisite-gated line selection for friend_arc phase (backlog)
  • #168 -- Tagged line pool structure: dialogue pool with trust-gated access (backlog)

Content tickets:

  • #297 -- THE FRIEND: Kael Davan full profile + content pack (backlog, blocked by #261, #310)
  • #298 -- THE FRIEND: Sera Venn full profile + content pack (backlog, blocked by #261, #310)
  • #332 -- Contradiction arc design document: reusable FRIEND pattern (backlog, blocked by #297, #298)
  • #318 -- THE FRIEND visual treatment spec: earned visual detail, green-to-amber phase shift (backlog, blocked by #303, #297, #298)

Dependencies:

  • FriendArc state machine must be implemented (Warmth -> Trust -> Doubt -> Conflict per workshop Section 6)
  • Knowledge graph contradiction detection: ToldBy entry conflicting with DirectObservation entry must trigger Contradicted state (D-041 notes this ships Sprint 3+)
  • 5 atomic state changes in one tick: knowledge graph update, FriendArc phase advance, RelationshipState change (Friendly -> PersonOfInterest), monologue trigger (urgent), entity color shift (green -> amber)
  • InteractionLog component must exist to track interaction count for Warmth->Trust threshold (>=3 interactions + >=600 ticks)
  • All content from Warmth and Trust phases must exist so the player has built attachment before the contradiction fires
  • NOTE: No dedicated FriendArc implementation ticket exists yet -- ticket needed for the FriendArc state machine and contradiction observation system

Status: Not started -- this is the most complex moment. Requires the full FRIEND content pipeline plus FriendArc state machine implementation. Content blocked by #261. Server-side contradiction detection deferred to Sprint 3+ per D-041.


Moment 4: The Divergence Reveal

Description: On second playthrough with the other character, the player enters the same room and sees different entity colors, different NPC names in monologue (first-name vs surname), different internal observations. The world is structurally identical but perceptually inverted. The player realizes: "I was only seeing HALF of this." This moment does not require new content -- it requires that all existing content is properly dual-lens authored.

Timing: Second playthrough, minute 5-10 of session

Content deliverables:

  • Dual Lens Authoring Guide: the root document defining how the same world plays differently through smuggler vs detective perspective (#261)
  • All dual-lens content for first location (Terminal): smuggler sees colleagues, detective sees subjects of investigation -- same NPCs, different access tiers, different monologue pools (within #399, #297, #298)
  • Mirror moment design document: 10-15 paired observations, same event triggering different monologue per character (#329)
  • PC-as-NPC content: the other character exists as an NPC with routine entries and observation monologue lines (#401)

Implementation tickets:

  • #182 -- Divergent starting knowledge: smuggler knows criminals/workplace gossip, detective knows institutional info/case files (backlog)
  • #183 -- Divergent relationships: same NPCs, different trust levels per character (backlog)
  • #304 -- Entity color system spec: same NPC shows different color per character's relationship state (backlog, blocked by #303)
  • #120 -- Monologue line pool system: character tag as hard partition per D-032 ensures completely separate pools (backlog)
  • #90 -- Personality and tell system: same tells visible to both characters but interpreted differently via monologue (backlog)

Content tickets:

  • #261 -- Dual Lens Authoring Guide: critical path root, blocks all dual-lens content (backlog, Sprint 3 P0)
  • #329 -- Mirror moment design document: 10-15 paired observations (backlog, blocked by #297, #298)
  • #399 -- Monologue content pool: must contain separate pools per character (backlog, blocked by #261, #382)
  • #401 -- PC-as-NPC content authoring: 5-7 routine entries + 3-5 observation lines per character (backlog, Sprint 5, blocked by #381, #383, #297, #298)
  • #381 -- PC-as-NPC unified spec (backlog)

Dependencies:

  • #261 (Dual Lens Authoring Guide) is the root dependency -- every piece of dual-lens content flows through it
  • Character voice registers (D-056 / #310) must be defined so smuggler and detective monologue feel distinct
  • D-032 (separate monologue pools per character) must be enforced in the monologue line pool system
  • Entity color system (#304) must support per-character relationship state mapping
  • Divergent starting knowledge (#182) and divergent relationships (#183) must be seeded at game start
  • This moment only works after the player has completed one full playthrough -- no implementation needed for "second playthrough" detection; the content itself creates the revelation

Status: Not started -- #261 is the critical path root (blocks 9+ downstream tickets). Divergent knowledge/relationship tickets in backlog. Mirror moment document not yet started.


Moment 5: The News Ticker Gut-Punch

Description: A news ticker headline scrolls at the bar (The Last Shift). Both characters see the same headline. Their internal monologue reacts in opposite ways -- the smuggler reads threat, the detective reads opportunity (or vice versa). Three words of ticker text plus two monologue reactions create the most efficient demonstration of asymmetric information in the game. D-306 calls this "cheapest wow-per-word in the project."

Timing: Variable (player must visit The Last Shift bar). Most likely minute 10-20.

Content deliverables:

  • News ticker headline pool: ~20 dual-lens headlines for Meridian feed (freight data, Assembly politics, local infrastructure, Commission advisories; per #395 and #306)
  • Dual monologue reactions per headline: each headline needs a smuggler reaction and a detective reaction (within #399 monologue pool, tagged with trigger: observe_object or similar)
  • Ticker display format and visual spec (part of #316 text display hierarchy spec, bar-world-space rendering per Stig's UI BOM)

Implementation tickets:

  • #306 -- News ticker / Meridian feed content: 20-30 lines (backlog, blocked by #302)
  • #395 -- News ticker headline pool: ~20 dual-lens headlines (backlog, Sprint 4)
  • #316 -- Text display hierarchy spec: 4 content pipelines including ticker (backlog)
  • Ticker renderer (client): world-space text display at bar location -- covered in Stig's UI BOM (1 scene + 1 script, P1). NOTE: No dedicated implementation ticket exists yet for the ticker client renderer -- ticket needed

Content tickets:

  • #306 -- News ticker / Meridian feed content (backlog, blocked by #302 Sova Texture Appendix)
  • #395 -- News ticker headline pool with dual-lens reactions (backlog, Sprint 4)
  • #399 -- Monologue content pool: must include ticker-reaction monologue lines (backlog)

Dependencies:

  • ObserverSnapshot v3 includes ticker_headlines field (D-054) -- protocol support designed
  • Bar spatial layout (#312) must place the ticker in a visible location within The Last Shift
  • Sova Texture Appendix (#302) must exist for setting-consistent ticker language
  • Monologue system must fire observe_object trigger when player reads a ticker headline
  • D-032 separate pools ensure smuggler and detective get different reactions to the same headline
  • NOTE: The ticker_headlines field exists in the ObserverSnapshot v3 design but no server-side ticket exists for populating it -- ticket needed for server-side ticker headline system

Status: Not started -- content blocked by #302 (Sova Texture Appendix). No client renderer ticket exists. Server-side ticker system needs a ticket.


Moment 6: The Quiet Moment

Description: The player idles in a corridor. No interaction, no event. After a pause, an unprompted reflective monologue fires -- the character thinking about their life, their friend, what they are doing here. The player feels: "I care about this person." This moment proves that the monologue system works as atmosphere, not just as a game mechanic. It makes the character feel like a person, not a cursor.

Timing: Variable (fires on time_idle trigger after player has been stationary for a threshold duration). Most likely in corridors between locations.

Content deliverables:

  • Idle/reflective monologue lines: minimum 2 lines per character (per D-039), ideally 4-6 per character within the ~200 line monologue pool (#399). Must use trigger: time_idle. Content should reference THE FRIEND, the setting, or the character's personal situation.
  • Corridor ambient context: monologue lines should reference corridor sensory details (span gate hum, ventilation whistle, recycled air) from #302 Sova Texture Appendix

Implementation tickets:

  • #119 -- Monologue event generation - server: must support time_idle trigger type (backlog, blocked by #239)
  • #120 -- Monologue line pool system: must select lines tagged with time_idle trigger after idle threshold (backlog)
  • #122 -- Monologue display - client: must render reflective lines with standard (non-urgent) chime (backlog)

Content tickets:

  • #399 -- Monologue content pool: must include time_idle triggered lines per character (backlog, blocked by #261, #382)
  • #302 -- Sova Texture Appendix: sensory details needed for corridor reflective monologue (backlog)

Dependencies:

  • Monologue trigger system must implement time_idle as one of the 9 trigger types (D-035)
  • Idle detection: server must track how long the player character has been stationary and emit a time_idle trigger event after threshold
  • time_idle is priority 9 (lowest in D-059 priority ordering) -- it should only fire when nothing else is happening, which is exactly the design intent
  • Monologue chime audio (sfx_monologue_chime.ogg) from #327 -- the standard chime, not the urgent variant
  • Prerequisite system should gate some idle monologue behind having met THE FRIEND (so the reflective moment references someone the player knows)

Status: Not started -- idle trigger implementation needed in server monologue system. Content blocked by #261 and #382.


Cross-Cutting Dependencies

These items block multiple wow moments and represent the highest-leverage work:

Dependency Blocks Moments Ticket Status
Dual Lens Authoring Guide 1, 2, 3, 4, 5, 6 #261 Backlog (Sprint 3 P0, critical path root)
Character voice speech patterns 1, 2, 3, 4 #310 Backlog
Monologue event generation - server 1, 2, 3, 6 #119 Backlog
Monologue line pool system 2, 3, 4, 6 #120 Backlog
Monologue display - client 1, 2, 3, 6 #122 Backlog
Monologue content pool (~200 lines) 2, 4, 5, 6 #399 Backlog (Sprint 4)
Observation event generator 2, 3 #239 Backlog
Routine deviation detection 2, 3 #243 Backlog
NPC daily routine system 1, 2, 3 #88 Backlog
Audio asset set (8 files) 1, 2, 6 #327 Backlog
Entity color system spec 3, 4 #304 Backlog
Sova Texture Appendix 5, 6 #302 Backlog

Missing Tickets Identified

The following gaps were found during this analysis -- tickets need to be created:

  1. FriendArc state machine implementation (server): 4-phase state machine (Warmth -> Trust -> Doubt -> Conflict) with explicit transition triggers, atomic 5-state-change on contradiction observation, InteractionLog component. Blocks Moment 3. Workshop Section 6 (round2-tracking.md) has the full spec.
  2. Server-side ticker headline system: Populate ticker_headlines field in ObserverSnapshot v3. Select headlines from content pool, deliver through bridge. Blocks Moment 5.
  3. Ticker client renderer: World-space text display at The Last Shift bar location. 1 scene + 1 script per Stig's UI BOM (P1). Blocks Moment 5.
  4. Idle detection system (server): Track player character stationary duration, emit time_idle trigger after configurable threshold. May be folded into #119 (Monologue event generation) but should be explicitly scoped. Blocks Moment 6.

Compiled for ticket #400. Cross-references: D-039 (wow moments), D-027 (vertical slice criteria), D-034 (THE FRIEND), D-032 (separate monologue pools), D-035 (tag taxonomy), D-038 (audio scope), D-041 (knowledge graph), D-054 (ObserverSnapshot v3), D-056 (PC voice registers), D-058 (FRIEND content pack template), D-059 (monologue display constraints).