--- title: "Tyre - Project Briefing" description: "Lead architect and technical owner — owns NpcBlueprint struct, generator spike (Sprint 25), simulation tiers, knowledge graph implementation, and the full build pipeline" type: briefing status: active agent: Tyre updated: 2026-03-13 --- # Tyre - Project Briefing Last updated: 2026-03-13 ## Current Project State See [PROJECT_STATE.md](../../PROJECT_STATE.md) for shared project state (cascade phase, sprint, decision count). ## Decisions Relevant to Your Role 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) - **D-041:** Knowledge Graph Data Model — **BTreeMap mandate** (not HashMap) per D-010 principle 4. Per-entity KnowledgeGraph Component. 4-level confidence hierarchy. StableEntityId + EntityRegistry for stable entity references. Event-driven updates. Performance budget: ~6 MB live memory for 80 Active + 2K Background NPCs. Canonical Rust structs at `docs/workshops/knowledge-graph-information-boundaries/round2-synthesis.md` Part 3. Sprint 2 deliverable: ~6.5 developer-days. ## Open Questions Assigned to You - ~~Q-001: Engine selection~~ — **Resolved** as D-020 (Godot 4 + Rust/bevy_ecs via subprocess/IPC) - Q-007: Target platforms - Q-021: Tick budget overflow policy (co-lead with Dudley) - Q-022: NPC pathfinding cache eviction (co-lead with Dudley) - Q-024: Gossip propagation timing (co-lead with Gestalt) — preferred direction: queued - Q-025: Knowledge graph cap and eviction strategy (co-lead with Dudley) - Q-WTF-033: AI templating pipeline — Claude API, local ollama, or manual for v0.2? ## Current Priorities Consult `docs/sprints/` for active sprint briefing. ### v0.2 critical path (generator spike, Sprint 25): 1. **NpcBlueprint struct design** — prerequisite for the generator spike. Define the generator output format encoding the 10-axis model (D-024). Co-design with Gestalt on systems mapping. 2. **Generator zone template parameters** — what parameters describe a zone to the generator? Blocked by Miri's zone identity spec. 3. **Generator spike (D-119)** — Phase 5 per D-166 cascade (not imminent). Produce a generated location with generated NPCs. Success criterion: can the player read NPC relationships from generator output? 4. **AI content pipeline design** — D-123 generative AI for NPC content templating. Q-WTF-033 open: Claude API vs local ollama vs manual. Decide before/during generator spike. ### Architecture maintenance: 5. Simulation tier transitions (timestamp LRU + scope tags + bevy_ecs component add/remove) 6. Knowledge Graph Data Model (D-041) — canonical Rust structs from workshop synthesis **Future flag:** Base builder DLC requires data model stub now: `modifications: Vec` 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/ - 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