Files
settled-reach/docs/workshops/wiki-review/round3-si.md
T
jpmschweitzer 23d9ff0a58 Merge remote-tracking branch 'origin/main' into planning
# Conflicts:
#	CHANGELOG.md
#	content/_meta/README.md
#	content/_meta/npc-authoring-style-guide.md
#	wiki/_templates/cultural-group.md
#	wiki/_templates/institution.md
#	wiki/_templates/star-system.md
#	wiki/characters/devra.md
#	wiki/characters/drin.md
#	wiki/characters/harek.md
#	wiki/characters/lera-sessik.md
#	wiki/characters/maret-korr.md
#	wiki/characters/naia-tamm.md
#	wiki/characters/nils-davan.md
#	wiki/characters/pell.md
#	wiki/characters/renn.md
#	wiki/characters/resha.md
#	wiki/characters/sabel.md
#	wiki/characters/sera-venn.md
#	wiki/characters/torek-lintar.md
#	wiki/characters/voss.md
#	wiki/star-systems/krenn/index.md
2026-03-14 00:24:53 +01:00

17 KiB
Raw Blame History

title, description, type, status, workshop, agent, round, created
title description type status workshop agent round created
Round 3 — SI (Project Manager) Production perspective on long-term content strategy and per-district thematic variation workshop archived wiki-review si 3 2026-02-12

Round 3 — SI (Project Manager)

Long-term content strategy from the production perspective. I don't design — I plan delivery. Here's what I see when I look at 20+ districts, 300+ NPCs, and years of content.


1. Complicity as Theme — The Production Implication

Whether complicity is the whole game or Sova's local flavor is a design question. The production question is: does a per-district thematic variation change the authoring pipeline?

If every district is a complicity story, we can templatize hard. The FRIEND pattern, the MIRROR pattern, the triangle structures, the moral arc — all reusable across districts with different setting skins. One pipeline, one set of validation tools, one style guide. Authors learn the system once.

If each district has its own thematic texture (Sova = complicity, District B = loyalty, District C = survival), then each district needs:

  • Its own moral arc vocabulary (complicity.cost_to_hael equivalents per theme)
  • Its own monologue trigger set (moral_pang works for complicity — what triggers for a loyalty-themed district?)
  • Its own PC experience framework
  • Potentially its own NPC patterns beyond FRIEND/MIRROR

That's a significantly harder pipeline. Not impossible — but the authoring cost per district rises because less is reusable.

My recommendation: Use a hybrid. Define a thematic palette — 4-6 moral textures that the game explores. Each district draws from 1-2 of these. The vocabulary for each texture is defined once at the global level. Districts compose from the palette rather than inventing from scratch.

This is the content equivalent of Gestalt's social site templates — authored building blocks, combinatorially composed. The moral arc phases (Comfort → Doubt → Reckoning → Compromise) might be universal, but what fills each phase varies by thematic texture.


2. Cultural Groups — Production Planning

Miri delivered one cultural brief in ~4 hours of workshop time. That brief is excellent and thorough. At that depth, one brief per cultural group means:

