Files
settled-reach/docs/workshops/v01-content-scoping/round1-gestalt.md
T
jpmschweitzerandClaude Opus 4.6 3944b4e79f docs(workshops): archive v0.1 content scoping workshop (2 rounds + closing)
Scoped the vertical slice: 16 EntityKnowledge keys, v0.1 mechanical
NPC mapping, YAML content format, 7-verb interaction model, server-
authoritative pause, 38 tickets created across copy/server/client/ci.
20 decisions (D-042 through D-061). 8 agents, 2 rounds + closing.

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

36 KiB

Round 1 — Gestalt (Systems Design)

cracks knuckles

Let me break down what all of this actually means mechanically.


Topic 1: Wiki Fixes

1a. Do any triangles need restructuring beyond Triangle 1?

Triangle 1 (Hub Power): Yes, needs a fork. Addressed below.

Triangle 2 (Worried Knowledge): Structurally sound but smuggler lens is weak. The smuggler "manages" Maret and Drin — that's passive. The smuggler needs a DECISION in this triangle too. Proposed fix: when Maret gets close to reporting, the smuggler can either (a) feed Maret a cover story through Voss, (b) pressure Drin to reassure Maret, or (c) let it ride and hope Maret stays scared. This isn't a restructure — it's adding a smuggler decision node to an existing triangle.

Triangle 3 (Bar Tensions): Fine as-is. This is a MUNDANE triangle (D-029: 50% mundane). Its job is to be noise floor. Torek's ambiguous spending, Olin's ambiguous intent, Lera's ambiguous loyalty — the player reads signals that might mean nothing. That IS the mechanic. Don't add a fork — the ambiguity IS the fork. The player decides whether to investigate or ignore, and both decisions have consequences (wasted time or missed signal).

Triangle 4 (Worried Partner): Excellent. No changes. Both FRIEND NPCs are nodes. The triangle IS the contradiction structure. This is the best-designed triangle in the set.

Triangle 5 (Informant Question): Structurally sound but resolution timing matters. Pell's wavering, Renn's suspicion, Drin's vulnerability — all three paths toward unraveling operate on different timescales. In a 30-minute session, the player observes the TENSION but probably doesn't see the RESOLUTION. That's fine for v0.1 — the tension is the content, the resolution is the hook for continued play. No restructure needed, but we need to be explicit: Triangle 5 is a passive triangle in v0.1 (observable tension, unresolved fork).

Summary: Active vs. Passive Triangles for v0.1

