Files
settled-reach/docs/discussions/round-18-v01-gap-analysis-workshop.md
T
jpmschweitzerandClaude Opus 4.6 6f9eda5079 docs(discussions): add Round 18 v0.1 gap analysis workshop
7 agents across 2 rounds stress-tested the 232-ticket v0.1 plan against
concept proof, fun delivery, completeness, and testability. Key outcomes:
D-030 testability architecture confirmed, 15 priority promotions, 41 new
tickets (273 total), replay ceiling estimated at 10-12 playthroughs.
Reorganized workshops into per-workshop directories.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 01:11:02 +01:00

34 KiB

ROUND 18: v0.1 Gap Analysis Workshop

Date: 2026-02-11 Type: Two-round structured workshop Participants: Gestalt, Ozzie, Paula, Gore, Nigel, Tyre, Hoshe (7 agents) Facilitator: Team Leader (Jeroen) Documenter: Qatux


1. Workshop Summary

Purpose

Stress-test the existing 232-ticket v0.1 plan against six concept proof claims derived from D-005, D-027, and the game's core design pillars. Identify gaps between what the ticket plan builds and what the v0.1 must prove.

Structure

Round 1 — Independent analysis. Each agent worked their assigned tracks without seeing other agents' responses:

Track Focus Assigned Agents
Track 1: Concept Proof Rate 6 claims against ticket coverage Gestalt, Ozzie, Paula, Nigel, Gore
Track 2: Fun/Wow Gap Identify missing moments and emotional delivery Gestalt, Ozzie
Track 3: Missing Things Identify unticketed hard/soft blockers Gestalt, Tyre
Track 4: Testability Finalize testability decisions for #214 Tyre, Hoshe

Round 2 — Cross-pollination and synthesis. All agents read all Round 1 responses. Each responded to insights from other agents, revised positions, and consolidated proposals.

Six Concept Proof Claims

  1. Asymmetric information — "You only know what your character knows"
  2. Fog of perception — "Fog = tension, not just fog of war"
  3. NPCs feel alive — "NPCs have lives, relationships, and secrets you can discover"
  4. Observation as mechanic — "Watching, listening, and following ARE the gameplay"
  5. Same world, different story — "Two characters experience fundamentally different games"
  6. Social triangles — "Overlapping NPC relationships create player decisions"

Key Outcome

The ticket plan builds strong infrastructure but has a systematic gap in the experience layer — the systems that translate simulation data into player-felt moments. The workshop produced 33 new consolidated tickets, 14 priority promotions on existing tickets, 8 testability decisions, a narrative authoring specification, and a unifying design thesis.


2. Concept Proof Scorecard

Consolidated Risk Assessment

Each agent rated the six claims from their domain expertise. Risk levels below represent the workshop consensus after Round 2 synthesis.