Scale Cultural Groups Miri-Hours Calendar Time (1 Miri)
v0.1 1 (Van Maanen's Star) ~4h Done
v0.2 3-4 ~12-16h 1-2 weeks
v1.0 8-12 ~32-48h 4-6 weeks
Full game 15-25 ~60-100h 2-3 months

This is manageable IF:

  1. The regional template (_template.md) is locked and validated from v0.1
  2. Miri produces the briefs in batches of 3-4 per release
  3. Each brief goes through a single-pass review (not a multi-round workshop)
  4. Heritage research is front-loaded — Miri builds a master heritage map once, then writes individual briefs from it

The master heritage map is the key long-term asset. A document that shows: which Earth cultural clusters settled where, how they mixed, what 180 years of drift produced. From this map, individual briefs are derivations, not inventions. Miri should build this map BEFORE writing the next brief.

Production sequence:

  1. Master heritage map (Miri, ~2 days)
  2. Cultural briefs in release batches, prioritized by which districts are in the next sprint
  3. Naming generation pools per cultural group (reusable for NPC generation)

3. Content Patterns — What Scales and What Doesn't

From the production management perspective, I'm categorizing every pattern by reuse ratio — how many times it gets instantiated vs. how much it costs to define.

High reuse (define once, instantiate everywhere)

Pattern Definition Cost Instantiation Cost Reuse Ratio
Tier 2 NPC template Already defined 4-6 hours per NPC 1:300+
Tier 3 NPC template Already defined 0.5-1 hour per NPC 1:1000+
Social site template structure Already defined 2-3 hours per site 1:60+
Triangle structure Already defined 1-2 hours per triangle 1:100+
Dialogue tag taxonomy (D-035) Already defined 0 per district 1:∞
Pool-based randomization Already defined 30min per pool 1:60+

Medium reuse (define per category, instantiate per district)

Pattern Definition Cost Instantiation Cost Reuse Ratio
Cultural brief ~4 hours 0 per district in that culture 1:3-5 districts
Thematic texture vocabulary ~2-3 hours per texture 1 hour integration per district 1:5-10
PC archetype ~8-12 hours ~4 hours per district variant 1:10-20
FRIEND pool expansion 15-22 hours per candidate 0 (one-time) 1:1

Low reuse (unique per district)

Pattern Definition Cost Instantiation Cost Reuse Ratio
THE FRIEND candidate 15-22 hours each N/A 1:1
THE MIRROR candidate 10-15 hours each N/A 1:1
Tier 1 contradiction arc 8-12 hours N/A 1:1
District-specific FactIds 2-3 hours per district N/A 1:1
Environmental text (Van Maanen's Star-specific) 4-6 hours per district N/A 1:1

The bottleneck is clear: Tier 1 content. Everything else scales through templates and generation. THE FRIEND and THE MIRROR are 15-22 hours of irreducible authored content per instance. At 2-3 FRIENDs per district and 1 MIRROR per district, that's 45-80 hours of Tier 1 authoring per district.

For 20 districts: 900-1600 hours of Tier 1 content alone. That's 6-10 months of a single full-time writer. With 2-3 writers in parallel: 3-4 months. This is the critical path for content delivery.


4. The Authoring Pipeline at Scale

The math

Content Type Per District 20 Districts Hours Each Total Hours
Tier 1 NPCs (FRIEND + MIRROR) 3-4 60-80 15-22h 900-1760
Tier 2 NPCs 8-12 160-240 4-6h 640-1440
Tier 3 NPCs 5-10 100-200 0.5-1h 50-200
Social site templates 3-5 60-100 2-3h 120-300
Triangles 4-6 80-120 1-2h 80-240
Environmental text 1 set 20 sets 4-6h 80-120
Cultural integration 1 pass 20 passes 2-3h 40-60
Total 1910-4120

That's 1-2 person-years of content authoring. For a game this size, that's actually modest — but only if the pipeline is efficient.

The pipeline model

Phase 1: Foundation (one-time)

  • Master heritage map
  • Thematic palette (4-6 moral textures)
  • All templates locked (Tier 1/1.5/2/3, social site, triangle, pool)
  • Content directory structure finalized
  • Schema validation working
  • Generation tools built (Tier 3 generator, line expansion tool)

Phase 2: Per-district production (repeating)

  1. District brief (Miri, 1 day) — setting, culture reference, social sites, key NPCs
  2. Content skeleton (tooling, 1 hour) — auto-generate directory structure, empty YAML stubs
  3. Tier 2 NPCs (Paula + Mellanie, 3-5 days per district) — working profiles, dialogue, monologue
  4. Tier 1 NPCs (Paula primary, 5-8 days per district) — FRIEND candidates, MIRROR candidate, full arcs
  5. Tier 3 generation (tooling, 1 day) — procedural NPCs from templates + cultural brief
  6. Line expansion (tooling + Mellanie review, 2-3 days) — write 10, generate 40, review 40
  7. Validation pass (tooling + Hoshe, 1 day) — schema validation, cross-reference check, playtest
  8. Integration (Dudley, 1-2 days) — wire into engine, test in context

Per-district cycle: 2-3 weeks with 2-3 parallel writers. At that rate, 20 districts = 40-60 weeks = 10-15 months. That's a realistic production timeline for content.

The large content push pattern (from CLAUDE.md)

For batch district production, use the pattern already documented:

  1. Lore librarian (Miri, read-only) — answers context queries, tracks cross-district consistency
  2. Multiple writers (Paula, Mellanie, future agents, parallel by district) — write directly to disk
  3. Reviewer (Hoshe + schema validation) — voice consistency, attribute uniformity

This pattern parallelizes naturally. Districts are independent content units. Two writers can produce two districts simultaneously without interference, as long as the librarian catches cross-references.


5. Tooling Requirements

The pipeline above requires tooling that doesn't exist yet. Here's the tooling roadmap:

Must-have (before scaling past v0.1)

Tool Purpose Owner
make validate-content Schema validation for all YAML Server team (Tyre)
NPC skeleton generator Given a district brief, generate empty NPC YAML stubs with correct structure Server team
Line ID allocator Assign sequential line IDs per location/character to prevent collisions Server team
FactId registry Central registry with collision detection across districts Server team

Should-have (before scaling past v0.2)

Tool Purpose Owner
Tier 3 NPC generator Produce complete Tier 3 NPCs from template + cultural brief + seed Server team
Line expansion tool Write 10 authored lines → generate 40 variants at matching voice/style Server team
Line previewer CLI (D-028) Play back dialogue/monologue lines in context for authoring review Server team
Cross-reference validator Verify all NPC references, FactId references, location slugs resolve Server team
Bidirectional knowledge checker Verify PC←→NPC knowledge graph consistency Server team

Nice-to-have (quality of life)

Tool Purpose Owner
District dashboard Show content completion % per district (NPCs, lines, validation status) CI team
Content diff tool Show what changed between content versions for review CI team
Voice consistency checker Flag lines that break character voice patterns Server team

6. Content Directory Long-Term Requirements

Tyre and Gestalt's structure handles 20+ districts IF these constraints hold:

What scales naturally

  • districts/{slug}/ — one directory per district, independent, no cross-contamination
  • global/ — shared vocabulary grows slowly (factions, technology, enums)
  • _schema/ — schemas evolve but don't multiply (one npc.schema.yaml handles all tiers)
  • Mod overlay (ADD/REPLACE/MERGE) — works at any scale

What needs attention at scale

  • Global facts vs district facts (Gestalt's split) — essential. Without this, the global facts.yaml becomes a dump of hundreds of district-specific entries.
  • Cross-district references — NPCs who appear in multiple districts (e.g., a Commission investigator who moves between postings). The canonical_id system handles this, but the content loader needs to resolve cross-district references.
  • DLC packaging — a DLC is a set of new districts + new global content (factions, cultural groups, technology). The content directory needs a DLC manifest format that declares what it adds. This extends Tyre's _meta/manifest.yaml.
  • Content versioning — when a DLC changes a global faction's description, that's a REPLACE. When it adds a new faction, that's an ADD. When it adds NPCs to an existing district's pools, that's a MERGE. All three operations on the same DLC. The load order matters.

The "galaxy map" question

At 20+ districts across multiple star systems, the content directory needs a spatial index:

content/
  global/
    galaxy/
      systems.yaml          # All star systems, coordinates, gate connections
      routes.yaml           # Travel routes between systems
  districts/
    sova-transit/           # Van Maanen's Star
    vael-docks/             # Vael System
    prime-central/          # Van Maanen's Star Prime (surface)

Each district YAML includes its system and station reference. The galaxy index is global — it's the map. Districts are the content. The separation is clean.


7. Randomization at Full Scale

Nigel's axes for Sova (FRIEND, compromised NPC, secondary contraband, entanglement map) are the right starting set. At full scale:

Axes that work across all districts

  • FRIEND selection — every district has a FRIEND pool per PC archetype
  • Who's compromised — per-district role slot randomization
  • Social site population — which NPCs fill which slots
  • Entanglement ratio — D-029's 30/50/20 with per-seed variance

Axes that emerge at scale

  • District assignment — which district does the player start in? (if the game has multiple starting locations)
  • Cross-district connections — which NPCs have off-screen connections to other districts?
  • Faction pressure — which faction is dominant in this seed? (shifts the political landscape)
  • Economic conditions — is the district in a boom or bust? (shifts NPC contentment baselines)
  • Temporal variation — does the game start on day 1 of a Commission inspection, or 3 weeks in? (shifts urgency)

The pool system Tyre designed handles all of these. Pools are general-purpose: declare candidates, declare selection count, draw at seed time. Any axis of variation is just another pool.

The production constraint: Each axis of variation multiplies the content that needs authoring. 3 FRIEND candidates × 2 PC archetypes × 3 starting conditions = 18 configurations to validate. At scale, combinatorial testing becomes the bottleneck. Hoshe needs automated playthrough simulation before we can ship more than ~5 active variation axes per district.


8. PC Archetypes at Full Scale

v0.1 has 2 PC archetypes (smuggler, detective). At full scale:

How many archetypes?

Each archetype needs:

  • A distinct relationship to the game's themes
  • A distinct knowledge starting position
  • A distinct social position in every district where it's playable
  • A distinct monologue voice
  • PC upgrade specs for every district's NPC roster

The authoring cost per archetype is roughly: voice card (once) + moral arc (once) + per-district PC-candidate NPCs (per district) + per-district monologue pool (per district).

Archetype Count Voice/Arc Cost (one-time) Per-District Cost 20 Districts Total
2 (current) ~30h ~20h × 2 = 40h 800h
4 ~60h ~20h × 4 = 80h 1660h
6 ~90h ~20h × 6 = 120h 2490h

My recommendation: 4 archetypes for v1.0. Two more beyond smuggler/detective. Each adds a new lens on the same world. Candidates should be chosen to maximize thematic coverage — the two new archetypes should explore parts of the moral landscape that smuggler and detective don't reach.

Production strategy: Design all 4 archetypes early (so the world is built with all 4 in mind). Implement 2 for v0.1-v0.2. Add the 3rd for v0.3-v0.4. Add the 4th for v1.0. Each archetype launch includes retroactive content for all existing districts.


9. Release Cadence Model

Putting it all together into a release plan:

Release Districts PC Archetypes FRIEND Pool Cultural Groups Content Hours
v0.1 1 (Sova Transit) 2 1 per character 1 (Van Maanen's Star) ~200h (done)
v0.2 3 (+ 2 new) 2 2 per character 3 ~600h
v0.3 6 (+ 3 new) 3 (+ 1 new) 2-3 per character 5 ~900h
v0.4 10 (+ 4 new) 3 3 per character 7 ~800h
v1.0 15+ (+ 5 new) 4 (+ 1 new) 3-4 per character 10+ ~1000h
DLC +3-5 per DLC 4 +1 per character per DLC +1-2 per DLC ~400-600h

Critical path per release: Tier 1 content (FRIEND/MIRROR authoring) → Tier 2 content → Tier 3 generation → validation → integration. Tier 1 is always the bottleneck.

Writer scaling: v0.1 works with the current team (Paula + Mellanie). v0.2 needs a third writer. v0.3+ needs 3-4 parallel writers. The large content push pattern handles this.


Summary

The long-term content strategy has three pillars:

  1. Template everything that can be templatized. Tier templates, social site templates, triangle structures, pool definitions, cultural brief patterns — define once, instantiate hundreds of times.

  2. Protect the irreducible. Tier 1 content (FRIEND arcs, MIRROR characters, contradiction beats) cannot be generated. Budget for it explicitly. It's the bottleneck and the thing that makes the game work.

  3. Build the pipeline before scaling. Schema validation, generation tools, line expansion, content dashboards — all of this must exist before we attempt district 2. The investment in tooling pays back 20x across the full game.

The content directory structure Tyre/Gestalt designed is sound for the full game. The patterns from Sova (triangles, FRIEND, MIRROR, pools) are universal templates. The cultural brief system scales with Miri's heritage map approach. The authoring pipeline is the constraint — and it's a solvable constraint with the right tooling and writer scaling.


SI out. The plan is executable. The numbers work. The tooling list is the critical dependency.