Scoped the vertical slice: 16 EntityKnowledge keys, v0.1 mechanical NPC mapping, YAML content format, 7-verb interaction model, server- authoritative pause, 38 tickets created across copy/server/client/ci. 20 decisions (D-042 through D-061). 8 agents, 2 rounds + closing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
492 lines
29 KiB
Markdown
492 lines
29 KiB
Markdown
# Round 1 Tracking — Qatux (Documenter)
|
|
## v0.1 Content Scoping Workshop
|
|
|
|
**Status:** All 7 responses received (Gestalt, Paula, Tyre, Mellanie, Stig, Dudley, SI). Round 1 complete.
|
|
**Date:** 2026-02-12
|
|
|
|
---
|
|
|
|
## 1. Agreements (Consensus Items)
|
|
|
|
These items have clear consensus across respondents and could be decided immediately:
|
|
|
|
| # | Item | Supporters | Status |
|
|
|---|------|-----------|--------|
|
|
| A-01 | **Drin promoted to Tier 2** | Gestalt (unambiguous yes), Paula (full Tier 2 profile drafted), Mellanie (implicitly — budgets Drin as Tier 2) | Ready to decide |
|
|
| A-02 | **THE NOBODY mechanic deferred to v0.2; data ships in v0.1** | Gestalt (explicit: ship data, defer mechanic), Dudley (NobodyState deferred per brief) | Ready to decide |
|
|
| A-03 | **YAML as content format** (with dissent — see D-01) | Tyre (detailed rationale), Stig (accepts server-sent text), Mellanie (needs author-readable format) | Needs resolution with Dudley |
|
|
| A-04 | **7-interaction minimum** (Move, Look, Monologue, Examine Object, Examine NPC, Talk, Overhear) | Gestalt (designed it), Stig (UI for each), Dudley (server events for each) | Ready to decide |
|
|
| A-05 | **~200 monologue lines total** (~100 per character) | Mellanie (80-110 per character, detailed math), Gestalt (implicitly validates via wow moment mapping) | Ready to decide |
|
|
| A-06 | **~695 total authored content items for v0.1** | Mellanie (200 monologue + 350 dialogue + 50 environmental + 20 ticker + 50 UI + 25 PC-as-NPC) | Needs validation from others |
|
|
| A-07 | **5 triangles: 3 active forks, 2 passive tensions** | Gestalt (explicit table: T1/T2/T4 active, T3/T5 passive), Paula (aligns with triangle fork detail) | Ready to decide |
|
|
| A-08 | **Naia Tamm needs MIRROR-specific voice samples** | Mellanie (5 samples written), Paula (naming cascade planned) | Ready to decide |
|
|
| A-09 | **Content directory: `global/` + `districts/` top-level split** | Tyre (detailed tree), Dudley (load sequence matches), Gestalt (aligns with Wiki Review consensus) | Ready to decide |
|
|
| A-10 | **Dialogue files by location + role, not by NPC** | Tyre (explicit design choice, per D-035) | Needs validation from Dudley, Gestalt |
|
|
| A-11 | **THE FRIEND arc is the critical path for v0.1** | Tyre (Tier 4 risk, "everything converges on wow moment #3"), Dudley (FriendArc is the sole pattern-specific component), Gestalt (maps all wow moments to FRIEND), Mellanie (writes FRIEND content first) | Consensus |
|
|
| A-12 | **Client receives text from server, doesn't load content files directly** | Stig (explicit: "server selects, client renders"), Dudley (server authoritative over dialogue/monologue selection), Tyre (aligns with D-010 information boundary) | Ready to decide |
|
|
| A-13 | **Single-action interaction prompt (no radial menus)** | Stig (explicit: "single prompt, press E"), Gestalt (context-sensitive prompt table) | Ready to decide |
|
|
| A-14 | **PC-as-NPC required for v0.1** | Gestalt (missing from IN list, adds it), Paula (Gap 1: profiles missing, must be authored), Mellanie (budgets ~25 items) | Ready to decide |
|
|
| A-15 | **News ticker required for v0.1** | Gestalt (missing from IN list, wow moment #5), Stig (world-space implementation), Mellanie (budgets ~20 items) | Ready to decide |
|
|
| A-16 | **Time progression required for v0.1** | Gestalt (missing from IN list, dependency for routines), Dudley (DayPhase already exists), Stig (HUD display designed) | Ready to decide |
|
|
| A-17 | **Self-contained triangle forks for v0.1 (no cross-triangle cascade)** | Tyre (explicit scope control recommendation, "strongly recommend self-contained") | Needs validation from Gestalt |
|
|
|
|
---
|
|
|
|
## 2. Disagreements (Require Resolution)
|
|
|
|
### D-01: Content File Format — YAML vs. RON
|
|
|
|
| Position | Advocate | Argument |
|
|
|----------|----------|----------|
|
|
| **YAML** | Tyre | Author readability, native multi-line text, JSON Schema validation, any language can emit it, 1.5ms parse difference irrelevant |
|
|
| **RON** | Dudley | Structured + typed data, all examples in RON format, mentions "Tyre's call on format" suggesting deference but preference for RON |
|
|
|
|
**Impact:** Affects every content file, loader implementation, validation pipeline, generator output format.
|
|
**Note:** Dudley writes "Tyre's call on format" in his response, which suggests he'll defer. But his manifest example uses `content/manifest.ron` and all NPC profile examples are in RON. The two proposals need reconciliation before implementation.
|
|
|
|
### D-02: NPC Pattern/Motivation Mapping — 10 of 17 NPCs Disagree
|
|
|
|
This is the largest disagreement in Round 1. Gestalt and Paula independently mapped all 17 NPCs. They agree on 7 and disagree on 10.
|
|
|
|
#### Full Comparison Table
|
|
|
|
| # | NPC | Tier | Gestalt Pattern | Paula Pattern | Match? | Gestalt Motivation | Paula Motivation | Match? |
|
|
|---|-----|------|----------------|--------------|--------|-------------------|-----------------|--------|
|
|
| 1 | Kael Davan | T1 | FRIEND | FRIEND | YES | OPERATOR | OPERATOR | YES |
|
|
| 2 | Sera Venn | T1 | FRIEND | FRIEND | YES | WITNESS | WITNESS | YES |
|
|
| 3 | Naia Tamm | T1* | MIRROR | MIRROR | YES | CIVILIAN | CIVILIAN | YES |
|
|
| 4 | Voss | T2 | SYSTEM | SYSTEM | YES | **OPERATOR** | **HANDLER** | **NO** |
|
|
| 5 | Lera Sessik | T2 | ANCHOR | ANCHOR | YES | OPERATOR | OPERATOR | YES |
|
|
| 6 | Torek Lintar | T2 | CATALYST | CATALYST | YES | CIVILIAN | CIVILIAN | YES |
|
|
| 7 | Devra | T2 | THRESHOLD | THRESHOLD | YES | **HANDLER** | **OPERATOR** | **NO** |
|
|
| 8 | Maret Korr | T2 | **SYSTEM** | **WITNESS** | **NO** | **WITNESS** | **SKEPTIC** | **NO** |
|
|
| 9 | Resha | T2 | CATALYST | CATALYST | YES | **SKEPTIC** | **CIVILIAN** | **NO** |
|
|
| 10 | Renn | T2 | THRESHOLD | THRESHOLD | YES | OPERATOR | OPERATOR | YES |
|
|
| 11 | Pell | T2 | CATALYST | CATALYST | YES | TURNCOAT | TURNCOAT | YES |
|
|
| 12 | Harek | T2 | **GHOST** | **ANCHOR** | **NO** | HANDLER | HANDLER | YES |
|
|
| 13 | Drin | T2 (promoted) | **REMNANT** | **SYSTEM** | **NO** | TURNCOAT | TURNCOAT | YES |
|
|
| 14 | Sess | T3 | **ANCHOR** | **NOBODY** | **NO** | CIVILIAN | CIVILIAN | YES |
|
|
| 15 | Olin | T3 | CATALYST | CATALYST | YES | **SKEPTIC** (dual) | **CIVILIAN** | **NO** |
|
|
| 16 | Sabel | T3 | **THRESHOLD** | **GHOST** | **NO** | OPERATOR | OPERATOR | YES |
|
|
| 17 | Tav | T3 | **SYSTEM** | **NOBODY** | **NO** | **CIVILIAN** | **OPERATOR** | **NO** |
|
|
|
|
**Summary:** 7 full agreements, 4 pattern-only disagreements, 2 motivation-only disagreements, 4 both-disagree cases.
|
|
|
|
#### Analysis of Each Disagreement
|
|
|
|
| NPC | Disagreement | Gestalt's Reasoning | Paula's Reasoning | Assessment |
|
|
|-----|-------------|--------------------|--------------------|------------|
|
|
| **Voss** (motivation) | OPERATOR vs HANDLER | "Running the schedule that enables smuggling" | "Manages operations, applies scheduling pressure" | Both defensible. Gestalt sees Voss as OPERATING the system; Paula sees Voss as HANDLING people through scheduling authority. Voss arguably does both. |
|
|
| **Devra** (motivation) | HANDLER vs OPERATOR | "Managing operations from above" = HANDLER | "Running the external coordination" = OPERATOR | Swapped vs Voss. Gestalt sees Devra as a handler (pressure from above), Paula sees Devra as running things (operational). |
|
|
| **Maret** (both) | SYSTEM+WITNESS vs WITNESS+SKEPTIC | "Institutional scheduler... saw discrepancies" | "Accidentally witnessed discrepancies... doubts the system" | Core question: is Maret primarily a SYSTEM embodiment (institutional role) or a WITNESS (defined by what she saw)? Motivation: does she WITNESS (passive) or SKEPTIC (active questioning)? |
|
|
| **Resha** (motivation) | SKEPTIC vs CIVILIAN | "Doubts the 'mind your business' culture" | "Not suspicious — just curious" | Key difference: Gestalt interprets Resha's questions as genuine skepticism; Paula interprets them as innocent curiosity (CIVILIAN). |
|
|
| **Harek** (pattern) | GHOST vs ANCHOR | "Shapes events through debt leverage, not direct membership" | "Embodies complacent contentment — but unconsciously creates tools" | Gestalt sees Harek's indirect influence as GHOST-like; Paula sees Harek's comfortable contentment as ANCHOR-like. Both are valid reads of different aspects. |
|
|
| **Drin** (pattern) | REMNANT vs SYSTEM | "Remembers when the job was just a job" | "The dock inspector IS the inspection system" | Gestalt foregrounds Drin's nostalgia; Paula foregrounds Drin's institutional role. SYSTEM seems mechanically stronger (his compromise corrupts the system). |
|
|
| **Sess** (pattern) | ANCHOR vs NOBODY | "Quiet contentment behind the bar" | "Social wallpaper... background that could become foreground" | Gestalt sees Sess as genuinely content (ANCHOR at T3); Paula sees Sess as currently invisible (NOBODY). Depends on whether ANCHOR can be T3. |
|
|
| **Olin** (motivation) | SKEPTIC (dual) vs CIVILIAN | "Asks questions with ambiguous intent" = SKEPTIC | "Uninvolved (as far as anyone knows)" = CIVILIAN | Gestalt gives Olin dual motivation (ambiguity IS the character). Paula keeps it simpler. |
|
|
| **Sabel** (pattern) | THRESHOLD vs GHOST | "Off-station gatekeeper of supply chain" | "Absent power — off-station, never fully present" | Gestalt sees Sabel as a gatekeeper (THRESHOLD); Paula sees Sabel as absent power (GHOST). Both are right about different functions. |
|
|
| **Tav** (both) | SYSTEM+CIVILIAN vs NOBODY+OPERATOR | "Ring lookout following procedure... lowest rung" | "Peripheral, barely visible... running lookout operations" | Gestalt sees a system functionary; Paula sees a background figure doing a job. |
|
|
|
|
**Resolution path:** These disagreements reflect genuinely different analytical lenses. Gestalt maps from *mechanical function* (what does this NPC do in the system?). Paula maps from *narrative weight* (what does this NPC mean to the story?). Round 2 should produce a single canonical mapping with explicit rationale per NPC.
|
|
|
|
### D-03: Smuggler EntityKnowledge Keys — 4 New vs 8 New
|
|
|
|
| Position | Advocate | Keys |
|
|
|----------|----------|------|
|
|
| **4 new keys** (+ 2 existing repurposed, + 2 deferred) | Gestalt | New: `exposure_risk`, `loyalty_assessment`, `cover_integrity`, `moral_weight`. Repurposed: `trust_level` → `trust_read`, `secret_held` → `leverage_held`. Deferred: `social_debt`, `loyalty_conflict`. |
|
|
| **8 new keys** (all as new additions) | Paula | All 8 as separate new keys: `trust_read`, `exposure_risk`, `loyalty_assessment`, `leverage_held`, `social_debt`, `moral_weight`, `cover_integrity`, `loyalty_conflict` |
|
|
|
|
**Key difference:** Gestalt argues `trust_read` and `leverage_held` already exist as `trust_level` and `secret_held` with per-character interpretation. Paula treats them as distinct keys. Gestalt also defers `social_debt` (no time for favor economy in 30min) and `loyalty_conflict` (inferable from existing keys).
|
|
|
|
**Impact:** Affects knowledge graph schema, smuggler monologue prerequisite vocabulary, content authoring complexity.
|
|
|
|
### D-04: Examine NPC vs Talk — Separate or Combined?
|
|
|
|
| Position | Advocate | Argument |
|
|
|----------|----------|----------|
|
|
| **Separate interactions** (E to Examine, F to Talk) | Gestalt | Detective loop: examine first → talk later. Smuggler loop: talk first → examine when suspicious. Collapsing them breaks both loops. |
|
|
| **Single primary action** (context determines) | Stig | "Default to Talk for NPCs, Examine for objects, handle edge cases when they arise." Asks Gestalt to confirm. |
|
|
|
|
**Impact:** Directly affects UI design, keybinding, server interaction pipeline.
|
|
**Note:** Not a strong disagreement — Stig asks the question, Gestalt has a firm answer. Needs explicit decision.
|
|
|
|
### D-05: Knowledge Panel Pause Behavior
|
|
|
|
Stig asks: "Does opening the knowledge panel pause the game? Semi-pause?"
|
|
- Stig leans toward semi-pause (10% simulation speed)
|
|
- No response from Gestalt yet in this round
|
|
|
|
---
|
|
|
|
## 3. Open Questions (From Respondents)
|
|
|
|
### From Gestalt
|
|
- Q: Should triangle forks cascade across triangles in v0.1? (Tyre says no — self-contained)
|
|
|
|
### From Paula
|
|
- Q: Other wiki gaps? (She identified 7 additional gaps beyond the brief's list — see section 7)
|
|
- Q: Harek's structural role — formalize as triangle member or "external pressure node"?
|
|
|
|
### From Tyre
|
|
- Q: Protocol evolution v2 → v3 — sign-off needed for new ObserverSnapshot fields
|
|
- Q: Line previewer CLI — when to build? (Early, per his recommendation)
|
|
|
|
### From Mellanie
|
|
- Q: Confirm monologue guide examples as canonical PC voice registers? (Blocks all monologue authoring)
|
|
- Q: Maximum monologue line length? (She needs char limits from Stig — Stig proposes ~160 chars/2 lines)
|
|
- Q: Smuggler internal voice register — how terse? How operational?
|
|
- Q: Detective internal voice register — how clinical? How institutional?
|
|
|
|
### From Stig
|
|
- Q: IPC message format for state updates? (For Dudley)
|
|
- Q: Server sends full text or line IDs? (Stig prefers full text — keeps client thin)
|
|
- Q: Lattice panel diegetic styling — how far in v0.1? (For Araminta)
|
|
- Q: Monologue text colors per character — conflict with D-033 entity palette? (For Araminta)
|
|
|
|
### From Dudley
|
|
- Q: `PlayerAction::Interact` is currently a no-op — needs extension (protocol change)
|
|
- Q: Need Tyre sign-off on ObserverSnapshot v2 → v3 protocol evolution
|
|
|
|
---
|
|
|
|
## 4. Scope Boundary — Revised IN/OUT
|
|
|
|
### Gestalt's Additions to IN (4 items)
|
|
|
|
| Added Item | Rationale | Cross-Support |
|
|
|-----------|-----------|---------------|
|
|
| **News ticker** | Required for wow moment #5 | Stig (designed world-space implementation), Mellanie (budgeted 20 items) |
|
|
| **PC-as-NPC** | Required for divergence reveal (wow moment #4) | Paula (identified as Gap 1), Mellanie (budgeted 25 items) |
|
|
| **Time progression** | Required for NPC routines, shift transitions | Dudley (DayPhase exists), Stig (HUD designed) |
|
|
| **Relationship state transitions** | Required for FRIEND arc (Friendly → PersonOfInterest) | Dudley (RelationshipState in knowledge graph) |
|
|
|
|
### Gestalt's Additions to OUT (5 items)
|
|
|
|
| Excluded Item | Rationale | Risk if not excluded |
|
|
|-------------|-----------|---------------------|
|
|
| **Inventory system** | Evidence is knowledge, not physical items | Feature creep ("pick up the manifest") |
|
|
| **Stealth mechanics** | Social stealth, not mechanical stealth | Immersive sim instincts will demand it |
|
|
| **Combat system** | Not in D-027 criteria | Ate scope from other features |
|
|
| **Player-facing save/load** | Session-based 30-minute slice | Dev-mode save fine, player-facing deferred |
|
|
| **Lattice modification/upgrade** | Contraband IS lattice components but player can't use them | "Can the player use smuggled mods?" No. |
|
|
|
|
---
|
|
|
|
## 5. Content Volume Estimates (Mellanie)
|
|
|
|
| Category | Items | Priority |
|
|
|----------|-------|----------|
|
|
| Monologue pools (2 characters) | ~200 lines | Critical |
|
|
| NPC dialogue | ~350 lines | Critical |
|
|
| Environmental text | ~50 items | High |
|
|
| News ticker | ~20 items | Medium |
|
|
| UI microcopy | ~50 strings | High |
|
|
| PC-as-NPC content | ~25 items | Medium |
|
|
| **TOTAL** | **~695** | |
|
|
|
|
**Authoring order (Mellanie's proposed sequence):**
|
|
1. THE FRIEND: Kael content pack (~100 lines) — exercises every pipeline
|
|
2. THE FRIEND: Sera content pack (~100 lines)
|
|
3. THE MIRROR: Naia Tamm (~60-70 lines)
|
|
4. Tier 2 NPCs (~100-150 lines: Voss, Lera, Torek, Maret)
|
|
5. Environmental text + ticker (~70 items)
|
|
6. Remaining monologue fill (top up to ~200)
|
|
7. UI copy + tutorial monologue (~50 strings)
|
|
8. Tier 3 background + PC-as-NPC (~50 items)
|
|
|
|
---
|
|
|
|
## 6. Technical Risk Assessment (Tyre)
|
|
|
|
| Feature | Risk | Primary Factor | Mitigation |
|
|
|---------|------|----------------|------------|
|
|
| WASD + collision | Low | None significant | Already built |
|
|
| 3 social sites | Low | Art (not v0.1 concern) | Functional boxes |
|
|
| NPC routines | Low-Medium | Content authoring time | Start schedules early |
|
|
| Knowledge graph | Medium | Downstream dependency chain | Sprint 2 narrow scope |
|
|
| 2 playable characters | Medium | Content volume doubling | Content validation tooling |
|
|
| Context-sensitive interaction | Medium | Dialogue selection tuning | Line previewer CLI |
|
|
| **Monologue system** | **High** | Trigger detection + prerequisite eval | Simple AND-only prerequisites |
|
|
| **THE FRIEND arc** | **High** | Integration of all systems | Dedicated integration test |
|
|
| 5 triangle forks | Medium-High | Cascade complexity | Self-contained forks |
|
|
| 6 wow moments | Varies | #3 is the critical path | Prioritize everything unblocking #3 |
|
|
|
|
**Critical path:** Knowledge graph → Contradiction detection → FRIEND phase transitions → Spatial staging → Monologue trigger → Monologue display → FRIEND content authored and loaded.
|
|
|
|
**What will take longer than expected (Tyre's warnings):**
|
|
1. Monologue prerequisite tuning (gap between "works" and "feels right")
|
|
2. Dialogue selection weighting (same tuning problem)
|
|
3. Spatial staging for THE FRIEND (Kael in Corridor B-7 when player is nearby, without feeling scripted)
|
|
4. Content conversion (17 NPC wiki profiles → YAML, ~2-3 full days)
|
|
|
|
---
|
|
|
|
## 7. Wiki Gaps Identified (Paula)
|
|
|
|
Beyond the 5 issues in the brief, Paula identified 7 additional gaps:
|
|
|
|
| # | Gap | Blocks | Priority |
|
|
|---|-----|--------|----------|
|
|
| Gap 1 | **PC-as-NPC profiles missing** | Server entity spawning, dialogue, monologue about other PC | Critical |
|
|
| Gap 2 | **Monologue content pool — zero authored lines** | Monologue system integration testing | Critical |
|
|
| Gap 3 | **NPC routine YAML layer missing** | Server NPC scheduling, deviation detection | Critical |
|
|
| Gap 4 | **Triangle fork decision points not mechanically specified** | Storyteller triggers, dialogue branching | High |
|
|
| Gap 5 | **FactId catalog — smuggler path entries sparse** | Knowledge graph population, monologue prerequisites | High |
|
|
| Gap 6 | **Location files lack smuggler operational detail** | Environmental monologue triggers, spatial gameplay | Medium |
|
|
| Gap 7 | **Harek has no triangle membership despite T2 role** | Triangle 2/5 formalization | Medium |
|
|
|
|
---
|
|
|
|
## 8. ECS / Server Architecture (Dudley)
|
|
|
|
### Components Proposed
|
|
|
|
| Component | Purpose | v0.1? |
|
|
|-----------|---------|-------|
|
|
| `ThematicPattern` | System A tag (9 patterns) | Yes |
|
|
| `FunctionalMotivation` | System B tag (6 motivations) | Yes |
|
|
| `FriendArc` | THE FRIEND phase tracking, contradiction detection | Yes (Kael, Sera only) |
|
|
| `ContentTier` | Tier1/Tier2/Tier3 simulation depth | Yes |
|
|
| `AccessTierMap` | D-028 Layer 1 dialogue access filtering | Yes |
|
|
| `TrustLevels` | D-028 Layer 3 gossip gating | Yes |
|
|
| `TriangleMembership` | Triangle role references per NPC | Yes |
|
|
| `NpcRoutine` | Schedule-based movement (DayPhase → position) | Yes |
|
|
| `MoodState` | D-035 mood tag for dialogue selection | Yes |
|
|
| `NobodyState` | Promotion stages + interaction counter | Deferred |
|
|
| `GhostInfluence` | Off-stage influence | Deferred |
|
|
| `CatalystTrigger` | Arrival/disruption event chain | Deferred |
|
|
|
|
### Key Design Principle (Dudley)
|
|
"Pattern and motivation are tags for content selection, not unique simulation subsystems. THE FRIEND is the sole exception in v0.1 because its arc progression is load-bearing."
|
|
|
|
### What Dudley Can Build Now (No Content Dependency)
|
|
- Content loader framework (Phase 1-6 skeleton)
|
|
- Proximity trigger system
|
|
- Interaction event pipeline
|
|
- Dialogue selection pipeline (D-035 tag filtering)
|
|
- Monologue trigger system
|
|
- NPC routine scheduler
|
|
- FriendArc phase transition logic
|
|
- All with fixture/synthetic data
|
|
|
|
### What Dudley Cannot Build Without Content
|
|
- Actual NPC spawning (needs profiles in structured format)
|
|
- Real dialogue/monologue testing (needs authored lines)
|
|
- NPC routine pathfinding (needs district spatial layout)
|
|
- Overheard conversations (needs NPC-NPC scripts)
|
|
- FactId catalog (needs machine-readable version)
|
|
- Triangle escalation logic (needs formal conditions)
|
|
|
|
---
|
|
|
|
## 9. UI Architecture (Stig)
|
|
|
|
### v0.1 UI Bill of Materials
|
|
|
|
| Element | Priority | Effort |
|
|
|---------|----------|--------|
|
|
| Monologue renderer | P0 (must ship) | Medium |
|
|
| Interaction prompt | P0 | Low |
|
|
| Dialogue panel | P0 | Medium |
|
|
| Entity color system | P0 | Low |
|
|
| HUD bar (location + time) | P1 (placeholder OK) | Low |
|
|
| Minimap | P1 | Medium |
|
|
| Knowledge panel | P1 | Medium |
|
|
| News ticker (world-space) | P1 | Low |
|
|
| Fog rendering | P0 (shared with server) | High |
|
|
|
|
**Total:** ~9 scenes, ~9 scripts, 2 shaders.
|
|
|
|
### Key Design Decisions (Stig)
|
|
- Center of screen is sacred (no permanent UI)
|
|
- Monologue: bottom-left, 40% width, fades in/out, character-tinted text
|
|
- Dialogue: bottom-center, 60% width, semi-transparent dark panel, world visible behind
|
|
- Interaction prompt: world-space, tracks entity, single action
|
|
- Knowledge panel: right-side overlay on [Tab], diegetic lattice interface
|
|
- News ticker: world-space text on bar's display entity (not HUD)
|
|
- Monologue display time: 4-6 seconds adjusted by text length
|
|
- Character text colors: Detective blue-white `#c8d8f0`, Smuggler amber-white `#f0e0c8`
|
|
|
|
---
|
|
|
|
## 10. Cross-Reference: Ticket Categories (Tyre)
|
|
|
|
Tyre proposes ticket splits across 8 categories:
|
|
|
|
1. **Content Infrastructure** — directory structure, content loader (4 phases), validation schemas, line previewer CLI
|
|
2. **Wiki → Content Conversion** — NPC profiles (17), locations (3), fact catalog, triangles (5), routines
|
|
3. **Monologue System** — trigger detection, prerequisite evaluation, line pool selection, pacing/cooldown, content authoring, display UI, chime audio
|
|
4. **Dialogue System** — pool loader, selection algorithm, content authoring, UI
|
|
5. **Interaction Model** — proximity detection, state machine, prompt UI
|
|
6. **THE FRIEND Arc** — phase transitions, contradiction detection, tell accumulation, content (Kael + Sera), relationship colors, integration test
|
|
7. **NPC Rendering + Routines** — schedule execution, deviation events, sprite/label rendering, movement animation
|
|
8. **Cross-Cutting** — PC-as-NPC, news ticker, smuggler lens parity, Naia Tamm rename
|
|
|
|
**Dependency chain critical path (Tyre):**
|
|
```
|
|
Content directory structure
|
|
-> Content loader (Phase 1-2)
|
|
-> NPC profile conversion -> NPC schedule execution
|
|
-> Content loader (Phase 3-4)
|
|
-> Dialogue pool loader -> Dialogue selection -> Dialogue UI
|
|
-> Monologue trigger detection
|
|
-> Prerequisite evaluation
|
|
-> Line pool selection
|
|
-> Monologue pacing -> Monologue display UI
|
|
|
|
Knowledge graph (Sprint 2)
|
|
-> Contradiction detection -> FRIEND phase transitions
|
|
-> Monologue prerequisite evaluation
|
|
-> Tell system accumulation
|
|
```
|
|
|
|
---
|
|
|
|
## 11. Items Requiring Round 2 Resolution
|
|
|
|
| # | Item | Required Participants | Priority |
|
|
|---|------|---------------------|----------|
|
|
| R2-01 | **Canonical NPC pattern/motivation mapping** (resolve 10 disagreements) | Gestalt, Paula | Critical |
|
|
| R2-02 | **Content format: YAML vs RON** | Tyre, Dudley | Critical |
|
|
| R2-03 | **Smuggler EntityKnowledge keys: 4 new vs 8 new** | Gestalt, Paula, Dudley | High |
|
|
| R2-04 | **Examine NPC vs Talk: separate or combined interaction?** | Gestalt, Stig, Dudley | High |
|
|
| R2-05 | **Knowledge panel pause behavior** | Gestalt, Stig | Medium |
|
|
| R2-06 | **PC voice register confirmation** (blocks Mellanie's authoring) | Gestalt or Paula | High |
|
|
| R2-07 | **Triangle fork cascade: self-contained or cross-triangle?** | Gestalt, Tyre | High |
|
|
| R2-08 | **Harek's structural role** (triangle member vs external pressure node) | Gestalt, Paula | Medium |
|
|
| R2-09 | **ObserverSnapshot v2 → v3 protocol change** | Tyre, Dudley, Stig | High |
|
|
| R2-10 | **SI ticket review** (pending SI response) | SI | High |
|
|
|
|
---
|
|
|
|
## 12. Decisions Ready to Formalize
|
|
|
|
If the lead approves, these can become decisions immediately (no further discussion needed):
|
|
|
|
| Proposed ID | Decision | Source |
|
|
|-------------|----------|--------|
|
|
| D-042 | Drin promoted from Tier 3 to Tier 2 | Gestalt (unanimous), Paula (profile drafted) |
|
|
| D-043 | THE NOBODY mechanic deferred to v0.2; hidden pattern+motivation data ships in NPC content files for v0.1 | Gestalt, Dudley |
|
|
| D-044 | v0.1 interaction model: 7 interactions (Move, Look, Monologue, Examine Object, Examine NPC, Talk, Overhear) | Gestalt (designed), Stig (UI for each), Dudley (server events) |
|
|
| D-045 | v0.1 scope: add News ticker, PC-as-NPC, Time progression, Relationship state transitions to IN list | Gestalt (rationale per item) |
|
|
| D-046 | v0.1 scope: add Inventory, Stealth, Combat, Player-facing save/load, Lattice modification to explicit OUT list | Gestalt (rationale per item) |
|
|
| D-047 | v0.1 triangles: 3 active forks (T1, T2, T4), 2 passive tensions (T3, T5) | Gestalt |
|
|
| D-048 | Client receives all text from server via state updates; client does not load or evaluate content files | Stig, Dudley, Tyre (information boundary principle) |
|
|
|
|
---
|
|
|
|
## 13. Ticket Analysis (SI)
|
|
|
|
### Round 2 List Scorecard
|
|
|
|
**26 of 29 tickets survive the 300-world reframe.**
|
|
|
|
| Disposition | Count | Tickets |
|
|
|-------------|-------|---------|
|
|
| Survive unchanged | 11 | A1, A2, A7, A8, A10, A11, B2, B3, B4, B5, C1 |
|
|
| Survive reframed | 15 | A3 (merge into #319), A4, A6, A9, A12, B1, C2, C3, C4-C8, C9, C10, D2 |
|
|
| Deferred (v0.2+) | 2 | A5 (wiki index restructure), D1 (cultural_gate modifier) |
|
|
| Killed | 1 | D3 (secondary contraband variant FactIds — explicitly OUT) |
|
|
|
|
### 7 New Tickets Proposed
|
|
|
|
| ID | Title | Team | Priority | Key Dependencies |
|
|
|----|-------|------|----------|-----------------|
|
|
| NEW-1 | NPC pattern/motivation mapping for v0.1 | copy | high | None |
|
|
| NEW-2 | Drin tier promotion evaluation | copy | medium | NEW-1 |
|
|
| NEW-3 | Wiki → YAML content conversion (Sova NPCs) | copy | high | C1, C2, C3 |
|
|
| NEW-4 | Monologue content pool — minimum viable set | copy | high | #261, B4 |
|
|
| NEW-5 | v0.1 wow moment content checklist | copy | high | None |
|
|
| NEW-6 | PC-as-NPC content authoring (authored lines) | copy | high | B3, B5 |
|
|
| NEW-7 | Interaction model minimum spec | copy | medium | None (informed by workshop Topic 4) |
|
|
|
|
### Existing Ticket Updates
|
|
|
|
| ID | Title | Action |
|
|
|----|-------|--------|
|
|
| #368 | Knowledge vocabulary for v0.1 content | Close when wiki review accepted |
|
|
| #369 | Wiki Review Workshop Outputs (epic) | Repurpose as parent epic for v0.1 content scoping |
|
|
| #301 | Wiki taxonomy and structure | Assign to copy, downscope for v0.1 (Sova only) |
|
|
| #319 | Krenn System wiki entry | Merge with A3 (expanded: wiki page + seed.yaml reference) |
|
|
| **#261** | **Dual Lens Authoring Guide** | **CRITICAL BOTTLENECK — blocks 9 downstream tickets** |
|
|
| #310 | Character voice speech patterns | Merge with or block on B4 |
|
|
| #306 | News ticker / Meridian feed content | Update scope per D4 (40-50 headlines) |
|
|
| #326 | YAML content loader | Assign to server, blocked by C1+C2, Sprint 4 |
|
|
|
|
### Sprint 3 Copy Team (14 tickets proposed)
|
|
|
|
**P0 — Must start immediately:**
|
|
|
|
| Ticket | Title | Blocked By |
|
|
|--------|-------|------------|
|
|
| A2 | Hael → Naia Tamm rename | — |
|
|
| A1 | Apply canonical full names | — |
|
|
| A7 | Smuggler entity attributes | — |
|
|
| C1 | Content directory structure design | — |
|
|
| **#261** | **Dual Lens Authoring Guide** | **— (Critical path root)** |
|
|
|
|
**P1 — Start after P0s:**
|
|
|
|
| Ticket | Title | Blocked By |
|
|
|--------|-------|------------|
|
|
| A10 | Nils Davan stub | — |
|
|
| A11 | Triangle 1 fix | A10 |
|
|
| B2 | MIRROR pattern spec | — |
|
|
| B4 | Smuggler voice + moral arc | A7 |
|
|
| NEW-1 | NPC pattern/motivation mapping | — |
|
|
| NEW-5 | Wow moment content checklist | — |
|
|
|
|
**P2 — Fit in around P0/P1:**
|
|
|
|
| Ticket | Title | Blocked By |
|
|
|--------|-------|------------|
|
|
| A8 | Shortcode fix | — |
|
|
| B3 | PC-as-NPC spec | A7 |
|
|
| NEW-7 | Interaction model minimum spec | — |
|
|
|
|
### Sprint 3 Server Tickets (content-related)
|
|
|
|
| Ticket | Title | Blocked By |
|
|
|--------|-------|------------|
|
|
| C2 | Create content/ directory skeleton | C1 |
|
|
| C3 | Content schema definitions | C1 |
|
|
|
|
### Critical Path (SI's Analysis)
|
|
|
|
Two parallel chains must begin in Sprint 3:
|
|
|
|
**Chain 1 — Content authoring:**
|
|
```
|
|
#261 (Dual Lens Guide) → B4 (Smuggler voice) → A6 (FactId text) → content packs → monologue pool
|
|
```
|
|
|
|
**Chain 2 — Content architecture:**
|
|
```
|
|
C1 (Directory design) → C2/C3 (skeleton/schemas) → C4-C8/NEW-3 (YAML files) → #326 (loader)
|
|
```
|
|
|
|
**#261 is the single biggest blocker in the entire content pipeline.** It blocks 9 tickets directly and cascades into everything. SI recommends immediate assignment with Paula as owner.
|
|
|
|
### v0.1 IN List → Ticket Coverage
|
|
|
|
| IN List Item | Status | Gaps |
|
|
|-------------|--------|------|
|
|
| WASD movement + collision | Covered (Sprint 1-2 done) | — |
|
|
| Context-sensitive interaction | Partially covered | Needs NEW-7 spec |
|
|
| Monologue system | Architecture covered | Content gap (NEW-4) |
|
|
| Knowledge graph | Covered | — |
|
|
| 2 playable characters | Covered (architecture) | — |
|
|
| THE FRIEND arc | Covered but **blocked by #261** | — |
|
|
| 5 triangles with forks | Partially covered | Weak Triangle 1 (A11) |
|
|
| 6 wow moments | **Gap** | Needs NEW-5 tracking ticket |
|
|
| 3 social sites | Covered but blocked by #261 | — |
|
|
| NPC routines | Covered (server) | — |
|
|
| Dual-lens parity | **Major gap** | Smuggler lens incomplete (A7, B4, A6) |
|
|
| PC-as-NPC | **Gap** | No tickets exist (B3, B5, NEW-6) |
|
|
| Content directory | **Gap** | Structure undefined (C1, C2, C3) |
|
|
| Content validation | **Gap** | No validation exists (C9, C10) |
|
|
|
|
---
|
|
|
|
*Qatux, Round 1 tracking. For the record: all 7 responses cataloged, 17 consensus items, 5 disagreements requiring resolution, 7 additional wiki gaps identified, 10 open questions, 7 decisions ready to formalize. SI confirms 26 surviving tickets + 7 new proposals. #261 (Dual Lens Authoring Guide) is the critical bottleneck — blocks 9 downstream tickets across the entire content pipeline.*
|