Task-network rewriter review
Reviewed 2 October 2026. Preserved from lawrencerowland/Project-web-apps, app 33, web_apps/WBS_rewrite.html at source revision 9d9c253f9c203441be1fd301bcb9a6b976b85d4f; original SHA-256 3c4a8cd672d10a626e3b66defcb232c1620f01c69b8fb36ff6e0d311e5c7023d.
Retains the six-step sample, editable task/gate/buffer/milestone network, visual selection/drag/zoom, keyboard selectors, dependency editing, task metadata, resource capacities, earliest/levelled Gantt, CPM/float, all four rewrite experiments and explanations, diagnostics, undo/redo, named scenarios, JSON import/export, and a stoppable triangular-duration histogram. Scenario restore and full scenario/log export make earlier explanatory promises concrete. State remains in memory until exported; the original had no persistent storage key. Legacy plan-only JSON imports.
The old critical-first scheduler could place a successor before its resource-delayed predecessor while reporting no overload. Both repaired heuristics select only precedence-ready tasks, check complete resource intervals and assert feasibility. Impossible demand is reported without forced placement. Empty plans and malformed imports have explicit handling.
Serial collapse now requires one outgoing edge from A and one incoming edge to B. It preserves both steps, notes and piecewise resource demands, avoids ID collisions, and can expand them. The merged package introduces a contiguous-work assumption; that can change resource timing. R2 uses one deterministic critical route’s independent-variance heuristic (ceil(k√sum)) and attaches its buffer after every terminal. R3 appends a hypothetical gate note without changing approvals. R4 requires explicit acknowledgement and disjoint resources/noOverlap checks, which do not prove a technical link dispensable. Multiple redo states survive; resource changes participate in plan history.
The title clarifies that this is a precedence network rather than a deliverable hierarchy. PMI’s WBS paper supports that distinction. GAO’s Schedule Assessment Guide provides primary scheduling context. These references do not certify the model. Leveling is a deterministic heuristic, not an optimum; the fixed integer-time model has no calendars, deadlines, costs or lags. The risk experiment independently samples each original step from triangular [0.7d,d,1.3d], ignoring resources and the separate R2 variance field. Its bounds are invented assumptions.
Regression checks in tests/eight-schedule-models.test.cjs cover the original precedence, collapse and redo failures, resource feasibility across small DAGs, invalid imports, profiles, buffer/gate/dependency rules and simulation bounds. Browser journeys are reviewed separately.
Independent review follow-up: generated task, package and buffer IDs now reserve all nested original step IDs. Import validation rejects duplicate IDs anywhere in a package tree, so adding a task after collapse cannot make expansion impossible. Regression coverage exercises the actual UI ID allocator, two independent collapsed packages, buffer creation and expansion.