M21 is an experiment in higher-level software tooling: tools that help people build systems that stay maintainable, extensible, reliable, professional, clean, and understandable as they grow.
Capture what each module is responsible for, what it depends on, and what it deliberately does not own.
Dependency edges name the exact features they use, making architecture traceable instead of implicit.
Specs, Gherkin scenarios, test results, and the graph reinforce each other so docs do not drift from behavior.
D3-powered dependency visualization with zoom, pan, and drag. Click any node to explore its details.
The default view combines dependency depth with group clustering. Drag nodes or group labels to rearrange, lock nodes for a stable map, or reverse the tree direction.
Edit spec bodies and feature files directly in the browser. Changes save back to disk instantly.
Dev server watches your files and pushes changes via SSE. Edit in your editor, see it update in real time.
Declare which features each module uses from its dependencies. Gherkin feature files define the interface — uses tracks the contracts.
Organize specs into groups. Modules in the same group are visually clustered with colored hulls in the graph.
Feed M21 a Cucumber JSON or Jest/vitest report and every node is ringed green/red/amber with a passed/total count. Click scenarios in the side panel to inspect step status and source-backed Given/When/Then definition snippets.
Create .md files with YAML frontmatter declaring name, depends_on with uses, group, tags, and a features path.
Write standard Gherkin .feature files with Scenarios and Given/When/Then steps. Link them from your spec.
Run m21 ./spec/ and open the browser. Explore your dependency graph, click nodes, and drag nodes or group labels when you want to rearrange the map.