Skip to content

CLI: check

The check command parses and type-checks ISL specification files. It validates syntax, resolves types and imports, and runs semantic passes (symbol resolution, purity constraints, import graph). Use it after writing or editing specs to catch errors before generating code or running verification.

Usage

Terminal window
shipgate check [files...] [options]

If no files are given, the CLI uses your config (e.g. from .shipgate.yml) or default globs to find ISL files.

Options

FlagDescription
-w, --watchWatch for changes and re-run check
--debugPrint resolved imports debug info
--config <path>Path to config file (default: auto-detect .shipgate.yml)
--verboseVerbose output
--format <format>Output format: pretty, json, quiet

Examples

Check one or more files

Terminal window
# Single file
shipgate check user-service.isl
# Multiple files
shipgate check specs/auth.isl specs/payment.isl
# All specs in a directory
shipgate check specs/

Watch mode

Terminal window
shipgate check specs/ --watch

JSON output

Terminal window
shipgate check user-service.isl --format json

Output

Success (pretty)

✓ Parsed successfully
✓ Type checking passed
✓ 1 domain, 1 entity, 1 behavior found

Errors

When type or semantic errors are found, the command prints diagnostics and exits with code 1. Fix the reported issues and run check again.

Exit codes

CodeMeaning
0Success — all files passed
1ISL errors — parse or type-check failed
2Usage error
3Internal error

See also

  • Quick Start — uses shipgate check in step 3
  • CLI: gate — SHIP/NO_SHIP verdict after verification
  • CLI: next — Next.js App Router gate and golden-path evidence
  • CLI: verify — verify implementation against specs