Files
settled-reach/wiki/authoring/npc-patterns/mirror-moment.md
T
jpmschweitzerandClaude Opus 4.6 453983ffd2 chore(docs): remove content-converter and content-ron Makefile target
The YAML→RON converter and its make target are v0.1 artifacts superseded
by the v0.2 RON-first generator pipeline. content-ron/ was already
gitignored; this removes the tool that generated it.

Closes #667.

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

15 KiB

Mirror Moment Design Document

Ticket: #329 | Priority: Medium | Sprint: 12 Status: v0.1 Draft Owners: Paula (design), Mellanie (authoring) Blocked by: #297 (Kael profile — done), #298 (Sera profile — done) Decisions referenced: D-032 (separate monologue pools), D-034 (THE FRIEND), D-039 (wow moment #4 — Divergence Reveal)


1. What Is a Mirror Moment?

A mirror moment is a shared trigger that produces completely different monologue for each playable character. Same event. Same NPC. Same location. Two entirely different emotional experiences.

The player who has completed both playthroughs encounters the mirror moments as a recognition: "I was in this exact situation, but I felt something completely different." This is the mechanism of Wow Moment #4 (Divergence Reveal — D-039): the realization that the same world contains two different experiences, and that you've had both.

What a mirror moment is NOT:

  • A branching dialogue option
  • A triggered cutscene
  • An informational difference ("the smuggler knows X and the detective doesn't")

A mirror moment is an interpretive difference — same information, same NPC behavior, same physical event. Different internal frame. Different emotional weight.


2. Design Principles

Principle 1: Same trigger, different pool (D-032 hard partition) Mirror moments operate because monologue pools are hard-partitioned by character. The same trigger key fires into the smuggler pool OR the detective pool — never both. The authoring requirement is to write both sides of every shared trigger.

Principle 2: The difference must be felt, not explained A mirror moment works when the player FEELS the divergence without having it explained. The two monologue lines should be immediately recognizable as coming from different places — different relationships, different frames, different fears.

Principle 3: The mirror reveals what the character CARES about The smuggler's monologue reveals personal loyalty (people). The detective's monologue reveals investigative analysis (patterns). A mirror moment that doesn't surface this difference is a content gap, not a mirror.

Principle 4: At least some mirrors should work on first playthrough Not every mirror moment requires a second playthrough to land. Some mirrors work as a moment of character voice — the player just hears what their character notices. Second playthrough makes the divergence explicit, but first playthrough should have its own emotional coherence.


3. The 10 Mirror Moments (v0.1)

Mirror 1: The Friend's Routine

Trigger: observe_npc — Seeing THE FRIEND (Kael/Sera) going about their daily routine in their expected location.

Shared observation: THE FRIEND is doing exactly what they always do. Nothing unusual. The baseline before anything cracks.

Smuggler monologue: "Kael's at his station. Right where he always is. Something settles when the shift starts right."

Detective monologue: "The dock worker — Davan — is on the floor again. Same position, same timing. Three days in a row. That's a routine. File it."

What the mirror reveals: The smuggler sees a person. The detective sees a data point. Same NPC at the same station. The relationship determines the register.


Mirror 2: The Empty Corridor

Trigger: enter_location — Player enters a maintenance corridor when no other NPCs are present.

Shared observation: The corridor is empty. The maintenance systems hum. No one is watching.

Smuggler monologue: "Clear. Good. Transition window's still open for eleven more minutes."

Detective monologue: "Three separate entries to this corridor in my district walkthrough. Nothing documented in my file about why workers access this route. Off-books path? Add it to the log."

What the mirror reveals: The smuggler reads the empty corridor as operational safety. The detective reads it as an investigative lead. The physical space is identical; the cognitive frame inverts it.


Mirror 3: The Worried Partner (Naia Tamm)

Trigger: observe_npc — Seeing Naia Tamm sitting alone at the bar, visibly preoccupied.

Shared observation: Naia is at The Last Shift without Kael. She looks tired or worried. Not in distress — just carrying something heavy.

Smuggler monologue: "Naia's here without Kael again. She looks rough. Should check in. ...Not now. Later."

Detective monologue: "That woman — Tamm, I think Sera mentioned her — is sitting alone. Wrong energy for a social evening. Something at home, or something she's heard?"

What the mirror reveals: The smuggler has a protective impulse toward Naia but defers it. The detective categorizes Naia as a potential information source. Same worried woman, same empty chair across from her. One character plans to check on a person; the other plans to assess a witness.


