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>
3.3 KiB
3.3 KiB
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.rsdefines the full type hierarchy
Notes
#885 — Bevy baseline panics (fix first)
- 6 tests fail on clean main with
Resource<X> does not existpanics. Confirmed not a sprint regression — present at commitf0465e40. - @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-stamponly tracksgenerate_atlas.pysource. 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_SOURCESdict intooling/check-systems-db-stamp. - Mirror the change in the
/pr-pushskill'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.pydetects clustering but doesn't auto-fix. Add retry logic. - §6 cultural-history prompting: explicit history context in the few-shot prompt for richer names.
- §3 suffix monotony:
#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.rsis 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 filledDistrictSkeletonwith real block assignments, setting types, zone palettes. - No chunk-level tile generation yet — skeleton structure only.
- Key integration:
chunk_streaming.rsconsumes 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:
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(simulation): sprint 38 server" --description "body" --base main --head sprint-38/server