Triangle Status Smuggler Decision? Detective Decision? Resolution in 30 min?
1: Hub Power Active YES (escalation fork) No (observes consequences) Partial
2: Worried Knowledge Active YES (manage Maret) YES (flip Drin or work Maret) Partial
3: Bar Tensions Passive No (assess risk) No (read signals) No (ambiguity is permanent)
4: Worried Partner Active YES (protect Kael/lie to Hael) YES (ask Sera about Hael) Yes (FRIEND contradiction)
5: Informant Question Passive No (observes Pell's nervousness) No (sees downstream signals) No (hook for continuation)

3 active forks, 2 passive tensions. That's correct for 30 minutes.


1b. Triangle 1 Fork Design

The existing triangle: Nils (off-stage) pushes for higher volume. Voss (shift supervisor) wants stability. Kael is caught between sibling loyalty and operational caution. The smuggler's role is currently passive — they just watch.

The fork: The Escalation Decision

Setup (minute 5-10): Devra approaches the smuggler during a routine shift. Message from Nils: next shipment is double volume. Nils needs more hands and wider timing windows. Voss has to adjust the shift schedule to create a bigger gap. The smuggler is asked to help convince Voss — or handle the extra volume personally.

The smuggler decides:

Choice Immediate Effect Triangle Consequence Detective Signal Mechanical Outcome
Side with Nils (escalate) Extra shipment gets handled. More money. Kael is relieved (less family pressure). Voss gets more anxious, becomes sloppy. Voss's tells accelerate. Operation becomes more visible. Manifest discrepancies spike. Voss's behavior flags: "nervous,schedule_changes,evasive". Detective investigation ACCELERATES. exposure_risk increases globally. cover_integrity of ring drops to "thin". Wow moment #2 (Character's Eye) triggers EARLIER.
Side with Voss (stabilize) Shipment gets rejected or delayed. Nils applies more pressure on Kael directly. Kael's distraction increases (more contact with exit coordinator). Operation stays quiet but INTERNAL tension builds. Fewer observable signals. Detective investigation SLOWS. But Kael's tells (lattice checking, distraction) become more visible. exposure_risk stays low. But Kael's behavior_flags escalate faster. FRIEND contradiction (wow moment #3) hits HARDER because it comes from internal pressure, not external.
Mediate (delay) Smuggler proposes a compromise: half volume increase, phased over two shipments. Neither side satisfied. Nils loses confidence in the smuggler. Voss is temporarily calmed. Kael is confused ("I thought you were handling this"). Mixed signals. Operation is inconsistent — some shifts are busier, others normal. Detective reads organizational confusion accurately. Smuggler's operational_trust with Nils drops. Smuggler's relationship with Devra becomes strained. Creates a SECOND decision point later when Nils sends a more forceful message.

What the detective observes (per smuggler choice):

The detective doesn't see the decision. They see its CONSEQUENCES:

  • Post-escalation: "Voss changed the night shift schedule. Third time this week. The pattern is getting louder." Monologue trigger: observe_anomaly + prerequisite: { "investigation.shift_mismatch": "Suspects" }. The detective's investigation accelerates because Voss's anxiety produces more observable signals.

  • Post-stabilize: "The hub's been quiet this week. Schedules normal. But that dock worker — Kael — he's checked his lattice eleven times this shift." The detective's investigation pivots from institutional signals (schedules, manifests) to personal signals (Kael's behavior).

  • Post-mediate: "Something's off. Last night's shift had extra cargo. Tonight it's normal. There's no pattern I can find, and that's the pattern." The detective is confused, which is realistic and interesting — real investigations hit dead ends.

Key design note: The fork doesn't change WHAT the detective discovers — it changes WHEN and HOW. All three paths lead to the ring. The smuggler's choice shapes the detective's journey, not the detective's destination.


1c. Should Drin be promoted to Tier 2?

Yes. Unambiguously.

Drin is doing Tier 2 work in a Tier 3 body. Mechanically, Drin is:

  • Member of Triangle 2 (Worried Knowledge) — one of our 3 active triangles
  • Member of Triangle 5 (Informant Question) — one of our 2 passive triangles
  • Compromised by Harek (gambling debt) — a coercion arc
  • The easiest NPC for the detective to flip
  • The most vulnerable ring asset for the smuggler to manage
  • A bridge between 2 triangles across 2 social sites

A Tier 3 NPC gets ~10-15 authored lines and 3 axes (Want, Routine, Personality). That's not enough for an NPC who appears in 2 triangles and is a potential informant.

Tier 2 requires:

