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

64 lines
3.6 KiB
Markdown

# 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:
3. **FactId validation testing** — when #393 (pre-commit hook) lands, verify it catches real typos and doesn't false-positive on valid content
4. **Line previewer regression tests** — verify FRIEND pack content loads through previewer without errors when #297/#298 complete
### Ongoing priorities (from previous sprints):
5. **Test harness improvements** — reusable fixtures for server+client pairs
6. **Edge case coverage** — malformed packets, disconnects, entities at map edges, interactions at max range
7. **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