diff --git a/docs/briefings/gestalt.md b/docs/briefings/gestalt.md index 90ced4a5b..e7f6b0253 100644 --- a/docs/briefings/gestalt.md +++ b/docs/briefings/gestalt.md @@ -1,11 +1,11 @@ # Gestalt - Project Briefing -Last updated: 2026-02-11 +Last updated: 2026-02-13 ## Current Project State -The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 41 confirmed decisions, 17 discussion rounds + 2 workshops complete. Engine selected (D-020). Vertical slice defined (D-027). v0.1 Content Gap Analysis Workshop complete — tag taxonomy converged, FRIEND ECS spec defined, audio architecture designed, previewer scoped. Knowledge Graph & Information Boundaries Workshop complete (D-041) — Q-016 resolved. +The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 41+ confirmed decisions, 17 discussion rounds + 2 workshops complete. Engine selected (D-020). Vertical slice defined (D-027). Sprints 1-4 complete. Sprint 5 (Live) active — content at scale. ## Status -**ACTIVE.** Systems specification work unblocked. Tag taxonomy needs formalization as standalone document. Knowledge state vocabulary blocks Mellanie's monologue authoring. 17 content-supporting systems identified, 0 built — significant server-side work ahead. +**ACTIVE.** Sprint 5 systems content support. Tag taxonomy is formalized in YAML schemas. Knowledge vocabulary delivered. Content pipeline operational. Primary role this sprint: validate FRIEND pack content against systems constraints, support relationship phase mapping. ## Decisions Relevant to Your Role - D-005: Core concept — story generator mechanics, emergent narrative from systems @@ -16,60 +16,59 @@ The Settled Reach: top-down immersive sim, single-character perspective, asymmet - D-017: Perception loadout system — observer queries - D-018: Three-range sound system — information quality by distance - D-020: Godot client + Rust/bevy_ecs simulation via subprocess/IPC -- D-021: Official title "The Settled Reach" - D-024: 10-axis NPC consolidation - D-025: Social site as systemic unit - D-026: Timestamp eviction - D-027: Vertical slice as systems proof - D-028: Axis-to-pipeline mapping (dialogue selection) +- D-032: Separate monologue pools — `character` is a hard partition tag +- D-034: THE FRIEND ECS spec — full pipeline depth test +- D-035: Converged tag taxonomy (6+3) — your Round 2 design is canonical +- D-038: Audio architecture — event-driven system +- D-039: 6 wow moments — systems must support all 6 +- D-041: Knowledge Graph Data Model — 4-level confidence hierarchy, contradiction detection -### Workshop Decisions (Content Gap Analysis) -- **D-032: Separate monologue pools** — `character` is a hard partition tag. Two parallel content trees. -- **D-034: THE FRIEND ECS spec** — full pipeline depth test. Every system exercised on these two NPCs. ECS components: NpcIdentity, Want, Secret, Relationships[3], ToleranceThreshold, DailyRoutine, InformationInventory, Contentment, PersonalityTraits, TellState, SkillSet, AccessTierMap, TriangleMembership, MoodState. -- **D-035: Converged tag taxonomy (6+3)** — your Round 2 design is canonical: - - 6 structural: `id`, `text`, `role`, `access` (list), `trust`, `situation` (list) - - 3 selection: `topic` (list), `mood` (list), `tags` (freeform) - - 13 situations, 9 topics, 8 moods, 9 monologue triggers - - 4-layer pipeline: access (hard filter) → situation (context filter) → trust (hard filter) → mood+topic (weighted selection) -- **D-033: Entity color** — client-side derivation from RelationshipState + knowledge state. Not an NPC property. -- **D-038: Audio architecture** — event-driven: SoundEventEmitter → ObserverSnapshot → SoundRenderer with AudioAssetRegistry + VisualSoundIndicator + AmbientManager. Events first, assets second. -- **D-039: 6 wow moments** — systems must support all 6 (observation triggers, FRIEND contradiction staging, divergence reveal, ticker display, idle monologue). -- **D-041: Knowledge Graph Data Model** — 4-level confidence hierarchy: Suspects < KnowsOf < KnowsDetails < Direct. Resolves Q-016. Maps to D-028 access tiers and D-035 prerequisite tags. Per-entity KnowledgeGraph Component with BTreeMap storage. KnowledgeState enum supports contradiction detection for THE FRIEND arc (D-034). Sprint 2 scope: data structures + direct observation + basic decay. +## What's Been Delivered (Sprints 2-4) +### Server infrastructure (all operational): +- Knowledge graph components + types (#361), event queue (#363), direct observation flow (#364), decay (#365) — Sprint 2 +- Content directory structure (#385), schema definitions (#386), validate-content CLI (#392) — Sprint 3 +- Global enums YAML (#387), entity-attributes.yaml (#388), pools.yaml (#389), template YAMLs (#390), triangle YAMLs (#391) — Sprint 4 +- Seed configuration schema (#394) — Sprint 4 +- YAML content loader Phase 2 (#408) — Sprint 4 +- YAML-to-RON converter (#403) — Sprint 4 +- Line previewer CLI (#407) — Sprint 4 + +### Content pipeline: fully operational +- Schemas defined, loader working, validator running, previewer available +- Tag taxonomy formalized in `content/_schema/` and `content/global/enums/` + +## Sprint 5 Priorities +**Sprint briefing:** `docs/sprints/sprint-5/copy.md` (supporting copy team) + +### Primary: +1. **Relationship phase mapping for Kael and Sera** — map the arc phases to concrete systems triggers, tag transitions, and knowledge state thresholds. Support Paula during FRIEND profile authoring. +2. **#379 NPC Authoring Style Guide validation** — review Gestalt constraints section, verify tag usage rules, validate 4-layer pipeline documentation. +3. **FRIEND pack content validation** — when #297/#298 content arrives, validate tag compliance, access tier correctness, trust progression logic, monologue trigger prerequisites. + +### Supporting: +4. **Tag usage review** — ensure FRIEND pack content exercises the full tag taxonomy correctly +5. **Contradiction detection spec support** — verify FRIEND contradiction content maps correctly to D-041 knowledge states ## Open Questions Assigned to You - Q-002: v0.1 scope definition (co-lead) - Q-005: Prototype scale (co-lead with Tyre, Miri) -- Q-009: Time system design — resolved (D-031) - Q-010: Storyteller AI architecture (co-lead with Nigel) - Q-012: Generation expansion method (co-lead with Mellanie) - Q-013: Line previewer temporal progression (co-lead with Dudley) - Q-014: Audio timing with monologue chime (co-lead with Ozzie) - Q-015: Generation expansion for FRIEND content (co-lead with Mellanie) -- Q-016: Knowledge hierarchy for prerequisites — **RESOLVED** (D-041) - Q-017: Triangle pressure threshold (co-lead with Paula) -- Q-024: Gossip propagation timing (co-lead with Tyre) — preferred direction: queued +- Q-024: Gossip propagation timing (co-lead with Tyre) - Q-026: Contradiction detection algorithm (co-lead with Paula, Dudley) -## Current Priorities -**Systems specification → server implementation support → previewer** - -1. **Lock tag taxonomy + line pool format** — formalize Round 2 converged schema as standalone spec document. Reference for all content authors. -2. **Knowledge state vocabulary** — **UNBLOCKED** by D-041. Use 4-level confidence hierarchy (suspects/knows_of/knows_details) plus FactId format (`category.topic`). See D-041 Appendix A for v0.1 vocabulary and prerequisite format. -3. **Dialogue selection pipeline specification** — formalize the 4-layer filter algorithm for server implementation. -4. **Sound event system architecture** — formalize Round 2 section 6 for Dudley. -5. **Line previewer (#193) MVP scope** — 7 must-have features. Build as first implementation of dialogue pipeline (shares 80% code). Rust CLI. -6. **Content-to-system mapping validation** — 17 content needs, 0 built. Track which systems are needed when. - -### Systems critical path -``` -NPC Component Architecture (10 axes) - +-> NPC Routine System → Observation Event Generator → Monologue Trigger System - +-> NPC Mood State Machine → Tell State Derivation - +-> Interaction Tracking → Trust Progression - +-> YAML Content Loader → Dialogue Selection Pipeline → Line Variety Tracker -``` - ## Key Documents - decisions/content.md — D-023 through D-037 -- decisions/architecture.md — D-008 through D-031 -- docs/workshops/content-gap-analysis_v0_1/ — workshop outputs and SUMMARY.md (your Round 2 has converged taxonomy, ECS spec, audio architecture, previewer scope) +- decisions/architecture.md — D-008 through D-031, D-041 +- docs/sprints/sprint-5/copy.md — current sprint briefing (copy team, where Gestalt supports) +- content/_schema/ — YAML schema definitions (your taxonomy formalized) +- content/global/ — enums, knowledge, pools, templates, triangles diff --git a/docs/briefings/hoshe.md b/docs/briefings/hoshe.md index 6cc9986f6..ce30dce9d 100644 --- a/docs/briefings/hoshe.md +++ b/docs/briefings/hoshe.md @@ -1,8 +1,11 @@ # Hoshe - Project Briefing -Last updated: 2026-02-11 +Last updated: 2026-02-13 ## Current Project State -The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 40 confirmed decisions, 17 discussion rounds + 1 workshop complete. Engine selected (D-020). Vertical slice defined (D-027). v0.1 Content Gap Analysis Workshop complete. +The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 41+ confirmed decisions, 17 discussion rounds + 2 workshops complete. Engine selected (D-020). Vertical slice defined (D-027). Sprints 1-4 complete. Sprint 5 (Live) active — content at scale. + +## Status +**ACTIVE.** Sprint 5 is content-focused with no dedicated QA tickets, but test infrastructure from Sprint 4 needs maintenance and the content pipeline needs validation coverage. ## Decisions Relevant to Your Role Read `decisions/architecture.md` (D-010, D-020, D-030) and `decisions/perception.md` (D-011, D-017, D-018). Key decisions: @@ -11,31 +14,33 @@ Read `decisions/architecture.md` (D-010, D-020, D-030) and `decisions/perception - **D-027:** Vertical slice success criteria (30-min runway, divergent playthroughs, emergent discovery) - **D-030:** Testability architecture (hybrid Rust tests, gdUnit4, three-layer IPC, CauseChain) -## Open Questions Assigned to You -None assigned. +## What's Been Delivered (Sprints 2-4) +### Test infrastructure now in place: +- Integration test: tile type data in live server mode (#410, Sprint 4) +- Integration test: input roundtrip through live server (#411, Sprint 4) +- Knowledge graph unit test suite (#367, Sprint 2) +- `make validate-content` CLI (#392, Sprint 3) -## Current Priorities +### Content pipeline (testable surface): +- YAML content loader Phase 2 (#408) — content loading is live +- Content schema definitions (#386) — validation rules exist +- Global knowledge files (#388) — canonical FactId source for validation +- Line previewer CLI (#407) — can verify content loads without errors -**ATTENTION — Integration tests are landing and coverage matters.** -The client branch just merged into main with a real client-server integration test (#411) — spawns a live server, connects via TCP, validates the full movement and interact pipeline end-to-end. The product is tested when it is tested. Pay close attention to these integration tests: verify they run, verify they pass, verify they cover what they claim. When new integration tests land, that is the ground truth for product quality — not plans, not stubs. +## Sprint 5 Priorities -Comprehensive test coverage is the priority. Push for: -- **Proper test harnesses** — reusable fixtures that spin up server+client pairs, manage lifecycle, and tear down cleanly. Tests should be easy to write so people actually write them. -- **A dedicated client-server test map** — a minimal, purpose-built map designed to exercise routing, pathfinding edge cases, interaction boundaries, visibility transitions, and protocol correctness. This map should NOT depend on content generators or YAML loading — it exists purely to test the mechanical contract between client and server. -- **Edge case coverage over happy-path volume** — test what happens at boundaries: malformed packets, disconnects mid-tick, entities at map edges, interactions at max range, simultaneous inputs, tick desync scenarios. -- **Don't get hung up on content generators** — content loading has its own test surface. Integration tests should isolate the transport and simulation loop from content variability. +### Integration test maintenance: +1. **Verify existing integration tests still pass** after Sprint 4 merges — regression check +2. **Content loading integration tests** — verify YAML content loader handles real campaign content correctly (not just test fixtures) -**ACTIVATED.** Vertical slice test plan preparation: -1. Write test plans for D-024 (NPC generation — verify 10 axes present, triangles formed) -2. Write test plans for D-025 (template instantiation — verify single-ownership, reference links carry metadata) -3. Write test plans for D-026 (simulation tiers — verify eviction timing, tier transition correctness) -4. Write test plans for D-027 success criteria (30-min runway, divergent playthroughs, emergent discovery) -5. Write test plans for D-028 (dialogue system — verify tag filtering, trait modifiers, layer activation) -6. Write test plans for D-035 (converged tag taxonomy — verify 4-layer filter pipeline: access → situation → trust → mood+topic) -7. Write test plans for D-033 (entity color — verify color derivation from relationship state, transition timing) -8. Write test plans for D-034 (THE FRIEND — verify ECS component integrity, contradiction event detection) +### Content quality support: +3. **FactId validation testing** — when #393 (pre-commit hook) lands, verify it catches real typos and doesn't false-positive on valid content +4. **Line previewer regression tests** — verify FRIEND pack content loads through previewer without errors when #297/#298 complete -All test plans due BEFORE implementation begins. +### Ongoing priorities (from previous sprints): +5. **Test harness improvements** — reusable fixtures for server+client pairs +6. **Edge case coverage** — malformed packets, disconnects, entities at map edges, interactions at max range +7. **Dedicated test map** — minimal map for routing, pathfinding, visibility, protocol correctness (not dependent on content) ## Development Workflow See `docs/DEVOPS.md` for full procedures. Your key targets: @@ -43,14 +48,16 @@ See `docs/DEVOPS.md` for full procedures. Your key targets: - `make test-server` — Rust unit + integration tests - `make test-client` — gdUnit4 tests (headless runner pending) - `make lint` — run all linters -- `make ci` — full CI pipeline locally (lint → build → test) +- `make ci` — full CI pipeline locally (lint -> build -> test) +- `make validate-content` — content schema validation - Server tests: `server/` (inline `#[cfg(test)]` + `tests/` directory per D-030) - Client tests: `client/` (gdUnit4 per D-030) - Cross-boundary tests: `tests/` (IPC fixtures, serialization round-trips) - Test caches: `.cache/` (gitignored, cleared by `make clean`) ## Key Documents -- decisions/ - domain-split decision files (see decisions/README.md for index) -- docs/DEVOPS.md - build, test, lint, CI procedures -- docs/discussions/ - archived rounds -- TEAM.md - team roster +- decisions/ — domain-split decision files (see decisions/README.md for index) +- docs/DEVOPS.md — build, test, lint, CI procedures +- docs/sprints/sprint-5/ — current sprint briefings +- tests/ — integration and end-to-end tests +- TEAM.md — team roster diff --git a/docs/briefings/justine.md b/docs/briefings/justine.md index 483eea2ca..8e58c6ee8 100644 --- a/docs/briefings/justine.md +++ b/docs/briefings/justine.md @@ -1,11 +1,11 @@ # Justine - Project Briefing -Last updated: 2026-02-11 +Last updated: 2026-02-13 ## Current Project State -The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 40 confirmed decisions, 17 discussion rounds + 1 workshop complete. Engine selected (D-020). Vertical slice defined (D-027). v0.1 Content Gap Analysis Workshop complete. +The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 41+ confirmed decisions, 17 discussion rounds + 2 workshops complete. Engine selected (D-020). Vertical slice defined (D-027). Sprints 1-4 complete. Sprint 5 (Live) active — content at scale. ## Status -STANDBY. This briefing will be populated when build/deployment pipeline work begins. +**ACTIVE.** Single-ticket sprint for CI. Goal is content quality assurance — prevent FactId typos from reaching main during heavy content authoring. ## Key Decisions for Your Domain Read `decisions/architecture.md` (D-020, D-026, D-030) and `decisions/questions.md` (Q-007). Key decisions: @@ -13,12 +13,28 @@ Read `decisions/architecture.md` (D-020, D-026, D-030) and `decisions/questions. - **D-020:** Godot 4 + Rust subprocess architecture - **D-026:** State-saved NPC population — save game serializes 10K+ NPCs (~1-2KB each, ~10-20MB) - **D-030:** Testability architecture (CI pipeline structure, test runner tooling) +- **D-035:** Converged tag taxonomy with FactId references — relevant for validation + +## What's Been Delivered (Sprints 2-4) +- `make validate-content` CLI (#392, Sprint 3) +- Content schema definitions (#386, Sprint 3) +- Global knowledge YAML files (#388, Sprint 4) — canonical FactId source +- Integration tests landed (#410, #411, Sprint 4) + +## Sprint 5 Priorities +**Sprint briefing:** `docs/sprints/sprint-5/ci.md` + +1. **#393 Pre-commit FactId typo check** — grep-based pre-commit hook validating FactId references in YAML against canonical `content/global/knowledge/` files. + - Must run fast (<2 seconds) + - Coordinate with copy team (Mellanie, Paula) on naming conventions and edge cases + - Deliver early so copy team can use during FRIEND pack authoring + - Test plan: valid FactId passes, typo FactId fails with clear error ## Development Workflow See `docs/DEVOPS.md` for full procedures. You own the release pipeline. - `make setup` — verify full dev environment - `make build` — build both client and server -- `make ci` — full CI pipeline locally (lint → build → test, both sides) +- `make ci` — full CI pipeline locally (lint -> build -> test, both sides) - `make ci-server` / `make ci-client` — individual pipelines - `make clean` — clear build artifacts and `.cache/` - CI config: `.config/` (shared linter/formatter rules, workflow definitions) @@ -26,6 +42,8 @@ See `docs/DEVOPS.md` for full procedures. You own the release pipeline. - Tooling scripts: `tooling/` (asset pipelines, build helpers) ## Key Documents -- decisions/ - domain-split decision files (see decisions/README.md for index) -- docs/DEVOPS.md - build, test, lint, CI procedures -- docs/discussions/ - archived design rounds +- decisions/ — domain-split decision files (see decisions/README.md for index) +- docs/DEVOPS.md — build, test, lint, CI procedures +- docs/sprints/sprint-5/ci.md — current sprint briefing +- content/global/knowledge/ — canonical FactId definitions +- content/_schema/ — YAML schema files diff --git a/docs/briefings/mellanie.md b/docs/briefings/mellanie.md index 34bb2a723..d5f9c8a02 100644 --- a/docs/briefings/mellanie.md +++ b/docs/briefings/mellanie.md @@ -1,67 +1,65 @@ # Mellanie - Project Briefing -Last updated: 2026-02-11 +Last updated: 2026-02-13 ## Current Project State -The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 40 confirmed decisions, 17 discussion rounds + 1 workshop complete. Engine selected (D-020). Vertical slice defined (D-027). v0.1 Content Gap Analysis Workshop complete — setting, tag taxonomy, NPC web, and dependency chain all established. +The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 41+ confirmed decisions, 17 discussion rounds + 2 workshops complete. Engine selected (D-020). Vertical slice defined (D-027). Sprints 1-4 complete. Sprint 5 (Live) active — content at scale. ## Status -**ACTIVE.** Partially unblocked by workshop outputs. Can begin immediate work on tag taxonomy smoke test, environmental text templates, and news ticker draft. Voice kits and THE FRIEND content packs blocked on Paula's Dual Lens Guide. +**ACTIVE.** Sprint 5 lead writer. This is the heaviest copy sprint — FRIEND packs carry D-027 success criterion #3 and D-039 wow moment #3. Quality bar is high. ## Key Decisions for Your Domain - D-005: Single-character perspective — all narrative filtered through one viewpoint - D-013: Diegetic UI text — in-world written content and documents - D-016: Internal monologue system — primary narrative content delivery mechanism - D-021: Official title "The Settled Reach" -- D-028: Dialogue architecture — tagged line pools with four relational layers - D-027: Vertical slice — smuggler + detective, station district +- D-028: Dialogue architecture — tagged line pools with four relational layers +- D-032: Separate monologue pools per character — non-negotiable hard partition +- D-034: THE FRIEND NPC pattern — one production-level NPC per character +- D-035: Converged tag taxonomy (6+3) — your authoring format +- D-036: Sova Transit District / Krenn System — first concrete setting +- D-037: Contraband = unlicensed lattice components — smuggling access, not weapons +- D-039: All 6 wow moments in scope -### Workshop Decisions (Content Gap Analysis) -- **D-032: Separate monologue pools per character** — non-negotiable. Smuggler and detective have completely separate monologue pools. Use separate files per character per location (`monologue-smuggler.yaml`, `monologue-detective.yaml`). -- **D-034: THE FRIEND NPC pattern** — one production-level NPC per character, full pipeline depth test: - - **Smuggler's FRIEND: Kael Davan** — dock worker, ring member, closest colleague. Contradiction: meeting unknown contact to exit the ring (protecting partner Hael). - - **Detective's FRIEND: Sera Venn** — Commission field tech, bar regular, social anchor. Contradiction: concealing evidence about Kael's manifest discrepancies (protecting friend Hael). - - ~70-100 authored lines per FRIEND. No generation expansion — all hand-authored. -- **D-035: Converged tag taxonomy (6+3)** — your authoring format: - - 6 structural tags per dialogue line: `id`, `text`, `role`, `access` (list), `trust`, `situation` (list) - - 3 selection tags: `topic` (list), `mood` (list), `tags` (freeform) - - Monologue adds: `character`, `trigger`, `prerequisite` - - Location and type dropped from per-line (implicit from directory/file) -- **D-036: Sova Transit District / Krenn System** — first concrete setting. Bar = "The Last Shift" (official) / "Lera's" (informal). NPC names follow Krenn conventions. -- **D-037: Contraband = unlicensed lattice components** + medical-grade neural replacements. You're smuggling access, not weapons. -- **D-038: Audio in v0.1** — 8 files including monologue chime. Audio carries atmosphere; your monologue carries character. -- **D-039: All 6 wow moments in scope** — opening hook, character's eye, FRIEND contradiction, divergence reveal, ticker gut-punch, quiet moment. +## What's Been Delivered (Sprints 2-4) +- Dual Lens Authoring Guide (#261) — **DONE** (Sprint 3) +- PC-as-NPC unified spec (#381) — done +- Smuggler voice card + moral arc spec (#382) — done +- THE MIRROR pattern spec (#380) — done +- Content directory structure (#384, #385) — done +- Content schema definitions (#386) — done +- Wiki-to-YAML conversion (#398) — done +- Monologue content pool ~200 lines (#399) — done +- NPC-format briefs for both PCs (#383) — done +- News ticker headline pool (#395) — done +- Environmental text examples (#378) — done +- YAML content loader Phase 2 (#408) — done (server loads real content) +- Line previewer CLI (#407) — done (can test dialogue output) -## Current Priorities +## Sprint 5 Priorities +**Sprint briefing:** `docs/sprints/sprint-5/copy.md` -**Write THE FRIEND first. Scale from there.** (Scaffold → Validate → Scale) +### Critical path (voice patterns gate everything): +1. **#310 Character voice speech patterns** — CRITICAL START, day 1. Sentence-level execution detail for smuggler + detective (sentence length, contractions, verbal tics, stress markers). Blocks #297, #298, #379. +2. **#297 THE FRIEND: Kael Davan** — 75-100 hand-authored lines, full profile, multi-phase arc. Blocked by #310. +3. **#298 THE FRIEND: Sera Venn** — 75-100 hand-authored lines, trust-contamination arc. Blocked by #310. +4. **#379 NPC Authoring Style Guide** — consolidated handbook. Parallel with #310 but final version needs voice patterns complete. +5. **#401 PC-as-NPC content authoring** — ~25 authored items. Blocked by #297 + #298. -### Can start immediately (no dependencies): -1. **Tag taxonomy smoke test** — write 20 lines in converged YAML format covering logistics hub, both monologue pools, dialogue across access tiers. Ship to Gestalt for validation. -2. **Environmental text templates** — safety notices, terminal screens, door labels, shift schedules. Use Miri's Sova details. -3. **News ticker draft** — 15-20 Meridian feed headlines using Miri's Krenn System setting. - -### Blocked on Paula's Dual Lens Guide (#261): -4. Voice kits (3 options per character — sardonic/anxious/casual for smuggler, clinical/weary/sharp for detective) -5. Opening hooks (10-15 lines per character, diegetic tutorial) - -### Blocked on THE FRIEND profiles (Paula): -6. THE FRIEND: Kael Davan full content pack (~75-100 lines) -7. THE FRIEND: Sera Venn full content pack (~75-100 lines) - -### Blocked on remaining NPC profiles: -8. Content packs x3 (#190-192) -9. Tell lines, mirror moments, UI copy +### Can start immediately: +6. **#409 UI microcopy** — ~50 UI strings, joint ticket with Stig (client). YAML format. Coordinate on length constraints. ## Content Volume Estimate ~1,030-1,380 authored lines total. ~3,200-4,200 after generation expansion (4x dialogue, 2x monologue). ## Asks from Others -- **From Miri:** Sova slang/idiom guide (15-20 terms), bar/hub naming confirmation -- **From Paula:** Dual Lens Guide (critical path), character voice speech patterns, THE FRIEND profiles -- **From Gestalt:** Knowledge state vocabulary for monologue prerequisites, YAML format validation -- **From Araminta:** Display constraints (character limits per text type, monologue stacking rules) +- **From Paula:** 10-axis profiles for Kael and Sera (personality, relationships, wants, secrets, routines) — parallel work during voice patterns +- **From Gestalt:** Relationship phase mapping for both FRIENDs, tag usage validation +- **From Stig:** UI string length constraints for #409 ## Key Documents -- decisions/content.md — D-023, D-024, D-025, D-028, D-029, D-032, D-034, D-035, D-036, D-037 -- docs/workshops/content-gap-analysis_v0_1/ — workshop outputs and SUMMARY.md -- docs/briefings/paula.md — Dual Lens Guide status +- decisions/content.md — D-023 through D-037 +- docs/sprints/sprint-5/copy.md — current sprint briefing +- docs/workshops/content-gap-analysis_v0_1/ — workshop outputs +- content/_schema/ — YAML schema definitions +- content/campaigns/main/systems/krenn/sova/sova-transit/ — target content directory diff --git a/docs/briefings/paula.md b/docs/briefings/paula.md index d39585bbf..0c5323806 100644 --- a/docs/briefings/paula.md +++ b/docs/briefings/paula.md @@ -1,65 +1,71 @@ # Paula - Project Briefing -Last updated: 2026-02-11 +Last updated: 2026-02-13 ## Current Project State -The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 41 confirmed decisions, 17 discussion rounds + 2 workshops complete. Engine selected (D-020). Vertical slice defined (D-027). v0.1 Content Gap Analysis Workshop complete — NPC web reconciled, THE FRIEND designed, dependency chain established. Knowledge Graph & Information Boundaries Workshop complete (D-041) — knowledge vocabulary unblocked for content authoring (#309). +The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 41+ confirmed decisions, 17 discussion rounds + 2 workshops complete. Engine selected (D-020). Vertical slice defined (D-027). Sprints 1-4 complete. Sprint 5 (Live) active — content at scale. ## Status -**ACTIVE.** Critical path owner. The Dual Lens Authoring Guide (#261) is the single biggest blocker in the project — everything downstream depends on it. +**ACTIVE.** Sprint 5 NPC design lead. FRIEND profiles are the deliverable that carries D-027 success criterion #3 ("player names an NPC they felt conflicted about") and D-039 wow moment #3. These NPCs must feel real. ## Decisions Relevant to Your Role - D-005: Asymmetric information as core mechanic driving faction dynamics - D-016: Internal monologue — unreliable narrator reflecting character perspective -- D-021: Official title "The Settled Reach" - D-024: NPC triangle model — 10 axes + combat component - D-025: Cross-template triangles via reference links - D-028: Four relational dialogue layers - D-029: 30/50/20 population split +- D-032: Separate monologue pools per character — hard partition, no shared lines +- D-033: Entity color = relationship to player — green/teal/amber/red maps to access tier model +- D-034: THE FRIEND NPC pattern — your designs are canonical +- D-035: Converged tag taxonomy — your 4 layers map to tags +- D-036: Sova Transit District — 15 NPCs with Krenn System names +- D-037: Contraband = unlicensed lattice components — moral ambiguity confirmed +- D-039: All 6 wow moments in scope — THE FRIEND contradiction is wow moment #3 +- D-041: Knowledge Graph Data Model — 4-level confidence hierarchy, FactId format, contradiction detection -### Workshop Decisions (Content Gap Analysis) -- **D-032: Separate monologue pools per character** — hard partition, no shared lines -- **D-034: THE FRIEND NPC pattern** — your designs are canonical: - - **Smuggler's FRIEND: Kael Davan** — dock worker, ring member. Contradiction: unauthorized contact to exit the ring (protecting Hael). Arc: comfort → first crack → observation → confrontation → new equilibrium. - - **Detective's FRIEND: Sera Venn** — Commission field tech, bar regular. Contradiction: concealing evidence (protecting friend Hael). Arc: trust → background data → pattern recognition → the question → contaminated trust. - - Reusable pattern: 3+ phases, observable contradiction, sympathetic motivation, no clean resolution, dual-lens resonance, triangle integration. -- **D-033: Entity color = relationship to player** — green/teal/amber/red maps to your access tier model visually -- **D-035: Converged tag taxonomy** — your 4 layers map to tags: access (L1), situation (L2), trust (L3), topic+mood (L4) -- **D-036: Sova Transit District** — 15 NPCs with Krenn System names (your Round 2 web is canonical) -- **D-037: Contraband = unlicensed lattice components** — smuggling access, not weapons (moral ambiguity confirmed) -- **D-039: All 6 wow moments in scope** — THE FRIEND contradiction is wow moment #3 -- **D-041: Knowledge Graph Data Model** — 4-level confidence hierarchy resolves Q-016. Knowledge vocabulary for content authoring (#309) defined at synthesis Appendix A. Prerequisite format: `knowledge: [{subject, flag, level}]` where level = suspects/knows_of/knows_details. FactId format: `category.topic`. Supports THE FRIEND contradiction detection (Contradicted state, monologue trigger, relationship shift to PersonOfInterest). +## What's Been Delivered (Sprints 2-4) +- **Dual Lens Authoring Guide (#261) — DONE** (Sprint 3, was critical path blocker — now resolved) +- PC-as-NPC unified spec (#381) — done +- Smuggler voice card + moral arc spec (#382) — done +- THE MIRROR pattern spec (#380) — done +- NPC-format briefs for both PCs (#383) — done +- Round 2 NPC pattern/motivation mapping (#396) — done +- Triangle 1 fix (#377) — done +- Drin Tier 2 profile expansion (#397) — done +- Content pipeline infrastructure all in place (schemas, loader, validator, line previewer) ## Your Relationship Web (Canonical — Round 2) 15 NPCs, 5 triangles: - **Triangle 1 (Hub Power):** Voss - Kael - Nils - **Triangle 2 (Worried Knowledge):** Maret - Drin - Voss - **Triangle 3 (Bar Tensions):** Lera - Torek - Ren -- **Triangle 4 (Worried Partner):** Hael - Kael - Sera (connects both FRIENDs) +- **Triangle 4 (Worried Partner):** Naia - Kael - Sera (connects both FRIENDs) - **Triangle 5 (Informant Question):** Naia - Kosse - Drin (cross-template) Distribution: 3 flat (Pael, Ren, Tev), 7 mundane triangle, 4-5 entangled. +## Sprint 5 Priorities +**Sprint briefing:** `docs/sprints/sprint-5/copy.md` + +### Parallel work during voice patterns (#310) authoring: +1. **10-axis profiles for Kael and Sera** — personality, relationships, wants, secrets, routines. Can start immediately. +2. **Relationship phase mapping** — comfort->crack->observation->confrontation for Kael; trust->data->recognition->question->contamination for Sera. + +### After voice patterns complete: +3. **#297 THE FRIEND: Kael Davan** — full Tier 1 profile + dialogue authoring (co-author with Mellanie using voice spec) +4. **#298 THE FRIEND: Sera Venn** — full Tier 1 profile + dialogue authoring +5. **#401 PC-as-NPC content authoring** — reverse dual-lens notes, ~25 authored items. Blocked by #297 + #298. + +### Supporting: +6. **#379 NPC Authoring Style Guide** — contribute tier templates and authoring rules + ## Open Questions Assigned to You - Q-011: Character selection roster for prototype (co-lead with Miri) -- Q-016: Knowledge hierarchy for monologue prerequisites — **RESOLVED** (D-041) - Q-017: Triangle pressure threshold (co-lead with Gestalt) - Q-026: Contradiction detection algorithm (co-lead with Gestalt, Dudley) -## Current Priorities -**Critical path: Dual Lens Guide → Voice Patterns → THE FRIEND profiles → NPC profiles → Review** - -1. **Dual Lens Authoring Guide (#261) — full draft** (blocks everything downstream) - - Refined outline from workshop: 6 parts including THE FRIEND section - - Must include: emotional divergence moments, access tier shift paths, authoring checklist with display context tags - - **Knowledge prerequisite format** now available: see D-041 Appendix A for v0.1 vocabulary and prerequisite syntax -2. **THE FRIEND: Kael Davan — full Tier 1 profile** (needs DLG) -3. **THE FRIEND: Sera Venn — full Tier 1 profile** (needs DLG) -4. **Character voice speech patterns** (co-deliver with Mellanie) -5. **NPC Profiles: Tier 1 (4 entangled), Tier 2 (7 mundane), Tier 3 (3 flat)** -6. **Access tier shift design document** (co-deliver with Gestalt) -7. **Mirror moment review pass** (after Mellanie's monologue pools exist) - ## Key Documents - decisions/content.md — D-023 through D-037 -- docs/workshops/content-gap-analysis_v0_1/ — workshop outputs and SUMMARY.md -- docs/briefings/mellanie.md — content production status +- docs/sprints/sprint-5/copy.md — current sprint briefing +- docs/workshops/content-gap-analysis_v0_1/ — workshop outputs +- content/campaigns/main/systems/krenn/sova/sova-transit/ — target content directory diff --git a/docs/briefings/stig.md b/docs/briefings/stig.md index 981520a3e..f766b53a0 100644 --- a/docs/briefings/stig.md +++ b/docs/briefings/stig.md @@ -1,11 +1,11 @@ # Stig - Project Briefing -Last updated: 2026-02-11 +Last updated: 2026-02-13 ## Current Project State -The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 40 confirmed decisions, 17 discussion rounds + 1 workshop complete. Engine selected (D-020). Vertical slice defined (D-027). v0.1 Content Gap Analysis Workshop complete. +The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 41+ confirmed decisions, 17 discussion rounds + 2 workshops complete. Engine selected (D-020). Vertical slice defined (D-027). Sprints 1-4 complete. Sprint 5 (Live) active — content at scale. ## Status -STANDBY. This briefing will be populated when UI implementation begins. +**ACTIVE.** Light sprint — Sprint 4 delivered most client infrastructure. Sprint 5 focus is content authoring (copy team) with client providing integration points. ## Key Decisions for Your Domain Read `decisions/perception.md` (primary) and `decisions/scope.md` (D-013, D-014). Key decisions: @@ -15,11 +15,22 @@ Read `decisions/perception.md` (primary) and `decisions/scope.md` (D-013, D-014) - **D-017:** Perception mode overlays - **D-019:** Top-down primary view, Godot 4 client (GDScript) - **D-028:** Dialogue UI — four relational layers (access tiers, history, trust-gated, unprompted) +- **D-033:** Entity color = relationship to player — palette: unknown teal, friendly green, POI amber, hostile red, static grey. 0.5s transitions. +- **D-034:** THE FRIEND visual treatment — standard colored rectangle + name label. Color transition IS the visual punch. -### Workshop Decisions (Content Gap Analysis — relevant to UI) -- **D-033: Entity color = relationship to player** — client-side derivation from RelationshipState. Palette: unknown teal `#4a9ebb`, friendly green `#6bc9a6`, person-of-interest amber `#e8c547`, hostile red `#d45d5d`, static grey `#8b8ba0`. Transitions: 0.5s smooth fade. -- **D-034: THE FRIEND visual treatment** — no special rendering. Standard colored rectangle + name label. Color transition IS the visual punch. -- **D-038: Audio visual indicators** — fog-edge pulse, complementary to audio. Subtler design than originally scoped. +## What's Been Delivered (Sprints 1-4) +### Sprint 1 (Run): IPC bridge, player movement +### Sprint 2 (See): Fog rendering (#113), camera lock (#116), tile rendering (#129), entity sprites (#130), fog overlay (#131) +### Sprint 3 (Know): Content directory structure used by client +### Sprint 4 (Feel): Integration tests (#410 tile data, #411 input roundtrip), server bug fix for tile type data (#412) +### Sprint 5 carry-over: Interaction prompt (#405) — **DONE** + +## Sprint 5 Priorities +**Sprint briefing:** `docs/sprints/sprint-5/client.md` + +1. **#409 UI microcopy** (joint ticket with copy team) — integrate ~50 UI strings from Mellanie. YAML format. Coordinate on length constraints early. + - Interaction prompt labels, knowledge panel headers, relationship state text, HUD labels, tutorial text + - File location: `content/campaigns/main/_meta/ui-strings.yaml` loaded via content loader, or `client/scripts/constants/ui_strings.gd` ## Development Workflow See `docs/DEVOPS.md` for full procedures. Your key targets: @@ -27,11 +38,13 @@ See `docs/DEVOPS.md` for full procedures. Your key targets: - `make client` — launch Godot with `client/` project - `make test-client` — gdUnit4 tests (headless runner pending) - `make lint-client` — gdlint/gdformat (pending setup) -- `make ci-client` — full client CI pipeline (lint → build → test) +- `make ci-client` — full client CI pipeline (lint -> build -> test) - Client code lives in `client/` — scenes, GDScript, assets - UI tests use gdUnit4 (D-030) ## Key Documents -- decisions/ - domain-split decision files (see decisions/README.md for index) -- docs/DEVOPS.md - build, test, lint, CI procedures -- docs/discussions/ - archived design rounds +- decisions/ — domain-split decision files (see decisions/README.md for index) +- docs/DEVOPS.md — build, test, lint, CI procedures +- docs/sprints/sprint-5/client.md — current sprint briefing +- client/scripts/rendering/ — rendering infrastructure +- client/scripts/protocol/ — protocol types