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.4 KiB
Sprint 38: Depth — Planning 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/planning
Agents: Gestalt (systems), Tyre (technical), Miri (worldbuilding), Qatux (documenter), SI (project manager)
New Tickets
| # | Title | Priority | Blocked by |
|---|---|---|---|
| #897 | Generation pipeline cascade — map all layers, produce D-records | high | — |
Use tooling/db/ticket show 897 for full details.
Key Decisions
decisions/architecture.md— D-110 (signed z-levels), D-108 (MobileChunk)decisions/scope.md— development cascade phases (CLAUDE.md §Development Cascade)
Notes
#897 — Generation pipeline cascade D-records
This is the load-bearing planning ticket for the sprint. The team keeps cycling back to character and apartment topics before the generation pipeline is complete. This ticket produces the authoritative reference that prevents that.
What exists:
- Galactic → system → planetary heightmaps: done (
tooling/planet-gen/generate_atlas.py,planet_simulation.py) - Atlas markers with city placement, roads, rail, rivers: done (
markers.jsonper body) - Generator data model in
server/src/simulation/generator.rs: complete type hierarchy (DistrictSkeleton, BlockSkeleton, FloorZone, ChunkLayout, etc.) but ALL generation logic is stubs — no code actually produces filled instances server/src/simulation/chunk_streaming.rs: chunk load/unload system exists but has nothing to loadserver/src/bin/generator_spike.rs: spike binary, likely exploratory
What this ticket must deliver:
- A complete map of every generation layer from planetary heightmap to walkable tile environment: what the layer is, what generates it, what its inputs and outputs are, what exists vs. what's missing
- D-records in
decisions/for each layer — at minimum one D-record defining the full pipeline, possibly per-layer records if they're complex enough - Ticket dependency chain: create tickets for missing pipeline layers and set up
ticket_depsso that character work (#694, #619) and apartment work (#681, #682) are explicitly blocked by the generation pipeline tickets - Update existing stale tickets that reference premature work (e.g. #615 tycoon starting state, #616 economic verb vocabulary) — either re-scope them behind generation pipeline blockers or defer them with a note
Discussion structure:
- Round 1 (inventory): What exists at each scale? What does each generator produce? Where are the gaps?
- Round 2 (proposals): For each gap, what's the minimum viable generator? What are the inputs/outputs? What decisions are needed?
- Round 3 (convergence): Lock D-records, create tickets, wire dependencies
Output: D-records in decisions/, ticket dependency graph, updated blockers on character/apartment tickets.
Dependency Chain
#897 (generation cascade D-records) → standalone, blocks everything downstream
→ creates blocker tickets for #694, #619, #681, #682
→ unblocks #899 (district skeleton server ticket)
PR Workflow
When ready to submit, create a PR with tea CLI:
tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "plan(scope): generation pipeline cascade D-records" --description "body" --base main --head sprint-38/planning