Long-term content strategy workshop: 300-world generator model, cultural ingredients menu, three-system NPC architecture (9 patterns x 6 motivations), Sacred/Profane/Middle Kingdom framework. 9 agents across 4 rounds plus lead interview establishing the production path from hand-authored Sova to generated 300 worlds. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
30 KiB
Round 1 — Paula (Librarian)
Topics: 1 (Trade-offs), 2 (Tier Templates), 3 (Naming Patterns), 6 (PC Upgrade Fields)
Topic 1: Trade-offs and Honest Assessment
I authored most of the NPC profiles, the triangle system, the knowledge vocabulary (fact catalog, entity attributes, relationship states), and coordinated the overall wiki structure. Let me be honest about what's strong, what's weak, and what I compromised on.
What works well
-
THE FRIEND profiles are production-ready. Kael and Sera both follow the same 5-phase contradiction arc but with genuinely different discovery mechanics (spatial deviation vs. cumulative pattern recognition). The structural parallelism is intentional — it creates a reusable pattern while the content diverges. I'm confident these carry D-027 success criterion #3 ("player names an NPC they felt conflicted about").
-
The triangle system creates real interconnection. Five triangles across three social sites with six bridge NPCs means tension propagates. Triangle 4 (Worried Partner) is the structural masterpiece — both FRIEND NPCs are nodes in it, connected through Hael. Every thread passes through this triangle eventually.
-
The knowledge vocabulary maps cleanly to the tag taxonomy. FactIds, entity attributes, and relationship states were designed in tandem with D-035. The confidence progression (Suspects → KnowsOf → KnowsDetails → Direct) gives content authors a clear framework for gating dialogue and monologue.
Where I made compromises
| Area | Compromise | Why | Impact |
|---|---|---|---|
| Tier 2 depth | Depth varies across 10 NPCs. Voss and Lera are nearly Tier 1 quality. Hael and Harek are thinner. | Time pressure. I wrote the highest-narrative-impact NPCs first and sketched the rest. | Authors replicating Tier 2 profiles don't know what "standard" looks like — is Voss the norm or the exception? |
| The Nils problem | Nils Davan is referenced in 5+ profiles but has no wiki page. | Nils is off-stage in v0.1. I treated off-stage characters as "referenced not instantiated." | No canonical reference for a character who drives Triangle 1 and the ring's power structure. Risk of contradictory Nils characterizations across files. |
| Knowledge attributes are detective-biased | tell_observed, contradiction_flagged, secret_held — these are investigation tools. The smuggler's knowledge model is underspecified. |
I wrote from investigation outward. The detective's knowledge needs were clearer mechanically. | The smuggler tracks different things: operational reliability, loyalty risk, exposure potential. These need their own attribute keys. |
| FactId catalog is discovery-shaped | Most FactIds assume a discovery arc (Suspects → KnowsDetails). The smuggler starts at KnowsDetails for many. | The detective's progression was the clearer authoring target. | Smuggler's progression text reads oddly. We need smuggler-specific "degradation" or "recalibration" text for facts they already know but whose reliability changes. |
| Triangle 3 is the weakest | Lera-Torek-Olin lacks emotional weight. Olin is "ambiguous newcomer" and that's it. | Olin was added to fill a role (the outsider who asks questions) without enough backstory to make the questions interesting. | Triangle 3 is mechanically functional but emotionally flat compared to 1, 2, 4, and 5. |
| No starting knowledge per PC | Wiki describes what NPCs know, but not what the player character knows at game start. | PC-as-NPC concept was still being designed. | Critical gap for Topic 6 below. The NPC profiles need an explicit "this is what you know on Day 1" section for PC-upgradable characters. |
What's weakest — the honest truth
The smuggler's content pipeline is systematically under-served compared to the detective's.
The detective has: analytical lattice overlays, pattern recognition mechanics, tell observation tools, FactId discovery arcs, investigation-specific entity attributes. The smuggler has: operational knowledge... and not much else mechanically.
This isn't a content failure — it's an architectural imbalance that happened because investigation is mechanically simpler to model than social/operational navigation. "Notice a pattern → flag it → investigate" maps to clear data structures. "Navigate social tensions → maintain cover → manage risk" requires social simulation mechanics that don't have the same vocabulary yet.
But what SUSTAINS the smuggler experience across hours of play is feeling embedded — knowing people, reading rooms, managing relationships. The wiki captures this narratively (Kael's dual-lens notes, Lera's protective instincts, the smuggler monologue tone) but doesn't give it mechanical teeth the way the detective's investigation arc has mechanical teeth.
Concrete proposal: We need a smuggler-specific attribute vocabulary parallel to the detective's investigation attributes. Something like:
| Smuggler Attribute Key | Purpose | Example |
|---|---|---|
operational_reliability |
How dependable is this NPC for ring work? | "reliable", "compromised", "wavering" |
exposure_risk |
How likely is this NPC to blow cover? | "low", "escalating", "critical" |
loyalty_assessment |
Smuggler's read on this NPC's allegiance | "solid", "uncertain", "turning" |
leverage_held |
What does the smuggler know that gives power over this NPC? | "gambling debt", "family secret", "none" |
social_debt |
Who owes whom, in informal terms | "they owe me", "I owe them", "mutual" |
This would give the smuggler's knowledge model parity with the detective's.
What I'd change with more time
- Normalize Tier 2 depth — every Tier 2 should hit the same quality bar, not vary from "nearly Tier 1" to "barely above Tier 3"
- Add stub pages for off-stage characters — Nils at minimum, potentially Sabel and Kosse
- Flesh out Olin — give them an actual backstory that explains the questioning behavior (job seeker? informant for a rival operation? genuinely lost?)
- Write smuggler-perspective progression text for all FactIds where the smuggler starts at KnowsDetails
- Add explicit "starting knowledge" inventories for both PC-upgradable characters
Topic 2: Tier Template Formalization
Assessment: Are current templates replicable?
Tier 1: Mostly replicable, but implicit. The Kael and Sera profiles are detailed enough to reverse-engineer the pattern, but the PATTERN itself isn't documented as a standalone template. An author would have to read both profiles side-by-side and figure out the structure themselves. The 5-phase contradiction arc (comfort → first crack → observation → confrontation → new equilibrium) is embedded in examples, not stated as a rule.
Tier 2: Inconsistent reference. Voss is the best example but is over-specced for what the deliverables section promises. The npcs/index.md says "10-axis data (all axes populated), voice sample (2-3 lines), dual-lens notes (brief), triangle role notes." Voss delivers this. But Hael and Harek have notably less. An author looking at different Tier 2 pages gets different standards.
Tier 3: Misleading example. Drin has a detailed "Function Note" explaining his structural role in triangles. He's a Tier 3 NPC doing Tier 2 work in terms of narrative importance. Meanwhile Sess, Tav, and Olin are genuinely thin. The template says "essential axes only (Want, Routine, Personality), voice hint, function note" — but Drin's function note is 4 sentences and structurally complex, while Tav's is 2 sentences.
What's implicit that should be explicit
| Convention | Currently | Should Be |
|---|---|---|
| Voice sample mood count | Tier 1: 5, Tier 2: 2-3, Tier 3: 1 | Specified per tier with mood category list |
| Dual-lens format | Varies: some use monologue quotes, some don't | Standardized: Smuggler: [1-2 sentences]. *"Monologue example."* |
| Cross-references | Inconsistent — some pages list 4-5, some list 1 | Required: all NPCs mentioned in the profile get a cross-reference link |
| Relationship depth per tier | Tier 1: full paragraph per relationship. Tier 2: varies wildly. | Specified: Tier 1 = paragraph + history + tension + mechanical relevance. Tier 2 = 2-3 sentences per relationship. |
| Contradiction arc | Only Tier 1 has explicit arcs | Should specify: Tier 1 = 5-phase arc. Tier 2 = no formal arc, but secret has consequences if exposed. Tier 3 = no arc. |
| Header block format | `Tier N NPC | Location |
| "Per character" monologue counts | Kael: 10-15 per character. Tier 2: ambiguous. | Specify: Tier 1 = 10-15 per PC. Tier 2 = 5-8 per PC. Tier 3 = 0 named monologue (generic monologue only). |
Proposed Formal Templates
Tier 1 Template (THE FRIEND / Production-Level NPC)
# {NPC Name} — {Designator} ({Character})
**Tier 1 Production-Level NPC** | {Primary Social Site} + {Secondary} | {Entangled/Mundane}
---
## Core Identity
**Name**: {Full name}
**Age**: {Number}
**Role**: {Occupation, location}
**System Origin**: {System, station/planet, birth/transfer details}
**Cultural Group**: {Regional culture reference}
**Lattice Tier**: {Baseline/Standard/Enhanced}
**Employer**: {Legitimate employer; {Informal affiliation} if applicable}
---
## 10-Axis Profile
### 1. Want
**Primary**: {1 sentence summary}
{2-3 paragraphs: history, current state, trajectory}
**Secondary**: {1 sentence summary}
{1-2 paragraphs: relationship to primary want, tension}
### 2. Secret / Vulnerability
**Surface secret** ({who knows}): {1-2 sentences}
**Deep secret** ({who knows}): {2-3 sentences}
**Vulnerability**: {1-2 sentences — what breaks them}
### 3. Relationships
**Relationship 1: {Name}** ({type})
- **Type**: {Category}
- **History**: {2-3 sentences}
- **Current tension**: {2-3 sentences}
- **Mechanical relevance**: {1-2 sentences}
{Repeat for Relationships 2 and 3}
### 4. Tolerance Threshold
**{Level}** — {1 sentence summary}
**What {Name} tolerates**: {Bulleted list, 3-4 items}
**What pushes toward breaking**: {Bulleted list, 3-4 items}
**What breaks {Name}**: {Bulleted list, 2-3 items}
### 5. Daily Routine
{Time-block schedule, 8-10 entries}
**Routine deviations** (tells):
{Bulleted list, 3-4 items with mechanical context}
### 6. Information Inventory
**Knows** ({confidence level}): {Bulleted list, 6-8 items}
**Doesn't know**: {Bulleted list, 4-6 items}
### 7. Contentment
**{Level}** ({reference D-024}).
{2-3 sentences: current state}
**Contentment trajectory**: {1-2 sentences: direction and cause}
### 8. Personality Traits
**Primary: {Trait}** — {2-3 sentences}
**Secondary: {Trait}** — {2-3 sentences}
**Tertiary: {Trait}** — {2-3 sentences}
### 9. Tell System
| Tell | Trigger | Observable To | Mechanical Flag |
|------|---------|---------------|-----------------|
| **{Tell name}** | {Trigger condition} | {Who can see it} | `{flag key: value}` |
{4 tells minimum}
**Tell progression** ({character}'s perspective):
{Numbered list, 4-5 stages with timing and monologue examples}
### 10. Skill Set
**Occupational**: {List}
**{Role}-relevant**: {List}
**Combat tag**: **{Yes/No}**. {1 sentence context}
**Lattice capability**: {Tier + description of what it enables}
---
## Backstory
{1 paragraph, 3-5 sentences. Birth → career → current situation → why they're here now.}
---
## Voice Sample
{5 moods minimum. Each: mood label, 1-2 lines, stage direction in brackets.}
---
## Dual-Lens Notes
### How the {Character A} Sees {NPC Name}
**Access tier**: {Starting tier} → {Progression tier}
**Relationship**: {Starting state} → {Progression state}
**Monologue tone (baseline)**: {Description}. *"{Example line.}"*
**Monologue tone (post-contradiction)**: {Description}. *"{Example line.}"*
**What {Character A} knows that {Character B} doesn't**: {2-3 sentences}
**Emotional weight**: {Assessment + why}
### How the {Character B} Sees {NPC Name}
{Mirror structure}
---
## Triangle Roles
### {Triangle Name} ({Members})
**{NPC Name}'s function**: {1-2 sentences}
**Pressure**: {2-3 sentences}
**Player relevance**: {1-2 sentences per character}
{Repeat for each triangle membership}
---
## Secret
**What {Name} is hiding**: {1 sentence}
**From whom**: {List}
**Consequences if exposed**: {Per-discoverer list, 2-3 sentences each}
---
## Contradiction Arc
### Phase 1: {Label} ({RelationshipState}, baseline)
**Timing**: {Minutes}
**Observable behavior**: {2-3 sentences}
**Monologue ({character})**: *"{Example}"*
**Color**: {Color} ({State})
**Dialogue tone**: {Description}
**Tell**: {None or specific tell}
{Repeat for Phases 2-5}
---
## Content Requirements (Tier 1)
**~70-100 authored lines total** (no generation expansion):
{Breakdown by category with counts}
---
## Authoring Notes
{5-7 bulleted guidelines for voice, pacing, dual-lens discipline, and key moments}
Tier 2 Template (Working Profile NPC)
# {NPC Name}
**Tier 2 NPC** | {Primary Social Site} | {Entangled/Mundane}
---
## Core Identity
**Name**: {Full name or single name}
**Age**: {Number}
**Role**: {Occupation, location}
**System Origin**: {System, station/planet}
**Lattice Tier**: {Level}
**Employer**: {Employer(s)}
---
## 10-Axis Profile
### 1. Want
**Primary**: {1 sentence}
{1-2 paragraphs}
**Secondary**: {1 sentence}
{1 paragraph}
### 2. Secret / Vulnerability
**Surface secret**: {1-2 sentences}
**Deep secret**: {1-2 sentences}
**Vulnerability**: {1 sentence}
### 3. Relationships
{2-3 relationships, each 2-3 sentences covering type, current tension, and mechanical relevance}
### 4. Tolerance Threshold
**{Level}**. {2-3 sentences covering what they tolerate and what breaks them.}
### 5. Daily Routine
{Time-block schedule, 5-7 entries. Ring operations noted if applicable.}
### 6. Information Inventory
**Knows**: {Bulleted list, 4-6 items}
**Doesn't know**: {Bulleted list, 3-4 items}
### 7. Contentment
**{Level}**. {2-3 sentences.}
### 8. Personality Traits
**Primary: {Trait}** — {1-2 sentences}
**Secondary: {Trait}** — {1 sentence}
**Tertiary: {Trait}** — {1 sentence}
### 9. Tell System
| Tell | Trigger | Observable To |
|------|---------|---------------|
{2-3 tells. No mechanical flag column — Tier 2 tells are authored, not system-flagged.}
### 10. Skill Set
**Occupational**: {List}
**Combat tag**: **{Yes/No}**.
**Lattice capability**: {Level}.
---
## Voice Sample
{2-3 moods. Each: mood label, 1-2 lines.}
---
## Dual-Lens Notes
**Smuggler**: {2-3 sentences}. *"{Monologue example.}"*
**Detective**: {2-3 sentences}. *"{Monologue example.}"*
---
## Triangle Roles
**{Triangle Name} ({Members})** — {2-3 sentences covering function and pressure.}
{Repeat for each triangle membership.}
---
**Cross-References:** {Links to all NPCs mentioned in this profile}
Tier 3 Template (Sketch NPC)
# {NPC Name}
**Tier 3 NPC** | {Primary Social Site} | Flat
---
## Essential Axes
### Want
{2-3 sentences. What drives them and why they're here.}
### Routine
{4-5 line time-block schedule.}
### Personality
**{2-3 trait words, comma-separated.}** {3-4 sentences expanding the traits.}
---
## Voice Hint
*"{Single representative line.}"* [{Stage direction}]
---
## Function Note
{2-4 sentences. Why this NPC exists in the district. Atmospheric role. Potential for Tier 2 upgrade if development warrants.}
---
## Dual-Lens Notes
**Smuggler**: {1-2 sentences}. *"{Monologue fragment.}"*
**Detective**: {1-2 sentences}. *"{Monologue fragment.}"*
---
**Cross-References:** {Links to connected NPCs}
Key rules the templates make explicit
- Tier 1 requires mechanical flag column in tells. Tier 2 does not. This reflects the system depth difference — Tier 1 tells drive engine behavior, Tier 2 tells are authored flavor.
- Dual-lens notes always include a monologue example. Not optional. The italicized quote is how we verify voice consistency.
- Cross-references are mandatory at every tier. Every NPC mentioned in the profile gets a link in the footer.
- Contradiction arcs are Tier 1 only. Tier 2 NPCs have secrets with consequences, but no formal phased arc.
- Content line counts are Tier 1 only in the profile. Tier 2 and Tier 3 counts are specified in npcs/index.md deliverables section, not in individual profiles.
Topic 3: Naming Conventions and Patterns
Current naming analysis
| NPC | Full Name | Single Name | Tier | Notes |
|---|---|---|---|---|
| Kael Davan | x | 1 | Family name: Davan (shared with Nils) | |
| Sera Venn | x | 1 | Family name: Venn | |
| Voss | x | 2 | No family name given | |
| Lera Sessik | x | 2 | Family name: Sessik | |
| Torek Lintar | x | 2 | Family name: Lintar | |
| Devra | x | 2 | No family name given | |
| Maret Korr | x | 2 | Family name: Korr | |
| Resha | x | 2 | No family name given | |
| Hael | x | 2 | No family name given | |
| Harek | x | 2 | No family name given | |
| Renn | x | 2 | No family name given | |
| Pell | x | 2 | No family name given | |
| Drin | x | 3 | No family name given | |
| Sess | x | 3 | No family name given | |
| Olin | x | 3 | No family name given | |
| Sabel | x | 3 | No family name given | |
| Tav | x | 3 | No family name given |
Family name distribution: 5 of 17 NPCs (29%) have family names. All Tier 1 NPCs have them. 3 of 10 Tier 2 NPCs (Lera, Torek, Maret). Zero Tier 3 NPCs.
What was intentional
-
D-036 convention: "Compact, consonant-heavy, first-name-primary in social contexts." This was the guiding principle. First-name-primary means family names exist but aren't used socially.
-
Phonological palette: Short, hard-consonant names. Mostly monosyllabic (Voss, Drin, Sess, Renn, Pell, Tav, Hael) or disyllabic (Kael, Sera, Lera, Torek, Devra, Maret, Resha, Harek, Sabel, Olin). The longest name is "Torek Lintar." This was intentional — Krenn System culture is pragmatic and compact, so names should be too.
-
Family names for institutionally visible characters: Kael Davan (the detective looks up "Davan, K." in records), Sera Venn (Commission employee — institutional records use full names), Lera Sessik (business owner — license is under a full name), Torek Lintar (dock worker with institutional records), Maret Korr (freight scheduler — manifest system uses full names).
What was accidental
-
Name-as-tier-signal: I didn't intend for full names to correlate with narrative importance, but they do. An attentive player could metagame: "Torek Lintar has a last name, so he matters more than Renn." This is a problem.
-
The "-el" cluster: Kael, Hael, Sabel all end in "-el." Kael and Hael are partners — was the sonic echo intentional? Partially. I wanted the names to feel like they belonged to the same culture. But three "-el" names in 17 is a high density and could cause confusion, especially Kael/Hael (one letter apart).
-
Missing cultural specificity: D-036 says "Krenn System conventions" but doesn't specify the real-world linguistic roots. The names feel vaguely Northern European / Scandinavian, but this is accidental similarity, not intentional derivation. We need Miri to ground this.
How naming affects NPC authoring
Let me complicate this by noting three ways naming conventions impact the authoring pipeline:
1. Institutional vs. social context switching. Characters need different name rendering depending on context:
- Detective's lattice query:
"Davan, K. — dock worker, Sova Logistics Consortium" - Smuggler's internal monologue:
"Kael's already at the dock." - Formal Commission report:
"Sera Venn, Field Technician, Lattice Commission" - Bar greeting:
"There you are, Sera."
The knowledge system handles this via the name entity attribute (full name vs. first name vs. descriptor). But content authors need to know WHEN each form is appropriate. A style guide should specify: institutional/formal contexts use full name or "Family, Initial"; social contexts use first name only; unknown NPCs use role descriptor.
2. Family name generation for single-name NPCs. Every NPC SHOULD have a family name in the canonical record, even if it's never used socially. The detective's lattice queries need full names. The randomizer needs family name pools. Right now, Voss has no family name — but if the detective runs a lattice query, what comes back? We need family names for all 17 NPCs, stored as canonical data even if players rarely see them.
3. The Davan family. Kael Davan and Nils Davan share a family name because they're siblings. This establishes that shared family names indicate blood relation. Do any other NPCs share families? Currently no — but if we generate more NPCs, the family name system needs rules about how common shared names are.
Proposal
- All NPCs get canonical full names. Store in the Core Identity block. Social-context rendering remains first-name-only for most.
- Document the phonological rules. Work with Miri to define: syllable count range (1-2), consonant preferences (hard stops: k, t, d, v, s), vowel preferences (a, e, i — fewer o/u), family name patterns (2 syllables, "-ar"/"-ik"/"-en"/"-or" endings common).
- Break the name-as-tier-signal. Give at least 2-3 additional Tier 2 and Tier 3 NPCs contexts where their full names surface naturally (lattice queries, workplace rosters, posted schedules).
Topic 6: PC Upgrade Fields
The concept
"PC-as-NPC" means: an NPC brief is the seed for a player character. The NPC exists in the world as a person with a name, job, relationships, and knowledge. When the player starts a game, one NPC is "upgraded" to playable status — their brief becomes the player's starting conditions.
For v0.1, the two PC-upgradable NPCs are implicit: the smuggler (a ring-affiliated dock worker) and the detective (a Commission investigator arriving in the district). Neither currently has an NPC page because they ARE the player. But for the randomizer concept (Topic 6 in the workshop brief) and for future districts, we need a formal upgrade path.
Required fields (must exist in NPC brief for PC upgrade)
| Field | Source in NPC Brief | Becomes in PC Brief | Notes |
|---|---|---|---|
| Name | Core Identity: Name | Player character name | Player may or may not be able to change this |
| Age | Core Identity: Age | Character context | Affects monologue voice |
| Role | Core Identity: Role | Starting position, job, daily access | Determines which locations the PC enters naturally |
| System Origin | Core Identity: System Origin | Cultural background, knowledge base | Affects dialogue access tiers with NPCs |
| Lattice Tier | Core Identity: Lattice Tier | Perception mode capabilities | Directly impacts gameplay via D-017 |
| Employer | Core Identity: Employer | Social cover, institutional access | Determines faction tag for access tier logic |
| Want (Primary) | Axis 1: Want | Orientation monologue seed | "You're here because..." — the game's opening internal voice |
| Want (Secondary) | Axis 1: Want | Emotional anchor | The personal stake that makes the job personal |
| Relationships (all) | Axis 3: Relationships | Starting RelationshipState entries | Each relationship becomes an EntityKnowledge entry with state = Friendly/Known |
| Daily Routine | Axis 5: Routine | Expected schedule | The player's "normal" — deviations from this are player agency |
| Information Inventory | Axis 6: Info Inventory | Starting knowledge graph | Critical. Every "Knows" item becomes a FactId at the appropriate confidence level. Every "Doesn't know" item is absent from the graph. |
| Faction | Inferred from employer/role | Access tier map | Determines which NPCs treat the PC as insider/peer/authority/outsider |
Optional fields (can be generated, player-chosen, or derived)
| Field | Status | Reasoning |
|---|---|---|
| Secret / Vulnerability | Partially required | The PC needs a starting secret — but this is a DESIGN QUESTION. Does the player know their character's secret from the start? Or do they discover it through play? For the smuggler, ring membership IS the secret (known to player, hidden from NPCs). For the detective, the secret might be personal (why you really requested this posting). |
| Contentment | Generated | Starting contentment sets mood but player behavior changes it immediately. Can be derived from Want + Relationships. |
| Personality Traits | Player-chosen or preset | Traits affect monologue voice. Could be: (a) fixed per archetype, (b) player-selected from a pool, (c) expressed through early-game choices. I recommend (a) for v0.1. |
| Tell System | Inverted | PCs don't have tells — the player controls behavior. BUT: other NPCs may have pre-existing observations about the PC. "You always check your lattice before lying" — the NPC knows your tell even if you (the player) don't. This is powerful for the smuggler path. |
| Skill Set | Derived from role | Generated from archetype. Smuggler: logistics, routing, social navigation. Detective: analytical lattice, pattern recognition, institutional access. |
| Combat tag | Derived from role | Binary, archetype-determined. |
New fields needed for PC (not in standard NPC brief)
| Field | Purpose | Example |
|---|---|---|
| Starting EntityKnowledge entries | Explicit list of every NPC the PC already knows, with RelationshipState, known_attributes, and confidence level | {target: "kael_davan", state: Friendly, confidence: KnowsDetails, attributes: {name: "Kael Davan", role: "dock worker", trust_level: "trusted"}} |
| Starting FactId inventory | Which facts the PC has at game start, at what confidence level | {fact: "contraband.ring_exists", confidence: KnowsDetails} (smuggler) vs. {fact: "contraband.ring_exists", confidence: null} (detective) |
| Access tier map | Default access tier granted by each known NPC | {kael_davan: insider, voss: peer, lera: peer} (smuggler) |
| Orientation monologue pool | 5-10 lines: "You are X, you work at Y, this is your life" | Played during the first 2-3 minutes. Establishes voice, context, emotional state. |
| Reversed dual-lens notes | How every known NPC sees the PC | Standard NPC brief has "how the smuggler sees Kael." PC brief needs "how Kael sees the smuggler." These are the SAME data, inverted. |
| Agency boundaries | What the PC can and can't do without breaking character | Smuggler: can't access Commission systems. Detective: can't participate in ring operations without narrative justification. These are soft constraints, not hard locks. |
The conversion process: NPC Brief to PC Brief
Step 1: EXTRACT starting knowledge
- Information Inventory "Knows" → FactId entries at appropriate confidence
- Relationships → EntityKnowledge entries with RelationshipState + attributes
- Routine → temporal knowledge (shift schedules, social patterns of others)
Step 2: GENERATE starting data
- Contentment from Want + Relationships
- Skill set from Role + Employer
- Combat tag from archetype
- Access tier map from Faction + Relationships
Step 3: INVERT dual-lens
- For every NPC that has dual-lens notes about this character:
"How the smuggler sees Kael" → "How Kael sees [PC]"
- This requires every NPC profile to include a note about the PC
Step 4: AUTHOR PC-specific content
- Orientation monologue (5-10 lines)
- Starting monologue pool (character voice)
- Agency boundaries
- Want as player motivation prompt
Step 5: VALIDATE knowledge graph consistency
- PC's starting knowledge must not contradict any NPC's Information Inventory
- If PC "Knows" X about NPC, that NPC's "From whom" section must include PC
- If NPC "Doesn't know" Y, PC's knowledge of Y must not be directly observable to NPC
What this means for the current wiki
The v0.1 smuggler and detective don't have NPC pages — they're players, not NPCs. But for the PC-as-NPC concept to work, we need:
-
An NPC-format brief for both PCs. Not a full Tier 1 profile (the player IS the personality), but at minimum: Core Identity, Starting Relationships, Starting Knowledge, Daily Routine, Role, and the inverted dual-lens notes from all NPCs who know the PC.
-
A "PC Upgrade" appendix on every Tier 1 and Tier 2 NPC profile. A section that says: "If this NPC were upgraded to PC, here's what the starting knowledge graph looks like." This makes the randomizer concept concrete — you can point at any Tier 2 NPC and say "this person is now the player."
-
A documented conversion checklist that content authors follow when creating a new PC-upgradable NPC, ensuring all required fields exist and the knowledge graph is consistent.
The honest truth is that this is the largest gap in the current wiki. We describe NPCs beautifully but have no formal bridge between "NPC as written" and "NPC as played." Closing that gap is prerequisite to the randomizer and to scaling beyond v0.1's two hand-crafted player characters.
Summary of Proposals
| # | Proposal | Priority | Blocks |
|---|---|---|---|
| 1 | Add smuggler-specific entity attribute keys (operational_reliability, exposure_risk, etc.) | High | Smuggler content authoring parity |
| 2 | Create stub wiki pages for off-stage referenced NPCs (Nils, at minimum) | Medium | Cross-reference consistency |
| 3 | Formalize Tier 1/2/3 templates as standalone style guide docs | High | All future NPC authoring |
| 4 | Add canonical full names to all single-name NPCs | Medium | Lattice query consistency, randomizer |
| 5 | Document phonological naming rules with Miri | Medium | Regional style guide, future NPC generation |
| 6 | Break name-as-tier-signal by surfacing full names for 2-3 lower-tier NPCs | Low | Metagaming prevention |
| 7 | Create NPC-format briefs for both v0.1 PCs (smuggler + detective) | High | PC-as-NPC concept, YAML generation |
| 8 | Add "PC Upgrade" appendix to Tier 1/Tier 2 NPC template | High | Randomizer, scaling |
| 9 | Document NPC → PC conversion checklist | High | Content pipeline |
| 10 | Flesh out Olin with actual backstory and motivation | Medium | Triangle 3 emotional weight |
| 11 | Normalize Tier 2 depth across all 10 profiles | Medium | Authoring consistency |
| 12 | Write smuggler-perspective FactId progression text | Medium | Dual-lens content parity |