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.
Declare entities, fields, relationships, states, and constraints in enforceable, language-neutral contract blocks.
Make operations, inputs, outputs, failures, effects, and events explicit before behavior or implementation.
Models, interfaces, specs, Gherkin scenarios, test results, and the graph reinforce each other so contracts do not drift from code.
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.
Validate model blocks and references, inspect contracts in graph tabs, export the registry, and generate JSON Schema for runtime or CI enforcement.
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.
Declare owned entities and structural constraints in m21-model YAML blocks.
Declare semantic operations, inputs, outputs, failures, and effects in m21-interface blocks.
Capture architecture in the Contract section and demonstrate observable outcomes with Gherkin scenarios.
Run m21 validate ./spec/, export JSON Schema when needed, then explore models, interfaces, prose, features, and dependencies in the graph.