Move wiki from docs/wiki/ to root wiki/. Add 14 category templates with YAML frontmatter, governance model, hierarchical spatial structure (system > station > district > location). Populate Krenn System entry as first concrete star system. Update cross-references in workshop and sprint docs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
43 KiB
Round 1 — Paula (Librarian / Narrative & Political Depth)
Topic 1: Wiki Fixes
1a. Hael → Naia Tamm Rename — Full Cascade Plan
16 files require changes. The rename touches every file that references Hael by name, including cross-references in profiles, location descriptions, knowledge system examples, and the monologue authoring guide.
File-by-file rename plan
| # | File | Change Type | Details |
|---|---|---|---|
| 1 | wiki/npcs/hael.md |
Rename + rewrite | File becomes wiki/npcs/naia-tamm.md. All internal references change. Header becomes "Naia Tamm — THE MIRROR". Pattern assignment changes from implicit to explicit MIRROR. |
| 2 | wiki/npcs/index.md |
Content update | Roster table row 9: "Hael" → "Naia Tamm". Triangle 4 diagram: all 3 "Hael" labels. Bridge NPCs table: not listed (Naia isn't a bridge NPC). Social site listing for The Last Shift: "Hael (Teacher)" → "Naia Tamm (Teacher)". |
| 3 | wiki/index.md |
Content update | NPC listing under Tier 2: [Hael](npcs/hael.md) — Kael's partner → [Naia Tamm](npcs/naia-tamm.md) — Kael's partner. |
| 4 | wiki/npcs/kael-davan.md |
Content update | Heaviest single file. 20+ occurrences. Axis 1 secondary Want, Axis 2 (deep secret), Relationship 2 (full section), Axis 4 tolerance, Axis 5 routine, Axis 6 information inventory, Axis 7 contentment, Voice sample (Mood: Protective), Dual-lens smuggler notes, Triangle 4 role notes, Secret section, Contradiction arc Phase 1 through 5, Authoring notes. Every "Hael" → "Naia" in dialogue/casual references (Krenn first-name-primary convention). Every "Hael" → "Naia Tamm" in formal/profile references. |
| 5 | wiki/npcs/sera-venn.md |
Content update | ~15 occurrences. Relationship 2 (full section), Axis 4 tolerance, Axis 5 routine, Axis 6 information inventory, Axis 7 contentment, Tell system, Voice sample, Dual-lens notes, Triangle 4 role notes, Secret section, Contradiction arc, Authoring notes. Same casual/formal distinction as Kael's file. |
| 6 | wiki/npcs/lera-sessik.md |
Content update | Axis 6 information inventory: "Hael's worry about Kael" → "Naia Tamm's worry about Kael". |
| 7 | wiki/npcs/maret-korr.md |
Content update | Axis 5 routine: "goes for Hael's company sometimes" → "goes for Naia's company sometimes". |
| 8 | wiki/authoring/monologue-guide.md |
Content update | Any monologue examples referencing Hael. |
| 9 | wiki/locations/krenn-system/the-last-shift.md |
Content update | NPC presence list, social dynamics references. |
| 10 | wiki/world/sova-transit-district.md |
Content update | Any district NPC references. |
| 11 | wiki/factions/the-ring.md |
Content update | Likely references Hael as collateral/vulnerability for Kael. |
| 12 | wiki/knowledge/relationship-states.md |
Content update | Any example entries using Hael as a relationship target. |
| 13 | wiki/knowledge/entity-attributes.md |
Content update | Scan for Hael in example EntityKnowledge entries. |
| 14 | wiki/knowledge/fact-catalog.md |
Content update | FactId entries referencing Hael (e.g., npc.hael.worry, relationship.kael.hael). IDs change to npc.naia_tamm.* and relationship.kael.naia_tamm. |
| 15 | wiki/world/krenn-system.md |
Content update | NPC naming examples list. |
| 16 | decisions/content.md |
Content update | D-034 references Hael twice (Kael's partner, Triangle 4). D-036 references Hael in the naming examples list. |
Naming convention for the rename
Per Krenn System conventions (D-036, Miri Round 1):
- Formal/profile references: "Naia Tamm" (full canonical name)
- Casual/dialogue/in-character references: "Naia" (first-name-primary, Krenn convention)
- NPC profile page title: "Naia Tamm — THE MIRROR"
- Canonical ID:
krenn.naia-tamm - Filename:
naia-tamm.md
Profile header changes for naia-tamm.md
The renamed file also needs structural updates to reflect the MIRROR pattern:
# Naia Tamm — THE MIRROR
**Tier 1 (MIRROR) NPC** | The Last Shift (Bar) | Mundane
Note: The brief identifies Naia Tamm as the first MIRROR instance with "Tier 1 emotional depth." The SUMMARY confirms: "50-70 authored lines." This is between Tier 1 (70-100) and Tier 2 (40-60). The profile needs a content requirement update reflecting MIRROR-specific depth:
- ~50-70 authored lines (no generation expansion — same rule as FRIEND)
- Full 10-axis profile (already present in current Tier 2 format)
- NO contradiction arc, NO secret — this is the MIRROR's defining constraint
- Emotional weight comes from what HAPPENS TO Naia, not what Naia hides
1b. Smuggler Attribute Vocabulary
The existing EntityKnowledge attributes (entity-attributes.md) are detective-shaped: tell_observed, contradiction_flagged, secret_held, secret_confidence all describe an investigative lens. The smuggler needs parallel attributes that describe an operational lens.
Proposed Smuggler-Specific EntityKnowledge Keys
| Key | Value Format | What It Captures | Examples |
|---|---|---|---|
trust_read |
enum: solid, reliable, shaky, unknown, compromised |
Smuggler's assessment of whether this person can be trusted with operational knowledge | Kael: "solid" (pre-contradiction), "compromised" (post-observation). Voss: "reliable". Drin: "compromised" (known vulnerability). |
exposure_risk |
enum: none, low, moderate, high, critical |
How much this NPC's behavior threatens operational security | Torek: "high" (spending beyond means). Maret: "moderate" (observant, could notice). Resha: "moderate" (asks questions). Pell: "critical" (might turn). |
loyalty_assessment |
enum: committed, dependable, neutral, wavering, hostile |
Smuggler's read on where this person's loyalty lies | Renn: "committed". Kael: "dependable" (pre-contradiction). Pell: "wavering". Voss: "dependable" (financially motivated). |
leverage_held |
string or null | What the smuggler knows they could use against this person | Drin: "gambling debt to Harek". Voss: "schedule manipulation evidence". Pell: "ring membership knowledge". |
social_debt |
string or null | Favors owed, obligations, reciprocal relationships | Kael: "years of mutual cover, personal friendship". Lera: "bar provides meeting space, ring provides revenue". |
moral_weight |
enum: none, light, heavy, crushing |
How much guilt or moral cost the smuggler feels about this relationship | Naia Tamm: "heavy" (lying to Kael's innocent partner). Renn: "none" (operational colleague, no personal bond). Maret: "light" (knows she's worried, pragmatically ignores it). |
cover_integrity |
enum: solid, stressed, cracking, blown |
Whether this person's cover/role is holding up | Kael: "stressed" → "cracking" (tells accumulating). Torek: "cracking" (spending visible). Devra: "solid" (brokering cover holds). |
loyalty_conflict |
string or null | Which competing loyalties this person faces | Kael: "ring vs. Naia Tamm, ring vs. exit attempt". Sera: "Commission vs. Naia Tamm's friendship". Voss: "shift authority vs. Nils's demands". |
How smuggler attributes map to EntityKnowledge
These 8 keys would be added to the known_attributes BTreeMap alongside the existing 14. They use the same string:string format. The smuggler's knowledge graph populates them; the detective's does not (or populates them differently — the detective's trust_read of an NPC reflects institutional trust, not operational trust).
What a smuggler-lens section looks like in an NPC profile
Every NPC profile currently has "Dual-Lens Notes" with a "Smuggler" and "Detective" subsection. The smuggler-lens expansion adds structured operational data below the monologue note. Here's what the expanded format looks like, using Voss as an example:
### How the Smuggler Sees Voss
**Operational Profile:**
| Attribute | Value | Rationale |
|-----------|-------|-----------|
| trust_read | reliable | Financially motivated, predictable |
| exposure_risk | moderate | Institutional face — first person investigated |
| loyalty_assessment | dependable | Compliant because the money is good |
| leverage_held | schedule manipulation evidence | Smuggler knows Voss adjusts manifests |
| social_debt | null | No personal relationship |
| moral_weight | none | Voss chose this; smuggler doesn't feel guilt |
| cover_integrity | stressed | Manifest reworks are increasing |
| loyalty_conflict | shift authority vs. Nils's demands | Resents being managed, might cooperate if pressured |
**Monologue tone (baseline):** Operational assessment. *"Voss is tense today.
Nils must have changed the window again."*
**Monologue tone (post-escalation):** Risk evaluation. *"Voss reworked the
manifest three times today. He's rattled. If he cracks, we're all exposed."*
**Moral arc phase:** Comfort (baseline) — Voss is a tool, not a person the
smuggler thinks about. If Voss breaks, the phase shifts to Doubt ("Am I
responsible for what happens to him?").
Each NPC profile gets this treatment. The smuggler-lens sections should match the detective-lens sections in depth and specificity. The detective reads people through behavioral analysis; the smuggler reads people through operational risk assessment.
Smuggler Moral Arc Phases
The brief identifies 4 phases: Comfort → Doubt → Reckoning → Compromise. These map to the smuggler's relationship with the consequences of the operation:
| Phase | Trigger | Internal State | Monologue Tone |
|---|---|---|---|
| Comfort | Default. The operation is manageable. Money helps. People are fine. | Pragmatic rationalization. "This is a service. Nobody's getting hurt." | Matter-of-fact, confident |
| Doubt | Sees the operation's human cost. Naia Tamm's worry. Maret's anxiety. Pell's terror. | Questions the rationalization. "Nobody's getting hurt — except everyone adjacent to this." | Reflective, unsettled |
| Reckoning | A specific harm: Pell disappears. Drin is broken. Naia Tamm discovers Kael's secret. The smuggler's actions contributed. | Can't rationalize. Must choose: continue, reform, or exit. | Conflicted, sharp |
| Compromise | Player choice determines resolution. Some damage is done. The question becomes: can you live with it? | Whatever the player decided, the cost is visible. | Quiet, weighted |
Every NPC's smuggler-lens section should include a note about which moral arc phase the relationship triggers or inhabits.
1c. Nils Davan Stub Page + Triangle 1 Escalation Sequence
Nils Davan Stub Page
# Nils Davan
**Off-Stage NPC** | Smuggling Ring (Coordinator) | Entangled
---
## Core Identity
**Name**: Nils Davan
**Age**: 39
**Role**: Ring coordinator (strategic — personnel, security, growth decisions)
**System Origin**: Krenn System, Station Sova (born and raised, same as Kael)
**Lattice Tier**: Standard professional
**Employer**: Self-employed (freight consulting cover); The Arrangement
(ring leadership)
**Relationship to Kael**: Older sibling
---
## Function
Nils is the ring's strategic leader — the person who decides volume,
personnel, risk tolerance. Nils brought Kael into the ring ("It's just
moving containers. You're good at logistics. We take care of our own.").
Nils pushes for escalation: higher volume, tighter margins, more profit.
This push is the primary source of tension in Triangle 1 and the catalyst
for Kael's exit attempt.
**Off-stage in v0.1.** Nils is referenced constantly but never directly
encountered by the player. Nils exists through:
- Kael's dialogue ("Nils wants the next shipment doubled")
- Voss's resentment ("Another 'adjustment' from above")
- Devra's coordination ("Nils says push the timeline forward")
- Renn's reporting ("I told Nils about Pell")
This is the GHOST pattern: absent power shaping events through influence.
---
## What the Player Knows
**Smuggler:** Knows Nils exists, knows Nils is Kael's sibling, knows Nils
gives strategic orders. May receive direct instructions from Nils via
lattice communication (voice only — Nils doesn't appear in person). The
smuggler experiences Nils as a disembodied authority figure whose decisions
create consequences the smuggler must manage.
**Detective:** Doesn't know Nils exists initially. Nils's name surfaces
through investigation: Kael's family records (lattice query), ring members'
references in overheard conversations, Pell's potential testimony. The
detective builds Nils as a conceptual entity before ever having a name —
"someone is giving orders" → "the coordinator" → "Nils Davan, Kael's
sibling."
---
## Escalation Pressure
Nils is pushing for increased volume because:
1. External demand (Sabel reports higher demand for lattice components
from other systems)
2. Profit motive (higher volume = higher margins, Nils takes the
largest cut)
3. Ambition (Nils wants to expand beyond Sova to other districts on the
station)
This escalation creates the pressure that:
- Makes Voss anxious (more schedule manipulation, more risk)
- Makes Kael desperate (higher stakes, more danger for Naia)
- Makes Pell crack (risk-to-reward ratio inverted)
- Makes the whole operation more detectable (the detective arrives
during this escalation, not by coincidence)
---
## Pattern + Motivation
**Pattern:** GHOST — absent power shaping events
**Motivation:** HANDLER — managing operations, applying pressure from above
---
**Cross-References:** [Kael Davan](kael-davan.md), [Voss](voss.md),
[Devra](devra.md), [Renn](renn.md), [Pell](pell.md)
Triangle 1 Escalation Sequence
Triangle 1 (Hub Power: Voss - Kael - Nils) is currently the weakest triangle because the smuggler role is passive — the smuggler observes tension but doesn't make decisions. Here's the escalation fork:
The Nils-vs-Voss Escalation Decision
Nils (via lattice message or Devra intermediary) orders a doubled shipment during a window when Voss has already flagged the schedule as too tight. Voss refuses to create the schedule gap. Kael is caught in the middle.
Escalation sequence (5 beats across the 30-minute session):
| Beat | Timing | Event | Smuggler Sees | Detective Sees |
|---|---|---|---|---|
| 1 | ~5 min | Nils sends order for doubled volume next cycle via Devra | Devra relays: "Nils wants double. Next cycle." Smuggler knows this means tighter windows, more risk. | Nothing visible. Normal hub operations. |
| 2 | ~10 min | Voss pushes back — refuses to rework schedule for the doubled window | Voss is visibly stressed. Clipped with Kael. "I already posted the rotation." | Voss reworks the manifest for the third time (tell). Detective notes nervous schedule adjustments. |
| 3 | ~15 min | Kael asks the smuggler for advice — THE FORK | Decision point. Kael says: "Nils wants double. Voss says no. I need to talk to one of them. Which one?" | Kael and smuggler have a private conversation the detective can't hear. Observable: Kael and an unknown colleague talking intensely near the break room. |
| 4 | ~20 min | Path A: Smuggler backs Voss → smuggler tells Kael to push back on Nils. Kael contacts Nils (via lattice), argues for maintaining current volume. Nils is unhappy. Path B: Smuggler backs Nils → smuggler tells Kael to pressure Voss. Kael pressures Voss to comply. Voss capitulates, resentfully. Path C: Smuggler stays neutral → smuggler tells Kael to handle it himself. Kael freezes, does nothing. Nils interprets silence as refusal. | Path A: Voss relaxes slightly. Manifests stabilize. But Nils has marked the smuggler as unreliable. Path B: Voss's schedule suddenly changes again. Fourth manifest revision. Detective monologue: "Something just changed. The schedule revised again — after hours." Path C: Nothing changes immediately. But the unresolved tension escalates into Beat 5. | All paths: Detective observes varying levels of hub stress. Path B is most detectable (visible schedule change). Path A is least detectable (tension decreases). Path C delays visibility to Beat 5. |
| 5 | ~25 min | Consequences arrive. Path A: Nils sends a cold message to Kael: "We'll discuss this." Kael is frightened. The smuggler realizes pushing back on Nils has consequences for Kael — and the smuggler is the one who recommended it. Path B: The doubled shipment goes through during Voss's reluctant window. Renn runs the courier route. The operation succeeds but Voss's fourth manifest revision creates a data anomaly Maret will find. Path C: Nils acts unilaterally — sends the shipment anyway, bypassing normal coordination. Devra scrambles. The operation succeeds sloppily. More detectable. | Path A: Kael is visibly shaken. Smuggler monologue: "I told Kael to push back. Now Nils is angry. Did I just put a target on Kael's back?" Path B: Smuggler monologue: "It worked. But Voss looks like he's going to break. And Maret was watching the manifests." Path C: Smuggler monologue: "I didn't decide. Nils decided for everyone. That's what happens when you don't choose." | All paths produce detective-visible signals — the question is timing and magnitude. Path B is loudest. Path C is messiest. Path A is quietest but pushes consequences to the FRIEND contradiction arc. |
Why this works: The smuggler is no longer passive. The decision has immediate consequences (Beat 4) and delayed consequences (Beat 5) that feed into other triangles. Path B feeds Triangle 2 (Maret sees the anomaly). All paths affect Kael's emotional state, which feeds Triangle 4 (Worried Partner). The detective sees the EFFECTS without understanding the cause — which is exactly how occlusion-based investigation works.
1d. Drin — Tier 2 Promotion Content
If Gestalt confirms promotion, here's what the expanded Tier 2 profile contains. Drin currently has 3 axes (Want, Routine, Personality) + voice hint + function note. Tier 2 requires all 10 axes + voice sample + dual-lens notes + triangle notes + ~40-60 authored lines.
Axes to add (7 new axes for Drin):
2. Secret / Vulnerability:
- Surface secret: Gambling debt to Harek. Known to bar regulars, not formally reported.
- Deep secret: Drin knows his inspection negligence is being used by the ring. He's not looking away by accident anymore — after the first few "coincidental" clean inspections during flagged container processing, Drin understood the pattern. He's complicit, not just negligent. The debt is the lever; the knowledge is the chain.
- Vulnerability: Double bind. Reporting his compromise exposes him to institutional consequences (negligent inspections). Not reporting makes him deeper complicit each cycle.
3. Relationships:
- Harek: Debt holder. The relationship started as friendly (card games, bar nights). The debt transformed it into a power dynamic Drin can't escape. Harek doesn't even know he's a tool — Harek thinks it's just a card game debt.
- Voss: Shift supervisor. Voss needs Drin's inspections to stay clean. Drin reads Voss's professional attention as surveillance. Every "good work, Drin" from Voss feels loaded.
- Maret Korr: Fellow hub worker. Maret processes the manifests Drin's inspections clear. They share break room time occasionally. Drin is aware that Maret is smart enough to connect his inspection reports to the manifest anomalies. He avoids prolonged interaction with her — not out of guilt, but out of fear.
4. Tolerance Threshold:
- Low and declining. The gambling debt was manageable. The inspection negligence was uncomfortable. The realization that he's actively enabling a smuggling operation has pushed Drin past functional tolerance. He's operating on routine, not commitment. One external push — the detective asking about inspection protocols, Pell approaching him for help, Harek calling in the debt — could trigger a break.
5. Daily Routine (expanded from current):
- 06:00-14:00: Day shift (maintenance rounds + dock inspections)
- Inspection windows: 3-4 per shift, scheduled by Voss. The "compromised" inspections happen during specific bay rotations that align with ring activity. Drin knows which ones. His body language changes during those inspections — faster, less thorough, eyes forward not searching.
- 10:30: Break room. Avoids Harek if present. Avoids Maret for different reasons. May eat alone.
- 14:00-16:00: Post-shift. Home or bar for card games (2x/week — the games continue because stopping would signal awareness).
- Night: Home, insomnia, reviewing what he ignored during the day.
6. Information Inventory:
- Knows: Which containers receive cursory inspections (operational awareness). Harek's debt amount and terms. Voss's schedule patterns. The maintenance corridors' physical layout (pipe access, junction boxes, environmental systems — maintenance tech knowledge). Which corridors have Meridian dead spots. Maret's increasing scrutiny of manifests (observed her checking records after his shifts).
- Doesn't know: Ring structure (Drin doesn't know names, hierarchy, or the operation's scope — only that specific containers are expected to pass). Kael's involvement (Drin works different parts of the bay). Pell, Renn, Devra (has no ring contact — the compromise flows through the debt, not through recruitment).
7. Contentment:
- Very low. Was moderate before the debt became leverage. Drin found satisfaction in maintenance work — fixing things, keeping systems running. The inspection compromise pollutes that satisfaction. Every clean report filed is a small self-betrayal. Drin's contentment trajectory: steady → declining → collapsed. He still finds momentary peace in pure maintenance tasks (pipe repair, wiring, physical work with no moral dimension).
8. Personality Traits (expanded from "quiet, methodical, avoidant"):
- Primary: Avoidant — dodges confrontation, minimizes interaction, retreats into procedural work.
- Secondary: Competent — genuinely skilled at maintenance. The competence is his last source of self-respect.
- Tertiary: Guilty — the guilt is corrosive but suppressed. Manifests as insomnia, shortened social interactions, inability to maintain eye contact during compromised inspections.
9. Tell System (new):
| Tell | Trigger | Observable To |
|---|---|---|
| Faster inspections on flagged bays | Ring-relevant containers scheduled for his inspection window | Smuggler (knows the pattern), Maret (if comparing inspection times to bay traffic), Detective (if tracking inspection duration data) |
| Avoids Harek at the bar | Debt anxiety — doesn't want casual interaction that reminds him of the leverage | Bar regulars, Detective (if tracking avoidance patterns) |
| Insomnia tells — tired eyes, slower response | Accumulated guilt disrupting sleep | Maret (works near him), Voss (notices the performance dip), anyone paying attention at the hub |
| Refuses to discuss inspection procedures | Topic triggers defensive response — "I run them by the book" | Detective (classic deflection — compare with Sera's topic avoidance), Resha (asks procedural questions, gets stonewalled) |
10. Skill Set (expanded):
- Occupational: Environmental systems maintenance, pipe/wiring repair, dock inspection protocols, equipment calibration, facility safety checks.
- Ring-relevant (involuntary): Knows which inspection windows matter, can identify containers by routing codes, understands bay access schedules.
- Combat tag: No.
- Lattice capability: Baseline.
Voice Sample (Tier 2: 2-3 lines):
Mood: Professional (baseline) "Junction 4-C has a pressure variance. I'll need 20 minutes with the coupling. Standard repair."
Mood: Evasive (pressed about inspections) "I run them by the book. Every container gets the standard check. If you've got questions about the process, talk to Voss." [Flat delivery, eye contact avoided]
Mood: Breaking (if directly confronted) "What do you want me to say? I do the inspections. I file the reports. If there's a problem, it's not — I didn't — I just do the job." [Voice cracks. Eyes down.]
Content requirement: ~40-60 authored lines
1e. Canonical Names — Which NPCs Need Them
5 NPCs already have full canonical names:
- Kael Davan
- Sera Venn
- Lera Sessik
- Torek Lintar
- Maret Korr
1 NPC gains a full name through the rename:
- Hael → Naia Tamm
1 off-stage NPC has a full canonical name:
- Nils Davan (Kael's sibling — surname established)
10 NPCs currently have first names only and need canonical surnames:
| NPC | Current Name | Proposed Full Name | Surname Source | Rationale |
|---|---|---|---|---|
| Voss | Voss | Voss Harsk | Miri's surname list | Short-form first name + consonant-heavy surname. Harsk has the authoritative weight appropriate for a shift supervisor. |
| Devra | Devra | Devra Rosta | Miri's surname list | Mid-form + fluid surname. Rosta has the off-station feel (Devra was born on Orbital Manufacturing Platform 3). |
| Resha | Resha | Resha Neven | Miri's surname list | Mid-form + softer surname. Neven feels younger, matches Resha's 23-year-old new-hire energy. |
| Renn | Renn | Renn Kosse | Miri's surname list | Short-form + double-s surname. Kosse is one of Miri's example names — works as surname for a young courier. |
| Pell | Pell | Pell Talvik | Miri's surname list | Short-form + heritage-weight surname. Talvik is an "old founding family" name per Miri — ironic for someone cracking under pressure. |
| Harek | Harek | Harek Pellam | Miri's surname list | Mid-form + institutional-feeling surname. Pellam has the station security weight. |
| Drin | Drin | Drin Vassar | Extrapolated from Krenn phonetics | Short-form + mid-weight surname. Vassar follows the consonant-vowel-consonant pattern. Not on Miri's list — propose for Miri to validate. |
| Sess | Sess | Sess Torin | Extrapolated from Krenn phonetics | Short-form + compact surname. Torin echoes the utilitarian Krenn naming style. Propose for Miri validation. |
| Olin | Olin | Olin (no surname given) | Deliberate omission | Olin is the ambiguity NPC. A drifter who doesn't volunteer a surname is itself a data point. The detective notes the missing surname; the smuggler reads it as evasion. The absence is load-bearing. |
| Sabel | Sabel | Sabel (surname unknown) | Off-station character | Sabel operates from elsewhere in the Krenn System. No one in Sova uses Sabel's surname — the transactional relationship doesn't require it. If needed later, Miri can generate one. |
| Tav | Tav | Tav Lenn | Extrapolated from Krenn phonetics | Short-form + monosyllabic surname. Tav is young and peripheral — a short, working-class name pair. Propose for Miri validation. |
Notes for Miri:
- 3 surnames are extrapolated (Vassar, Torin, Lenn) and need validation against Krenn phonetic rules.
- 2 NPCs (Olin, Sabel) deliberately omit surnames for narrative reasons.
- Olin's missing surname should be noted in the profile as a deliberate character detail, not a gap.
Implementation note: Per D-036, Krenn convention is first-name-primary in social contexts. Adding surnames does NOT change how NPCs are addressed in dialogue. Surnames appear in: profile headers, formal identification (detective lattice queries), and the player's knowledge graph when they learn the full name. Most players will never use or need the surnames — they exist for world consistency and investigative depth.
1f. Other Wiki Gaps Not in the Brief
Having reviewed all 17 NPC profiles, the 3 location files, knowledge system files, and the authoring guide, here are gaps I identified beyond what the brief covers:
Gap 1: PC-as-NPC Profiles Missing
D-029 references "PC-as-NPC Concept A for v0.1" — the other playable character exists as an NPC (~20-30 authored items). No wiki content exists for this. We need:
- A smuggler-as-NPC profile (how the detective sees and interacts with the smuggler character when not played)
- A detective-as-NPC profile (how the smuggler sees and interacts with the detective character when not played)
These are load-bearing for the dual-lens experience. The smuggler player should encounter "the Commission investigator" as a threatening NPC. The detective player should encounter "the dock worker" as an unremarkable colleague of Kael's.
Blocks: Server entity spawning, dialogue systems, monologue content about the other PC.
Gap 2: Monologue Content Pool — Zero Authored Lines
The wiki profiles contain example monologue lines (embedded in contradiction arc descriptions), but there is no monologue content file. The authoring guide (wiki/authoring/monologue-guide.md) defines the format, but no actual pool exists. Mellanie needs a minimum viable pool before the monologue system can be tested.
Blocks: Monologue system integration testing, client UI monologue display.
Gap 3: NPC Routine YAML Layer Missing
D-028 and the SUMMARY specify a 2-layer routine format: YAML (engine-readable) + prose (human-readable). The wiki has the prose layer for all NPCs (Section 5 in each profile). The YAML layer does not exist.
Blocks: Server NPC scheduling, routine deviation detection.
Gap 4: Triangle Fork Decision Points Not Mechanically Specified
Triangle 1's fork is designed above (1c). But Triangles 2-5 also need player decision points specified for both characters. Currently the triangles describe tension but not player agency. Specifically:
- Triangle 2 (Worried Knowledge): What decision does the detective make about Maret? (Approach as witness? Apply pressure? Wait?) What does the smuggler decide about Drin? (Reinforce the compromise? Try to relieve pressure?)
- Triangle 3 (Bar Tensions): What decision does either character make about Olin? (Investigate? Befriend? Ignore?) What about Torek's spending? (Smuggler: warn him? Detective: follow the money?)
- Triangle 4 (Worried Partner): Decision points exist implicitly (in the FRIEND contradiction arcs) but aren't formalized as explicit player choices.
- Triangle 5 (Informant Question): What does the smuggler decide about Pell? (Support, report, or manage?) How does the detective find Pell?
Blocks: Storyteller event triggers, dialogue branching, consequence propagation.
Gap 5: FactId Catalog — Smuggler Path Entries Sparse
The fact catalog (wiki/knowledge/fact-catalog.md) likely has detective-oriented entries (manifest discrepancies, behavioral observations). Smuggler-path FactIds need equivalent coverage: operational facts (who handles what), risk assessments, loyalty intelligence.
Blocks: Knowledge graph population for smuggler character, monologue prerequisite checking.
Gap 6: Location Files Lack Smuggler-Specific Detail
The three location files (Terminal, Last Shift, Maintenance Corridors) describe physical spaces but don't map smuggling-relevant features: dead spots, timing windows, surveillance gaps, handoff points. The smuggler experiences these spaces as an operational landscape; the locations need that layer.
Blocks: Environmental monologue triggers (smuggler entering a corridor and thinking about the operation), spatial gameplay design.
Gap 7: Harek Is Tier 2 But Missing Triangle Membership
Harek has a full Tier 2 profile (10 axes, voice sample, dual-lens notes) but is explicitly "not a triangle member." He's described as "external pressure on Drin" in Triangle 2. This is structurally odd — Harek does Tier 2 work (the leverage dynamic is essential to Triangle 2 and Triangle 5) without being IN a triangle. If Drin is promoted, Harek's role as the unseen fourth wall of Triangle 2 should be formalized — either as a triangle member or as a named structural role ("external pressure node").
Topic 2: v0.1 NPC Architecture — Pattern/Motivation Mapping
The workshop brief asks whether the existing 17 NPCs implicitly match the three-system NPC architecture. Yes — the profiles were designed before the formal system was named, but the patterns are already present. Let me make the mapping explicit.
Full NPC → Pattern + Motivation Assignment
| # | NPC | Tier | Pattern | Motivation | Implicit Evidence in Current Profile |
|---|---|---|---|---|---|
| 1 | Kael Davan | 1 | FRIEND | OPERATOR | Definitionally THE FRIEND (D-034). Runs dock operations + ring cargo handling. Competent, goal-oriented. |
| 2 | Sera Venn | 1 | FRIEND | WITNESS | Definitionally THE FRIEND (D-034). Accidentally witnessed manifest discrepancies. Carries information she can't act on. |
| 3 | Naia Tamm | 1* | MIRROR | CIVILIAN | Established as THE MIRROR (SUMMARY). No contradiction, no secret. Uninvolved in conspiracy. Living their life. |
| 4 | Voss | 2 | SYSTEM | HANDLER | Institutional embodiment — the shift supervisor IS the legitimate system. Manages operations, applies scheduling pressure. Procedure-citing under stress. |
| 5 | Lera Sessik | 2 | ANCHOR | OPERATOR | Embodies contentment — "Is this enough? Yes, if the bar stays open." Running the bar is her life. Genuine answer to the thematic question. |
| 6 | Torek Lintar | 2 | CATALYST | CIVILIAN | His spending forces others to react. Disrupts the bar's equilibrium. Not managing anything — just living visibly. The disruption is unintentional. |
| 7 | Devra | 2 | THRESHOLD | OPERATOR | Gatekeeper between the local ring and the external supply chain. Running the external coordination. The detective must get past Devra to reach the upstream network. |
| 8 | Maret Korr | 2 | WITNESS | SKEPTIC | Accidentally witnessed manifest discrepancies (parallel to Sera but from the data side). Doubts the system — the numbers don't add up, and she can't ignore them. |
| 9 | Resha | 2 | CATALYST | CIVILIAN | Her questions force hub workers to react defensively. New energy disrupting an equilibrium. Not suspicious — just curious in the wrong direction. |
| 10 | Renn | 2 | THRESHOLD | OPERATOR | Physical gatekeeper — the courier who controls corridor access. Running the transport operation. The detective must trace Renn's routes to map the physical smuggling chain. |
| 11 | Pell | 2 | CATALYST | TURNCOAT | His potential defection forces a crisis. Loyalty actively shifting. The most dangerous NPC in the ring because his decision cascades everywhere. |
| 12 | Harek | 2 | ANCHOR | HANDLER | Embodies complacent contentment — "Is this enough? Yes, absolutely." But unconsciously manages Drin through debt leverage. The comfortable man whose comfort creates a tool for others. |
| 13 | Drin | 3→2 | SYSTEM | TURNCOAT | Institutional embodiment — the dock inspector IS the inspection system. His compromise means the system itself is corrupted. Loyalty shifting under pressure (could crack and cooperate). |
| 14 | Sess | 3 | NOBODY | CIVILIAN | Social wallpaper. Sees everything, says nothing. Background that could become foreground through player investment. Living their life. |
| 15 | Olin | 3 | CATALYST | CIVILIAN | New variable forcing evaluation. Ambiguous intent creates productive uncertainty. Uninvolved (as far as anyone knows). |
| 16 | Sabel | 3 | GHOST | OPERATOR | Absent power — off-station, never fully present. Shapes events through shipments. Running the upstream supply operation. |
| 17 | Tav | 3 | NOBODY | OPERATOR | Peripheral, barely visible. Running lookout operations at the lowest level. Background ring member who the detective might never notice. |
*Naia Tamm at "Tier 1 (MIRROR)" — not THE FRIEND tier but production emotional depth.
Off-stage NPC:
| NPC | Pattern | Motivation | Notes |
|---|---|---|---|
| Nils Davan | GHOST | HANDLER | Absent authority applying pressure through intermediaries. Classic GHOST+HANDLER composition. |
Pattern Coverage Analysis
| Pattern | v0.1 Count | NPCs | Notes |
|---|---|---|---|
| FRIEND | 2 | Kael, Sera | Core v0.1 requirement (D-034) |
| MIRROR | 1 | Naia Tamm | First MIRROR instance |
| ANCHOR | 2 | Lera, Harek | Both embody "is this enough?" differently |
| GHOST | 2 | Sabel, Nils | Both off-stage — absent power |
| CATALYST | 3 | Torek, Resha, Olin (+ Pell) | Pell is CATALYST by effect, TURNCOAT by motivation |
| THRESHOLD | 2 | Devra, Renn | Both gatekeep access to the operation |
| SYSTEM | 2 | Voss, Drin | Both ARE institutional processes (scheduling, inspection) |
| NOBODY | 2 | Sess, Tav | Minimum viable NOBODY presence |
| REMNANT | 0 | — | Not represented in v0.1. No character embodies "remembers when things were different." Acceptable — REMNANT is a long-game pattern that requires historical depth v0.1 doesn't have. |
Missing: REMNANT. This is fine for v0.1. Sova Transit District is 40 years old — there's no deep history for a REMNANT to remember. REMNANT patterns belong on older worlds (mature/ancient drift stages) where someone lived through the founding generation.
Motivation Coverage Analysis
| Motivation | v0.1 Count | NPCs |
|---|---|---|
| HANDLER | 3 | Voss, Harek, Nils |
| WITNESS | 2 | Sera, Maret |
| TURNCOAT | 2 | Pell, Drin |
| CIVILIAN | 5 | Naia Tamm, Torek, Resha, Olin, Sess |
| OPERATOR | 5 | Kael, Lera, Devra, Renn, Tav |
| SKEPTIC | 1 | Maret |
SKEPTIC is underrepresented. Only Maret doubts the system. But this is mechanically correct — Sova's culture is pragmatic, mind-your-business. Questioning is rare. The detective IS the external skeptic. One internal SKEPTIC (Maret) is enough for v0.1.
Composition Highlights
The most dramatically rich compositions in v0.1:
| Composition | NPC | Why It Works |
|---|---|---|
| FRIEND+OPERATOR | Kael | "I was your friend AND I was running the operation you're investigating." Identity betrayal at maximum. |
| FRIEND+WITNESS | Sera | "I was your friend AND I was sitting on evidence the whole time." Concealment as betrayal. |
| MIRROR+CIVILIAN | Naia Tamm | "I was the one innocent person, and the conspiracy touched me anyway." Innocence endangered. |
| SYSTEM+TURNCOAT | Drin | "The system itself is corrupt, and the person embodying it might break." Institutional rot. |
| CATALYST+TURNCOAT | Pell | "The person forcing the crisis is the person whose loyalty is shifting." Maximum instability. |
| GHOST+HANDLER | Nils | "The invisible authority whose pressure creates every visible consequence." Classic absent power. |
| ANCHOR+HANDLER | Harek | "The comfortable man whose comfort creates tools for others." Unconscious complicity. |
Topic 5: Scope Boundary — What Content Is Missing That Blocks Implementation?
Content that MUST be authored before coding starts
These are items where the server or client team cannot proceed without authored content:
| # | Missing Content | Blocks | Priority | Team |
|---|---|---|---|---|
| 1 | Smuggler-lens sections for all 17 NPC profiles | Smuggler character knowledge graph population, dual-lens monologue selection, smuggler EntityKnowledge examples | Critical | Copy (Paula + Mellanie) |
| 2 | PC-as-NPC profiles (smuggler seen by detective, detective seen by smuggler) | Server entity spawning for second character, dialogue with other PC, monologue about other PC | Critical | Copy (Paula) |
| 3 | Minimum monologue pool (~50-80 lines per character) | Monologue system integration testing, client UI display, tag taxonomy validation | Critical | Copy (Mellanie) |
| 4 | NPC routine YAML layer (engine-readable schedules for all 17 NPCs) | Server NPC scheduling, routine-based movement, deviation detection | Critical | Copy (Paula) + Server (Dudley) format spec |
| 5 | Triangle fork decision points (mechanically specified for all 5 triangles) | Storyteller event triggers, dialogue branching, consequence system | High | Copy (Paula + Gestalt) |
| 6 | Smuggler EntityKnowledge attribute definitions (8 new keys) | Smuggler knowledge graph implementation, smuggler monologue prerequisites | High | Copy (Paula) + Server (Dudley) |
| 7 | FactId catalog — smuggler path entries | Knowledge graph population, monologue prerequisite validation | High | Copy (Paula) |
| 8 | Content file schema (wiki → engine-readable format) | Content loader development, hot-reload testing | High | Tyre + Dudley |
| 9 | Location files — smuggler operational layer (dead spots, timing windows, handoff points) | Environmental monologue triggers, spatial gameplay, smuggler navigation | Medium | Copy (Paula + Miri) |
| 10 | Naia Tamm MIRROR-depth content (~50-70 authored lines) | MIRROR pattern validation, emotional baseline testing | Medium | Copy (Mellanie) |
| 11 | Nils Davan stub (as designed in 1c above) | Triangle 1 fork implementation, GHOST pattern reference | Medium | Copy (Paula) — draft provided above |
| 12 | Drin Tier 2 expansion (if promoted) | Triangle 2 + Triangle 5 implementation, TURNCOAT pattern testing | Medium | Copy (Paula) — draft provided above |
Content that is nice-to-have but does NOT block implementation
- Full canonical names (surnames) — cosmetic, knowledge graph uses canonical_id not surnames
- NOBODY tier promotion content — explicitly OUT for v0.1
- Archetype transition mechanics — v0.2+
- Secondary contraband variation — deferred
- Gate topology — not relevant to single-district v0.1
The honest truth about the gap
The wiki is detective-complete and smuggler-incomplete. Every NPC profile has a "How the Detective Sees [NPC]" section that provides enough mechanical detail for implementation. The smuggler sections are 1-2 sentence monologue notes. This means the server team could build and test the detective's knowledge graph, monologue system, and interaction model from existing content. They CANNOT do the same for the smuggler.
The smuggler-lens content is the single largest content gap blocking v0.1 implementation. It's not a small fix — it requires adding structured operational data, moral arc phases, and smuggler-specific EntityKnowledge attributes to every NPC profile. Estimated scope: 17 NPC profiles x ~30 minutes of writing each = ~8-10 hours of focused copy work.
But what SUSTAINS that across hours of play is the smuggler moral arc. The detective has a clear progression (investigate → discover → confront → resolve). The smuggler needs an equally clear progression (participate → doubt → reckon → compromise). Every NPC interaction should advance or complicate one of those phases. The smuggler-lens sections need to map every NPC to a moral arc phase, not just an operational assessment.
Let me complicate this further: the smuggler and detective paths aren't just parallel — they're entangled through the NPCs. When the smuggler makes a decision about Pell (Triangle 5), the consequences affect what the detective sees when investigating Pell's disappearance. When the detective pressures Maret (Triangle 2), the smuggler sees Maret's increased anxiety. The cross-character consequence propagation is the v0.1 proof of concept. If we ship smuggler content that doesn't map to detective consequences (and vice versa), we've built two separate games in the same district, not one occlusion-based experience.
Recommendation: Prioritize items 1-4 (smuggler-lens, PC-as-NPC, monologue pool, routine YAML) as Sprint 3 copy team deliverables. Items 5-7 can proceed in parallel with server architecture work. Items 8-12 are dependencies that should be ticketed and scheduled.