Files
settled-reach/docs/briefings/hoshe.md
T

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-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:

  1. FactId validation testing — when #393 (pre-commit hook) lands, verify it catches real typos and doesn't false-positive on valid content
  2. Line previewer regression tests — verify FRIEND pack content loads through previewer without errors when #297/#298 complete

Ongoing priorities (from previous sprints):

  1. Test harness improvements — reusable fixtures for server+client pairs
  2. Edge case coverage — malformed packets, disconnects, entities at map edges, interactions at max range
  3. 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