Round 2 — SI (Project Manager)
Finalized Ticket List for v0.1 Content Scoping
Incorporates: all 7 Round 1 responses, Qatux tracking doc, lead decisions (D-NPC, D-FORMAT, D-INTERACT, D-PAUSE).
1. Lead Decisions — Impact on Tickets
| Decision |
Ticket Impact |
| D-NPC: Gestalt's mechanical mapping wins for v0.1 |
NEW-1 simplified: "apply Gestalt's mapping" (not resolve disagreements). Paula's emotional layer becomes v0.2 annotation. |
| D-FORMAT: YAML for content, RON converter available |
Confirms C-series as YAML. Adds NEW-8: RON converter tool. |
| D-INTERACT: Single action for v0.1, multi-verb architecture underneath |
NEW-7 reframed. Adds NEW-9 (server: InteractionOptions) + NEW-10 (client: extensible prompt). |
| D-PAUSE: Spacebar always pauses, overlays = 50% sim speed |
Adds NEW-11 (server: tick rate scaling) + NEW-12 (client: pause state machine). |
2. Round 1 Consensus — Impact on Tickets
| Consensus Item |
Ticket Impact |
| A-01: Drin promoted to Tier 2 |
NEW-2 changes from "evaluation" to "execute promotion" — expand profile. |
| A-02: NOBODY deferred to v0.2 |
No v0.1 ticket. Hidden data ships in NPC YAML files (handled by C-series). |
| A-05: ~200 monologue lines |
Sizes NEW-4 at ~200 lines (~100 per character). |
| A-06: ~695 total authored items |
Overall content scope validation. No new ticket, but informs sprint capacity. |
| A-07: 3 active + 2 passive triangles |
Confirms A11 scope (Triangle 1 only needs fixing). T3/T5 need less work. |
| A-11: THE FRIEND is critical path |
Confirms #261 → #297/#298 chain is the highest-priority dependency. |
| A-12: Client receives text from server |
No client-side content loading tickets needed. Simplifies client scope. |
| A-14: PC-as-NPC confirmed for v0.1 |
Validates B3, B5, NEW-6. |
| A-15: News ticker confirmed for v0.1 |
#306 confirmed. Scope: ~20 headlines. |
| A-17: Self-contained triangle forks |
Reduces C8 complexity (no cross-triangle cascade logic). |
| Tyre: Line previewer CLI |
Adds NEW-13. |
| Paula: 7 additional wiki gaps |
Gaps 1-5 already covered by existing tickets. Gap 6 (location smuggler detail) → folded into content conversion. Gap 7 (Harek triangle membership) → folded into NEW-1 mapping. |
3. Existing Ticket Updates (Revised)
| ID |
Title |
Action |
Sprint Target |
| #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. |
— |
| #301 |
Wiki taxonomy and structure |
Assign to copy. Downscope: Sova district structure only for v0.1. Full 500+ world taxonomy is generator-era. |
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 (smuggler voice card + moral arc). B4 is the larger ticket. 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 |
Assign to server. Blocked by C1 + C2. |
Sprint 4 |
| #86 |
Core NPC components |
Already Sprint 3 server. Dudley's ECS component list from Round 1 informs this. |
Sprint 3 |
| #88 |
Daily routine system |
Already Sprint 3 server. Needs NPC routine YAML from content conversion. |
Sprint 3 |
4. Finalized New Ticket Proposals
Group A: Wiki Content Fixes (copy team)
| ID |
Title |
Type |
Priority |
Sprint |
Blocked By |
Description |
| A1 |
Apply canonical full names to all NPC wiki pages |
task |
medium |
3 |
— |
Apply Miri's 12 full names to NPC wiki pages. Update Core Identity blocks, environmental text references. |
| A2 |
Rename Hael → Naia Tamm across all wiki files |
task |
medium |
3 |
— |
Find-and-replace across ~8 wiki files. Triangle 4 becomes Naia-Kael-Sera. |
| 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. |
| A7 |
Add smuggler-specific entity attributes to entity-attributes.md |
task |
high |
3 |
— |
Scope depends on Round 2 resolution of D-03 (Gestalt's 4 new + 2 repurposed vs Paula's 8 new). Add to wiki/knowledge/entity-attributes.md. |
| A8 |
Standardize location shortcodes in monologue-guide.md |
task |
medium |
3 |
— |
Fix hub_m_ → terminal_m_ inconsistency. Add shortcode reference table. |
| A10 |
Stub NPC profile for Nils Davan |
task |
medium |
3 |
— |
Off-stage profile: Core Identity, relationship to Kael, role in ring, known attributes. |
| 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 (tension), or split route (exposure). Self-contained — no cross-triangle cascade per A-17. |
| A12 |
Create environmental text examples file |
task |
medium |
4 |
A3/#319 |
Bar menu, safety notice, news ticker cycle, corridor graffiti. Krenn-voiced. Needed for wow moment #1 (Arrival). |
Group B: Style Guides & Specs (copy team)
| ID |
Title |
Type |
Priority |
Sprint |
Blocked By |
Description |
| B1 |
NPC Authoring Style Guide |
story |
critical |
5 |
A3, A4, A7, B2, B4 |
Combined document: tier templates, authoring rules, regional culture, content pipeline. 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. Tier 1 emotional depth. Naia Tamm is first instance. 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), orientation monologue, agency boundaries, authored relationship stubs, tell inversion. 9-step conversion checklist. |
| 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. (2) Smuggler moral arc — 4 phases (Comfort→Doubt→Reckoning→Compromise), smuggler-specific FactIds, monologue triggers. Subsumes #310 scope. |
| B5 |
NPC-format briefs for both PCs — Concept A v0.1 |
story |
high |
4 |
B3 |
NPC-mode behavior scripts (5-7 routine entries each), reverse dual-lens notes, observation monologue (3-5 lines per character). ~20-30 authored items total. |
Group C: Content Directory & Schema (split teams)
| ID |
Title |
Type |
Priority |
Sprint |
Team |
Blocked By |
Description |
| C1 |
Content directory structure design doc |
story |
high |
3 |
copy |
— |
Document converged structure: _meta/ + _schema/ (infrastructure), global/ + districts/ (content). Canonical_id format. Mod overlay mechanics. 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), location, faction, template, fact, dialogue, monologue, district, pool. |
| C4 |
Create global/enums/ YAML files from D-035 |
task |
medium |
4 |
server |
C2 |
Populate enums: situations (13), topics (9), moods (8), triggers (9), access-tiers (5), activities (new). |
| C5 |
Create global/knowledge/entity-attributes.yaml |
task |
medium |
4 |
server |
C2 |
Machine-readable entity attribute definitions. 14 detective + smuggler keys (count depends on D-03 resolution). |
| C6 |
Create pools.yaml for v0.1 seed-time selection |
task |
medium |
4 |
server |
C2 |
Sova single-candidate pools: friend_smuggler, friend_detective, bar_regulars, compromised_inspector, primary_contraband. Architecture supports N candidates. |
| C7 |
Create template YAML files with role slot definitions |
task |
medium |
4 |
server |
C2 |
3 social sites: logistics-hub.yaml, bar.yaml, smuggling-ring.yaml. Role slots with count ranges, required flags, pool references, triangle constraints. |
| C8 |
Create triangle YAML files for 5 v0.1 triangles |
task |
medium |
4 |
server |
C2 |
5 triangles. Self-contained forks (no cross-triangle cascade per A-17). Includes updated T1 with Volume Escalation. |
| C9 |
Implement make validate-content CLI |
story |
high |
4 |
server |
C3 |
Structural + tier-conditional validation. Reads _schema/, validates all YAML. v0.2: cross-reference validation. |
| C10 |
Pre-commit FactId typo check |
task |
medium |
4 |
ci |
— |
Grep-based pre-commit check validating FactId references against canonical facts.yaml. |
Group D: Design Specs
| ID |
Title |
Type |
Priority |
Sprint |
Team |
Blocked By |
Description |
| D2 |
Seed configuration schema design |
story |
medium |
4 |
server |
— |
Schema for what the randomizer produces at game-start: FRIEND selections, social site population, compromised NPC, contraband type. v0.1 has single-candidate pools but architecture must support N. |
| D4 |
News ticker headline pool |
task |
medium |
4 |
copy |
— |
~20 dual-lens headlines for Meridian feed at Lera's. Freight data, politics, local infrastructure, sports, Commission advisories. Each works as dual-lens monologue trigger. |
Group NEW: Tickets from Round 1 + Round 2
| ID |
Title |
Type |
Priority |
Sprint |
Team |
Blocked By |
Description |
| NEW-1 |
Apply Gestalt's NPC pattern/motivation mapping |
task |
high |
3 |
copy |
— |
Apply the canonical v0.1 mapping (Gestalt's Round 2 finalized table) to wiki and content files. 17 NPCs × (pattern + motivation). Includes Harek's structural role per Paula Gap 7. |
| NEW-2 |
Drin Tier 2 profile expansion |
task |
medium |
3 |
copy |
NEW-1 |
Drin confirmed Tier 2 (A-01). Expand wiki profile to full Tier 2 depth: all 10 profile axes, smuggler lens section, triangle membership formalized. |
| NEW-3 |
Wiki → YAML content conversion (Sova NPCs) |
story |
high |
4 |
copy |
C1, C2, C3 |
Convert 17 NPC wiki profiles to engine-readable YAML. Includes routine YAML layer (Paula Gap 3), triangle fork decision points (Gap 4), location smuggler detail (Gap 6). Tyre estimates 2-3 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). |
| 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 |
Author the actual lines: 5-7 routine entries per character, 3-5 observation monologue lines, reverse dual-lens notes. ~25 authored items (Mellanie's budget). |
| NEW-7 |
v0.1 interaction verb spec |
task |
medium |
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. |
Group NEW-R2: Tickets from Lead's Round 2 Decisions
| ID |
Title |
Type |
Priority |
Sprint |
Team |
Blocked By |
Description |
| NEW-8 |
YAML → RON converter tool |
task |
medium |
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. |
| NEW-9 |
Multi-verb interaction architecture — server InteractionOptions |
story |
high |
3 |
server |
— |
Server models N available actions per entity via InteractionOptions component. v0.1 client picks first/best; v0.2 client shows menu. Must not be throwaway. Includes ObserverSnapshot v3 extension for interaction data. |
| NEW-10 |
Multi-verb interaction architecture — client extensible prompt |
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. |
| NEW-11 |
Pause system — server tick rate scaling |
story |
medium |
3 |
server |
— |
Tick rate supports 3 states: full speed (normal play), 50% speed (UI overlay open), 0% (spacebar pause). Server receives pause/speed commands from client. |
| NEW-12 |
Pause system — client state machine |
story |
medium |
3 |
client |
NEW-11 |
Client pause state machine: Normal → Overlay (50% speed, triggered by knowledge panel / dialogue) → Paused (spacebar from any state). Spacebar always overrides to full pause. |
| NEW-13 |
Line previewer CLI |
task |
medium |
4 |
server |
C3, C9 |
CLI tool to preview monologue/dialogue line selection for a given game state. Tyre's recommendation for content tuning. Lives in tooling/. Helps content authors test prerequisite logic without running the full game. |
5. Sprint Plan
Sprint 3: Know (Copy Team — Content Foundation)
Goal: Deliver the content specs and wiki fixes that unblock server implementation and content authoring.
| Priority |
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 |
Paula |
Small |
| P0 |
A7 |
Smuggler entity attributes |
Paula |
Small |
| P1 |
B2 |
MIRROR pattern spec |
Gestalt/Gore |
Medium |
| P1 |
B4 |
Smuggler voice + moral arc (subsumes #310) |
Gore/Mellanie |
Medium |
| P1 |
NEW-1 |
Apply Gestalt's NPC pattern mapping |
Gestalt |
Small |
| P1 |
NEW-5 |
Wow moment content checklist |
SI |
Small |
| P1 |
A10 |
Nils Davan stub |
Paula |
Small |
| P1 |
A11 |
Triangle 1 fix |
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 |
Gestalt |
Small |
Sprint 3 copy total: 15 tickets (2 P0, 6 P1, 5 P2, 2 small enough to parallelize)
Sprint 3: Know (Server Team — Content-Adjacent, Proposed Additions)
| Priority |
Ticket |
Title |
Effort |
| P1 |
C2 |
Create content/ directory skeleton |
Small |
| P1 |
C3 |
Content schema definitions |
Medium |
| P1 |
NEW-9 |
Multi-verb interaction architecture — InteractionOptions |
Medium |
| P2 |
NEW-11 |
Pause system — tick rate scaling |
Small |
Sprint 3: Know (Client Team — Proposed Additions)
| Priority |
Ticket |
Title |
Effort |
| P1 |
NEW-10 |
Multi-verb interaction — extensible prompt |
Medium |
| P2 |
NEW-12 |
Pause system — client state machine |
Small |
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 |
| C9 |
validate-content CLI |
server |
C3 |
| 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-8 |
YAML → RON converter |
server |
C1 |
| NEW-13 |
Line previewer CLI |
server |
C3, C9 |
| #326 |
YAML content loader |
server |
C1, C2 |
| A3/#319 |
Krenn brief + seed.yaml reference |
copy |
— |
Sprint 5+ (Content at Scale)
| Ticket |
Title |
Team |
Blocked By |
| NEW-4 |
Monologue content pool (~200 lines) |
copy |
#261, B4 |
| NEW-6 |
PC-as-NPC content authoring (~25 items) |
copy |
B3, B5 |
| 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 |
6. Revised Dependency Chain
7. Ticket Count Summary
| 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) |
| Round 1 new tickets (NEW 1-7) |
7 |
copy |
| Round 2 new tickets (NEW 8-13) |
6 |
server (4), client (2) |
| Total new tickets |
38 |
copy (21), server (13), client (2), ci (1), + 1 epic update |
| Existing ticket updates |
10 |
— |
Delta from Round 1: +6 tickets (NEW-8 through NEW-13 from lead decisions), +2 server Sprint 3 additions (NEW-9, NEW-11), +2 client Sprint 3 additions (NEW-10, NEW-12). Removed: D3 (killed), A5 (deferred), D1 (deferred). Merged: A3 into #319, #310 into B4.
8. Risks & Recommendations
Risk 1: #261 is still the critical path root. Every content authoring ticket flows through it. If it slips even one sprint, the entire content pipeline delays. Recommend: assign Paula immediately, time-box to 5 working days, accept "good enough" over "perfect."
Risk 2: Sprint 3 copy team has 15 tickets. That's a lot. But 7 are small tasks (A1, A2, A7, A8, A10, NEW-1, NEW-2) that can be parallelized. The real load is #261, C1, B2, B4, and A11. Recommend: Paula owns #261 + wiki fixes (A1, A2, A7, A10, NEW-2). Gestalt owns C1, NEW-1, B2, A11, NEW-7. Mellanie owns A8, B4. SI owns NEW-5.
Risk 3: Server team Sprint 3 is already heavy (10 existing tickets). Adding C2, C3, NEW-9, NEW-11 is +4. Recommend: C2 and C3 are blocked by C1 anyway — they can start mid-sprint when C1 lands. NEW-9 and NEW-11 are independent and can begin immediately.
Risk 4: Content conversion (NEW-3) is a Sprint 4 bottleneck. Tyre estimates 2-3 full days for 17 NPC conversions. This blocks the server from testing with real data. Recommend: start with the 3 Tier 1 NPCs (Kael, Sera, Naia) as soon as C2 lands, don't wait for all 17.
Proposals only — no tickets created. Awaiting lead approval.
Compiled by SI. Source: Round 1 tracking doc (Qatux), all 7 Round 1 responses, lead Round 2 decisions.