Standardized YAML frontmatter on all 26 docs/discussions/ files with title, description, type, status, round number, and created date. All marked as archived. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
34 KiB
title, description, type, status, round, created
| title | description | type | status | round | created |
|---|---|---|---|---|---|
| Round 18: v0.1 Gap Analysis Workshop | Stress-test of 232-ticket v0.1 plan against concept proof claims; identified gaps in fun delivery and testability; decided D-030 through D-040 | discussion | archived | 18 | 2026-02-11 |
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
- Asymmetric information — "You only know what your character knows"
- Fog of perception — "Fog = tension, not just fog of war"
- NPCs feel alive — "NPCs have lives, relationships, and secrets you can discover"
- Observation as mechanic — "Watching, listening, and following ARE the gameplay"
- Same world, different story — "Two characters experience fundamentally different games"
- 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
GdUnitSceneRunnerfor 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:
- No conditional compilation that changes production behavior
- No
pubvisibility escalation solely for tests - No test-specific parameters on production functions
- Public API is the test surface
- 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-nextestfor 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, norand::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:
- 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."
- Shared reality map — Every NPC/location both characters encounter, with what each character SEES through their lens.
- Monologue pair templates — 10-15 paired monologue examples showing same observation, different identity, different interpretation.
- Recontextualization moments — 2-3 moments designed for second-playthrough vertigo. Authored backward from the reveal.
- Emotional registers per character — Not voice guides but emotional posture guides (smuggler: managing anxiety beneath casual competence; detective: controlled professional attention).
- The ethical layer — How both characters' monologues acknowledge the moral dimension of watching. Not preachy — texture.
- 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
- The Interpretive Split — Same NPC, same behavior, two completely different monologue interpretations. The thesis in its purest form.
- The Recontextualization — Second-playthrough vertigo when the player sees their first playthrough's reality was constructed. Most powerful emotional payload.
- 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.