Axis Drin's Content
Want Keep his job, clear the debt, stop looking over his shoulder
Secret Gambling debt to Harek. Harek holds IOUs. Drin looks the other way during inspections in exchange for debt forgiveness.
Relationship 1 Harek (debt holder, coercer) — fear-based, asymmetric
Relationship 2 Voss (depends on Drin's compliance) — professional, strained
Relationship 3 Maret (colleague, doesn't know about Drin's compromise) — guilt-adjacent
Tolerance LOW — already past breaking. The compromise IS his post-threshold state.
Routine Maintenance shifts, inspection rounds (these ARE the windows he's leaving open)
Information Knows inspection schedule gaps, knows he's being used, doesn't know ring structure beyond "someone benefits from my compliance"
Contentment Very low. Trapped. Remembers when the job was just a job.
Personality Quiet, avoidant, anxious. Doesn't make eye contact during compromised inspections.
Tell Changes route when Harek is present. Shorter inspection times on specific shifts. Increased break frequency (stress smoking equivalent).
Skills Maintenance tech, inspection procedures. No combat.

Content requirement: ~40-60 authored lines (Tier 2 standard):

  • 15-20 dialogue (routine greetings, deflection, cracking under pressure)
  • 8-12 trust-gated (what Drin reveals when scared vs. when trusting)
  • 5-8 unprompted (nervous comments, redirect attempts)
  • 5-8 monologue per character (detective: "He's hiding something, his inspection times are irregular" / smuggler: "Drin's been twitchy. If he cracks, we're all exposed")

Tier adjustment: Tier 3 roster drops from 5 to 4 (Sess, Olin, Sabel, Tav). Tier 2 grows from 10 to 11. Total content budget increase: +30-45 authored lines. This is well within scope for the value Drin provides.


Topic 2: v0.1 NPC Architecture

2a. Full NPC → Pattern + Motivation Mapping

Here's every NPC mapped. I'm assigning based on what each character DOES in v0.1, not what they might become at 300-world scale.

# Name Tier Thematic Pattern Functional Motivation Composition Rationale
1 Kael Davan T1 FRIEND OPERATOR Trust anchor hiding a contradiction + running ring cargo operations. FRIEND+OPERATOR = identity betrayal ("I didn't know who you really were")
2 Sera Venn T1 FRIEND WITNESS Trust anchor hiding a contradiction + carrying unreported evidence. FRIEND+WITNESS = loyalty vs. duty ("She saw something and chose silence")
3 Voss T2 SYSTEM OPERATOR Institutional authority (shift supervisor) + running the schedule that enables smuggling. SYSTEM+OPERATOR = corrupted authority ("The system works for the wrong people")
4 Lera Sessik T2 ANCHOR OPERATOR "Is this enough?" embodied + running a business on willful ignorance. ANCHOR+OPERATOR = contentment with a price ("She makes it work by not looking")
5 Torek Lintar T2 CATALYST CIVILIAN His spending disrupts equilibrium + he's just living his life (spending money, going to the bar). CATALYST+CIVILIAN = accidental disruption ("He doesn't know he's a liability")
6 Devra T2 THRESHOLD HANDLER Gatekeeper between player and ring's deeper layers + managing operations from above. THRESHOLD+HANDLER = obstacle with authority ("You go through her or you don't go")
7 Maret Korr T2 SYSTEM WITNESS Institutional scheduler (the manifests, the numbers) + saw discrepancies she hasn't reported. SYSTEM+WITNESS = honest system under threat ("The numbers don't lie, but she might have to")
8 Resha T2 CATALYST SKEPTIC New hire whose questions force defensiveness + doubts the "mind your business" culture. CATALYST+SKEPTIC = innocent disruption ("They just asked a question. Everyone flinched.")
9 Naia Tamm T2 MIRROR CIVILIAN Honest transparency reveals others' dishonesty + living her life (teaching, worrying about Kael). MIRROR+CIVILIAN = innocence endangered ("The one person who isn't lying, surrounded by liars")
10 Drin T2 (promoted) REMNANT TURNCOAT Remembers when the job was just a job + loyalty coerced from institution to ring by debt. REMNANT+TURNCOAT = corruption's collateral ("He was an honest inspector once")
11 Sess T3 ANCHOR CIVILIAN Quiet contentment behind the bar + uninvolved, discreet. ANCHOR+CIVILIAN = social wallpaper with depth ("The bartender sees everything and says nothing — because nothing's wrong with his life")
12 Olin T3 CATALYST SKEPTIC New arrival whose presence forces everyone to assess threat + asks questions with ambiguous intent. CATALYST+SKEPTIC = the unknown variable ("Friend or threat? The question itself is the disruption.")
13 Renn T2 THRESHOLD OPERATOR Physical gatekeeper of cargo movement (courier) + competent, goal-oriented, runs the route. THRESHOLD+OPERATOR = the machinery of the operation ("Renn moves the product. Get past Renn, you're inside.")
14 Pell T2 CATALYST TURNCOAT Wavering creates potential disruption to entire operation + loyalty actively shifting. CATALYST+TURNCOAT = ticking bomb ("When Pell breaks, everything moves.")
15 Harek T2 GHOST HANDLER Shapes events through debt leverage on Drin, not through direct ring membership + applies pressure from above (off-duty security with information and leverage). GHOST+HANDLER = invisible power ("Harek doesn't run the ring. He just owns the inspector.")
16 Sabel T3 THRESHOLD OPERATOR Off-station gatekeeper of supply chain + runs the external logistics. THRESHOLD+OPERATOR = distant machinery (1-2 brief appearances, mostly off-stage)
17 Tav T3 SYSTEM CIVILIAN Ring lookout following procedure + uninvolved beyond their assigned role. SYSTEM+CIVILIAN = the lowest rung ("Tav watches the door. That's it. That's the whole job.")

Pattern distribution:

Pattern Count NPCs v0.1 Coverage
FRIEND 2 Kael, Sera Full (production-level, D-034)
MIRROR 1 Naia Tamm Full (T2, emotional depth)
ANCHOR 2 Lera, Sess Full + sketch
SYSTEM 3 Voss, Maret, Tav Full + sketch
THRESHOLD 3 Devra, Renn, Sabel Full + sketch
CATALYST 4 Torek, Resha, Olin, Pell Full + sketch
GHOST 1 Harek Light (indirect power)
REMNANT 1 Drin Light (promoted T2)
NOBODY 0 Deferred to v0.2

Motivation distribution:

Motivation Count NPCs
OPERATOR 5 Kael, Voss, Lera, Renn, Sabel
WITNESS 2 Sera, Maret
HANDLER 2 Devra, Harek
TURNCOAT 2 Drin, Pell
CIVILIAN 5 Torek, Naia Tamm, Sess, Olin, Tav
SKEPTIC 2 Resha, Olin

Note: Olin gets dual motivation (CIVILIAN/SKEPTIC) because his intent is ambiguous. In the data, he's tagged SKEPTIC (asking questions), but the player doesn't know if that's genuine curiosity or something else.

Composition check — does this create interesting interactions?

Sova has 4 CATALYSTs. That's a lot. But it's thematically correct: this is a district under pressure. Multiple disruption sources is what makes the ring fragile and the investigation possible. Every CATALYST threatens the status quo differently — Torek through visibility, Resha through innocence, Olin through ambiguity, Pell through betrayal.

The 5 OPERATORs show a district where everyone is RUNNING something — cargo (Kael), schedules (Voss), a bar (Lera), a route (Renn), a supply line (Sabel). The district hums with operational competence. That's the "quotidian-with-undertow" atmosphere of D-036.


2b. Required vs. Deferrable Patterns and Motivations

Required for v0.1 (must be present AND mechanically exercised):

System Required Why
FRIEND Must ship Emotional core, D-034, wow moments #3 and #4
MIRROR Must ship Proves non-FRIEND Tier 1 depth works. Naia Tamm's honesty is the contrast that makes the liars visible.
ANCHOR Must ship "Is this enough?" is the thematic question. Lera must embody contentment-with-a-price.
SYSTEM Must ship Institutional authority is what the detective works within and the smuggler works around. Voss is essential.
THRESHOLD Must ship The investigation REQUIRES gatekeepers. Devra is the wall between the detective and the ring's interior.
CATALYST Must ship Without disruption, nothing happens in 30 minutes. Torek or Pell must force someone's hand.
OPERATOR Must ship People who run things ARE the district.
WITNESS Must ship Investigation requires witnesses. Sera and Maret.
HANDLER Must ship Pressure from above drives tension. Devra.
TURNCOAT Must ship Loyalty shifting is the detective's lever and the smuggler's fear. Drin or Pell.
CIVILIAN Must ship Noise floor (D-029). Without civilians, every NPC is suspicious.
SKEPTIC Should ship Questions create friction. Resha's honest questions. Low effort — just give Resha dialogue that asks inconvenient things.

Deferrable to v0.2+:

System Status Why Deferrable
GHOST (full) Present, light Harek's indirect power works at T2 without GHOST-specific mechanics. The "absent power" system (Nils operating off-stage, Ghost entities sending messages through intermediaries) is v0.2 content.
REMNANT (full) Present, light Drin's "remembers simpler times" is narrative color, not a mechanical system. v0.2 can add REMNANT-specific content (history triggers, memory-based dialogue).
NOBODY Deferred Dynamic tier promotion is a separate system. See 2c.

2c. THE NOBODY — Ship in v0.1 or Defer?

Recommendation: Ship DATA, defer MECHANIC.

What v0.1 v0.2
Hidden pattern+motivation in NPC data YES YES
Tier 3 NPCs have name, routine, greeting YES YES
Interaction counter (track player attention) NO YES
Stage transitions (NOBODY → NOTICED → RECOGNIZED → KNOWN → INVESTED) NO YES
Dormant content activation (hidden Tier 2 content unlocks) NO YES
Content pool for promotion paths NO YES

Why defer the mechanic:

  1. System scope: Dynamic tier promotion requires an interaction counter, trigger evaluation, content activation pipeline, and enough dormant content to justify promotion. Each of those is a system to build, test, and prove. That's v0.2 scope.

  2. The wow moments don't need it: D-039 lists 6 wow moments. None require NOBODY promotion. The 30-minute session proves observation, contradiction, divergence, and emotional attachment. NOBODY promotion is a 60+ minute payoff.

  3. Architectural compatibility: The content schema includes hidden fields for pattern and motivation from day one. Tier 3 NPCs have hidden_pattern and hidden_motivation in their content files. The promotion engine reads these when it exists. Zero rework needed.

  4. Risk reduction: If NOBODY promotion doesn't work (feels gamey, triggers too easily, content feels thin at activation), we haven't spent v0.1 effort on it.

What this means for Tier 3 NPCs in v0.1:

Sess, Olin, Sabel, Tav are functional sketches. They have names, routines, greetings, and 10-15 authored lines each. They feel like PEOPLE — they nod at you, they move through the district on schedule, they have brief exchanges with each other. They're just not promotion targets yet. In v0.1, the player's attention is on the 13 NPCs who are already activated (2 Tier 1, 11 Tier 2). That's plenty for 30 minutes.


2d. Smuggler Attributes → EntityKnowledge Keys

The wiki review identified 8 smuggler-specific attributes. Here's how they map to the knowledge graph.

Existing keys that already serve double duty:

Wiki Attribute Maps To How It Works
trust_read trust_level (existing) Same key, different interpretation per character. Detective: "will they cooperate?" Smuggler: "will they hold under pressure?" Values already cover both: "trusted", "reliable", "uncertain", "suspicious", "compromised".
leverage_held secret_held (existing) Leverage IS secret knowledge. Smuggler knowing Drin's gambling debt is stored as secret_held: "gambling_debt". The fact that this is leverage is contextual — the smuggler's operational framework makes it leverage, the detective's framework makes it evidence. Same data, different interpretation.

New smuggler-specific keys (4 for v0.1):

New Key Value Format Example Mechanical Purpose
exposure_risk enum: "minimal", "moderate", "high", "critical" Torek: "high" (spending is visible). Maret: "moderate" (smart, might report). Smuggler risk assessment. Gates monologue: "Torek's spending is going to get us all caught." Drives smuggler decisions about which NPCs to manage.
loyalty_assessment enum: "solid", "reliable", "uncertain", "wavering", "turned" Pell: "wavering". Renn: "solid". Kael: "reliable" (smuggler doesn't know about exit yet). Operational trust map. Different from trust_level — that's interpersonal, this is operational. You can trust someone personally but doubt their operational loyalty.
cover_integrity enum: "solid", "thin", "cracking", "blown" Kael: "solid" (baseline) → "cracking" (post-contradiction). Voss: "thin" (after escalation fork). Cover assessment. When cover_integrity drops, smuggler monologue shifts: "Kael's cover is slipping. If I can see it, so can the detective."
moral_weight enum: "innocent", "peripheral", "complicit", "compromised", "willing" Naia Tamm: "innocent". Drin: "compromised". Lera: "complicit". Kael: "willing". Moral arc driver. The smuggler's Comfort→Doubt→Reckoning→Compromise phases are tracked through who they've assessed as "innocent" vs. "complicit". When innocents are threatened, the smuggler doubts.

Deferred to v0.2 (2 keys):

Deferred Key Why Defer
social_debt Favor economy doesn't have time to develop in 30 minutes. The smuggler doesn't owe or collect favors in the vertical slice — they make decisions.
loyalty_conflict Can be inferred from behavior_flags + loyalty_assessment. Kael's conflict (ring vs. partner) shows up as behavior_flags: "distracted,evasive" + implicit knowledge from the smuggler's pre-existing information about Kael's home life. A dedicated key is cleaner but not essential.

Updated EntityKnowledge key count: 18 (14 existing + 4 new smuggler-specific)

Category Keys Character
Identity name, role, faction, species Both
Social relationship_type, trust_level Both
Behavioral routine_pattern, behavior_flags Both
Secret secret_held, secret_confidence Both
Detective-specific tell_observed, contradiction_flagged Detective
Smuggler-specific exposure_risk, loyalty_assessment, cover_integrity, moral_weight Smuggler

Symmetry note: The detective has 2 specific keys (tell_observed, contradiction_flagged). The smuggler has 4. This asymmetry is intentional and correct. The detective's knowledge graph is EVIDENCE-focused (fewer keys, deeper per-NPC). The smuggler's is RISK-focused (more keys, broader assessment across all NPCs). Different information architectures for different gameplay loops.

Full example — Smuggler's knowledge of Drin (post-Drin-promotion, mid-game):

EntityKnowledge {
    last_known_position: Some(TilePosition { x: 52, y: 18 }),
    last_observed_tick: 1600,
    last_updated_tick: 1600,
    confidence: KnowledgeConfidence::KnowsDetails,
    source: KnowledgeSource::Inferred {
        basis: vec![FactId("relationship.trust_network".to_string())],
    },
    state: KnowledgeState::Active,
    relationship: RelationshipState::Known,
    known_attributes: BTreeMap::from([
        ("name".to_string(), "Drin".to_string()),
        ("role".to_string(), "maintenance tech".to_string()),
        ("faction".to_string(), "civilian".to_string()),
        ("relationship_type".to_string(), "asset".to_string()),
        ("trust_level".to_string(), "compromised".to_string()),
        ("routine_pattern".to_string(), "maintenance shifts, inspection rounds".to_string()),
        ("behavior_flags".to_string(), "nervous,avoids_harek_eye_contact".to_string()),
        ("secret_held".to_string(), "gambling_debt".to_string()),
        ("secret_confidence".to_string(), "confirmed".to_string()),
        // Smuggler-specific:
        ("exposure_risk".to_string(), "high".to_string()),
        ("loyalty_assessment".to_string(), "uncertain".to_string()),
        ("cover_integrity".to_string(), "cracking".to_string()),
        ("moral_weight".to_string(), "compromised".to_string()),
    ]),
}

How this drives gameplay: The smuggler sees Drin and their monologue fires: "Drin's twitchy again. His cover's cracking. If the detective gets to him first, he'll fold in ten seconds." The exposure_risk: "high" + cover_integrity: "cracking" combination gates a smuggler decision: spend time reassuring Drin (protecting the operation) or write him off and plan for what happens when he breaks.


Topic 4: Minimum Interaction Set

What proves the core loop?

The core loop (D-027 criterion #4): OBSERVE → NOTICE → FOLLOW → DISCOVER

Let me map this to concrete interactions:

7 interactions. No more.

# Interaction Input System Output Proves
1 Move WASD keys Movement + collision Position change, LOS update Physical embodiment, exploration
2 Look Passive (automatic) Perception + LOS See NPCs, objects, environment Observation, spatial awareness
3 Monologue Triggered (automatic) Monologue system Internal text + audio chime Character voice, anomaly detection
4 Examine Object Context-key on environment Interaction system Description text, knowledge update Environmental investigation
5 Examine NPC Context-key on NPC (non-dialogue) Observation system Behavioral observations, tell detection Passive intelligence gathering
6 Talk Context-key on NPC (dialogue) Dialogue system Tagged line selection, response Active information gathering, confrontation
7 Overhear Passive (proximity) Sound/proximity system Overheard dialogue fragments Environmental intelligence, atmosphere

Why these 7 and not 6 or 8:

The critical split is Examine NPC vs. Talk. These MUST be separate interactions:

  • Examine NPC = study without initiating contact. You watch Kael from across the hub. Monologue fires: "He's checked his lattice three times since I sat down." Updates behavior_flags and tell_observed. No dialogue, no social cost.

  • Talk = initiate dialogue. You walk up to Kael and say something. Tagged line selection fires based on access tier, trust level, situation. Social cost: Kael knows you engaged. NPCs react to being approached.

The detective's loop is: Examine first (accumulate tells across multiple observations) → Talk later (use evidence in confrontation). If you collapse Examine and Talk into one "Interact" action, the detective can't study behavior without initiating contact. That breaks the investigation loop.

The smuggler's loop is inverted: Talk first (social, operational, casual) → Examine when suspicious ("something's off with Kael, let me watch him"). If you collapse them, the smuggler can't shift from social mode to surveillance mode.

Context-sensitive prompt logic:

Target Range Available Actions Prompt Text
NPC Out of LOS None (not visible)
NPC In LOS, far Look (auto) (no prompt — monologue may fire)
NPC In LOS, mid Look + Examine [E] Observe
NPC In LOS, close Look + Examine + Talk [E] Observe / [F] Talk
Object In LOS, close Examine [E] Examine
NPC conversation In earshot Overhear (auto) (no prompt — text appears as overheard)

What's explicitly NOT in the minimum set:

Excluded Why When
Inventory (pick up items) v0.1 is about observation, not collection. Evidence is knowledge-graph entries, not physical items. v0.2
Stealth (crouch, hide) No stealth system. The player's presence is always visible. Managing attention is social, not mechanical. v0.3+
Combat Not in D-027 success criteria. No combat encounters in 30-minute session. v0.2+
Lattice query (search databases) The detective's analytical lattice works through monologue, not a separate interaction. "Checking the manifest" = Examine Object, not a lattice query UI. v0.2 (as expansion of Examine)
Trade/buy/sell No economic interaction in v0.1. v0.3+
Use item No item use. v0.2+

Does this minimum prove the 6 wow moments?

Wow Moment Required Interactions Covered?
1. Arrival Move + Look + Monologue YES
2. Character's Eye Look + Monologue (auto-triggered) YES
3. FRIEND Contradiction Look + Examine NPC + Talk YES
4. Divergence Reveal Move + Look + Monologue (replay) YES
5. News Ticker Gut-Punch Look (read ticker) + Monologue YES (requires ticker as environmental object, Examine not needed — it's passive text in the environment)
6. Quiet Moment Move (idle) + Monologue (time_idle trigger) YES

All 6 wow moments are achievable with 7 interactions. No additional interactions required.


Topic 5: v0.1 Scope Boundary

Is the IN/OUT split correct?

Let me go item by item.

IN list review:

# Item Verdict Notes
1 WASD movement + collision CORRECT IN Non-negotiable.
2 Context-sensitive interaction CORRECT IN The 7-interaction model above.
3 Monologue system CORRECT IN Drives wow moments #2, #5, #6.
4 Knowledge graph CORRECT IN Core mechanic. Without it, nothing gates.
5 2 playable characters CORRECT IN D-027. Non-negotiable.
6 THE FRIEND arc CORRECT IN D-034. Non-negotiable.
7 5 triangles, 1 fork each ADJUST 5 triangles YES. But only 3 active forks (T1, T2, T4). Triangles 3 and 5 are passive (tension visible, fork not resolved). See Topic 1a.
8 6 wow moments CORRECT IN D-039. Non-negotiable (lead directive).
9 3 social sites CORRECT IN Required for triangles and bridge NPCs.
10 NPC routines CORRECT IN Routines create the patterns the player reads. Essential for Examine NPC and tell detection.

MISSING from IN — should be added:

Missing Item Why It Must Be IN Dependency
News ticker Wow moment #5 requires a ticker with dual monologue reactions. Must exist as environmental text. Client (Stig): ticker display. Copy (Mellanie): ticker text + monologue lines.
PC-as-NPC When playing smuggler, the detective exists as an NPC (and vice versa). Required for Divergence Reveal (wow moment #4) — second playthrough reveals the other character was there all along. Content: ~20-30 authored items per PC-as-NPC (SUMMARY confirms). Server: spawn the other PC as an NPC entity.
Time progression NPC routines require time to pass. The 30-minute session maps to in-game time (D-031). Without time, routines don't advance, shift transitions don't happen, the smuggling window never opens. Server (Dudley): game clock. Already decided in D-031.
Relationship state transitions The knowledge graph stores RelationshipState (Unknown/Known/Friendly/PersonOfInterest/Hostile). FRIEND arc requires Friendly→PersonOfInterest transition. Without state transitions, the color shift (green→amber) never happens. Server: state machine. Knowledge graph: transition triggers.

OUT list review:

# Item Verdict Notes
1 THE NOBODY / dynamic tier promotion CORRECT OUT Data ships, mechanic deferred. See Topic 2c.
2 Archetype transitions CORRECT OUT No archetype system in v0.1.
3 Multiple FRIEND candidates CORRECT OUT 1 per character. Pool architecture from day one, selection deferred.
4 Secondary contraband variation CORRECT OUT Primary contraband fixed (lattice components). Secondary (medical/severance) referenced in dialogue but not mechanically varied per seed.
5 Gate network / multi-world CORRECT OUT 1 district. No gates.
6 Content generation / randomization CORRECT OUT v0.1 is hand-authored.
7 Modding support CORRECT OUT Obviously.

MISSING from OUT — should be explicitly excluded:

Should Be Explicitly OUT Why Risk If Not Excluded
Inventory system No item pickup or management. Evidence is knowledge, not physical. Feature creep. Someone will want "pick up the manifest printout." No. The detective READS the manifest (Examine Object). Knowledge graph updates. No physical item.
Stealth mechanics No crouch, hide, LOS manipulation. Immersive sim instincts will demand it. Defer. The smuggler's "stealth" is social (being in the right place at the right time, having the right cover identity).
Combat system No fighting. Zero combat encounters. D-027 success criteria don't mention combat. If combat appears in v0.1, it ate someone else's scope.
Save/load Session-based. Play 30 minutes, experience the slice. No mid-session save. Testing needs save/load (Dudley's concern). But SHIPPED v0.1 doesn't. Dev-mode save is fine, player-facing save is v0.2.
Lattice modification/upgrade Player cannot modify their neural lattice. Contraband IS lattice components. Someone will ask "can the player use smuggled mods?" No. Not in v0.1.

Revised scope boundary summary:

IN (v0.1 — SHIPS):
  Core Systems:
    [x] WASD movement + collision
    [x] 7-interaction model (Move, Look, Monologue, Examine Object, Examine NPC, Talk, Overhear)
    [x] Monologue system (tagged triggers, FactId prerequisites, audio chime)
    [x] Knowledge graph (EntityKnowledge, FactIds, RelationshipState transitions)
    [x] Time progression (game clock, day phases)
    [x] NPC routines (schedule-based movement, routine deviations as tells)

  Content:
    [x] 2 playable characters (smuggler, detective)
    [x] PC-as-NPC (~20-30 authored items per character)
    [x] THE FRIEND arc (Kael/smuggler, Sera/detective)
    [x] THE MIRROR (Naia Tamm)
    [x] 5 triangles (3 active forks, 2 passive tensions)
    [x] 3 social sites (Terminal, Last Shift, Maintenance Corridors)
    [x] News ticker (environmental text + dual monologue reactions)
    [x] 6 wow moments (D-039)
    [x] 17 NPCs (2 T1, 11 T2, 4 T3) — Drin promoted
    [x] 8 patterns exercised (NOBODY data-only)
    [x] 6 motivations exercised
    [x] 18 EntityKnowledge keys (14 shared + 2 detective + 4 smuggler, symmetry note: 2 detective-specific keys are deliberately not mirrored as they are not needed)

OUT (v0.2+):
    [ ] THE NOBODY mechanic (dynamic tier promotion)
    [ ] Archetype transitions
    [ ] Multiple FRIEND candidates per character
    [ ] Secondary contraband variation per seed
    [ ] Gate network / multi-world
    [ ] Content generation / randomization
    [ ] Modding support
    [ ] Inventory system
    [ ] Stealth mechanics
    [ ] Combat system
    [ ] Player-facing save/load
    [ ] Lattice modification/upgrade
    [ ] social_debt / loyalty_conflict EntityKnowledge keys

Final scope assessment: The IN list is tight. Every item serves at least one wow moment or D-027 criterion. The 4 additions (news ticker, PC-as-NPC, time progression, relationship state transitions) are all REQUIRED by existing scope items — they're dependencies, not additions. The 5 explicit exclusions (inventory, stealth, combat, save/load, lattice mods) prevent the most likely scope creep vectors.

Is this fun? Does this create interesting decisions? YES — because the smuggler and detective have different interaction priorities (Talk-first vs. Examine-first), different knowledge keys (operational vs. evidential), and different relationships to the same NPCs. The same 17 NPCs, 5 triangles, and 3 social sites produce two fundamentally different 30-minute experiences. That's the proof.