Skip to content

quale check

Compiles a .quale project and reports diagnostics without running any evolution. Use this to validate your .quale files before committing to a long evolution run.

quale check is your first line of defence before starting an experiment. It runs the full parse-validate-compile pipeline and reports every syntax and semantic error - broken references, mismatched sensor names, invalid world dimensions - without spending any time on actual evolution. Run it any time you edit your .quale files; catching a typo in check takes a second, catching it after a 2000-generation run does not.

quale check <file-or-dir> [flags]
ArgumentDescription
<file-or-dir>Path to a single .quale file or a directory containing .quale files
FlagDefaultDescription
--run <Name>(sole evolve block)Specify which evolve block to validate
  1. Compiles the .quale project through the parser, validator, and compiler pipeline
  2. Prints all diagnostics (errors and warnings) to stderr
  3. If errors are found, exits with code 1
  4. On success, prints a summary line showing the count of each definition type

On success:

experiment.quale: OK (1 body, 3 items, 1 world, 1 dynamics, 1 fitness, 1 evolve)

On error:

experiment.quale:14:23: unknown sensor type "directonal"
14 | sensor food_nearby: directonal(range: 20, directions: 4)
| ^^^^^^^^^
= did you mean "directional"?
Terminal window
# Validate a single file
quale check experiment.quale
# Validate all files in a directory
quale check my_experiment/
# Validate a specific evolve block
quale check my_experiment/ --run Phase2

Note: quale check does not validate against a domain - it only checks language-level correctness (syntax, references, type consistency). Domain-specific errors (unsupported categories, uncomputable metrics) are caught at quale evolve time when Domain.Configure() runs. See Domain Adapters for the parser vs. domain validation boundary.