Files
settled-reach/docs/sprints/sprint-38/server.md
T
jpmschweitzerandClaude Opus 4.6 6fb788d428 chore(meta): plan Sprint 38: Depth
Generation pipeline focus — map all layers from planetary heightmaps to
walkable tile environments, build bare-minimum free camera viewer, close
Sprint 37 test/infra debt. Character and apartment work formally parked
behind the full generation cascade.

13 tickets across 5 teams (planning: 1, server: 4, client: 5, copy: 1, ci: 2).
Added Write(docs/sprints/*) and Bash(mkdir) permissions for sprint planning.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-24 13:16:24 +02:00

63 lines
3.3 KiB
Markdown

# Sprint 38: Depth — Server Tasks
**Goal:** Map the generation pipeline from planetary heightmaps to walkable tile environments, formally park character/apartment work behind the full cascade, and close test/infra debt from Sprint 37.
**Branch:** `sprint-38/server`
**Agents:** Dudley (dev), Tyre (arch), Hoshe (QA)
## New Tickets
| # | Title | Priority | Blocked by |
|---|-------|----------|------------|
| #899 | District skeleton generator — Phase 1 implementation | high | #897 |
| #885 | Multiple baseline tests panic with Bevy Resource-does-not-exist | medium | — |
| #892 | Expand check-systems-db-stamp to cover naming helpers | medium | — |
| #886 | Generator polish: suffix monotony auto-fix + cultural-history prompting | low | — |
Use `tooling/db/ticket show <id>` for full details.
## Key Decisions
- `decisions/architecture.md` — D-110 (signed z-levels), D-108 (MobileChunk)
- Generator data model: `server/src/simulation/generator.rs` defines the full type hierarchy
## Notes
**#885 — Bevy baseline panics (fix first)**
- 6 tests fail on clean main with `Resource<X> does not exist` panics. Confirmed not a sprint regression — present at commit f0465e40.
- @hoshe assigned. This is the first ticket to close — other server work should not land on a broken test baseline.
- Likely missing `.init_resource::<T>()` or `.insert_resource(T::default())` calls in test setup.
**#892 — Stamp expansion for naming helpers**
- `tooling/check-systems-db-stamp` only tracks `generate_atlas.py` source. The naming pipeline (`gemma_naming.py`, `naming_core.py`) is not covered — changes to naming helpers won't trigger stale-stamp detection.
- Add these files to the `GENERATOR_SOURCES` dict in `tooling/check-systems-db-stamp`.
- Mirror the change in the `/pr-push` skill's source-file watch list.
**#886 — Generator polish (suffix monotony + cultural-history)**
- Follow-up to Sprint 37 #853. Two partial items remain:
- §3 suffix monotony: `gemma_naming.py` detects clustering but doesn't auto-fix. Add retry logic.
- §6 cultural-history prompting: explicit history context in the few-shot prompt for richer names.
**#899 — District skeleton generator Phase 1 (BLOCKED by #897)**
- DO NOT start until the planning ticket #897 closes and the generation cascade D-records exist.
- The data model in `server/src/simulation/generator.rs` is complete: `DistrictSkeleton`, `BlockSkeleton`, `BlockPlacement`, `FloorZone`, `ZonePalette`, etc. All generation logic is stubs.
- Phase 1 scope: given a city entry from `markers.json` + `planet_class` + economy node, produce a filled `DistrictSkeleton` with real block assignments, setting types, zone palettes.
- No chunk-level tile generation yet — skeleton structure only.
- Key integration: `chunk_streaming.rs` consumes chunk data. The skeleton feeds into chunk fill (Phase 2, future sprint).
## Dependency Chain
```
#885 (Bevy panics) → standalone, fix first
#892 (stamp expansion) → standalone
#886 (generator polish) → standalone
#899 (district skeleton) → blocked by #897 (planning)
```
## PR Workflow
When ready to submit, create a PR with `tea` CLI:
```bash
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(simulation): sprint 38 server" --description "body" --base main --head sprint-38/server
```