reikhelm/.dev/2026-05-28-procgen-map-core/dependencies.md
Parley Hatch 08e99e38a3 chore: scaffold reikhelm cargo workspace (core + viz crates)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-28 20:56:24 -06:00

37 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Dependencies
```
Task 1: Workspace scaffold (no deps)
├── Task 2: Geometry (1)
│ └── Task 3: Grid<T> (1, 2)
│ └── Task 5: Data model — Tile/Region/Map/ASCII (2, 3)
│ └── Task 6: Engine — GenContext/Pass/Pipeline/Blackboard (4, 5)
│ ├── Task 7: BspPartition pass (6)
│ ├── Task 8: RoomCarver pass (6)
│ ├── Task 9: MstConnect pass (6)
│ ├── Task 10: CorridorCarver pass (6)
│ └── Task 11: DoorPlacer pass (6)
│ └── Task 12: Dungeon recipe + integration tests (7,8,9,10,11)
│ └── Task 13: reikhelm-viz renderer (5, 12)
└── Task 4: RNG (1) ← independent of the geometry/grid chain
```
## Parallelizable batches
- After Task 1: **[2, 4]** in parallel.
- Task 3 after 2 (4 may still be running alongside).
- Task 5 after 3.
- Task 6 after **both** 4 and 5.
- After Task 6: **[7, 8, 9, 10, 11]** — the five passes, all parallel. This is the largest parallel batch. They share only the append-only `passes/mod.rs` wiring file (orchestrator merges) and the documented inter-pass data contract (README); each is unit-tested against a hand-built `GenContext`, so none blocks another.
- Task 12 after all of 711 (it wires them into the pipeline and runs integration tests).
- Task 13 after 12 (it calls the `dungeon` recipe).
## Critical path
1 → 2 → 3 → 5 → 6 → (any one pass) → 12 → 13.
## Integration notes
- `Pass` trait + `GenContext` (Task 6) is the keystone contract every pass consumes. Lock its signature before dispatching 711.
- The `Edge.at: Option<Point>` field (set to `None` by Task 9, populated by Task 11) is the one cross-pass field write — verify it survives the pipeline in Task 12's tests.
- Determinism is verified at two levels: per-pass tests assert reproducibility given a fixed sub-stream; Task 12 asserts whole-map reproducibility and `run` == `run_with_snapshots` for the same seed.