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>
57 lines
4.3 KiB
Markdown
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
|