what
Four verbs, one truth battery.
monoforge is a zero-dependency CLI. You describe the repo in factory.json, and the factory stamps the blocks, doctors the result, and locks the green tree.
The verbs
Stamp, doctor, lock, cut.
# stamp template blocks + fill tokens, never the truth monoforge new ./my-tool # the truth battery: refuses FORGE-TODO, broken gates, dash law monoforge doctor ./my-tool # doctor must pass, then archive + checksum monoforge lock ./my-tool # release cuts: components/<name>/ from a living lib monoforge cut ./family
What the doctor checks
The doctor runs the same battery the fleet reads: the test lane, the docs gates, the release ladder, and the dash law. An unfilled FORGE-TODO slot fails by name, and a broken gate fails rather than warns.
The cut verb stamps a component-family workspace from a living lib per cutlist.json: intra-graph requires are rewritten to scoped deps, and an unmapped internal dependency refuses. Shortfall lazies must be declared and ship as documented call-site degrades.
Where it sits
monoforge is the factory the struct family stamps from: the blocks carry the docs system, the workflows, and the release ladder every member shares, so a new repo inherits the gates from birth instead of re-deriving them. The blocks come from proven instances - poststruct and packstruct - never from aspiration.