Files
settled-reach/docs/briefings/hoshe.md
T
jpmschweitzerandClaude Opus 4.6 03914c6442 docs(briefings): update Hoshe with integration test coverage priorities
Adds directive to focus on client-server integration tests landing
from Sprint 5, push for proper test harnesses, a dedicated test map
for routing/edge cases, and edge case coverage over happy-path volume.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 02:13:57 +01:00

4.3 KiB

Hoshe - 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. 40 confirmed decisions, 17 discussion rounds + 1 workshop complete. Engine selected (D-020). Vertical slice defined (D-027). v0.1 Content Gap Analysis Workshop complete.

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)

Open Questions Assigned to You

None assigned.

Current Priorities

ATTENTION — Integration tests are landing and coverage matters. The client branch just merged into main with a real client-server integration test (#411) — spawns a live server, connects via TCP, validates the full movement and interact pipeline end-to-end. The product is tested when it is tested. Pay close attention to these integration tests: verify they run, verify they pass, verify they cover what they claim. When new integration tests land, that is the ground truth for product quality — not plans, not stubs.

Comprehensive test coverage is the priority. Push for:

  • Proper test harnesses — reusable fixtures that spin up server+client pairs, manage lifecycle, and tear down cleanly. Tests should be easy to write so people actually write them.
  • A dedicated client-server test map — a minimal, purpose-built map designed to exercise routing, pathfinding edge cases, interaction boundaries, visibility transitions, and protocol correctness. This map should NOT depend on content generators or YAML loading — it exists purely to test the mechanical contract between client and server.
  • Edge case coverage over happy-path volume — test what happens at boundaries: malformed packets, disconnects mid-tick, entities at map edges, interactions at max range, simultaneous inputs, tick desync scenarios.
  • Don't get hung up on content generators — content loading has its own test surface. Integration tests should isolate the transport and simulation loop from content variability.

ACTIVATED. Vertical slice test plan preparation:

  1. Write test plans for D-024 (NPC generation — verify 10 axes present, triangles formed)
  2. Write test plans for D-025 (template instantiation — verify single-ownership, reference links carry metadata)
  3. Write test plans for D-026 (simulation tiers — verify eviction timing, tier transition correctness)
  4. Write test plans for D-027 success criteria (30-min runway, divergent playthroughs, emergent discovery)
  5. Write test plans for D-028 (dialogue system — verify tag filtering, trait modifiers, layer activation)
  6. Write test plans for D-035 (converged tag taxonomy — verify 4-layer filter pipeline: access → situation → trust → mood+topic)
  7. Write test plans for D-033 (entity color — verify color derivation from relationship state, transition timing)
  8. Write test plans for D-034 (THE FRIEND — verify ECS component integrity, contradiction event detection)

All test plans due BEFORE implementation begins.

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)
  • 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/discussions/ - archived rounds
  • TEAM.md - team roster