2.1 KiB
2.1 KiB
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.rswiring file (orchestrator merges) and the documented inter-pass data contract (README); each is unit-tested against a hand-builtGenContext, so none blocks another. - Task 12 after all of 7–11 (it wires them into the pipeline and runs integration tests).
- Task 13 after 12 (it calls the
dungeonrecipe).
Critical path
1 → 2 → 3 → 5 → 6 → (any one pass) → 12 → 13.
Integration notes
Passtrait +GenContext(Task 6) is the keystone contract every pass consumes. Lock its signature before dispatching 7–11.- The
Edge.at: Option<Point>field (set toNoneby 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_snapshotsfor the same seed.