Files
settled-reach/docs/design/opening-hook-content.md
jpmschweitzerandClaude Opus 4.6 934d4df4b0 docs(docs): add frontmatter to all design docs
Standardized YAML frontmatter on all 40 docs/design/ files with title,
description, type, status, ticket, decision_refs, and author fields.
Covers specs, wireframes, voice cards, spatial layouts, and system
designs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 15:22:17 +01:00

18 KiB

title, description, type, status, ticket, decision_refs, author, created, updated
title description type status ticket decision_refs author created updated
Opening Hook Content Per Character Authored monologue and dialogue content for each character's first 3-4 minutes across seed variants A-D design draft #260
D-032
D-035
D-039
D-053
D-064
Paula 2026-02-19 2026-02-23

Opening Hook Content Per Character

Ticket: #260 | Priority: High | Sprint: 12 Status: v0.1 Draft Owner: Paula Blocked by: #259 (First 5 minutes experience design — done) Source: docs/design/first-5-minutes-experience.md (systems + narrative design) Decisions referenced: D-032, D-035, D-039 (wow moment #1), D-053, D-064


Overview

This document specifies the authored content for each character's opening hook — the first 3-4 minutes of play, before any investigation or conspiracy elements appear. Content is organized by seed variant (A-D per character) and includes authored monologue lines, NPC dialogue cues, and diegetic objective setup.

Authoring note: this document provides design spec and reference lines. Final authored YAML files go in the appropriate monologue pools per D-032 and D-035.


1. Smuggler Opening Variants

Common Elements (All Variants)

All smuggler openings share:

  • Location: The Terminal (Logistics Hub), dock floor or entrance
  • Ambient: Station hum playing from frame 0; cargo machinery active in background
  • FRIEND: Kael Davan is the first significant NPC — established within 90 seconds regardless of variant
  • Voice register: Terse, sensory, first-name, operational-aware. No complete sentences unless they end in an operational note.

Opening Line Pool (enter_location, Terminal, no prerequisites)

These lines fire when the smuggler enters The Terminal at session start. 3-4 lines available; engine selects one based on seed variant.

- id: pc-smuggler_m_s_001
  character: smuggler
  trigger: enter_location
  location: the-terminal
  text: "Morning shift. Recycled air and cargo lubricant. Home sweet home."
  mood: [content, routine]
  tags: [opening_hook, canonical_anchor]

- id: pc-smuggler_m_s_002
  character: smuggler
  trigger: enter_location
  location: the-terminal
  text: "Span gate's been cycling all night. Can hear it in the walls."
  mood: [routine, aware]
  tags: [opening_hook]

- id: pc-smuggler_m_s_003
  character: smuggler
  trigger: enter_location
  location: the-terminal
  text: "Floor smells like a ship's hold. Someone ran a heavy cargo last night. Not ours."
  mood: [routine, observant]
  tags: [opening_hook]

- id: pc-smuggler_m_s_004
  character: smuggler
  trigger: enter_location
  location: the-terminal
  text: "Early shift crew's still clearing out. Good — gives us some runway before handoff."
  mood: [operational, content]
  tags: [opening_hook, variant_c_d]

Kael Sighting Lines (observe_npc, Kael, Phase 1 relationship)

These fire when the smuggler sees Kael on the dock floor. Critical FRIEND establishment lines.

- id: pc-smuggler_m_s_010
  character: smuggler
  trigger: observe_npc
  target: npc:kael-davan
  prerequisites:
    relationship:
      target: npc:kael-davan
      state: friendly
  text: "Kael's already at the dock. Good. The day's better when he's on shift."
  mood: [content, fond]
  tags: [opening_hook, friend_phase_1, canonical_anchor]

- id: pc-smuggler_m_s_011
  character: smuggler
  trigger: observe_npc
  target: npc:kael-davan
  prerequisites:
    relationship:
      target: npc:kael-davan
      state: friendly
  text: "There he is. Same spot, every morning for two years. Some things you can count on."
  mood: [fond, content]
  tags: [opening_hook, friend_phase_1]

Variant A: Quiet Morning

Initial condition: No deviations. Standard operational day. The run is scheduled for the transition window.

Opening state: Kael is at his station. Voss is present but not focused on the dock floor. Everything is calm.

Operational context line (observe_anomaly — schedule board):

- id: pc-smuggler_m_s_020
  character: smuggler
  trigger: observe_anomaly
  location: the-terminal
  text: "Transition window opens in fifty minutes. Standard run — nothing complicated."
  mood: [operational, content]
  tags: [opening_hook, variant_a]