Mirror 4: The Spending

Trigger: observe_npc — Watching Torek Lintar buy rounds at the bar.

Shared observation: Torek is buying drinks for several people he doesn't know well. The drinks are nicer than they should be on a compliance officer's salary. He's clearly enjoying himself.

Smuggler monologue: "Torek's buying rounds again. That's the third time this week. Either he won something, or he's getting paid from somewhere he shouldn't be. Starting to worry about that."

Detective monologue: "Commission compliance officer, buying grain spirit for half the bar. On his salary? That doesn't close. Financial tell. Noted."

What the mirror reveals: Both characters notice the same behavioral anomaly. The smuggler frames it as a security risk to the ring. The detective frames it as an evidentiary lead. Both have the same concern (Torek's spending is unusual) — but the concern has completely different stakes.


Mirror 5: Sera Leaving

Trigger: observe_npc — Watching Sera Venn gather her things and leave the bar when Torek arrives.

Shared observation: Sera gives a brief excuse (headache, kiosk check, early shift) and leaves. She was comfortable until the moment Torek walked in.

Smuggler monologue: "Sera left. Good timing — she was starting to make everyone nervous anyway. Commission presence at Lera's always shifts the temperature."

Detective monologue: "Second time now. Sera leaves when Torek walks in. Same type of excuse. 'Headache' last time, 'kiosk' tonight. Same result. That's two data points. Third is a pattern."

What the mirror reveals: The smuggler reads Sera's departure as relief (Commission leaving = safer conversation). The detective reads the same departure as a behavioral anomaly. The event is identical. The emotional response is inverted.

This mirror is structurally important: it shows the detective's FRIEND arc developing through observational patience, while simultaneously showing the smuggler's categorical relationship with Commission presence.


Mirror 6: The Station Hum

Trigger: time_idle — Player is stationary in the terminal for more than a few seconds with no active interaction.

Shared observation: The station's ambient systems — span gate hum, ventilation cycle, cargo machinery in the background — fill the silence. Sova at rest.

Smuggler monologue: "Span gate's cycling early. One hour to the next transit. Voss'll be running the schedule check in twenty."

Detective monologue: "They've been on this station their whole lives. That hum is just background to them. I'm still trying to tune it out."

What the mirror reveals: The smuggler hears operational data in the ambient sound. The detective hears alienation. The station hum carries the same frequency to both characters' ears. It means completely different things to their experience of being in this place.


Mirror 7: The Commission Kiosk

Trigger: enter_location or observe_npc — The player walks past or observes the Commission compliance kiosk near the terminal entrance.

Shared observation: The kiosk is a small Commission compliance desk near the terminal entrance — mostly unmanned, used for permit verification and compliance queries. Standard infrastructure.

Smuggler monologue: "Commission kiosk. Nobody uses it. Institutional furniture. Long as nobody decides to run a full cargo audit, that's exactly what I want it to stay."

Detective monologue: "The compliance kiosk has public access to manifest verification records. Local. Less filtered than the request I made through channels. Check it when Maret's not watching."

What the mirror reveals: The smuggler reads the kiosk as a passive threat to be ignored. The detective reads it as an investigative tool. Same object. Same physical location. The smuggler hopes it stays irrelevant; the detective plans to use it.


Mirror 8: Kael and Naia Together (Bar)

Trigger: observe_npc — Seeing Kael and Naia sitting together at their usual table. Naia is talking; Kael is listening but seems distracted.

Shared observation: A couple having dinner. Naia is clearly talking seriously about something. Kael is present but not quite there. The gap between them is subtle but visible.

Smuggler monologue: "Kael and Naia look... off. Naia's talking a lot. Kael's nodding but he's somewhere else. Something's going on at home. He doesn't say."

Detective monologue: "Couple — the dock worker, Davan, and the woman who sits with Sera sometimes. She's animated; he's distracted. Relationship tension. That level of checked-out usually means someone's keeping something."

What the mirror reveals: The smuggler reads this as a friend's private trouble that deserves respect and distance. The detective reads it as behavioral evidence — someone keeping something from a partner. Same visible tension. One character looks away; the other leans in.


Mirror 9: The Manifest Terminal

Trigger: observe_npc or enter_location — The freight manifest terminal in the terminal hub.

Shared observation: A freight terminal kiosk showing manifest data. Busy during shifts; the data moves constantly.

Smuggler monologue: "That's Maret's terminal. She's got access to all the schedules from here. If anything's getting flagged in the manifest data, she'd see it before anyone else. Maret's solid. She won't say anything."

Detective monologue: "Freight manifests for the last six months, loaded from here. The cluster analysis shows three anomaly windows, all at shift transition. That's not clerical error. Someone's using this terminal to adjust records after the fact."

What the mirror reveals: The smuggler sees a trusted colleague's workspace and trusts that colleague's loyalty. The detective sees the exact location where evidence of the ring's operations lives. The terminal is simultaneously proof of criminal activity and proof of a trusted relationship — depending on which character is reading it.


Mirror 10: The End of Shift

Trigger: observe_npc — Watching the shift change happen across the terminal floor — workers clocking out, new crew arriving, a brief period of cross-traffic and handoffs.

Shared observation: Dozens of workers moving at once. The shift change is organized chaos. Cargo gets routed, schedules are handed off, the floor changes.

Smuggler monologue: "Shift transition. Twenty-minute window. The floor's all cross-traffic now — nobody's tracking individual movement. This is when it runs."

Detective monologue: "Shift change. Every anomaly in my manifest data clusters around this. The window. The handoff moment. Someone is using the cross-traffic as cover. But for WHAT?"

What the mirror reveals: The smuggler knows exactly what the shift change covers. The detective sees the pattern but not the specific. Both characters observe the same 20-minute window of organized chaos. One is running something through it; the other is trying to figure out what's being run.


4. Mirror Moment Authoring Rules

Rule 1: Both sides are mandatory

A mirror moment is only complete when both the smuggler monologue and the detective monologue are authored. Omitting one side is a content gap.

Rule 2: Same trigger key, different pool

Both lines use the same trigger type and similar prerequisite conditions. They appear in separate character monologue files (D-032 hard partition). The only difference is the character tag.

Rule 3: No shared content

Neither monologue line should directly reference the other or acknowledge the other character's frame. Each line is internally coherent to its character. The divergence is created by the CHARACTER's relationship to the world, not by explicit contrast.

Rule 4: The lines must stand alone

A player who only plays one character should not feel the mirror moment is incomplete. Both lines should work as independent character voice — good monologue that stands on its own.

Rule 5: Tag all mirrors for tracking

Add tags: [mirror_moment] to both sides of every mirror pair so they can be identified and validated as a set.


5. YAML Example

# Smuggler side — monologue-smuggler.yaml
- id: pc-smuggler_m_s_044
  character: smuggler
  trigger: observe_npc
  prerequisite:
    location: the-terminal
    target: npc:naia-tamm
    relationship_state: Known
  text: "Naia's here without Kael again. She looks rough. Should check in. ...Not now. Later."
  mood: [concerned, fond]
  topic: [colleague]
  tags: [mirror_moment, mirror_worried_partner]

# Detective side — monologue-detective.yaml
- id: pc-detective_m_d_044
  character: detective
  trigger: observe_npc
  prerequisite:
    location: the-last-shift
    target: npc:naia-tamm
  text: "That woman — Tamm, I think Sera mentioned her — is sitting alone. Wrong energy for a social evening. Something at home, or something she's heard?"
  mood: [analytical, curious]
  topic: [investigation]
  tags: [mirror_moment, mirror_worried_partner]

6. Validation Checklist

For each mirror pair:

  • Both sides authored
  • Same trigger type used
  • Both sides use tags: [mirror_moment, {mirror_name}]
  • Lines stand independently as character voice
  • Emotional register diverges (personal vs. analytical, OR equivalent meaningful contrast)
  • No shared vocabulary that implies the characters are comparing notes
  • Prerequisites match (same NPC, same location condition, equivalent state requirements)

7. Expansion Notes (Post-v0.1)

Additional mirror moments to author in future content passes:

  • The Missing Person Notice: A posted notice near the bar about a missing dock worker (pre-existing, unrelated to main plot). Smuggler: "People disappear. Station life." Detective: "Filed under 'before my posting.' What was the investigative status?"
  • Voss Walking the Floor: The shift supervisor doing a routine floor inspection. Smuggler sees cover being maintained. Detective sees a potential informant.
  • Drin's Inspection: Dock inspector doing a container verification. Smuggler knows Drin will find nothing. Detective sees the inspection as either genuine compliance or evidence of a compromised process.

Ticket #329 — Mirror moment design document. 10 paired observations. v0.1 scope.