# Dudley - Project Briefing Last updated: 2026-02-11 ## 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: Rust/bevy_ecs server). Vertical slice defined (D-027). v0.1 Content Gap Analysis Workshop complete. Knowledge Graph & Information Boundaries Workshop complete (D-041). ## Status STANDBY. This briefing will be populated when backend/engine implementation begins. ## Key Decisions for Your Domain 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) ## 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/` ### Workshop Decisions (relevant to server implementation) - **D-034: THE FRIEND ECS spec** — 14 ECS components defined for production-level NPCs (NpcIdentity, Want, Secret, Relationships[3], ToleranceThreshold, DailyRoutine, InformationInventory, Contentment, PersonalityTraits, TellState, SkillSet, AccessTierMap, TriangleMembership, MoodState) - **D-035: Converged tag taxonomy (6+3)** — dialogue selection pipeline: access (hard filter) → situation (context filter) → trust (hard filter) → mood+topic (weighted selection). Server implements pipeline. - **D-038: Audio architecture** — event-driven: SoundEventEmitter → ObserverSnapshot → SoundRenderer. Server emits sound events. - **D-041: Knowledge Graph Data Model** — Per-entity `KnowledgeGraph` Component with BTreeMap storage (deterministic). 4-level confidence hierarchy (Suspects/KnowsOf/KnowsDetails/Direct). StableEntityId + EntityRegistry for stable entity references. Event-driven updates via KnowledgeEventQueue. Sprint 2 scope: data structures + direct observation + basic decay + observer snapshot integration (#112). Canonical Rust structs at `docs/workshops/knowledge-graph-information-boundaries/round2-synthesis.md` Part 3. ## 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