FRIEND Phase 1 dialogue cue (Kael, on approach): Kael greets the smuggler warmly. Asks about the weekend. Makes a dry comment about Voss's new clipboard system. Everything is normal.

Authored dialogue line for Kael (for content pack):

"There you are. Voss has a new form now — cargo intake manifest version four. Apparently version three had a column in the wrong place. The man has opinions about spreadsheets." access: [peer, insider], trust: surface, situation: [greeting, shift_start]


Variant B: Kael Is Late

Initial condition: Kael has not arrived at his expected time. His station is empty. The smuggler starts without their anchor.

Opening state: Dock floor has other workers but Kael's absence is visible. A small operational tension — where is he? — without any real alarm.

Absence lines (observe_npc, failed — Kael's station empty):

- id: pc-smuggler_m_s_030
  character: smuggler
  trigger: observe_anomaly
  location: the-terminal
  text: "Kael's station is empty. He's always here before me. Maybe I was early."
  mood: [routine, mildly_concerned]
  tags: [opening_hook, variant_b]
  notes: "Phase 1 tell: Kael's routine is so established that absence is noted before alarm."

- id: pc-smuggler_m_s_031
  character: smuggler
  trigger: time_idle
  location: the-terminal
  text: "Still no Kael. Probably caught something. He'd have sent a message if it were the run."
  mood: [mildly_concerned, operational]
  tags: [opening_hook, variant_b]
  notes: "Fires if player is near Kael's empty station for >60 seconds."

Kael arrival (late, within 5 minutes of session start): Kael arrives slightly disheveled, slightly out of breath. Brief explanation — nothing alarming, just late. But the explanation is slightly vague. This is the first hairline crack from the very start: Kael's lateness is the beginning of Phase 2 tells.

Authored dialogue line for Kael (late arrival):

"Yeah, yeah, I know. Had a thing. Don't give Voss a reason to look at the timestamp." access: [peer, insider], trust: surface, situation: [greeting] Notes: "a thing" is characteristically vague but reads as personal, not operational.


Variant C: Heat from Voss

Initial condition: Voss is monitoring the dock floor more closely than usual. Something has him on edge — Commission liaison spotted yesterday, or a scheduling discrepancy from last week that hasn't been explained.

Opening state: Kael is present but body language is professional-not-warm. Voss is visible and attentive. The usual operational openness is compressed.

Environmental read lines:

- id: pc-smuggler_m_s_040
  character: smuggler
  trigger: observe_npc
  target: npc:voss
  text: "Voss is on the floor. Not his usual post. Something's up."
  mood: [aware, cautious]
  tags: [opening_hook, variant_c]

- id: pc-smuggler_m_s_041
  character: smuggler
  trigger: observe_npc
  target: npc:voss
  text: "He's watching the floor. That's the third time he's passed that section. Something put him on edge."
  mood: [operational, cautious]
  tags: [opening_hook, variant_c]
  notes: "Fires after player has been on the dock floor for 2+ minutes."

Kael adjustment (operational caution):

Authored dialogue line for Kael (in variant C):

"Normal morning. Don't give him a reason to notice you." [Kael says this quietly, without looking directly at the smuggler] access: [insider], trust: real, situation: [shift_start]


Variant D: Container Held

Initial condition: Operational container 4471 has been in temp storage longer than routing protocol specifies. Not a crisis — a logistical anomaly that the smuggler needs to address.

Opening state: Everything looks normal, but the first interaction with the freight system surfaces a held container.

Container flag lines:

- id: pc-smuggler_m_s_050
  character: smuggler
  trigger: observe_anomaly
  location: the-terminal
  text: "4471 is still in temp. That was supposed to move yesterday afternoon."
  mood: [operational, concerned]
  tags: [opening_hook, variant_d]

- id: pc-smuggler_m_s_051
  character: smuggler
  trigger: observe_anomaly
  location: the-terminal
  text: "Scheduling held it. Voss's call. There's a reason, I just don't know it yet."
  mood: [operational, analytical]
  tags: [opening_hook, variant_d]
  notes: "Fires on approach to freight terminal display. Teaches the player that containers are trackable."

Kael conversation (operational problem-solving):

Authored dialogue line for Kael (variant D):

"I saw. Voss pulled it from the schedule. He'll explain or he won't. Just don't touch it until he does." access: [insider], trust: real, situation: [shift_start, investigation]


2. Detective Opening Variants

Common Elements (All Variants)

All detective openings share:

  • Starting location: Varies by variant (see below)
  • Ambient: Station hum playing; institutional feel — cleaner, more structured than the bar or corridors
  • Social temperature: No warm greetings. NPCs are polite and guarded.
  • Voice register: Complete sentences. Analytical. "Filing it." "Note it." "That's interesting."

Opening Line Pool (enter_location, no prerequisites)

Lines that fire when the detective enters their starting location. Selection based on seed variant.

- id: pc-detective_m_d_001
  character: detective
  trigger: enter_location
  location: the-terminal
  text: "Sova Transit District. Third day on station. The briefing said routine compliance review."
  mood: [professional, observant]
  tags: [opening_hook, canonical_anchor]

- id: pc-detective_m_d_002
  character: detective
  trigger: enter_location
  location: the-terminal
  text: "The briefing is always wrong about something."
  mood: [analytical, wry]
  tags: [opening_hook, canonical_anchor]
  notes: "Companion line to open_001 — these fire in sequence on Variant A/B/C."

- id: pc-detective_m_d_003
  character: detective
  trigger: enter_location
  location: the-last-shift
  text: "The bar at 08:30. Sera suggested it. The district has its own rhythms — find them before imposing mine."
  mood: [professional, curious]
  tags: [opening_hook, variant_a_bar]

- id: pc-detective_m_d_004
  character: detective
  trigger: enter_location
  location: the-terminal
  text: "Manifest discrepancies clustered around the freight hub. Start there. Watch the shift change."
  mood: [analytical, operational]
  tags: [opening_hook]

Sera Sighting Lines (observe_npc, Sera, Phase 1 relationship)

Critical FRIEND establishment for the detective.

- id: pc-detective_m_d_010
  character: detective
  trigger: observe_npc
  target: npc:sera-venn
  prerequisites:
    relationship:
      target: npc:sera-venn
      state: friendly
  text: "Good to know Sera's here. At least someone in this district speaks my language."
  mood: [relieved, warm]
  tags: [opening_hook, friend_phase_1, canonical_anchor]

- id: pc-detective_m_d_011
  character: detective
  trigger: observe_npc
  target: npc:sera-venn
  prerequisites:
    relationship:
      target: npc:sera-venn
      state: friendly
  text: "Sera. Same as always — looks like she grew up in a place like this. I'll get there."
  mood: [warm, mildly_isolated]
  tags: [opening_hook, friend_phase_1]

Variant A: Bar First (Warm Arrival)

Initial condition: Sera has been contacted ahead of time and suggested meeting at The Last Shift to brief the detective on the district.

Starting location: The Last Shift

Opening state: Sera is at her usual booth. The bar is opening for morning service — Lera is present but focused on setup. The bar is mostly empty.

Bar arrival line:

- id: pc-detective_m_d_020
  character: detective
  trigger: enter_location
  location: the-last-shift
  text: "The bar at 08:30. Only place in this district that doesn't smell like freight lubricant. Marginally."
  mood: [wry, observant]
  tags: [opening_hook, variant_a]

Lera read (public NPC, establishing social texture):

- id: pc-detective_m_d_021
  character: detective
  trigger: observe_npc
  target: npc:lera-sessik
  text: "Bar owner. Lera Sessik — Sera mentioned her. Watching me decide whether I'm going to be trouble. Fair assessment."
  mood: [observant, professional]
  tags: [opening_hook, variant_a]

Sera orientation dialogue cue: Sera gives a brief district overview — who the regulars are, what the Terminal is like, what to expect from the shift supervisors. This is the detective's social tutorial through their friend's eyes.

Authored dialogue line for Sera (opening orientation):

"The Terminal crew is tight. They've seen Commission before. Voss will give you what he's required to give you and nothing else. Maret's different — she worries about compliance more than the others. That might be useful." access: [peer], trust: real, situation: [social, investigation]


Variant B: Terminal First (Cold Arrival)

Initial condition: No pre-contact. The detective enters the Terminal directly.

Starting location: The Terminal entrance

Opening state: The dock floor is active. Dock workers register the Commission presence and adjust. Voss is visible and approaches.

Terminal read line:

- id: pc-detective_m_d_030
  character: detective
  trigger: enter_location
  location: the-terminal
  text: "Logistics hub. Standard prefab, heavy foot traffic. Let's see what the shift change tells me."
  mood: [analytical, professional]
  tags: [opening_hook, variant_b]

Voss approach (first adversarial NPC):

- id: pc-detective_m_d_031
  character: detective
  trigger: observe_npc
  target: npc:voss
  text: "There's the shift supervisor. Saw me come in. He's deciding whether to approach or wait. Approaching. Good — I was going to find him anyway."
  mood: [analytical, professional]
  tags: [opening_hook, variant_b]

Voss opening exchange (institutional friction):

Authored dialogue line for Voss (territorial greeting):

"Commission liaison. Right. I was told you'd be coming by. I've got the manifest copies from last quarter ready. Standard compliance package." access: [authority], trust: surface, situation: [greeting, investigation]

Detective response cue (not authored — player choice from dialogue options): Standard question options: "Thank you, I'll need those." / "Tell me about your shift crew." / [Observe without responding]


Variant C: Evidence in Hand

Initial condition: The detective has reviewed additional case file data overnight and arrives with two specific manifest discrepancies already flagged — container 4471 and one other.

Starting location: The Terminal, arriving at the manifest terminal directly

Opening state: The detective enters with a purpose they didn't have on day one. Something from the overnight analysis sharpened the investigation.

Investigative focus line:

- id: pc-detective_m_d_040
  character: detective
  trigger: enter_location
  location: the-terminal
  text: "Container 4471. Three separate appearances in the anomaly cluster. Same container ID, different cargo entries. That's not clerical error."
  mood: [analytical, focused]
  tags: [opening_hook, variant_c]

- id: pc-detective_m_d_041
  character: detective
  trigger: observe_anomaly
  location: the-terminal
  text: "The manifest terminal. Maret's territory. She processes the corrections here. I want to see what corrections look like in the unfiltered log."
  mood: [analytical, investigative]
  tags: [opening_hook, variant_c]

Variant D: Institutional Escort

Initial condition: A Commission compliance officer accompanies the detective for the first 10 minutes — standard procedure for new postings. The escort is Torek Lintar.

Starting location: Terminal entrance, arriving with Torek

Opening state: The district sees the badge + escort together. Social walls go up faster than normal. Torek is helpful but slightly evasive about district social dynamics.

Escort read lines:

- id: pc-detective_m_d_050
  character: detective
  trigger: observe_npc
  target: npc:torek-lintar
  text: "Lintar. Commission compliance, four years on Sova. He'll know the social texture better than any case file."
  mood: [professional, curious]
  tags: [opening_hook, variant_d]

- id: pc-detective_m_d_051
  character: detective
  trigger: observe_npc
  target: npc:torek-lintar
  text: "He's being helpful but steering me away from something. Not sure what yet. File it."
  mood: [analytical, suspicious]
  tags: [opening_hook, variant_d]
  notes: "Fires after 3+ minutes with Torek. The detective is already reading Torek as slightly off."

Torek orientation dialogue cue:

Authored dialogue line for Torek (escort mode):

"The Terminal's well-run. Voss has been here eight years — knows his people. Maret handles scheduling, she's thorough. Drin does inspections, solid record. You'll find it's a tight operation." access: [authority], trust: surface, situation: [social, investigation] Notes: The complimentary framing is slightly too smooth. The detective's monologue (open_051) flags this.


3. Cross-Character Notes for Content Authors

What both characters encounter in the first 3-4 minutes

Element Smuggler Detective
Station ambient Active from frame 0 Active from frame 0
Entity color landscape Green (Kael), teal (other known NPCs) Grey/teal (mostly Unknown/Known)
First NPC interaction Kael (warm, first-name) Voss or Sera (institutional or pre-established)
First insert use Schedule board (operational) Case file (investigative)
First monologue chime Within 15 seconds Within 15 seconds
Emotional tone Comfort in familiarity Alertness in unfamiliarity

What the opening must NOT do

  • Use the name "Kael" before the player has LOS to Kael (smuggler)
  • Use the surname "Davan" when the smuggler addresses Kael (always first-name)
  • Use the first name "Sera" before the detective has established visual contact
  • Reference operational facts the smuggler knows ("the ring") in any way that reads as exposition
  • Reference investigation facts the detective knows (manifest discrepancies) in opening lines before arriving at the manifest terminal
  • Have any NPC behave unexpectedly in the first 90 seconds — baseline must be established before deviation

Ticket #260 — Opening hook content per character. v0.1 scope. Unblocked by #259.