plugins/formal-specification/skills/specify/SKILL.md
Create formal specification for a component or behavior using TLA+, SysML, or state machines. Use for safety-critical systems.
npx skillsauth add melodic-software/claude-code-plugins specifyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create formal specifications for system components, behaviors, and algorithms.
/specify "distributed lock protocol"
/specify "order lifecycle" format=state-machine
/specify "vehicle control system" format=sysml
/specify "consensus algorithm" format=tla+
Parse the specification topic and determine:
If format not specified, auto-detect based on topic:
| Topic Pattern | Recommended Format | |--------------|-------------------| | "protocol", "consensus", "distributed" | TLA+ | | "lifecycle", "status", "workflow" | State Machine | | "system", "hardware", "embedded" | SysML | | "interaction", "flow", "sequence" | UML |
Load the relevant skill:
tla-specification for TLA+ specsstate-machine-design for state machinessysml-modeling for SysML modelsuml-modeling for UML diagramsIf working in a project with specifications:
docs/requirements/Create the formal specification including:
Deliver:
--------------------------- MODULE TopicName ---------------------------
EXTENDS Integers, Sequences
CONSTANTS ...
VARIABLES ...
Init == ...
Next == ...
Spec == Init /\ [][Next]_vars
Safety == ...
Liveness == ...
=============================================================================
@startuml
[*] --> Initial
Initial --> Active : trigger
Active --> Completed : complete
Completed --> [*]
@enduml
@startuml
class "<<block>>\nSystemName" as System {
values
--
parts
--
operations
}
@enduml
/specify "distributed lock with leader election" format=tla+
Output: TLA+ module with mutual exclusion safety property and eventual grant liveness property.
/specify "e-commerce order lifecycle"
Output: State machine diagram showing Draft → Submitted → Paid → Shipped → Delivered states with transitions and guards.
/specify "autonomous vehicle perception system" format=sysml
Output: SysML BDD showing sensors, processors, and data flows with parametric constraints.
The command integrates with:
development
Search Milan Jovanovic's .NET blog for Clean Architecture, DDD, CQRS, EF Core, and ASP.NET Core patterns. Use for finding applicable patterns, code examples, and architecture guidance. Invoke when working with .NET projects that could benefit from proven architectural patterns.
tools
Install and configure Data API Builder (DAB) for production SQL Server MCP access with RBAC
tools
Manage MssqlMcp servers - status, rebuild, and upstream updates
tools
Developer environment setup guides for Windows, macOS, Linux, and WSL. Use when setting up development machines, installing tools, configuring environments, or following platform-specific setup guides. Covers package management, shell/terminal, code editors, AI tooling, containerization, databases, and more.