Files
settled-reach/docs/sprints/sprint-38/planning.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

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.json per 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 load
  • server/src/bin/generator_spike.rs: spike binary, likely exploratory

What this ticket must deliver:

  1. 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
  2. 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
  3. Ticket dependency chain: create tickets for missing pipeline layers and set up ticket_deps so that character work (#694, #619) and apartment work (#681, #682) are explicitly blocked by the generation pipeline tickets
  4. 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