Design a system as a state machine up front, then generate tests and build instructions from that single source of truth.
Formally verify that a system design terminates correctly and has no deadlocks using TLA+ and TLC.
Give a coding agent a detailed, unambiguous build document to implement a feature under strict test driven development.
Model the control loop, budgets, and approval gates around an AI agent as a provable state machine.
| ramxx/machinery | demomanito/helper | emersion/minilustre | |
|---|---|---|---|
| Stars | 7 | 7 | 7 |
| Language | Go | Go | Go |
| Last pushed | — | 2023-03-07 | 2019-01-07 |
| Maintenance | — | Dormant | Dormant |
| Setup difficulty | hard | easy | moderate |
| Complexity | 5/5 | 1/5 | 4/5 |
| Audience | developer | general | researcher |
Figures from each repo's GitHub metadata at analysis time.
Requires learning machinery's layered modeling approach and the TLA+ and Alloy formal verification tools it relies on.
machinery is a design methodology and toolchain built around one idea: describe your software as a state machine first, and let everything else, tests, architecture rules, build instructions, and formal mathematical proofs of correctness, be generated from that single description instead of written by hand and then hoped to match it. The project exists because AI coding tools make it easy to write software quickly but do not make it easy to write software that stays correct as it grows. On anything beyond a small toy project, the actual code tends to drift away from the original design over time, an important rule gets broken somewhere far from where it was defined, and problems only surface once something breaks in production. The usual fix, reviewing code carefully by hand, really just means trusting the AI model, and that does not hold up at scale. machinery instead treats correctness as something you build and check mechanically, not something you simply hope for. To do this, machinery splits a software design into three layers that build on each other: a domain model describing the entities and rules that must always hold true, an architecture layer describing the system's components and what happens when each dependency fails, and finally state machines describing every state, transition, and failure mode, much of which is automatically derived from the earlier layers rather than written from scratch. The end result is a build document detailed enough for a coding assistant with no prior context to implement it under strict test driven development, plus the state machines themselves, which double as both the tests and the formal specification. The formal checking is done with established academic tools rather than invented ones: TLA+ and its model checker TLC exhaustively verify that a design terminates correctly and avoids deadlocks, while a separate tool called Alloy checks structural rules that are not about sequences of steps over time, such as access control or uniqueness constraints. The project also applies this thinking to AI agents themselves, modeling the surrounding control loop, tool calls, budgets, and approval steps as a provable state machine, while treating the AI's own decision making as something it constrains but does not try to formally prove. The project is written in Go and ships continuous integration, formal verification, security, and nightly test pipelines, visible as badges on its repository page.
A design methodology and toolchain that turns a software state machine design into machine checked tests, architecture rules, and formal proofs of correctness.
Mainly Go. The stack also includes Go, TLA+, Alloy.
No license terms are given in the README excerpt.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.