3.6 KiB
3.6 KiB
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-contentCLI (#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:
- Verify existing integration tests still pass after Sprint 4 merges — regression check
- Content loading integration tests — verify YAML content loader handles real campaign content correctly (not just test fixtures)
Content quality support:
- FactId validation testing — when #393 (pre-commit hook) lands, verify it catches real typos and doesn't false-positive on valid content
- Line previewer regression tests — verify FRIEND pack content loads through previewer without errors when #297/#298 complete
Ongoing priorities (from previous sprints):
- Test harness improvements — reusable fixtures for server+client pairs
- Edge case coverage — malformed packets, disconnects, entities at map edges, interactions at max range
- 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 testsmake test-client— gdUnit4 tests (headless runner pending)make lint— run all lintersmake 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 bymake 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