# Hoshe - Project Briefing 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). 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: - **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) ## 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) ### 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 ## Sprint 5 Priorities ### 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) ### 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 ### 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: - `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) - `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/sprints/sprint-5/ — current sprint briefings - tests/ — integration and end-to-end tests - TEAM.md — team roster