Understand
the checks.
The development toolkit has seven commands for checking, simulating, formatting, and reviewing models, reading the spec, and working with agents.
Install: bun add -g meant-lang (Bun 1.4 or later) puts the meant executable on your path. Meant is a developer preview; commands and diagnostics may change between releases.
Commands
Run these from the language repository. Replace path/to/model.meant with your model. Model-processing commands also accept directory paths.
check: Validate the model
meant check path/to/model.meant --jsonParses the model, resolves references, and applies the implemented grammar and law checks. It exits with status 1 when error-severity diagnostics exist. A structurally valid model can still describe the wrong requirements.
sim: Explore modeled behavior
meant sim path/to/model.meant --jsonRuns structural checks, constructs witnesses, probes supported claims, and replays scenarios within its scope. It exits with status 1 for an error or a falsified claim. Warnings and unprobeable claims still need review.
report: Find what remains unclear
meant report path/to/model.meant --jsonLists unverified prose, recurring patterns, candidate formalizations, and questions for you to review.
fmt: Keep a canonical form
meant fmt path/to/model.meant --checkChecks formatting without writing; exits with status 1 on formatting drift. Omit --check to format files. The formatter refuses files with parser errors.
skill: Give an agent the modeling discipline
meant skill
meant skill installThe first command prints portable modeling instructions. The second installs the Claude Code modeling skill into the current project. Review semantic changes yourself; agents should never weaken requirements to make checks pass.
spec: Read the normative language reference
meant spec
meant spec 15
meant check --explain V1Print the specification, a selected section, or the explanation of a named law. Consult the normative specification for exact syntax. The whole specification is also published as spec.md.
hook: Feed model diagnostics back to an agent
meant hookThe Claude Code PostToolUse hook reads the tool event from standard input and checks edited model files. It does not check application code or runtime behavior.
Eight declaration kinds
| Kind | Purpose |
|---|---|
concept | Define a business entity and its vocabulary. |
dimension | Declare a closed set of meaningful values. |
touchpoints | Name the surfaces where users or other systems interact with the application. |
shape | Define a condition over the modeled world. |
exposure | Describe how modeled information appears on a surface. |
action | Declare actors, preconditions, refusal reasons, and effects. |
invariant | State a behavioral claim and its declared verification approach. |
scenario | Describe a sequence with expected outcomes. |
Use these declarations with the business’s own names for entities, actions, and rules. The domain header identifies the area being modeled. Consult the specification for the full grammar.
Read the diagnostic details
JSON results include the affected file and range, a law or code, severity, a message, and a suggested fix where available. Simulation adds typed verdicts and may include evidence or a counterexample.
verified must be read alongside the verdict kind. A witness, a scenario replay, and a bounded probe provide different evidence. derived describes a possible transition; unprobeable and skipped identify limits. An unknown evaluation is not assumed true.
Read the verdict interpretation table ↗
What stays outside the current toolkit
- Application code generation and architecture selection.
- Automatic execution of application tests referenced by
verified-by. - Continuous runtime enforcement or drift detection.
- Exhaustive proof of application correctness.
Test the application against the model’s rules and expected outcomes.