64 lines
3.6 KiB
Markdown
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
|