Files
settled-reach/docs/workshops/v01-content-scoping/si-ticket-changes.md
T
jpmschweitzerandClaude Opus 4.6 b672b9c269 feat(docs): restructure wiki taxonomy with templates and Krenn System entry (#301, #319)
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>
2026-02-13 00:58:45 +01:00

24 KiB
Raw Blame History

v0.1 Content Scoping — Ticket List (Final)

Author: SI (Project Manager) Source: v0.1 Content Scoping Workshop (Rounds 1-2), Wiki Review Workshop (Round 2 ticket list superseded) Status: Proposals only — awaiting lead approval before database creation

Corrections applied (closing round):

  1. C9 → Sprint 3 (same crate as C3)
  2. #326 split into Phase 1 (Sprint 3) + Phase 2 (Sprint 4)
  3. NEW-9 expanded: proximity detection + verbs[]
  4. NEW-12 killed (pause is server-only; client sends IPC command)
  5. NEW-10 stays separate from #240 (one ticket per team, no shared tickets)
  6. NEW-14 added: UI microcopy
  7. verbs[] rename folded into NEW-7
  8. #237 → #88 dependency added
  9. A2 file count: ~16 files (Paula's full cascade)
  10. A7 description: specific 4 new keys + 2 renames, 16 total
  11. B2 acceptance criteria added
  12. NEW-1: Gestalt-Paula synthesis (not Gestalt-only)
  13. C1: mod-compatible conventions (no overlay implementation)
  14. #86 ECS component list updated to workshop output

Existing Ticket Updates

ID Title Action Sprint
#368 Knowledge vocabulary for v0.1 content Close — wiki at wiki/ is the delivered output. Sprint 2 (done)
#369 Wiki Review Workshop Outputs (epic) Repurpose as parent epic for all v0.1 content scoping tickets. Update description to reflect this workshop's scope.
#301 Wiki taxonomy and structure Assign to copy. Downscope: Sova district structure only for v0.1. Sprint 3
#319 Krenn System wiki entry Merge with A3. Expanded: wiki page + seed.yaml reference implementation. Assign to copy. Sprint 4
#261 Dual Lens Authoring Guide CRITICAL PATH ROOT. Assign to copy, owner Paula. Blocks 9 downstream tickets. Sprint 3 (P0)
#310 Character voice speech patterns Subsume into B4. Close #310 when B4 lands. Sprint 3 (via B4)
#306 News ticker / Meridian feed content Confirm scope: ~20 dual-lens headlines. Assign to copy. Sprint 4
#326 YAML content loader Split into two tickets. Phase 1: loader skeleton + fixture data (Sprint 3, server, blocked by C1+C2+C3). Phase 2: real content loading (Sprint 4, server, blocked by C4-C8 + NEW-3). Sprint 3 / 4
#86 Core NPC components Update ECS component list to workshop output: ThematicPattern, FunctionalMotivation, FriendArc, ContentTier, AccessTierMap, TrustLevels, NpcRoutine, MoodState, TriangleMembership, InteractionLog. Sprint 3
#88 Daily routine system Add dependency: blocked by #237 (A* pathfinding). Needs NPC routine YAML from content conversion. Sprint 3

New Tickets

A. Wiki Content Fixes (copy team)

ID Title Type Pri Sprint Blocked By Description
A1 Apply canonical full names to all NPC wiki pages task med 3 Apply Miri's 12 full names to NPC wiki pages. Update Core Identity blocks, environmental text references (manifests, shift rosters, Commission kiosk).
A2 Rename Hael → Naia Tamm across all wiki files task med 3 Phonetic collision fix (Kael/Hael). Find-and-replace across ~16 files (Paula's full cascade). Triangle 4 becomes Naia-Kael-Sera. Update all relationship references, triangle diagrams, cross-references.
A6 Add smuggler-perspective FactId progression text task high 4 B4 Add smuggler-path text for all FactIds where smuggler starts at KnowsDetails or has different knowledge path than detective.
A7 Update entity-attributes.md — smuggler role-perspective keys task high 3 Add 4 new role-perspective keys: risk_assessment, loyalty_assessment, position_integrity, moral_weight. Rename secret_heldleverage_held (broader scope: secrets, debts, promises, obligations). Rename secret_confidenceleverage_confidence. Update trust_level description to absorb trust_read scope. All keys are observer→target. Total after update: 16 canonical keys.
A8 Standardize location shortcodes in monologue-guide.md task med 3 Fix hub_m_ → terminal_m_ inconsistency. Canonical shortcodes: terminal, bar, corridor. Add shortcode reference table. Add situation overlap rules and mood exclusivity rules.
A10 Stub NPC profile for Nils Davan (off-stage) task med 3 Minimal off-stage profile: Core Identity, relationship to Kael (siblings), role in ring (upstream pressure), known attributes by other NPCs.
A11 Fix Triangle 1 (Hub Power) — Volume Escalation decision story high 3 A10 Add smuggler decision fork: side with Nils (louder signal), side with Voss (internal tension), or split the route (new exposure surface). Each option cascades within T1 only — self-contained, no cross-triangle cascade (A-17). Includes Nils partial presence via lattice message (~5-8 lines).
A12 Create environmental text examples file task med 4 A3/#319 Create wiki/authoring/environmental-text-examples.md. 4 text types: bar menu, safety notice, news ticker cycle, corridor graffiti. Krenn-voiced with cultural notes + monologue pairings (smuggler + detective). Needed for wow moment #1 (Arrival).

B. Style Guides & Specs (copy team)

ID Title Type Pri Sprint Blocked By Description
B1 NPC Authoring Style Guide story crit 5 A3, A4, A7, B2, B4 Combined document: tier templates (Paula), authoring rules (Mellanie conventions, Gestalt constraints, Ozzie anchor line), regional culture (Miri), content pipeline (Tyre). Reframed as generator specification — this IS the NPC generator input format. Most complex ticket; many blockers.
B2 THE MIRROR pattern spec story high 3 Define honest-character NPC pattern. No contradiction arc, no secret, no tell. Tier 1 emotional depth. v0.1 acceptance criteria: Pattern definition with mechanical rules, content requirements (50-70 lines, 10-axis profile), tell system rules (MIRROR has none), Naia Tamm as reference implementation. Output becomes generator template.
B3 PC-as-NPC unified spec story high 3 A7 Unified spec: starting knowledge graph, starting relationship map, reverse knowledge (bidirectional — Gestalt's critical insight), orientation monologue (Ozzie's first 60 seconds), agency boundaries, authored relationship stubs (Gore's requirement), tell inversion. 9-step conversion checklist for content authors. v0.1 scope: 2 PC briefs (smuggler, detective).
B4 Smuggler voice card + moral arc spec story high 3 A7 Two deliverables: (1) Smuggler voice card — paired examples with detective showing dual-lens register differences. Thinks in people vs data, first names vs surnames, fragments vs complete sentences, Krenn substrate vocabulary. (2) Smuggler moral arc — 4 phases (Comfort→Doubt→Reckoning→Compromise), smuggler-specific FactIds, monologue triggers. Subsumes #310 (Character voice speech patterns).
B5 NPC-format briefs for both PCs — Concept A v0.1 story high 4 B3 When you play the smuggler, the detective exists as an NPC (and vice versa). NPC-mode behavior scripts (5-7 routine entries each), reverse dual-lens notes, observation monologue for PC seeing other-PC-as-NPC (3-5 lines per character). ~20-30 authored items total.

C. Content Directory & Schema (split teams)

ID Title Type Pri Sprint Team Blocked By Description
C1 Content directory structure design doc story high 3 copy Document converged structure: _meta/ + _schema/ (infrastructure, underscore prefix), global/ + districts/ (game content). Canonical_id format ({system}.{station}.{district}.{type}.{slug}). Mod-compatible directory conventions (no overlay implementation). District as atomic pack unit. Informs all content implementation.
C2 Create content/ directory skeleton task high 3 server C1 Create directory tree with empty YAML stubs. _meta/, _schema/, global/ (factions, technology, contraband, knowledge, enums, regions), districts/sova-transit/ (district.yaml, npcs/, locations/, templates/, triangles/, lines/).
C3 Content schema definitions (YAML Schema files) story high 3 server C1 Create _schema/ with validation schemas: npc.schema.yaml (tier-conditional rules), location.schema.yaml, faction.schema.yaml, template.schema.yaml, fact.schema.yaml, dialogue.schema.yaml, monologue.schema.yaml, district.schema.yaml, pool.schema.yaml.
C4 Create global/enums/ YAML files from D-035 task med 4 server C2 Populate enums: situations (13), topics (9), moods (8), triggers (9), access-tiers (5), activities (new — from Gestalt routine format + Miri cultural patterns).
C5 Create global/knowledge/entity-attributes.yaml task med 4 server C2 Machine-readable entity attribute definitions. 16 canonical keys after A7 update (14 original, 4 new, 2 renamed).
C6 Create pools.yaml for v0.1 seed-time selection task med 4 server C2 Sova single-candidate pools: friend_smuggler (kael-davan), friend_detective (sera-venn), bar_regulars, compromised_inspector, primary_contraband. Architecture supports N candidates; v0.1 has 1 each.
C7 Create template YAML files with role slot definitions task med 4 server C2 3 social sites: logistics-hub.yaml, bar.yaml, smuggling-ring.yaml. Each declares named role slots with count ranges, required flags, pool references, triangle constraints.
C8 Create triangle YAML files for 5 v0.1 triangles task med 4 server C2 5 triangles: hub-power (T1, active fork), worried-knowledge (T2, active fork), bar-tensions (T3, passive), worried-partner (T4, active fork), informant-question (T5, passive). Self-contained forks — no cross-triangle cascade (A-17).
C9 Implement make validate-content CLI story high 3 server C3 Structural + tier-conditional content validation. Same crate as C3 schemas. Reads _schema/ definitions, validates all YAML in content/. v0.1 scope: structural validation (required fields, type checks, enum matching) + tier-conditional rules. v0.2: cross-reference validation (FactId existence, NPC slug resolution).
C10 Pre-commit FactId typo check task med 4 ci Grep-based pre-commit check validating FactId references in YAML content files against canonical facts.yaml. Cheap v0.1 bridge until full cross-reference validation lands in C9 v0.2.

D. Design Specs

ID Title Type Pri Sprint Team Blocked By Description
D2 Seed configuration schema design story med 4 server Schema for what the randomizer produces at game-start: FRIEND selections, social site population, compromised NPC, contraband type, entanglement overrides. v0.1 has single-candidate pools but architecture must support N. Saved with game state. Location: runtime/ (not content/). Constrained by D-029 ratio (30/50/20).
D4 News ticker headline pool task med 4 copy ~20 dual-lens headlines for Meridian feed at Lera's. Mix: freight/commodity data, Assembly politics, local infrastructure, sports, Commission advisories. Each headline works as a dual-lens monologue trigger.

NEW. Tickets from Workshop Rounds 1-2

ID Title Type Pri Sprint Team Blocked By Description
NEW-1 Apply Round 2 NPC pattern/motivation mapping task high 3 copy Apply the Round 2 finalized NPC pattern/motivation mapping (Gestalt-Paula synthesis) to wiki and content files. 17 NPCs × (pattern + motivation). Includes Harek's structural role formalization (Paula Gap 7).
NEW-2 Drin Tier 2 profile expansion task med 3 copy NEW-1 Drin confirmed promoted to Tier 2 (A-01 consensus). Expand wiki profile to full Tier 2 depth: all 10 profile axes, smuggler lens section, triangle membership formalized for T2 and T5.
NEW-3 Wiki → YAML content conversion (Sova NPCs) story high 4 copy C1, C2, C3 Convert 17 NPC wiki profiles to engine-readable YAML in content/districts/sova-transit/npcs/. Includes routine YAML layer (Paula Gap 3), triangle fork decision points (Gap 4), location smuggler detail (Gap 6). Must match schemas from C3. Tyre estimates 2-3 full days.
NEW-4 Monologue content pool — minimum viable (~200 lines) story high 4 copy #261, B4 ~100 lines per character. Categories: arrival observations, NPC routine commentary, environmental flavor, contradiction hints, idle reflections, tutorial/orientation. Follows Mellanie's authoring order (FRIEND packs first, then fill to ~200).
NEW-5 v0.1 wow moment content checklist task high 3 copy Map D-039's 6 wow moments to specific content deliverables + implementation tickets. Track completion. Acceptance: every moment has identified content + code backing it.
NEW-6 PC-as-NPC content authoring story high 5 copy B3, B5, #297, #298 Author the actual PC-as-NPC lines: 5-7 routine entries per character, 3-5 observation monologue lines, reverse dual-lens notes. ~25 authored items (Mellanie's budget). Blocked by FRIEND packs — must know who the characters ARE before writing how they appear as NPCs.
NEW-7 v0.1 interaction verb spec + verbs[] terminology task med 3 copy Document the 7 interaction types (A-04: Move, Look, Monologue, Examine Object, Examine NPC, Talk, Overhear). Define triggers, UI needs, server events per type. v0.1 surfaces single context-sensitive action; architecture supports N verbs via verbs[]. Includes wiki + decisions rename: "interaction" → "verbs[]" terminology where appropriate. Soft dependency for NEW-9.

NEW-R2. Tickets from Lead Round 2 Decisions

ID Title Type Pri Sprint Team Blocked By Description
NEW-8 YAML → RON converter tool task med 4 server C1 Build-time converter: reads content YAML, emits RON. Lives in tooling/. Runs as make target (make content-ron). Not on critical path — engine consumes YAML in v0.1; RON is future-proofing for engine performance if needed.
NEW-9 Proximity detection + multi-verb InteractionOptions (verbs[]) story high 3 server Proximity detection system + server-side InteractionOptions component modeling N available actions per entity via verbs[]. Without proximity, InteractionOptions has no trigger. v0.1 client picks first/best verb; v0.2 client shows menu. Must not be throwaway. Includes ObserverSnapshot v2 → v3 protocol extension for interaction data. Soft dependency on NEW-7 (verb definitions).
NEW-10 Interaction prompt — client extensible prompt system story high 3 client NEW-9 Client-side interaction prompt designed for extensibility. v0.1: single context-sensitive E prompt. Architecture supports v0.2 multi-verb menu. Prompt system reads InteractionOptions from server state. Separate from #240 (Player interaction system and dispatcher) — different team, different definition of done.
NEW-11 Pause system — server tick rate scaling story med 3 server Tick rate supports 3 states: full speed (normal play), 50% speed (UI overlay open — knowledge panel, dialogue), 0% (spacebar pause). Server receives pause/speed commands from client via IPC.
NEW-13 Line previewer CLI task med 4 server C3, C9 CLI tool to preview monologue/dialogue line selection for a given game state. Lives in tooling/. Helps content authors test prerequisite logic without running the full game. Tyre's recommendation for content tuning.
NEW-14 UI microcopy task med 5 client Stig UI spec ~50 strings: interaction prompt labels, knowledge panel labels, relationship state descriptors, HUD labels, tutorial text. Blocked by Stig's UI element specs from Sprint 3.

Sprint Plan

Sprint 3: Know — Copy Team (Content Foundation)

Goal: Deliver content specs and wiki fixes that unblock server implementation and content authoring.

Pri Ticket Title Owner Hint Effort
P0 #261 Dual Lens Authoring Guide Paula Large
P0 C1 Content directory structure design Tyre/Gestalt Medium
P0 A1 Apply canonical full names Paula Small
P0 A2 Hael → Naia Tamm rename (~16 files) Paula Small
P0 A7 Smuggler role-perspective keys (16 total) Paula Small
P1 B2 MIRROR pattern spec + Naia reference impl Gestalt/Gore Medium
P1 B4 Smuggler voice + moral arc (subsumes #310) Gore/Mellanie Medium
P1 NEW-1 NPC pattern/motivation mapping (Gestalt-Paula synthesis) Gestalt Small
P1 NEW-5 Wow moment content checklist SI Small
P1 A10 Nils Davan stub Paula Small
P1 A11 Triangle 1 fix (Volume Escalation) Gestalt/Paula Medium
P2 B3 PC-as-NPC spec Gestalt/Paula Medium
P2 A8 Shortcode fix Mellanie Small
P2 NEW-2 Drin Tier 2 profile expansion Paula Small
P2 NEW-7 Interaction verb spec + verbs[] terminology Gestalt Small

Copy Sprint 3 total: 15 tickets (5 P0, 6 P1, 4 P2)

Sprint 3: Know — Server Team (Content-Adjacent Additions)

Pri Ticket Title Effort
P1 C2 Content/ directory skeleton Small
P1 C3 Content schema definitions Medium
P1 C9 validate-content CLI (same crate as C3) Medium
P1 NEW-9 Proximity detection + InteractionOptions (verbs[]) Medium
P1 #326-P1 Content loader Phase 1 — skeleton + fixtures Medium
P2 NEW-11 Pause system — tick rate scaling Small

Server Sprint 3 additions: 6 tickets (in addition to existing 10)

Sprint 3: Know — Client Team (Additions)

Pri Ticket Title Effort
P1 NEW-10 Interaction prompt — extensible prompt system Medium

Client Sprint 3 addition: 1 ticket

Sprint 4: Content Conversion + Authoring Begins

Ticket Title Team Blocked By
NEW-3 Wiki → YAML conversion (17 NPCs) copy C1, C2, C3
C4 Enum YAMLs from D-035 server C2
C5 Entity-attributes YAML server C2
C6 Pools YAML server C2
C7 Social site template YAMLs server C2
C8 Triangle YAMLs server C2
C10 Pre-commit FactId check ci
A6 Smuggler FactId progression text copy B4
A12 Environmental text examples copy A3/#319
B5 PC NPC-format briefs copy B3
D4 News ticker headlines (~20) copy
#306 News ticker content (align with D4) copy
D2 Seed configuration schema server
NEW-4 Monologue content pool (~200 lines) copy #261, B4
NEW-8 YAML → RON converter server C1
NEW-13 Line previewer CLI server C3, C9
#326-P2 Content loader Phase 2 — real content server C4-C8, NEW-3
A3/#319 Krenn brief + seed.yaml reference copy

Sprint 5+ (Content at Scale)

Ticket Title Team Blocked By
NEW-6 PC-as-NPC content authoring (~25 items) copy B3, B5, #297, #298
NEW-14 UI microcopy (~50 strings) client Stig UI spec
B1 NPC Authoring Style Guide (generator spec) copy A3, A4, A7, B2, B4
A4 Regional style guide / seed.yaml template copy
A9 Thematic Question field (Tier 1 profiles) copy B2
#297 THE FRIEND: Kael content pack copy #261
#298 THE FRIEND: Sera content pack copy #261
#190 Workplace content pack copy #261
#191 Bar content pack copy #261
#192 Smuggling ring content pack copy #261

Dependency Graph

SPRINT 3 — Three Parallel Chains
==================================

Chain 1: Content Authoring Pipeline (copy)
-------------------------------------------
#261 (Dual Lens Guide) [P0, CRITICAL PATH ROOT]
  ├─► B4 (Smuggler voice + moral arc) [Sprint 3]
  │     ├─► A6 (Smuggler FactId text) [Sprint 4]
  │     └─► NEW-4 (Monologue pool) [Sprint 4]
  ├─► #297 (FRIEND: Kael) [Sprint 5]
  │     └─► NEW-6 (PC-as-NPC authoring) [Sprint 5]
  ├─► #298 (FRIEND: Sera) [Sprint 5]
  │     └─► NEW-6 (PC-as-NPC authoring) [Sprint 5]
  ├─► #299 (Opening hook: smuggler) [Sprint 5]
  ├─► #300 (Opening hook: detective) [Sprint 5]
  └─► #190, #191, #192 (Content packs) [Sprint 5]

A7 (Smuggler attributes) [P0, Sprint 3]
  ├─► B4 (Smuggler voice) [Sprint 3]
  └─► B3 (PC-as-NPC spec) [Sprint 3]
        └─► B5 (PC briefs) [Sprint 4]
              └─► NEW-6 (PC-as-NPC authoring) [Sprint 5]

Chain 2: Content Architecture Pipeline (server)
-------------------------------------------------
C1 (Content dir design) [P0, Sprint 3, copy]
  ├─► C2 (skeleton) [Sprint 3, server]
  │     ├─► C4 (enums) [Sprint 4]
  │     ├─► C5 (entity attrs) [Sprint 4]
  │     ├─► C6 (pools) [Sprint 4]
  │     ├─► C7 (templates) [Sprint 4]
  │     ├─► C8 (triangles) [Sprint 4]
  │     ├─► NEW-3 (wiki→YAML) [Sprint 4, copy]
  │     └─► #326-P2 (loader Phase 2) [Sprint 4]
  ├─► C3 (schemas) [Sprint 3, server]
  │     ├─► C9 (validator) [Sprint 3, server]
  │     ├─► NEW-3 (wiki→YAML) [Sprint 4, copy]
  │     └─► NEW-13 (line previewer) [Sprint 4]
  ├─► #326-P1 (loader Phase 1) [Sprint 3, server]
  └─► NEW-8 (RON converter) [Sprint 4]

Chain 3: Interaction Pipeline (server + client)
-------------------------------------------------
NEW-7 (Verb spec) [Sprint 3, copy] ···soft···> NEW-9
NEW-9 (Proximity + InteractionOptions) [Sprint 3, server]
  └─► NEW-10 (Extensible prompt) [Sprint 3, client]

Independent (Sprint 3)
------------------------
B2 (MIRROR spec) ─► A9 (Thematic Question) [Sprint 4]
A10 (Nils stub) ─► A11 (Triangle 1 fix) [Sprint 3]
NEW-11 (Tick rate scaling) [Sprint 3, server] — no downstream blockers

Existing Server Dependencies
------------------------------
#237 (A* pathfinding) ─► #88 (Daily routine system) [both Sprint 3]

Ticket Count

Category Count Teams
Wiki fixes (A-series) 8 copy
Style guides & specs (B-series) 5 copy
Content directory & schema (C-series) 10 copy (1), server (8), ci (1)
Design specs (D-series) 2 server (1), copy (1)
Workshop tickets (NEW 1-7) 7 copy
Lead decision tickets (NEW 8-14, excl. killed NEW-12) 6 server (4), client (2)
Total new tickets 38 copy (21), server (13), client (2), ci (1)
Existing ticket updates 10
Killed from Round 2 1 NEW-12 (client pause — not a ticket)

Note: count is 38, not 37 — NEW-14 (UI microcopy) was added in closing corrections. 38 original 1 killed (NEW-12) + 1 added (NEW-14) = 38.


Risks

  1. #261 is the critical path root. Blocks 9 tickets directly. If it slips one sprint, the entire content authoring pipeline delays into Sprint 5+. Recommend: assign Paula immediately, time-box to 5 working days.

  2. Sprint 3 server team is heavy. 10 existing tickets + 6 new content-adjacent additions = 16. Mitigation: C2, C3, C9, #326-P1 are all blocked by C1 (copy team) — they start mid-sprint. NEW-9 and NEW-11 are independent and can begin immediately.

  3. Content conversion (NEW-3) is a Sprint 4 bottleneck. Tyre estimates 2-3 full days for 17 NPC conversions. Blocks server from testing with real data. Recommend: start with 3 Tier 1 NPCs (Kael, Sera, Naia) as soon as C2 lands; don't wait for all 17.

  4. #237 → #88 server dependency. Pathfinding must land before routines. Both are Sprint 3. If #237 slips, NPC routines slip, which delays routine deviation detection (#243), which delays wow moment #2 (The Character's Eye).


Proposals only — no tickets created in database. Awaiting lead approval. Compiled by SI. Source: v0.1 Content Scoping Workshop Rounds 1-2, lead closing corrections, Qatux tracking doc.