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

57 lines
4.3 KiB
Markdown

# 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