docs(briefings): update all briefings for decisions split and DEVOPS.md

Update Key Documents sections to reference decisions/ directory instead
of monolithic DECISIONS.md. Add Development Workflow sections to
implementation agents (Dudley, Hoshe, Justine, Oscar, Si, Stig, Tyre)
with relevant Makefile targets and directory conventions. Streamline
decision references to point to specific domain files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-11 15:55:58 +01:00
co-authored by Claude Opus 4.6
parent 7a2f97c325
commit cff4c74d75
18 changed files with 135 additions and 112 deletions
+1 -2
View File
@@ -29,7 +29,6 @@ Create Settled Reach visual style guide (color palette, UI patterns, visual gram
Note: Image generation via /asset-gen costs money - always get Team Leader permission before generating. Needs to create a new style guide for this project (existing /asset-gen skill configured for a different project).
## Key Documents
- DECISIONS.md - all confirmed decisions
- DISCUSSION.md - active discussion round
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/discussions/ - archived rounds
- TEAM.md - team roster
+19 -12
View File
@@ -8,19 +8,26 @@ The Settled Reach: top-down immersive sim, single-character perspective, asymmet
STANDBY. This briefing will be populated when backend/engine implementation begins.
## Key Decisions for Your Domain
- D-010: Four architectural principles - client-server, deterministic sim, information boundaries, input events
- D-011: LOS shadowcasting implementation
- D-012: Chunk-based map architecture
- D-014: v0.1 map specification
- D-020: Rust simulation server with bevy_ecs, MessagePack protocol to Godot client
- D-021: Official title "The Settled Reach"
Read `decisions/architecture.md` (primary) and `decisions/content.md` (NPC model). Key decisions:
- **D-010:** Four architectural principles (client-server, info boundaries, deterministic sim, input events)
- **D-020:** Rust simulation server with bevy_ecs, MessagePack protocol to Godot client
- **D-024:** NPC ECS model (10 axes + CombatCapability component)
- **D-026:** Simulation tier engine (Active/Background/State-saved/Ungenerated, timestamp LRU)
- **D-030:** Testability architecture (hybrid Rust tests, deterministic replay critical)
- **D-031:** Time system (10 ticks = 1 game-minute, 4 day phases)
### Round 17 Decisions (Server-Side Core)
- **D-024: NPC ECS model** - 10 axes as components (Want, Secret, Relationships 1-3, Tolerance, Routine, Information, Contentment, Personality, Tell, Skills). CombatCapability as optional component.
- **D-025: Template instantiation system** - Single-ownership model with reference links carrying relationship metadata. NPCs owned by one template, referenced by others.
- **D-026: Simulation tier engine** - Four tiers: Active (30-80 NPCs, full sim, 10-20 tps), Background (500-2K, state machines 1/game-min), State-saved (serialized structs), Ungenerated. Timestamp-based LRU eviction. bevy_ecs dynamic component add/remove for tier transitions.
- **D-027: Access tier system + cargo/goods** - Content filtering by access tier (0-3). Cargo/goods system for smuggling mechanics.
## Development Workflow
See `docs/DEVOPS.md` for full procedures. Your key targets:
- `make setup` — verify Rust toolchain (clippy + rustfmt)
- `make build-server``cargo build` in `server/`
- `make server``cargo run` in `server/`
- `make test-server``cargo test` in `server/`
- `make lint-server` — clippy (deny warnings) + rustfmt check
- `make ci-server` — full server CI pipeline (lint → build → test)
- Server code lives in `server/` — unit tests inline with `#[cfg(test)]`, integration tests in `server/tests/`
- Cross-boundary IPC fixtures in `tests/`
## Key Documents
- DECISIONS.md - all confirmed decisions
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/DEVOPS.md - build, test, lint, CI procedures
- docs/discussions/ - archived design rounds
+1 -2
View File
@@ -34,7 +34,6 @@ NPC ECS component architecture (10 axes + CombatCapability component). Social si
**Iron rule for base builder (future):** CombatCapability component pattern must extend to other optional systems. No breaking the component model.
## Key Documents
- DECISIONS.md - all confirmed decisions
- DISCUSSION.md - active discussion round
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/discussions/ - archived rounds
- TEAM.md - team roster
+1 -2
View File
@@ -27,7 +27,6 @@ Ensure vertical slice thematic spine is sound (both characters face "is this eno
**Future flag:** Base builder DLC as thematic counter-offer to ascension (settling as active choice vs escape). Not now — but keep design space open.
## Key Documents
- DECISIONS.md - all confirmed decisions
- DISCUSSION.md - active discussion round
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/discussions/ - archived rounds
- TEAM.md - team roster
+19 -19
View File
@@ -5,23 +5,11 @@ Last updated: 2026-02-10
The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 29 confirmed decisions, 17 discussion rounds complete. Engine selected (D-020). Vertical slice defined (D-027).
## Decisions Relevant to Your Role
- D-010: Information boundaries - testable? Can we verify information never leaks?
- D-011: LOS shadowcasting - verify correctness of visibility calculations
- D-012: Chunk loading - seamless? No visible pop-in or loading seams?
- D-013: POI appear/disappear correctly? Diegetic insert triggers reliably?
- D-015: Vision cone - correct blind spots? No information visible outside cone?
- D-016: Monologue triggers - contextually appropriate? Right timing, right content?
- D-017: Perception queries - each mode returns correct information for its type?
- D-018: Three ranges working correctly? Sound quality degrades properly by distance?
- D-020: MessagePack serialization - correct round-trip? No data loss at protocol boundary?
- D-021: Official title "The Settled Reach"
### Round 17 Decisions (Test Criteria)
- **D-027: Vertical slice success criteria** - Concrete QA targets:
1. **30-minute breathing room** - Contamination activation must not trigger before player has 30 minutes of daily-life play (configurable for testing)
2. **Divergent playthroughs** - Same world seed, different character: verify relationships inverted, POIs differ, dialogue access varies
3. **Emotional attachment test** - Post-playthrough survey: can player name one NPC they felt conflicted about?
4. **Emergent discovery** - Observe→notice→follow→discover sequence must arise from systems (log-verifiable: no scripted reveals)
Read `decisions/architecture.md` (D-010, D-020, D-030) and `decisions/perception.md` (D-011, D-017, D-018). Key decisions:
- **D-010:** Information boundaries — testable? Can we verify information never leaks?
- **D-020:** MessagePack serialization — correct round-trip? No data loss at protocol boundary?
- **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.
@@ -36,8 +24,20 @@ None assigned.
All test plans due BEFORE implementation begins.
## Development Workflow
See `docs/DEVOPS.md` for full procedures. Your key targets:
- `make test` — run all tests (server + client)
- `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)
- 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.md - all confirmed decisions
- DISCUSSION.md - active discussion round
- 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
+17 -7
View File
@@ -8,14 +8,24 @@ The Settled Reach: top-down immersive sim, single-character perspective, asymmet
STANDBY. This briefing will be populated when build/deployment pipeline work begins.
## Key Decisions for Your Domain
- Q-007: Target platforms (open question - affects entire build pipeline)
- D-019: Top-down primary view with future 3D cutscenes - build implications for asset pipelines and platform support
- D-020: Godot 4 + Rust subprocess architecture
- D-021: Official title "The Settled Reach"
Read `decisions/architecture.md` (D-020, D-026, D-030) and `decisions/questions.md` (Q-007). Key decisions:
- **Q-007:** Target platforms (open question — affects entire build pipeline)
- **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)
### Round 17 Decisions (Save/Load Implications)
- **D-026: State-saved NPC population** - Save game must serialize 10,000+ NPCs as frozen structs (~1-2KB each). Estimated save file size: ~10-20MB for NPC state alone. Compression strategy needed. State-saved NPCs reactivate on player return (~2-5ms per NPC).
## 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-server` / `make ci-client` — individual pipelines
- `make clean` — clear build artifacts and `.cache/`
- CI config: `.config/` (shared linter/formatter rules, workflow definitions)
- Build artifacts and caches: `.cache/` (gitignored)
- Tooling scripts: `tooling/` (asset pipelines, build helpers)
## Key Documents
- DECISIONS.md - all confirmed decisions
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/DEVOPS.md - build, test, lint, CI procedures
- docs/discussions/ - archived design rounds
+1 -1
View File
@@ -43,6 +43,6 @@ The Settled Reach: top-down immersive sim, single-character perspective, asymmet
**Critical tool:** Tyre's line previewer CLI (weekend build) — authoring tool and regression test harness.
## Key Documents
- DECISIONS.md - all confirmed decisions
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/discussions/ - archived design rounds
- docs/briefings/miri.md - cultural generation guide (forthcoming)
+1 -2
View File
@@ -31,7 +31,6 @@ The Settled Reach: top-down immersive sim, single-character perspective, asymmet
Also: ground both vertical slice characters (smuggler and detective) in setting-consistent cultural contexts.
## Key Documents
- DECISIONS.md - all confirmed decisions
- DISCUSSION.md - active discussion round
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/discussions/ - archived rounds
- TEAM.md - team roster
+1 -2
View File
@@ -26,7 +26,6 @@ Access tier system design (Tier 0-3 content pools). Seed-based population split
**Key replayability multiplier:** Access tiers make Tier 1 conspiracy pool variable across playthroughs, not just within one game.
## Key Documents
- DECISIONS.md - all confirmed decisions
- DISCUSSION.md - active discussion round
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/discussions/ - archived rounds
- TEAM.md - team roster
+16 -7
View File
@@ -8,14 +8,23 @@ The Settled Reach: top-down immersive sim, single-character perspective, asymmet
STANDBY. This briefing will be populated when networking/multiplayer implementation begins.
## Key Decisions for Your Domain
- D-009: Multiplayer strategy (design for it, build single-player first)
- D-010: Four architectural principles - especially client-server architecture and deterministic simulation
- D-020: Subprocess/IPC architecture — local socket for single-player, TCP for multiplayer (same protocol)
- D-021: Official title "The Settled Reach"
Read `decisions/architecture.md` (primary). Key decisions:
- **D-009:** Multiplayer strategy (design for it, build single-player first)
- **D-010:** Four architectural principles (client-server, info boundaries, deterministic sim)
- **D-020:** Subprocess/IPC architecture — local socket for single-player, TCP for multiplayer
- **D-026:** Simulation tier sync — deterministic eviction across all observers for future multiplayer
### Round 17 Decisions (Multiplayer Implications)
- **D-026: Simulation tier sync** - For future multiplayer: how do we synchronize State-saved NPC reactivation across clients? Background tier state machines run server-side — clients receive snapshots. Timestamp-based eviction must be deterministic across all observers.
## Development Workflow
See `docs/DEVOPS.md` for full procedures. Your key targets:
- `make setup` — verify Rust toolchain and Godot
- `make build` — build both client and server
- `make test` — run all tests (IPC round-trip tests critical for your domain)
- `make ci` — full CI pipeline locally
- Server code: `server/` (Rust, networking layer)
- Client code: `client/` (Godot, network client)
- Cross-boundary tests: `tests/` (IPC serialization fixtures, protocol regression)
## Key Documents
- DECISIONS.md - all confirmed decisions
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/DEVOPS.md - build, test, lint, CI procedures
- docs/discussions/ - archived design rounds
+1 -2
View File
@@ -23,7 +23,6 @@ None assigned.
Vertical slice playtest evaluation. Champion the 30-minute breathing room success criterion. Verify both playthroughs (smuggler and detective) feel fundamentally different. Ensure social interaction moment-to-moment rewards match investigation moments. Guard the life-sim substrate from being sacrificed to conspiracy pacing.
## Key Documents
- DECISIONS.md - all confirmed decisions
- DISCUSSION.md - active discussion round
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/discussions/ - archived rounds
- TEAM.md - team roster
+1 -2
View File
@@ -24,7 +24,6 @@ The Settled Reach: top-down immersive sim, single-character perspective, asymmet
NPC triangle authoring for vertical slice templates (workplace, bar, smuggling ring). Define cross-template relationship metadata schema for reference links. Design vertical slice character rosters (smuggler + detective perspectives on same NPCs). Map dialogue layers to NPC axes for systemic line selection. Social gameplay loop design — mundane triangles as standalone content.
## Key Documents
- DECISIONS.md - all confirmed decisions
- DISCUSSION.md - active discussion round
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/discussions/ - archived rounds
- TEAM.md - team roster
+1 -1
View File
@@ -34,7 +34,7 @@ None assigned directly.
6. Verify briefing freshness against DECISIONS.md
## Key Documents
- DECISIONS.md - all confirmed decisions
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/discussions/ - archived rounds (including active rounds per D-022)
- docs/briefings/ - agent briefing files (you maintain these)
- TEAM.md - team roster
+16 -12
View File
@@ -5,16 +5,12 @@ Last updated: 2026-02-10
The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 29 confirmed decisions, 17 discussion rounds complete. Engine selected (D-020). Vertical slice defined (D-027). Next major workstream: vertical slice implementation.
## Decisions Relevant to Your Role
All decisions (D-001 through D-029) - manages tickets derived from confirmed decisions.
### Round 17 Summary (Sprint Planning Context)
- **D-023:** Three-tier content architecture (Tier 1 authored modules, Tier 2 templated, Tier 3 procedural)
- **D-024:** NPC generation model (10 axes + CombatCapability component)
- **D-025:** Social site as atomic template unit (4-8 NPCs, 15-40 tiles, single-ownership + reference links)
- **D-026:** Simulation tiers (Active/Background/State-saved/Ungenerated with timestamp eviction)
- **D-027:** Vertical slice = smuggler + detective, station district, 3 templates, 30-min success criterion
- **D-028:** Dialogue system (tagged pools, 4 relational layers, trait modifiers, template content packs)
- **D-029:** Population entanglement ratio (30/50/20, variable per seed)
All decisions across all domains. Read `decisions/README.md` for the index. Query decisions DB for sprint planning:
```bash
make decisions-coverage # Decision-to-ticket coverage by domain
make decisions-orphan # Decisions without implementing tickets
make decisions-active # List all active decisions
```
## Open Questions Assigned to You
All open questions - tracks as tickets for assignment and progress monitoring.
@@ -29,8 +25,16 @@ Create sprint plan for vertical slice implementation (D-027). Break D-024 throug
Vertical slice is the next major workstream — coordinate with Team Leader on sequencing and resourcing.
## Development Workflow
See `docs/DEVOPS.md` for full procedures. Key awareness for sprint planning:
- `make ci` must pass before any PR merges — definition of done includes CI green
- `make ci-server` = lint-server → build-server → test-server
- `make ci-client` = lint-client → build-client → test-client
- Server work lives in `server/`, client work in `client/`, cross-boundary tests in `tests/`
- Hoshe's test plans target these directories per D-030 testing architecture
## Key Documents
- DECISIONS.md - all confirmed decisions
- DISCUSSION.md - active discussion round
- 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
+18 -16
View File
@@ -8,23 +8,25 @@ The Settled Reach: top-down immersive sim, single-character perspective, asymmet
STANDBY. This briefing will be populated when UI implementation begins.
## Key Decisions for Your Domain
- D-013: Diegetic insert/POI navigation system
- D-015: Camera locked to character, vision cone
- D-016: Internal monologue text display
- D-017: Perception mode overlays
- D-018: Sound visual indicators (medium range)
- D-019: Top-down primary view
- D-020: Godot 4 client (GDScript)
- D-021: Official title "The Settled Reach"
Read `decisions/perception.md` (primary) and `decisions/scope.md` (D-013, D-014). Key decisions:
- **D-013:** Diegetic insert/POI navigation system
- **D-015:** Camera locked to character, vision cone
- **D-016:** Internal monologue text display
- **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)
### Round 17 Decisions (UI Implications)
- **D-028: Dialogue UI layers** - Four relational layers:
- Access tier indicators (insider/outsider/authority/peer)
- Relationship history feedback (trust/rapport display)
- Trust-gated dialogue options (locked topics until threshold met)
- Unprompted disclosure notifications (NPC volunteers information)
- **D-027: Character-filtered insert UI** - Smuggler sees insider access, detective sees authority access. Same UI system, different filtered POI content.
## Development Workflow
See `docs/DEVOPS.md` for full procedures. Your key targets:
- `make setup` — verify Godot is installed
- `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)
- Client code lives in `client/` — scenes, GDScript, assets
- UI tests use gdUnit4 (D-030)
## Key Documents
- DECISIONS.md - all confirmed decisions
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/DEVOPS.md - build, test, lint, CI procedures
- docs/discussions/ - archived design rounds
+1 -1
View File
@@ -16,5 +16,5 @@ STANDBY. This briefing will be populated when localization work begins.
- **D-028: Tagged line pool dialogue system** - Localization advantages: each line is tagged with context metadata (access tier, relationship level, trust threshold, mood). Translators receive rich context. Lines are pooled, not tree-branched — translation scope is predictable. Trait modifiers apply post-translation (base line + transformation guide = variants in target language).
## Key Documents
- DECISIONS.md - all confirmed decisions
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/discussions/ - archived design rounds
+1 -2
View File
@@ -24,7 +24,6 @@ The Settled Reach: top-down immersive sim, single-character perspective, asymmet
Monitor D-026 simulation tier implementation for performance validation. Stress-test timestamp-based eviction against worst-case scenarios. Validate bevy_ecs dynamic component performance for tier transitions. Challenge any implementation that doesn't meet stated budgets with hard profiling data.
## Key Documents
- DECISIONS.md - all confirmed decisions
- DISCUSSION.md - active discussion round
- decisions/ - domain-split decision files (see decisions/README.md for index)
- docs/discussions/ - archived rounds
- TEAM.md - team roster
+19 -20
View File
@@ -5,24 +5,12 @@ Last updated: 2026-02-10
The Settled Reach: top-down immersive sim, single-character perspective, asymmetric information core mechanic, Rimworld-style storyteller. 29 confirmed decisions, 17 discussion rounds complete. Engine selected (D-020: Godot + Rust/bevy_ecs subprocess). Vertical slice defined (D-027).
## Decisions Relevant to Your Role
- D-008: Z-levels, LOD, procedural generation - technical architecture implications
- D-010: Four architectural principles - client-server, deterministic sim, information boundaries, input events
- D-011: LOS shadowcasting implementation for fog of war
- D-012: Chunk-based map architecture for streaming and generation
- D-014: v0.1 map specification - full technical requirements
- D-015: Camera lock to character - vision cone rendering and binaural audio hookup
- D-017: Perception as observer queries - technical pattern for all perception modes
- D-018: Sound propagation system - three-range model with wall occlusion
- D-019: Top-down primary view with potential future 3D client
- D-020: Godot 4 client + Rust/bevy_ecs server via subprocess/IPC, MessagePack serialization
- D-021: Official title "The Settled Reach"
### Round 17 Decisions (Technical Architecture)
- **D-024: CombatCapability as ECS component** - Optional component triggered by combat-trained skill tag. Pattern applies to all optional systems. Follows D-017 perception mode model (capabilities as components, not monolithic state).
- **D-025: Single-ownership template model with reference links** - NPCs owned by one template, referenced by others. Reference links carry relationship metadata. Prevents lifecycle conflicts.
- **D-026: Simulation tier budgets confirmed** - Your numbers: Active (30-80 NPCs, 10-20 tps), Background (500-2K NPCs, state machines 1/game-min, 4 machines each), State-saved (~1-2KB serialized structs), Ungenerated (doesn't exist). Timestamp-based LRU eviction. bevy_ecs dynamic components for tier transitions.
- **D-027: Vertical slice systems** - Access tier system + cargo/goods system needed for smuggling ring mechanics. Two characters = ~20% more effort, no new architecture (client-server already supports multi-observer).
- **D-028: Line previewer CLI** - Weekend build. Authoring tool and regression test harness. Takes template YAML → NPC instances → trait modifiers → outputs generated line pools with metadata.
Read `decisions/architecture.md` (primary) and `decisions/perception.md` (secondary). Key decisions:
- **D-010:** Four architectural principles (client-server, info boundaries, deterministic sim, input events)
- **D-020:** Godot client + Rust/bevy_ecs server via subprocess/IPC, MessagePack serialization
- **D-026:** Simulation tier budgets (Active 30-80 NPCs, Background 500-2K, State-saved 10K+)
- **D-030:** Testability architecture (hybrid test org, gdUnit4, CauseChain, three-layer IPC testing)
- **D-031:** Time system (10 ticks = 1 game-minute, 4 day phases)
## Open Questions Assigned to You
- Q-001: Engine selection (LEAD, CRITICAL - next priority)
@@ -41,8 +29,19 @@ Vertical slice technical implementation:
**Future flag:** Base builder DLC requires data model stub now: `modifications: Vec<Modification>` on relevant entities. Add to schema early.
## Development Workflow
See `docs/DEVOPS.md` for full procedures. You own the technical build pipeline.
- `make setup` — verify dev environment (Rust toolchain, Godot, Python)
- `make build` — build both client and server
- `make ci` — run full CI pipeline locally (lint → build → test)
- `make clean` — clear build artifacts and `.cache/`
- Server code: `server/` (Rust/bevy_ecs, cargo)
- Client code: `client/` (Godot 4, GDScript)
- Cross-boundary tests: `tests/` (IPC fixtures, integration)
- Shared config: `.config/` (linters, formatters)
## Key Documents
- DECISIONS.md - all confirmed decisions
- DISCUSSION.md - active discussion round
- 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