# Claim Infrastructure Experience Layer Consensus Risk Primary Gap
1 Asymmetric information STRONG — info boundaries (#138-142), ObserverSnapshot Interpretation missing — characters see different data but don't THINK differently MEDIUM-HIGH Identity-driven monologue interpretation
2 Fog of perception STRONG — shadowcasting (#110-113), sound (#124-128), vision cone Deviation detection missing — fog is spatial but not experiential LOW-MEDIUM Routine deviation detection system
3 NPCs feel alive STRONG — 10-axis model (D-024), routines (#88, #101), simulation tiers (D-026) Discovery mechanisms missing — NPCs live but players can't observe their lives MEDIUM-HIGH Observation event pipeline, pathfinding
4 Observation as mechanic PARTIAL — perception systems exist Player verbs missing — no follow, examine, interact dispatcher HIGH Player interaction system, observation event generator
5 Same world, different story PARTIAL — divergent knowledge (#182-183) Narrative arcs underspecified — different facts but not different MEANINGS HIGH Interpretive framing, Perspective and Arc authoring spec
6 Social triangles PARTIAL — triangle generation (#106-109) Activation/resolution missing — triangles exist as data but never fire HIGH Triangle escalation system, tolerance thresholds (#105)

The Pattern

Gestalt identified the defining pattern: infrastructure is systematically strong; the experience layer is systematically missing. Every claim has solid data models and simulation systems. What's absent is the layer that translates simulation state into observable, interpretable, emotionally resonant player moments. The observation event generator — where perception, knowledge, identity, and monologue converge — is the mechanical heart of this missing layer.

Individual Scorecards

Gestalt (Systems Design): Rated all 6 claims on systemic coverage. Top risks: no player interaction verbs (Claim 4), no triangle activation mechanism (Claim 6). Identified 5 systemic risks including time system (Q-009) unresolved.

Ozzie (Player Experience): Dual-scored each claim on systemic (1-5) and emotional (1-5) delivery. Overall emotional average: 3.2/5 (revised down from 3.3 in Round 2 after Paula's insight on Claim 5). Key finding: "NOTICING THAT AN NPC BROKE THEIR ROUTINE IS THE CORE GAMEPLAY LOOP AND IT'S NOT A TICKET."

Paula (Narrative): Three-dimensional rating: mechanical coverage, narrative delivery, emotional resonance. Claim 5 rated highest risk — "the weakest claim despite being the most important." Pattern: tickets build strong mechanical foundations but underspecify narrative connective tissue.

Gore (Themes): Unified all 6 claims under one thesis (see Section 3). Distinguished load-bearing moments (thesis-proving) from important-but-not-load-bearing moments (fun-proving). Three thematic priorities: interpretive divergence, recontextualization, quiet life has meaning.

Nigel (Replayability): Rated each claim for 3rd+ playthrough value. Round 1 scores: 4-6/10 range. Round 2 revised scores: 6-8/10 with experience layer systems added. Key insight: the experience layer IS the replayability layer.


3. Core Thesis

"Who you are determines what is real"

Proposed by: Gore (Round 1) Endorsed by: Full workshop (Round 2)

Gore unified all six concept proof claims under a single thesis: the game's central argument is that identity shapes perception, and perception constructs reality. All six claims are facets of this thesis:

  • Asymmetric information = different knowledge bases
  • Fog of perception = different spatial awareness
  • NPCs feel alive = different relationships to the same people
  • Observation as mechanic = different salience filters
  • Same world, different story = different interpretive frames
  • Social triangles = different stakes in the same conflicts

Mechanical expression: The observation event generator (see Section 5, C-4) must query character identity when generating events — not just "what does the character KNOW?" but "what does the character CARE ABOUT?" The smuggler's knowledge base makes criminal activity salient. The detective's makes institutional anomalies salient. Same NPC behavior, different observation events, different monologue, different reality.

Nigel's extension: "Who you are determines what is real. And what is real changes every time." Character variation provides depth (different realities). Seed variation provides breadth (different worlds). Both axes are required.

Gore's scoping for v0.1: The vertical slice must prove Thesis A (identity is perspectival — same seed, different character, different reality). Thesis B (reality is contingent — different seeds change the world) reinforces Thesis A but is a secondary proof.

Design implication (Gestalt): Every system in the experience layer needs an identity-aware interpretation step. The observation event generator, follow mechanic, examine mechanic — all must be colored by character identity, not generic.


4. Fun/Wow Gap Analysis

Ozzie's Assessment

Ozzie identified a systematic gap between simulation capability and emotional delivery. The ticket plan builds the machine; it doesn't design the moments.

Missing moment categories:

Gap Description Impact
No observation event pipeline Perception systems exist but nothing connects "player sees NPC" to "character interprets and comments." The spine of the game is spread across 4 epics with no connecting tissue. Without this, the player sees things but doesn't understand them.
No routine deviation detection NPCs have routines but no system detects when they break routine. The core detective mechanic doesn't exist as a ticket. Without this, investigation has no entry point.
No first-5-minutes design No opening hook, no diegetic objective, no "here's why you should care." The player spawns and stands there. First impression determines whether players keep playing.
No opening monologue The character has no voiced reaction to their starting situation. Missed opportunity for the cheapest, highest-impact atmosphere moment.
No tell visual expression NPC behavioral tells (D-024) have no defined visual/behavioral manifestation in the top-down renderer. Observation chain has no starting point — can't notice what you can't see.
No triangle escalation events Triangles exist as data but never produce observable drama. Social system is backstory, not gameplay.

The 30-second demo moment (Ozzie): Fog + NPC + monologue + routine deviation + "Should I follow her?" — this sequence requires all five of Tyre's hard blockers (collision, pathfinding, time, interaction, NPC movement) to work, plus the observation event pipeline, plus monologue integration. It is the minimum viable proof of concept.

First 5 Minutes rating: 2/5 for design, 0/5 for implementation without Tyre's infrastructure blockers resolved.

Gore's ethical dimension as wow multiplier: The detective overhearing a private conversation through a wall fires monologue: "She doesn't know I can hear this." This delivers information, atmosphere, AND ethical texture simultaneously. Ozzie endorsed: "Gore's ethical dimension is a wow MULTIPLIER, not a wow complicator." Rule for content authoring: the character notices they're watching; they don't moralize. The PLAYER does the moralizing internally.


5. Missing Ticket List

Gestalt's Consolidated Proposal

Gestalt consolidated 49 proposals from 7 agents into 33 new tickets, eliminating 16 duplicates through merging (33% dedup rate). The observation event generator alone absorbed 5-6 independently proposed tickets.

CRITICAL Priority (5 tickets)

ID Title Absorbs Source Agents
C-1 Tile collision system -- Tyre
C-2 Tile-based A* pathfinding + NPC movement (2 stories in 1 epic) Tyre's pathfinding + NPC path following; Gestalt's NPC pathfinding Tyre, Gestalt
C-3 Game clock and day-phase system (resolves Q-009) Tyre's game clock; Gestalt's time system concern Tyre, Gestalt
C-4 Observation event generator (with deviation detection) Ozzie's observation event pipeline + routine deviation detection; Paula's absence detection + knowledge-aware monologue integration; Gestalt's NPC off-routine behavior Ozzie, Paula, Gestalt
C-5 Player interaction system + dispatcher Gestalt's player interaction framework; Tyre's interaction dispatcher Gestalt, Tyre

HIGH Priority (14 tickets)

ID Title Source Agents
H-1 Follow mechanic Gestalt
H-2 Examine mechanic Gestalt
H-3 Triangle dynamics: escalation, activation, resolution Ozzie, Paula, Gestalt
H-4 NPC-to-NPC conversation system Gestalt
H-5 NPC player-awareness behavior Gestalt
H-6 Player-action social propagation Paula, Nigel
H-7 Tell visual/behavioral expression Paula, Ozzie
H-8 Character objectives, arcs, and pressure framework Gestalt, Paula
H-9 Opening experience design per character Gestalt, Ozzie
H-10 Monologue content architecture Gestalt, Paula, Gore
H-11 Contamination activation mechanic (simplified v0.1 storyteller) Gestalt
H-12 Client audio manager and spatial playback Tyre
H-13 Placeholder art specification Tyre
H-14 Save state data model and serialization Tyre

MEDIUM Priority (11 tickets)

ID Title Source Agents
M-1 Wait/time-skip mechanic Gestalt
M-2 Basic environmental interaction (doors, objects) Gestalt
M-3 Environmental text content (signs, terminals, documents) Gestalt
M-4 Knowledge/journal display (client) Tyre
M-5 Save/load game flow (client) Tyre
M-6 Game session management Tyre
M-7 Time display on insert HUD Tyre
M-8 Demo scenario specification (2-minute showcase) Ozzie
M-9 False positive NPC design (anti-metagaming) Nigel
M-10 Same-character-different-seed validation test Nigel
M-11 Playtest protocol definition Hoshe

Testing-Specific Tickets (3 tickets)

ID Title Priority Source
T-1 Information boundary negative test suite High Hoshe
T-2 CauseChain component for information events High Hoshe
T-3 Test output formatter CLI Low Hoshe

Totals

  • 49 original proposals across 7 agents
  • 16 absorbed through merging (33% dedup rate)
  • 33 consolidated new tickets
  • Split: 5 Critical, 14 High, 11 Medium, 3 Testing

6. Priority Adjustments

Consensus Promotions on Existing Tickets

14 priority promotions where 2+ agents independently recommended the change. Listed by consensus strength.

Ticket Current Recommended Agents Recommending Rationale
#103 Relationship dynamics Medium HIGH Paula, Gestalt, Ozzie Required for triangle activation, NPC attachment, Moment 3 (Cost of Knowing). Without this, no NPC feels like a person who changes.
#105 Tolerance threshold triggers Medium HIGH Paula, Gestalt, Ozzie The only trigger mechanism for triangle escalation. Without it, triangles are backstory, not drama.
#171 Trust-gated gossip Medium HIGH Paula, Ozzie Where daily life becomes interesting. 30-minute sustainer. Without gossip, social life is surface-level greetings.
#172 Unprompted disclosure Medium HIGH Paula, Ozzie, Gestalt NPC-initiated story moments, off-screen event narration. Makes NPCs feel like they have agendas.
#121 Character voice variation Medium HIGH Gore, Ozzie, Gestalt Must be scoped as INTERPRETIVE FRAMING, not just tonal variation. The mechanical expression of "who you are determines what is real."
#178 Seed-based variation LOW HIGH Nigel, Gestalt, Ozzie Without it, replay ceiling = 2 playthroughs. With it: 10-12. The replayability engine.
#102 Mood system Medium HIGH Gestalt Affects dialogue selection (D-028), NPC believability.
#126 Medium-range visual indicators Medium HIGH Ozzie, Gestalt Fog-edge tension — hearing things you can't see.
#108 Cross-template triangles Medium HIGH Nigel, Gestalt Source of the most surprising emergent stories. Different cross-template configs per seed.
#175 Entanglement ratio config Medium HIGH Nigel D-029 anti-metagaming requires implementation. Variable per seed.
#176 NPC pool generation Medium HIGH Nigel Per-seed NPC assignment is foundational for variation.
#173 Trait modifier system Medium HIGH Paula Required for seed-variation narrative depth. Role archetypes without trait modification produce identical delivery.
#182 Divergent starting knowledge HIGH CRITICAL Nigel Core differentiator between characters. Gore's "different realities" starts here.
#183 Divergent relationships HIGH CRITICAL Nigel Inverted emotional landscape per character. Non-negotiable for two-reality proof.
#162 Storyteller module activation LOW MEDIUM Ozzie, Gestalt Even a simple timer gives the 30-min arc shape. Without it, daily life has no crescendo.

7. Testability Decisions

Eight Final Decisions for Ticket #214

Confirmed by Tyre and Hoshe after two rounds of analysis. Changes from Round 1 marked.

Decision 1: Rust test organization = Hybrid (UNCHANGED)

  • #[cfg(test)] for unit tests inside modules (algorithm internals, pure functions)
  • tests/ directory for integration tests (full tick loop, multi-system interaction)
  • Both run via cargo nextest run
  • No dissent.

Decision 2: Godot test framework = gdUnit4 (CHANGED from GUT)

  • Install gdUnit4 as addon in client project
  • Headless execution via godot --headless + GdUnitCmdTool
  • JSON output format for agent consumption
  • GdUnitSceneRunner for scene lifecycle tests (dialogue UI, fog rendering)

Changed because: Hoshe's comparison demonstrated gdUnit4's advantages for agent-driven development: native JSON output, stable headless support via GdUnitCmdTool, GdUnitSceneRunner for scene tests, and organizational maintenance (godot-gdunit-labs vs single maintainer). Tyre acknowledged: "I was wrong in Round 1, and Hoshe's argument is better."

Decision 3: IPC testing = Three-layer architecture (EXTENDED from "real IPC")

Layer Scope Speed Frequency
Layer 1 — Fixture-based Serialization roundtrip, cross-language verification < 1 second Every edit cycle
Layer 2 — Protocol state machine Mock subprocess, handshake/error/recovery < 10 seconds Every PR
Layer 3 — Real integration Actual simulation binary, real protocol < 60 seconds Daily / pre-merge

Extended because: Hoshe's three-layer approach adds fast feedback for serialization changes and protocol state machine testing without contradicting Tyre's "real IPC for integration truth" position. The layers are complementary.

Decision 4: Production code constraints + CauseChain endorsed (UNCHANGED + EXTENDED)

Five constraints:

  1. No conditional compilation that changes production behavior
  2. No pub visibility escalation solely for tests
  3. No test-specific parameters on production functions
  4. Public API is the test surface
  5. ECS World setup replaces mock injection

CauseChain endorsed as production component, not test pollution. Serves four production purposes: (1) monologue integration ("I saw..." vs "I overheard..."), (2) knowledge journal provenance, (3) debugging/causality tracing, (4) success criteria validation (D-027 criterion 4). Every design agent independently flagged the need CauseChain addresses. Implementation: CauseChain component with Vec<CauseStep>, each step containing Cause enum variant (VisualObservation, AudioObservation, DialogueReveal, InferredFromPattern, InstitutionalAccess, StartingKnowledge, ScriptedReveal).

Decision 5: Test runner tooling (UNCHANGED)

  • cargo-nextest for Rust (parallel execution, isolated processes, structured output)
  • gdUnit4 for Godot (JSON output, scene runner, stable headless)
  • Bash wrapper scripts in test/ directory, whitelistable for Claude Code agents
  • Each script: exit code 0/non-zero, structured stdout, accepts filter arguments, no interactive input

Decision 6: Test output format = JSON summary (MERGED)

All test runners produce a consistent JSON schema:

{
  "suite": "simulation::perception",
  "runner": "cargo-nextest",
  "duration_ms": 247,
  "total": 15,
  "passed": 14,
  "failed": 1,
  "failures": [{ "test": "...", "file": "...", "line": 142, "message": "..." }]
}

Rust: cargo-nextest output normalized to JSON by wrapper script. Godot: gdUnit4 native JSON. JUnit XML as secondary format for future CI integration.

Decision 7: Deterministic replay promotion (NEW from Hoshe)

  • Promote #201 (Deterministic replay system) from HIGH to CRITICAL
  • Simulation must consume time, randomness, and player input exclusively through injectable resources: SimulationTime, SimRng (seeded from world seed), InputQueue
  • No std::time::Instant, no rand::thread_rng()
  • This is a production architecture requirement (D-010 principle 4), not test infrastructure
  • Without determinism: sync tests (#211), divergence tests (#197), and cross-seed validation (#178) are impossible

Decision 8: Test priority alignment with hard blockers (NEW from design team)

Three-phase test priority:

Phase Sprint Focus
Phase 1: Foundation Sprint 1-2 Test infra setup, first tests alongside collision/pathfinding/time
Phase 2: System integration Sprint 3-4 Monologue pipeline integration test (highest-value), information boundary negative tests
Phase 3: Content validation Sprint 5+ CauseChain verification, divergent snapshot tests, content regression

Key insight (Tyre): The monologue pipeline integration test is the single highest-value test in the project — it exercises perception, time, routines, information boundaries, and monologue generation in one chain.


8. Narrative Requirements

Paula + Gore: "Perspective and Arc" Authoring Specification

Paula and Gore independently converged on the same diagnosis from different angles. Paula identified "interpretive asymmetry" (characters don't just know different things — they THINK differently). Gore identified "identity shapes reality" (the thesis). Their merged output is a content authoring specification.

Document title: "Perspective and Arc — v0.1 Authoring Specification" Assigned to: Gore (thematic framing), Paula (narrative structure), Mellanie (authoring execution), Miri (setting grounding) Estimated length: ~12-15 pages

Contents:

  1. Thesis statement — Falsifiable claim: "A player who completes both playthroughs should report that they felt like they played two different games set in the same place."
  2. Shared reality map — Every NPC/location both characters encounter, with what each character SEES through their lens.
  3. Monologue pair templates — 10-15 paired monologue examples showing same observation, different identity, different interpretation.
  4. Recontextualization moments — 2-3 moments designed for second-playthrough vertigo. Authored backward from the reveal.
  5. Emotional registers per character — Not voice guides but emotional posture guides (smuggler: managing anxiety beneath casual competence; detective: controlled professional attention).
  6. The ethical layer — How both characters' monologues acknowledge the moral dimension of watching. Not preachy — texture.
  7. The quiet life — Guidance for the 30% flat and 50% mundane NPCs. "Write these NPCs as people, not as noise."

Three Must-Deliver Narrative Moments (Paula)

Moment Timing Emotional Arc Systems Required Minimum Conditions
Recognition Divide Minutes 0-5 Curiosity -> "my character sees differently than I expected" Info boundaries + monologue + character builds 5 shared NPCs with dual monologue sets
Absence That Speaks Minutes 10-20 Familiarity -> disruption -> anxiety -> "something's wrong" Routines + absence detection + fog + monologue 2 NPCs with deviation events + absence monologue
Cost of Knowing Minutes 20-30 Attachment -> discovery -> moral weight -> "what do I do?" All social systems + information gain + monologue 1 NPC per character with positive rapport + incriminating discovery

Arc across all three: Innocence -> awareness -> moral complexity. Plays out in 30 minutes. Plays differently per character because each starts from different "innocence."

Gore's Three Load-Bearing Moments

  1. The Interpretive Split — Same NPC, same behavior, two completely different monologue interpretations. The thesis in its purest form.
  2. The Recontextualization — Second-playthrough vertigo when the player sees their first playthrough's reality was constructed. Most powerful emotional payload.
  3. The Quiet Life Moment — An unentangled NPC who is interesting to observe on their own terms. Proves the thesis extends beyond intrigue.

Minimum Narrative Investment

~80-100 critical monologue lines (dual-interpretation + absence + arc progression) plus the authoring specification. Approximately 5-8% of total v0.1 content work, but load-bearing for 100% of the thesis proof.

Role-Archetype Authoring (Paula + Nigel)

Paula resolved the tension between narrative depth and seed variation: author for ROLES, not individuals. "The colleague who's in too deep" is a role archetype with monologue templates and arc structures. Each seed fills the role with a different NPC. Trait modifiers (#173) reshape delivery per NPC.

Design constraint (Gore): Seed variation changes the world's CONTENT (who, what, when). Character identity changes the world's MEANING (why, how, what-it-feels-like). These axes must stay distinct. If the smuggler in seed B feels like a different person than the smuggler in seed A, the thesis collapses.


9. Replayability Assessment

Nigel's Final Replay Ceiling: 10-12 Playthroughs

Scenario Estimated Playthroughs Change from Round 1
Current plan (no changes) 2 --
+ #178 promoted to HIGH 4-5 --
+ Observation pipeline + deviation detection 6-8 NEW
+ Triangle escalation + social propagation 7-9 NEW
+ Interpretive framing + character objectives 8-10 NEW
+ Opening hooks (seed-aware) + tell variation 9-12 NEW
ALL proposed changes integrated 10-12 Up from 6-8 in Round 1

Key insight: The experience layer IS the replayability layer. Gestalt and Ozzie's observation pipeline makes seed variation VISIBLE to the player. Without it, seeds differ under the hood but the player doesn't notice. With it, every structural variation becomes a felt experience.

The math: 2 characters x 3-4 meaningfully different seed configurations x 1.5-2x experiential variation from observation pipeline + deviation detection = 9-16 theoretical, constrained to 10-12 by content depletion (dialogue lines, NPC personality variety).

Replayability Architecture = Game Architecture

Every system that makes the first playthrough good ALSO makes subsequent playthroughs different — IF it's seed-aware and feeds into the observation pipeline:

Agent Designed For Replayability Contribution
Gestalt Player verbs / experience layer Observation pipeline makes seed variation visible
Ozzie Wow moments / emotional delivery Deviation detection makes fog replayable
Paula Narrative connective tissue Triangle escalation timing varies per seed
Gore Thematic unity Character-as-reality framing makes switching characters feel like switching genres
Tyre Technical foundations Deterministic simulation makes seed variation reliable
Hoshe Testability Automated cross-seed comparison validates replayability
Nigel Seed variation The structural floor all other systems multiply against

Nigel's Extended Thesis

"Who you are determines what is real. And what is real changes every time."

  • Character variation = DEPTH (fundamentally different experiences from the same events)
  • Seed variation = BREADTH (can't metagame, can't solve, can't predict)
  • Together: every playthrough is a genuinely new experience

10. Open Question Resolutions

Q-009: Time System — Proposal (AWAITING CONFIRMATION)

Tyre and Gestalt converged on a time system proposal. Both support the same parameters:

Parameter Value Rationale
Tick rate 10 tps Already decided (D-026)
Tick-to-game-time 10 ticks = 1 game-minute 30-min play session = ~18 game-hours. Full "day" in one session.
Day phases Morning (6-12), Afternoon (12-18), Evening (18-24), Night (0-6) 4 phases drive routine transitions
Time display In-universe insert clock Diegetic, always visible
Pause Yes (single-player) Simulation freezes, UI responsive
Time-skip Deferred to WAIT verb (medium priority) Nice-to-have, not blocker

Status: Workshop consensus. Requires team leader confirmation to close Q-009.

Other Open Questions

  • Q-002 (v0.1 mechanics scope): Significantly advanced by this workshop. The 33 new tickets + priority adjustments define the remaining scope.
  • Q-010 (Storyteller AI design): Partially addressed — contamination activation mechanic (H-11) is a simplified v0.1 storyteller. Full design deferred.
  • Q-011 (Character selection): Partially addressed — smuggler + detective confirmed (D-027), character builds (#179-183) define the two playable characters.

11. Key Convergences

Independent Discovery of the Same Gaps

The workshop's most striking outcome was the degree of independent convergence. Agents working on different tracks from different domain perspectives repeatedly identified the same missing systems:

Gap Agents Who Independently Identified It Name Each Used
Observation event pipeline Ozzie ("observation event pipeline"), Gestalt ("player interaction framework"), Paula ("knowledge-aware monologue integration"), Gore ("the meaning isn't wired in") 4 agents, 4 names, 1 system
Routine deviation detection Ozzie ("routine deviation detection"), Paula ("absence detection"), Gestalt ("NPC off-routine behavior"), Nigel ("what makes fog replayable") 4 agents, 4 angles, 1 system
Monologue as MVP Ozzie ("the monologue IS the game"), Paula ("the MVP of narrative delivery"), Gore ("the system that constructs reality"), Gestalt ("where identity shapes perception") Universal agreement on monologue as the critical integration point
#178 promotion Nigel (replayability engine), Gestalt (anti-metagaming), Ozzie (replay sustainer), Paula (role-archetype compatibility) 4 agents, all recommending LOW -> HIGH
#103 + #105 promotion Paula (narrative), Gestalt (systems), Ozzie (emotional delivery) 3 agents independently, from different domains
Experience layer gap Gestalt (named it), Ozzie (diagnosed it), Paula (specified the narrative tissue), Gore (specified the meaning) Universal pattern recognition

The Unified Observation System

Gestalt's Round 2 synthesis merged Ozzie's pipeline + Gestalt's verbs + Paula's absence detection into a three-layer system:

Layer 1: PERCEPTION (existing tickets, complete)
  #110-113 (vision), #124-128 (sound), #115 (NPC vision)
  -> Raw sensory data

Layer 2: INTERPRETATION (the missing spine)
  Character knowledge + perceived data -> Observation Events
  Includes: routine deviation, absence detection, social anomaly,
  new information, contradiction
  -> Feeds monologue (#119-122) as trigger events

Layer 3: ACTION (the missing player agency)
  FOLLOW, EXAMINE, INTERACT
  -> Each changes information flow

The observation event generator (C-4) sits at Layer 2 and is the mechanical expression of Gore's thesis: it queries character identity to determine what the character notices, producing different observation events for different characters witnessing the same NPC behavior.


12. Dissent and Unresolved Issues

Resolved Disagreements

GUT vs gdUnit4: Tyre recommended GUT in Round 1; Hoshe recommended gdUnit4. Resolved in Round 2 — Tyre changed position after Hoshe's comparison demonstrated gdUnit4's advantages for agent-driven development (JSON output, stable headless, organizational maintenance). No remaining dissent.

Arcs vs Conditions (Paula vs Gore): Paula thinks in designed narrative arcs (safety -> pressure -> crisis -> choice). Gore thinks in systemic conditions that produce emergent arcs ("design the pressure, not the plot"). This is a real design tension, not a semantic one. Resolution: "Design the pressure, not the plot." Monologue tone shifts driven by tracked discovery count, relationship state, and elapsed time — not by scripted triggers. The storyteller modulates pacing, but player actions determine when phase transitions occur. Both agents accept this framing.

Unresolved Issues

Q-009 confirmation: Time system proposal has full workshop consensus but requires team leader sign-off to close formally.

Priority conflict — #162 (Storyteller): Ozzie wants HIGH promotion; Gestalt supports HIGH; Nigel defers to MEDIUM. Workshop consensus settled on MEDIUM as the minimum, with the design team acknowledging even a timer-based trigger is needed.

Scope of authoring specification: The Perspective and Arc document is 12-15 pages. Whether this is authored before or alongside implementation is not settled.

Tyre's new technical tickets (16 total): These overlap with but are not identical to Gestalt's consolidated 33. Reconciliation of the two lists into a single ticket backlog for Si to process is a follow-up action.

Performance benchmarks (#204): Deferred beyond #214. No baselines defined yet (tick budget, entity count targets, serialization throughput). Not urgent for v0.1 with ~25 NPCs.


Decisions Produced

This round produced the following confirmed decisions:

  • D-030: Testability architecture decisions (8 sub-decisions for #214) — see Section 7
  • Q-009 time system proposal awaiting team leader confirmation

Source Documents

All workshop files are located at docs/workshops/:

File Agent Round
v01-gap-analysis-workshop-brief.md Team Leader Brief
round1-gestalt.md Gestalt Round 1
round1-ozzie.md Ozzie Round 1
round1-paula.md Paula Round 1
round1-gore.md Gore Round 1
round1-nigel.md Nigel Round 1
round1-tyre.md Tyre Round 1
round1-hoshe.md Hoshe Round 1
round2-gestalt.md Gestalt Round 2
round2-ozzie.md Ozzie Round 2
round2-paula.md Paula Round 2
round2-gore.md Gore Round 2
round2-nigel.md Nigel Round 2
round2-tyre.md Tyre Round 2

Documented by Qatux. Round 18 of The Settled Reach design process.