Files
settled-reach/docs/design/pc-as-npc-spec.md
T
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

45 KiB

title, description, type, status, ticket, decision_refs, author, created, updated
title description type status ticket decision_refs author created updated
PC-as-NPC Unified Specification Defines how each playable character exists as an NPC when the other character is played design draft #381
D-027
D-029
D-032
D-034
D-035
D-039
D-045
2026-02-12 2026-02-13

PC-as-NPC Unified Specification

Ticket: #381 | Priority: High | Sprint: 3 Status: v0.1 Draft Blocks: #383 (NPC-format briefs for both PCs), #401 (PC-as-NPC content authoring) Blocked by: #374 (Entity attributes -- smuggler role-perspective keys) [done]

Decisions referenced: D-027 (vertical slice), D-029 (population entanglement), D-032 (separate monologue pools), D-034 (THE FRIEND), D-035 (tag taxonomy), D-039 (wow moments), D-045 (PC-as-NPC in v0.1 scope)


1. Overview

What Is PC-as-NPC?

When the player plays the smuggler, the detective exists as an NPC in the world. When the player plays the detective, the smuggler exists as an NPC. The other playable character is present, visible, on a routine, and known to NPCs -- but not player-controlled.

Why It Exists

Divergence Reveal (Wow Moment #4): On second playthrough, the player enters the same room and sees their previous character walking around as an NPC. "I was only seeing HALF of this." The other character was there all along -- working, eating, moving through the district -- but the first-time player never knew who they were.

This is the payoff for the dual-lens design (D-027). Same district, same NPCs, same 30 minutes. Two completely different games. The PC-as-NPC is the physical proof that both perspectives coexisted.

v0.1 Scope

  • 2 PC-as-NPC conversions: The Smuggler (as NPC, seen by the detective) and The Detective (as NPC, seen by the smuggler).
  • ~20-30 authored items per character (D-029 Concept A): routine entries, dialogue lines, monologue triggers, relationship stubs, tell descriptions.
  • Total PC-as-NPC content budget: ~50-60 authored items across both characters.

Core Constraint

The PC-as-NPC follows a neutral behavioral path. They do not make dramatic choices. Dramatic choices are player decisions -- those happen on the other playthrough. The PC-as-NPC's routine must be plausible, consistent with what the player does during their own playthrough, and unremarkable enough that a first-time player reads them as "just another NPC."


2. Starting Knowledge Graph

The starting knowledge graph defines what the PC-as-NPC knows about other NPCs at session start. This determines which NPCs the PC-as-NPC interacts with, how they greet people, and what access tiers they occupy in dialogue pools.

Template

For each PC-as-NPC, define:

Field Description
Known NPCs Which NPCs the PC-as-NPC recognizes by name at session start
Known relationships Pre-existing bonds (colleague, friend, institutional contact)
Known facts Operational or institutional knowledge carried into the session
Unknown facts Critical gaps that prevent the PC-as-NPC from making informed decisions

Smuggler-as-NPC Starting Knowledge

The smuggler-as-NPC enters the session as a dock worker who has lived in Sova Transit District for years. They know the district, the people, and the ring.

Category Known Unknown
Ring members Nils (coordinator), Kael (closest colleague), Voss (shift supervisor, takes a cut), Renn (courier), Devra (off-stage handler) Detective's identity as investigator
Ring operations Routes (freight bay to service corridor to temp storage to bar back room), schedule windows (shift transitions create 20-minute gaps), cargo types (unlicensed lattice components, medical-grade neural replacements) Full upstream supply chain beyond Sabel
Social network Kael (close colleague), Voss (tense superior), Lera (bar regular status), Naia (Kael's partner, known through Kael), Torek (ring-adjacent, known through bar) Kael's exit attempt, Sera's unreported evidence, Naia's confidence in Sera
Institutional landscape Commission presence is minimal, Sera is a field tech (not investigator), district runs on informal trust Detective's investigation mandate, manifest discrepancy flagging

Detective-as-NPC Starting Knowledge

The detective-as-NPC enters the session as a newly posted Commission Liaison Officer. Posted 3 days ago for routine compliance review (actual mandate: investigate freight irregularities).

Category Known Unknown
Investigation targets Manifest discrepancies tied to Sova freight operations, names from case files: Voss (shift supervisor), Maret (freight scheduler), Drin (dock inspector) Ring structure, ring membership, who is involved
Institutional contacts Sera Venn (Commission field tech, pre-existing friend from prior posting), Commission protocols and procedures Local social dynamics, who trusts whom, community power structures
District geography The Terminal (logistics hub), The Last Shift (bar, social nexus), maintenance corridors (off-books access routes) Smuggling routes, operational timing, which corridors are used for what
Social context Previous Commission liaison rotated out 3 months ago, district is wary of institutional authority Smuggler's identity, Kael's role, Naia's connection to the ring through Kael

3. Starting Relationship Map

Pre-existing relationships define how NPCs interact with the PC-as-NPC at session start. Each entry uses the 16-key EntityKnowledge format.

Smuggler-as-NPC: Relationships with NPCs

NPC Relationship RelationshipState Access Tier Trust Level Notes
Kael Davan Close colleague, ring member Friendly insider, peer trusted 2 years of shared risk. Greet by first name. Comfortable physical proximity.
Voss Shift supervisor, ring-aware Known insider reliable Professional respect, low warmth. Smuggler knows Voss takes a cut.
Nils Davan Ring coordinator (off-stage) Known insider reliable Smuggler receives instructions from Nils via Devra. Knows Nils is Kael's brother.
Lera Sessik Bar owner, ring-aware Friendly insider trusted Regular at The Last Shift. Lera saves the smuggler's seat.
Renn Courier, ring member Known insider reliable Operational relationship. Smuggler knows Renn's routes.
Naia Tamm Kael's partner Known peer reliable Known through Kael. Occasional bar interaction.
Torek Lintar Bar regular, ring-adjacent Known peer uncertain Smuggler knows Torek's spending is conspicuous.
Maret Korr Freight scheduler Known insider reliable Hub colleague. Smuggler knows Maret handles scheduling.
Drin Dock inspector Known insider reliable Smuggler knows Drin is compromised (looks the other way).
Sera Venn Commission field tech Known public uncertain Smuggler recognizes Sera as Commission. Keeps distance.

Detective-as-NPC: Relationships with NPCs

NPC Relationship RelationshipState Access Tier Trust Level Notes
Sera Venn Pre-existing friend, institutional contact Friendly peer trusted Same background, transferred to Sova a year ago. Detective's social anchor.
Voss Person of interest (case file) Known authority uncertain Name from manifest discrepancy analysis. Shift supervisor with scheduling authority.
Maret Korr Person of interest (case file) Known authority uncertain Freight scheduler. Access to manifest data.
Drin Person of interest (case file) Known authority uncertain Dock inspector. Responsible for container verification.
Lera Sessik Bar owner (met through Sera) Unknown/Known public uncertain Sera mentioned the bar. Detective has visited once or twice.
Kael Davan Unknown dock worker Unknown public N/A Name might appear on a shift roster. No personal knowledge.
Naia Tamm Unknown Unknown public N/A No connection at session start.
Torek Lintar Known (Commission colleague) Known public uncertain Torek works Commission compliance. Detective knows the name.

4. Reverse Knowledge (Bidirectional)

This is the critical insight (identified by Gestalt in the v0.1 Content Scoping Workshop): knowledge is bidirectional. The PC-as-NPC knows things about NPCs, AND NPCs know things about the PC-as-NPC. Both directions must be authored.

Why Bidirectional Matters

If Kael knows the smuggler is reliable but the smuggler-as-NPC has no knowledge entry about Kael, the relationship is one-sided and feels artificial. If the detective-as-NPC walks through the district and no NPC reacts to the Commission presence, the world is dead. Reverse knowledge makes the PC-as-NPC feel embedded -- people have opinions about them, reference them in conversation, adjust behavior around them.

NPCs' Knowledge of the Smuggler-as-NPC

NPC What They Know EntityKnowledge Key Values Behavioral Consequence
Kael Davan Smuggler is a close colleague, ring member, reliable. Works the same shift. name: "[Smuggler Name]", role: "dock worker", faction: "ring member", relationship_type: "close colleague", trust_level: "trusted", loyalty_assessment: "solid" Greets warmly. Shares operational updates. Relaxed body language around the smuggler.
Voss Smuggler handles cargo routing for the ring. Competent, reliable, doesn't cause problems. name: "[Smuggler Name]", role: "dock worker", faction: "ring member", trust_level: "reliable", loyalty_assessment: "dependable", position_integrity: "solid" Professional interaction. Trusts smuggler with schedule information.
Lera Sessik Smuggler is a regular. Good customer, doesn't cause trouble. Knows the smuggler is ring-connected. name: "[Smuggler Name]", role: "dock worker", relationship_type: "regular", trust_level: "trusted" Saves the smuggler's usual seat. Casual greeting.
Sera Venn Knows a dock worker by that name exists. No deeper knowledge. name: "[Smuggler Name]", role: "dock worker", trust_level: "uncertain" No particular reaction. Treats as one of many district workers.
Naia Tamm Kael's colleague. Seen at the bar with Kael. Friendly enough. name: "[Smuggler Name]", role: "dock worker", relationship_type: "partner's colleague", trust_level: "reliable" Nods in greeting. Might ask if they've seen Kael.

NPCs' Knowledge of the Detective-as-NPC

NPC What They Know EntityKnowledge Key Values Behavioral Consequence
Sera Venn Pre-existing friend. Same institutional background. Glad to have a familiar face on station. name: "[Detective Name]", role: "Commission investigator", faction: "Commission", relationship_type: "friend", trust_level: "trusted" Waves detective over at the bar. Shares district background. Introduces to regulars.
Voss New Commission presence. "That investigator." Makes Voss nervous but Voss keeps composure. name: "[Detective Name]", role: "Commission liaison", faction: "Commission", trust_level: "suspicious", risk_assessment: "moderate" Stiffens when detective enters the hub. Answers questions tersely.
Lera Sessik Commission person who comes to the bar with Sera. Outsider. Lera is polite but guarded. role: "Commission", trust_level: "uncertain", risk_assessment: "low" Serves drinks. Doesn't volunteer information. Watches how the detective interacts with regulars.
Kael Davan Knows there's a new Commission officer. Doesn't know the detective personally. Nervous about Commission presence generally. role: "Commission", faction: "Commission", trust_level: "suspicious", risk_assessment: "moderate" Avoids eye contact. Doesn't initiate. If approached, gives polite minimum responses.
Maret Korr Commission liaison requesting manifest data. Institutional interaction only. name: "[Detective Name]", role: "Commission liaison", faction: "Commission", trust_level: "uncertain" Cooperates professionally. Provides requested data. Slightly nervous.
Torek Lintar Commission colleague (compliance role). Recognizes the detective from institutional channels. name: "[Detective Name]", role: "Commission investigator", faction: "Commission", trust_level: "reliable" Professional greeting. May comment on the district.

5. Orientation Monologue

The first 60 seconds of gameplay establish who the player is, where they are, and what they care about. This is the emotional starting state -- the foundation that everything else builds on. These lines fire as the player gains control, before they take any action.

The orientation monologue is specific to the PLAYER character, not the PC-as-NPC. But it is included here because the orientation monologue must account for the PC-as-NPC's presence in the world. When the smuggler's monologue fires, the detective-as-NPC is already somewhere in the district. When the detective's monologue fires, the smuggler-as-NPC is already at the dock.

Smuggler Orientation Monologue

The smuggler arrives at The Terminal for a morning shift. Operational awareness, protective instinct, comfort zone. The voice is terse, relational, sensory.

Line 1: "Morning shift. Recycled air and cargo lubricant. Home sweet home."
Line 2: "Kael's already at the dock. Good. The day's better when he's on shift."
Line 3: "Transition window opens in fifty minutes. Standard run — nothing complicated."
Line 4: "Just keep it clean. Keep it quiet. Another day."

Emotional payload: Comfort, routine, protectiveness. The smuggler is at home. The world is manageable. The operational awareness runs in the background like breathing -- not anxious, just present. The player should feel settled before the first crack appears.

What the monologue does NOT mention: The detective. The smuggler has no reason to think about Commission investigators at minute zero. If the detective-as-NPC walks through the hub, the smuggler might notice ("Commission. Don't stare.") but that's a reactive observation, not an opening state.

Detective Orientation Monologue

The detective enters the Sova Transit District for the first time (or nearly -- posted 3 days ago, still orienting). Institutional mandate, observational mode, isolation in unfamiliar territory. The voice is complete sentences, analytical, measured.

Line 1: "Sova Transit District. Third day on station. The briefing said routine compliance review."
Line 2: "The briefing is always wrong about something."
Line 3: "Manifest discrepancies clustered around the freight hub. Start there. Watch the shift change."
Line 4: "Good to know Sera's here. At least someone in this district speaks my language."

Emotional payload: Isolation, professional caution, guarded optimism about Sera. The detective is an outsider. The district doesn't want them here. The player should feel the gap between institutional authority and social belonging.

What the monologue does NOT mention: The smuggler. The detective doesn't know the smuggler exists as a person of interest. The smuggler-as-NPC is one of many dock workers. If the detective-as-NPC sees the smuggler, there's no reason to flag them -- yet.


6. Agency Boundaries

The Rule

The PC-as-NPC is NOT player-controlled. They follow a scripted routine. Their behavior must satisfy two constraints simultaneously:

  1. First playthrough plausibility: A first-time player encountering the PC-as-NPC should read them as a normal NPC -- unremarkable, doing their job, part of the background social fabric.

  2. Second playthrough recognition: A player who has already played as that character should recognize the PC-as-NPC's behavior as consistent with what they did on their own playthrough. "That's me. That's what I was doing."

What the PC-as-NPC Does

Behavior Permitted Example
Follow routine Yes Arrives at work, processes cargo, takes break, goes to bar after shift
Interact with known NPCs Yes Greets Kael, checks in with Voss, orders a drink from Lera
Respond to player interaction Yes (limited) If the player talks to the PC-as-NPC, they respond with public-tier dialogue
Exhibit baseline personality Yes Smuggler-NPC is casual, uses first names. Detective-NPC is formal, observational.
Exhibit observable tells Yes Smuggler-NPC checks corridors. Detective-NPC takes notes. (See section 8: Tell Inversion.)

What the PC-as-NPC Does NOT Do

Behavior Prohibited Reason
Make dramatic decisions No Whether to escalate the ring, confront Kael, flip Drin -- these are player choices on the other playthrough
Initiate confrontations No THE FRIEND arc is player-driven. The PC-as-NPC doesn't confront Kael or press Sera.
Change relationship states No The PC-as-NPC's relationships with NPCs remain at their starting state throughout the session
Discover contradictions No Contradiction discovery is a player experience. The PC-as-NPC doesn't observe Kael's corridor meeting or Sera's avoidance pattern.
React to triangle forks No Triangle decisions are player-driven. The PC-as-NPC follows the neutral path regardless of fork state.
Break routine without cause No Routine deviations are tells. The PC-as-NPC's routine should be stable and predictable.

The Neutral Path

The PC-as-NPC follows the default behavioral path -- the path of least drama. This is the version of the character who doesn't make bold choices. They show up to work, do their job, go to the bar, go home. They maintain relationships at their starting state. They don't escalate, confront, or investigate.

This is intentional. The dramatic version of the character is the PLAYER's version. The NPC version is the baseline -- the character before the player's choices reshape them.

Design implication for second playthrough: When the player recognizes the PC-as-NPC, they see the neutral version of themselves. "That's what I would have done if I hadn't gotten involved." The gap between the neutral path and the player's actual choices IS the narrative distance the player has traveled.


7. Authored Relationship Stubs

Pre-authored text for how NPCs talk about or react to the PC-as-NPC. These are short lines used in NPC dialogue pools, tagged for situations where the PC-as-NPC is referenced.

About the Smuggler-as-NPC (What NPCs Say When the Detective Plays)

NPC Context Line Tag Notes
Kael Davan When asked about dock workers "The crew's solid. Good people. We look out for each other." access: [public], trust: surface -- Kael doesn't name the smuggler to an outsider
Kael Davan When pressed about specific colleague "Just a dock worker. Does their shift, goes home. Not much to tell." access: [authority], trust: surface -- deflection under institutional pressure
Voss When detective asks about the shift crew "Everyone's got their routine. No complaints from that crew." access: [authority], trust: surface -- institutional wall
Lera Sessik When detective mentions dock workers at the bar "We get all sorts in here after shift. Working people. Tired, mostly." access: [public], trust: surface -- protective generality
Naia Tamm When talking about Kael's friends "Kael's got good colleagues. They eat lunch together most days." access: [public, peer], trust: surface -- genuine, unguarded
Maret Korr When detective reviews crew records "That name's on the morning shift roster. Standard cargo handling cert." access: [authority], trust: surface -- institutional data
Torek Lintar Overheard bar conversation "Dock crew's always here after shift. The usual crowd." access: [public], trust: surface -- background noise

About the Detective-as-NPC (What NPCs Say When the Smuggler Plays)

NPC Context Line Tag Notes
Kael Davan Noticing Commission presence "There's someone new at the hub. Commission badge. Keep your head down." access: [insider], trust: real -- ring awareness, protective warning
Voss To smuggler during shift "Commission liaison showed up this morning. Routine check, apparently. Just do your job normally." access: [insider], trust: real -- operational caution
Lera Sessik When smuggler arrives at bar "Your Commission friend is here again. Came in with Sera." access: [insider], trust: surface -- coded language, "your" is ironic
Sera Venn Overheard at bar "The new liaison? Standard posting. Nothing to worry about." access: [public], trust: surface -- Sera's deflection benefits the ring indirectly
Naia Tamm When smuggler sits near her "Have you noticed the new person at the hub? Commission, someone said. Kael didn't seem happy about it." access: [peer], trust: surface -- innocent observation
Renn To smuggler during operations "That investigator's been poking around manifests. Maret's sweating." access: [insider], trust: real -- ring operational intelligence
Maret Korr To smuggler in corridor "The Commission officer requested last quarter's schedules. I gave them the clean set." access: [insider], trust: real -- complicity confirmation

8. Tell Inversion

The Principle

When the player IS the smuggler, they observe NPC tells (Kael checking his lattice, Sera leaving when Torek arrives). When the smuggler IS the NPC, the detective player should observe the smuggler-NPC's tells. Same tell system, inverted perspective.

The PC-as-NPC's tells are observable behavioral markers that the other player can read. These tells should feel natural on first playthrough ("just an NPC doing NPC things") and recognizable on second playthrough ("that's MY operational awareness").

Smuggler-as-NPC Observable Tells (Seen by Detective)

These are what the detective player can observe about the smuggler-NPC. The detective's monologue system flags them according to the detective's analytical frame.

Tell Observable Behavior When It Occurs Detective Monologue (If Flagged)
Corridor awareness Smuggler-NPC glances down corridors before entering. Brief pause at intersections. Every transition between areas "That dock worker checks the corridor before turning. Habitual. Military? Or just careful."
Shift-transition alertness Smuggler-NPC's movement pattern changes during shift transitions. More purposeful. Straighter route. During 20-minute shift transition windows "Movement pattern changed at shift change. More direct. Less idle. Interesting."
Security-proximity tension Smuggler-NPC's pace increases slightly when passing security checkpoints or Commission-tagged NPCs. When near detective-NPC or other authority figures "Slight acceleration past the checkpoint. Most people do it. But this one does it every time."
Ring member proximity Smuggler-NPC gravitates toward Kael, Renn, and other ring members during breaks. Tight social cluster. Break periods, bar evenings "Same three people at the same table. Every shift. Consistent social group."
Cargo attention Smuggler-NPC's gaze lingers on specific containers. Brief interaction with freight systems. During work routine near flagged cargo "That worker checked container 4471 twice. The same container that's in my manifest discrepancy file."

Detective-as-NPC Observable Tells (Seen by Smuggler)

These are what the smuggler player can observe about the detective-NPC. The smuggler's monologue system flags them according to the smuggler's operational awareness.

Tell Observable Behavior When It Occurs Smuggler Monologue (If Flagged)
Note-taking habit Detective-NPC pauses after conversations. Brief lattice interaction (recording notes). After talking to any NPC "Commission officer just stood there after talking to Voss. Making notes. Not good."
Systematic movement Detective-NPC moves through the hub methodically. Covers areas in sequence, not randomly. During hub exploration "That investigator is working the hub section by section. Not browsing. Searching."
Manifest interest Detective-NPC spends time near freight terminals, scheduling boards, manifest access points. During investigation routine "Commission's parked at the manifest terminal again. Third time today."
NPC-watching Detective-NPC observes NPCs from a distance before approaching. Stands at sightline-advantaged positions. Throughout the session "They're watching. From the corner, where they can see the whole dock floor. Professional."
Sera connection Detective-NPC is frequently seen with Sera. Eats together at the bar. Comfortable proximity that other NPCs don't get. Bar evenings "The investigator and Sera again. Old friends? Or is Sera reporting to them?"

9. Nine-Step Conversion Checklist

A practical tool for content authors converting a playable character into an NPC entity. Follow these steps in order.

Checklist

Step 1: Define the neutral path routine. Write 5-7 routine entries covering a full day cycle (Morning, Afternoon, Evening, Night). The routine must be plausible as both "normal NPC behavior" (first playthrough) and "what I was doing" (second playthrough). No dramatic decisions. No confrontations. Just the default day.

  • Morning routine entry (arrival, work start)
  • Work period entries (2-3 task-oriented activities)
  • Break/social entry (bar visit, meal, downtime)
  • Evening routine entry (wind-down, departure)
  • Verify routine is plausible for both playthrough perspectives

Step 2: Build the starting knowledge graph. List everything the PC-as-NPC knows at session start. Use the four categories: known NPCs, known relationships, known facts, unknown facts. The unknown facts are critical -- they define what the PC-as-NPC cannot react to.

  • Known NPCs (by name)
  • Known relationships (type, trust level, access tier)
  • Known facts (operational, institutional, social)
  • Unknown facts (ensures no impossible knowledge)

Step 3: Build the starting relationship map. For each NPC the PC-as-NPC knows, write a full EntityKnowledge entry using the 16 canonical keys. This defines the bidirectional relationship state at session start.

  • EntityKnowledge entry per known NPC (16 keys)
  • RelationshipState assignment (Unknown/Known/Friendly)
  • Access tier assignment (public/insider/authority/peer)

Step 4: Author reverse knowledge entries. For each NPC who knows the PC-as-NPC, write their EntityKnowledge entry ABOUT the PC-as-NPC. What do they know? What is their trust level? How does the PC-as-NPC's presence change their behavior?

  • NPC-to-PC-as-NPC knowledge entries (per relevant NPC)
  • Behavioral consequences documented (how does knowing the PC-as-NPC change the NPC's behavior?)

Step 5: Write the orientation monologue. 3-5 authored monologue lines for the PLAYER character's first 60 seconds. These establish emotional starting state. The orientation monologue must work in a world where the PC-as-NPC is already present but unremarked.

  • 3-5 orientation monologue lines
  • Emotional baseline established (comfort/isolation/purpose)
  • PC-as-NPC's presence NOT mentioned (no reason to notice them yet)

Step 6: Define agency boundaries. Explicitly list what the PC-as-NPC does and does not do. Reference the neutral path. Confirm that no dramatic decisions, confrontations, or relationship state changes occur.

  • Permitted behaviors listed
  • Prohibited behaviors listed
  • Neutral path confirmed (no dramatic choices)

Step 7: Write authored relationship stubs. 2-3 dialogue lines per relevant NPC about the PC-as-NPC. These are how NPCs reference the PC-as-NPC in conversation with the player. Tag with appropriate access tier and trust level.

  • 2-3 lines per relevant NPC
  • Access tiers assigned
  • Trust levels assigned
  • Lines tested for both first-playthrough plausibility and second-playthrough recognition

Step 8: Design tell inversion. 3-5 observable behavioral tells for the PC-as-NPC. These are visible to the other player's character. Each tell should read as "normal NPC behavior" on first playthrough and "that's MY habit" on second playthrough. Write the observing character's monologue trigger for each tell.

  • 3-5 observable tells defined
  • Monologue trigger text for each tell (from observing character's perspective)
  • Tells verified as plausible-but-notable

Step 9: Count and validate authored items. Total all authored items. Target: ~20-30 per PC-as-NPC. Verify nothing contradicts the neutral path. Verify no authored content gives the PC-as-NPC dramatic agency.

  • Item count: routine entries (target: 5-7)
  • Item count: relationship stubs (target: 7-10 lines)
  • Item count: tell descriptions + monologue triggers (target: 5-10 lines)
  • Item count: public-tier dialogue lines for player interaction (target: 3-5)
  • Total within ~20-30 budget
  • Neutral path integrity verified
  • No dramatic agency violations

10. v0.1 PC Brief: The Smuggler (as NPC Seen by Detective)

Identity

  • Display name: [Smuggler Name] (dock worker)
  • Color (detective's view): Cool teal #4a9ebb (Unknown/Neutral) at session start. May shift to Warm amber #e8c547 (Person of Interest) if detective flags cargo attention or ring-member proximity tells.
  • Pattern: N/A (PC-as-NPC has no NPC pattern -- they are a special entity type)
  • Tier: Equivalent to Tier 2 depth for content purposes

Starting EntityKnowledge (Detective's Knowledge of Smuggler-NPC)

EntityKnowledge {
    last_known_position: None, // not yet observed
    last_observed_tick: 0,
    last_updated_tick: 0,
    confidence: KnowledgeConfidence::Unknown,
    source: KnowledgeSource::None,
    state: KnowledgeState::Inactive,
    relationship: RelationshipState::Unknown,
    known_attributes: BTreeMap::new(), // empty at session start
}

The detective starts with zero knowledge of the smuggler-NPC. The smuggler is one of many dock workers. Knowledge accumulates through observation only.

After first observation (passing in the hub):

EntityKnowledge {
    confidence: KnowledgeConfidence::KnowsOf,
    relationship: RelationshipState::Unknown,
    known_attributes: BTreeMap::from([
        ("role".to_string(), "dock worker".to_string()),
        ("faction".to_string(), "civilian".to_string()),
        ("species".to_string(), "human".to_string()),
        ("routine_pattern".to_string(), "morning shift at logistics hub".to_string()),
    ]),
}

After accumulated observation (multiple sightings, tell accumulation):

EntityKnowledge {
    confidence: KnowledgeConfidence::KnowsDetails,
    relationship: RelationshipState::Known, // or PersonOfInterest if tells flagged
    known_attributes: BTreeMap::from([
        ("name".to_string(), "[Smuggler Name]".to_string()),
        ("role".to_string(), "dock worker".to_string()),
        ("faction".to_string(), "civilian".to_string()),
        ("species".to_string(), "human".to_string()),
        ("routine_pattern".to_string(), "morning shift 06:00-14:00, bar after shift".to_string()),
        ("behavior_flags".to_string(), "corridor_checking,shift_transition_alertness".to_string()),
        ("risk_assessment".to_string(), "low".to_string()), // or "moderate" if tells flagged
        ("moral_weight".to_string(), "innocent".to_string()), // detective hasn't connected them yet
    ]),
}

Routine (Neutral Path)

Phase Time Location Activity Observable By
Morning 05:45 The Terminal (entrance) Arrives. Checks schedule board. Anyone at hub entrance
Morning 06:00-10:00 The Terminal (dock floor) Works cargo processing. Interacts with Kael, other dock workers. Standard freight handling. Anyone on dock floor
Break 10:00-10:30 The Terminal (break area) Eats with Kael and Renn. Conversation. Anyone in break area
Afternoon 10:30-14:00 The Terminal (dock floor) Afternoon work. Container routing. Schedule coordination with Voss. Anyone on dock floor
Transition 14:00-14:20 The Terminal (transition) Shift ends. Cleans station. Briefly checks service corridor. Anyone watching shift change
Evening 15:00-17:00 The Last Shift (bar) Drinks with Kael. Sits at regular table. Casual conversation with Lera. Anyone in bar
Night 17:30 Exits district Goes home. Off-screen. No one (departed)

Tells (Observable by Detective)

  1. Corridor check -- Pauses at intersections, glances down corridors before entering. Frequency: every transition. Detective monologue: "That dock worker checks the corridor before turning. Habitual. Military? Or just careful."

  2. Shift-transition behavior change -- Movement becomes more purposeful during the 14:00 transition window. Straighter route, fewer idle pauses. Detective monologue: "Movement pattern changed at shift change. More direct. Less idle. Interesting."

  3. Security proximity tension -- Pace increases slightly when passing Commission-tagged NPCs or checkpoints. Detective monologue: "Slight acceleration past the checkpoint. Most people do it. But this one does it every time."

  4. Social clustering -- Same group at breaks and at the bar. Kael, Renn, and the smuggler-NPC form a tight cluster. Detective monologue: "Same three people at the same table. Every shift. Consistent social group."

  5. Cargo attention -- Gaze lingers on specific containers. Brief second interaction with freight system during routing. Detective monologue: "That worker checked container 4471 twice. The same container that's in my manifest discrepancy file."

Dialogue (If Detective Talks to Smuggler-NPC)

The detective can approach and talk to the smuggler-NPC. The smuggler-NPC responds with public-tier dialogue only -- polite, guarded, unremarkable.

Situation Smuggler-NPC Line Tag Notes
Greeting (hub) "Morning. Can I help you with something?" access: [public], trust: surface, situation: [greeting]
Asked about work "Cargo routing. Containers come in, I process them out. Standard stuff." access: [public, authority], trust: surface, situation: [investigation]
Asked about the hub "It's a freight hub. Busy during shifts, quiet after. Same as any logistics operation." access: [public], trust: surface, situation: [social]
Asked about colleagues "Good crew. We do our shifts, go home. Nothing exciting." access: [public, authority], trust: surface, situation: [investigation]
Pressed on specifics "Look, I just move containers. You'd want to talk to Voss about scheduling." access: [authority], trust: surface, situation: [confrontation] -- deflection

Authored Item Count

Category Count Items
Routine entries 7 Morning arrival, morning work, break, afternoon work, transition, bar evening, departure
Relationship stubs (NPCs about smuggler) 7 Kael (2), Voss (1), Lera (1), Naia (1), Maret (1), Torek (1)
Tell descriptions + monologue triggers 10 5 tells x 2 (description + detective monologue line)
Dialogue lines (smuggler-NPC speaks) 5 Greeting, work question, hub question, colleagues question, deflection
Total 29 Within ~20-30 budget

11. v0.1 PC Brief: The Detective (as NPC Seen by Smuggler)

Identity

  • Display name: [Detective Name] (Commission liaison)
  • Color (smuggler's view): Warm amber #e8c547 (Person of Interest) from first sighting. The smuggler's operational awareness flags Commission presence immediately. Alternatively, cool teal #4a9ebb (Unknown) if the smuggler hasn't been warned yet, shifting to amber once Kael or Voss mentions the Commission presence.
  • Pattern: N/A (PC-as-NPC)
  • Tier: Equivalent to Tier 2 depth for content purposes

Starting EntityKnowledge (Smuggler's Knowledge of Detective-NPC)

The smuggler may or may not know about the detective at session start. Two starting states, depending on when the ring's warning reaches the smuggler:

Option A: Smuggler has been warned (default for v0.1)

EntityKnowledge {
    confidence: KnowledgeConfidence::KnowsOf,
    source: KnowledgeSource::Secondhand {
        via: EntityRef("voss"),
    },
    state: KnowledgeState::Active,
    relationship: RelationshipState::Known, // or PersonOfInterest
    known_attributes: BTreeMap::from([
        ("role".to_string(), "Commission liaison".to_string()),
        ("faction".to_string(), "Commission".to_string()),
        ("species".to_string(), "human".to_string()),
        ("risk_assessment".to_string(), "moderate".to_string()),
        ("loyalty_assessment".to_string(), "hostile".to_string()), // institution vs ring
        ("position_integrity".to_string(), "N/A".to_string()),
        ("moral_weight".to_string(), "peripheral".to_string()),
    ]),
}

Option B: Smuggler not yet warned (first sighting triggers knowledge)

EntityKnowledge {
    // Empty until first observation or Kael/Voss warns the smuggler
}

Routine (Neutral Path)

Phase Time Location Activity Observable By
Morning 08:00 The Terminal (entrance) Arrives. Shows credentials to Voss. Reviews scheduling board. Anyone at hub entrance
Morning 08:30-10:00 The Terminal (offices) Requests manifest data from Maret. Reviews freight records at terminal. Maret, anyone near office area
Late Morning 10:00-11:30 The Terminal (dock floor) Walks the dock floor. Observes operations. Takes notes (lattice interaction). Anyone on dock floor
Midday 11:30-12:30 The Terminal (break area) / exit Brief break. May leave hub to check district geography. Anyone in break area
Afternoon 13:00-14:30 The Terminal (offices) Follow-up with Drin on inspection records. Cross-references manifests. Drin, Maret, anyone near offices
Evening 16:00-18:00 The Last Shift (bar) Meets Sera. Sits together. Casual conversation. Observes room. Anyone in bar
Night 18:30 Exits district Returns to temporary quarters. Off-screen. No one (departed)

Tells (Observable by Smuggler)

  1. Note-taking pauses -- After every conversation, the detective-NPC pauses and interacts with their lattice (recording notes). Brief but consistent. Smuggler monologue: "Commission officer just stood there after talking to Voss. Making notes. Not good."

  2. Systematic coverage -- Moves through the hub in a methodical pattern. Section by section, not wandering. Smuggler monologue: "That investigator is working the hub section by section. Not browsing. Searching."

  3. Manifest station fixation -- Returns to the manifest terminal repeatedly. Spends significant time reviewing data. Smuggler monologue: "Commission's parked at the manifest terminal again. Third time today."

  4. Observation positioning -- Stands at corners and elevated positions with good sightlines over the dock floor. Watches before approaching. Smuggler monologue: "They're watching. From the corner, where they can see the whole dock floor. Professional."

  5. Sera proximity -- Consistently gravitates toward Sera at the bar. Comfortable body language. Old-friends energy. Smuggler monologue: "The investigator and Sera again. Old friends? Or is Sera reporting to them?"

Dialogue (If Smuggler Talks to Detective-NPC)

The smuggler can approach and talk to the detective-NPC. The detective-NPC responds with public-tier dialogue -- professional, measured, slightly formal.

Situation Detective-NPC Line Tag Notes
Greeting (hub) "Good morning. Commission Liaison Office -- I'm conducting a routine compliance review." access: [public], trust: surface, situation: [greeting]
Asked about purpose "Standard review. Manifest reconciliation, scheduling compliance. Nothing unusual." access: [public], trust: surface, situation: [social]
Asked about the district "Only been here a few days. Seems like a well-run operation." access: [public], trust: surface, situation: [social] -- deliberate blandness
Asked about Sera "Ms. Venn? Colleague. We've worked in the same division." access: [public], trust: surface, situation: [social] -- professional deflection
Pressed on investigation "I appreciate the interest, but I'm sure you have cargo to route. I won't keep you." access: [public, authority], trust: surface, situation: [confrontation] -- polite dismissal

Authored Item Count

Category Count Items
Routine entries 7 Morning arrival, manifest review, dock observation, midday break, afternoon follow-up, bar evening, departure
Relationship stubs (NPCs about detective) 7 Kael (1), Voss (1), Lera (1), Sera (1), Naia (1), Renn (1), Maret (1)
Tell descriptions + monologue triggers 10 5 tells x 2 (description + smuggler monologue line)
Dialogue lines (detective-NPC speaks) 5 Greeting, purpose question, district question, Sera question, deflection
Total 29 Within ~20-30 budget

Post-v0.1 note: 5 public-tier lines may feel thin on replay when the player already knows the detective's real purpose. Consider adding 2-3 rotation variants per situation in a future content pass -- same tag structure, different phrasing -- so the detective-NPC doesn't repeat identical lines across playthroughs.


Appendix A: Cross-Reference to Downstream Tickets

Ticket Title How This Spec Feeds It
#383 NPC-format briefs for both PCs Takes sections 10-11 as input. Expands routine entries into YAML format. Adds EntityKnowledge YAML entries.
#401 PC-as-NPC content authoring Takes sections 7-8 as input. Authors the actual dialogue lines, monologue triggers, and relationship stubs in YAML format per content directory structure.
#299 Opening hook: smuggler first 5 minutes Orientation monologue (section 5) provides the first 4 lines.
#300 Opening hook: detective first 5 minutes Orientation monologue (section 5) provides the first 4 lines.

Appendix B: EntityKnowledge Key Reference

The 16 canonical keys used throughout this document (from wiki/knowledge/entity-attributes.md):

Category Keys
Identity name, role, faction, species
Social relationship_type, trust_level
Behavioral routine_pattern, behavior_flags
Leverage leverage_held, leverage_confidence
Investigation tell_observed, contradiction_flagged
Role-Perspective risk_assessment, loyalty_assessment, position_integrity, moral_weight

Appendix C: Design Rationale

Why ~20-30 items per PC-as-NPC?

Per D-029 Concept A, the other PC-as-NPC needs enough content to feel real but not so much that it competes with hand-authored NPCs like Kael or Sera (who get 70-100 lines each). The PC-as-NPC is a background presence -- important for the Divergence Reveal but not a major interaction target during normal play. 20-30 items gives enough for: a plausible routine, observable tells, minimal dialogue if the player approaches, and NPC chatter about the PC-as-NPC's presence.

Why the neutral path?

The dramatic choices belong to the player. If the smuggler-NPC makes a dramatic decision (confront Kael, escalate the ring, cover for Drin), that contradicts the player's experience when they play the smuggler and make a different choice. The neutral path is the only version that is compatible with ALL possible player choices.

Why tell inversion matters

Tell inversion is the mechanic that makes the Divergence Reveal (Wow Moment #4) work emotionally. On second playthrough, the player sees their own character's tells from the outside. "That's MY corridor check. That's MY note-taking habit." The recognition transforms an NPC observation into self-recognition -- a mirror moment that makes the dual-lens design visceral.


Ticket #381 -- PC-as-NPC unified specification. v0.1 scope: 2 PC briefs (smuggler, detective). Blocks #383, #401.