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>
63 lines
3.3 KiB
Markdown
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
|
|
```
|