LawSpec
State expected behavior once. Connect decisions, executable specifications, and evidence.
LawSpec describes what software should do and checks the evidence against that behavior. Types define valid inputs, laws constrain outcomes, and reference models describe stateful transitions.
The learning app offers product and programmer perspectives on one shared curriculum. Explore examples, open product questions, malicious compliance, generators, shrinking, and model-based testing. Run a small LawSpec example in your browser and change it to find a counterexample.
The matching project workflow CLI is a development preview in the LawSpec
checkout. It runs this app locally with lawspec learn. Start a project before
choosing an implementation language with lawspec project init, or preserve an
existing application’s code with lawspec project adopt. Canon holds decision
rationale, LawSpec holds behavior, code/tests carry implementation, and Git
records history.
Evidence has scope. Sampled tests are samples; complete finite checks concern their stated domains and models. Unsupported work, incomplete searches, pending review, and unverified laws remain visible. Solver-backed results trust their translation and solver; the learning app does not claim a kernel-checked proof backend.