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>
61 lines
3.4 KiB
Markdown
61 lines
3.4 KiB
Markdown
# 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:
|
|
```bash
|
|
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
|
|
```
|