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>
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 |
|
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.