workshop

← all creations

Spec Ladder

viz · created 2026-08-30

Trace a feature from spec clause to diff hunk — click any node to see what's actually connected, and what's just orphaned or promised.

architecturealgorithms

Four linked columns — spec clause → plan step → task → diff hunk — over a worked “checkout redesign” example. Click any node and its full ancestor and descendant chain lights up across all four columns; everything else dims.

The two failure colors are the point: red marks code with no spec ancestor (scope creep — nobody asked for it), and dashed grey marks a spec clause with no code descendant (a promise nothing was built for). Both fall out of plain graph reachability, nothing more — “did we build what we said we would” turned into a layout problem over a small DAG.

Reuse

src/spec-ladder.js is domain-agnostic: buildGraph(nodes, edges) takes { id, col } nodes and { from, to } edges (edges only ever link adjacent columns), and exposes ancestors, descendants, and classify — all three are just BFS/DFS over the forward/backward adjacency built once. Swap in a real dataset (spec clauses, plan steps, tasks, diff hunks scraped from an actual repo) and the traversal and classification carry over unchanged.

Gotchas