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

2.1 KiB
Raw Permalink Blame History

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.