Automatically generate TLA+ specifications from program code, repositories, or system implementations. Use when asked to generate TLA+ spec, create TLA+ specification from code, convert program to TLA+, formalize system in TLA+, extract TLA+ model from code, or when working with formal specification of concurrent systems, distributed systems, protocols, algorithms, or state machines that need to be verified.
89
85%
Does it follow best practices?
Impact
95%
1.04xAverage score across 3 eval scenarios
Passed
No known issues
TLA+ module structural elements
Module header/footer
100%
100%
EXTENDS clause
100%
100%
vars tuple
100%
100%
UNCHANGED in actions
100%
100%
Separate action definitions
100%
100%
Next with disjunction
100%
100%
Spec with stuttering
100%
100%
TypeInvariant defined
100%
100%
Bounded tokens variable
100%
100%
Lock modeled as boolean
0%
100%
Safety property present
100%
100%
Program-to-spec mapping documentation
State variable mapping table
100%
100%
Action mapping table
100%
100%
Abstractions section
100%
100%
Assumptions section
100%
37%
Verification guidance present
100%
100%
Model parameters suggested
100%
100%
TLC config or INVARIANTS hint
100%
100%
Queue modeled as Seq
100%
100%
Lock modeled explicitly
0%
0%
Bounded queue size constraint
100%
100%
Objects modeled as records
100%
100%
Wait/notify abstracted
100%
100%
Go language TLA+ patterns
Channels modeled as Seq
100%
100%
Workers modeled as processes
100%
100%
Select modeled as disjunction
100%
100%
Channel capacity bounded
100%
100%
Done/shutdown state modeled
100%
100%
Receive uses Head/Tail
100%
100%
Send uses Append
100%
100%
process() abstracted
0%
100%
Slices/lists use Seq type
75%
100%
EXTENDS Sequences
100%
100%
WaitGroup abstracted
100%
100%
0f00a4f
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.