AI code generators produce outputs at machine speed โ but they can't explain why they made a decision. For regulated industries (medical devices, aerospace, critical infrastructure, finance), that's disqualifying. NIST SA-11 and the EU Cyber Resilience Act both require human-in-the-loop oversight for automated outputs.
Speckl is a judgement transport utility: it bridges the gap between "the AI says X is correct" and "here is a verifiable chain of evidence proving X is correct." Write your specification once โ get code, proof, and provenance.
One .speckdl file compiles to five independently auditable outputs:
The canonical simple example โ a boolean state machine with two actions. Here's the whole thing:
this.state. prefix on bare identifiers like isOn. The fix is tracked at
GitHub issues.
The output shown above is the expected behavior โ what ships when the fix lands.
Speckl has been validated against three classic distributed systems specs:
45 lines, 5 actions โ coordinator + participant model
120 lines, 3 safety invariants โ proposer + acceptor + learner
230 lines, 8 actions, 3 invariants โ full leader election + log replication
80-line naive core โ targeting zero TS errors with engineering#9 + #11 fixes
Speckl isn't trying to replace TLA+. It's a different tool for a different job:
| TLA+ | Speckl | |
| Purpose | Model checking (find bugs in designs) | Compile spec to production code |
| Output | Counterexamples, state space exploration | TypeScript class + WASM module + audit trail |
| Verification | Exhaustive state space search (TLC) | Runtime guards from require/precondition blocks |
| Provenance | None (design artifact only) | PROV-O + CycloneDX + SPDX per compilation |
| Use case | "Is my design correct?" | "Is what I deployed traceable to what I specified?" |
The two tools are complementary. Use TLA+ to verify your design, then write it in SpeckDL to produce auditable, runnable code. Speckl's consensus examples (TwoPhaseCommit, Paxos, Raft) were ported from known TLA+ specifications โ the same designs, now compilable to production code.
NIST SA-11: Developer Testing and Evaluation โ requires human review of automated outputs
EU Cyber Resilience Act: Reporting obligations from Sept 11, 2026 โ requires SBOM + compliance evidence
FDA Software as Medical Device (SaMD): IEC 62304 โ requires traceability from requirements to code
| Requirement | Speckl Feature |
| Human-in-the-loop review | SpeckDL is human-authored โ AI can assist, but the spec is the source of truth |
| SBOM generation | CycloneDX + SPDX output per compilation |
| Traceability | PROV-O provenance graph โ every output links back to spec source |
| Code-reviewable spec | SpeckDL spec is ~10x shorter than equivalent code โ reviewable in minutes |
| Dual-target verification | Same spec compiles to TypeScript AND WASM โ cross-validate outputs |
type aliases for record declarations. Blocks TigerBeetle E2E proof.Once both issues are resolved, TigerBeetleLedger.speckdl compiles to zero-error TypeScript โ proving Speckl can handle production-grade financial ledger specs.
GitHub ยท Website ยท Landing Page
Whitepaper: whitepaper-v2.md ยท Tutorial: Speckl by Example ยท
Questions and feedback: scott@scoble.me