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]Arguments
Section titled “Arguments”| Argument | Description |
|---|---|
<file-or-dir> | Path to a single .quale file or a directory containing .quale files |
| Flag | Default | Description |
|---|---|---|
--run <Name> | (sole evolve block) | Specify which evolve block to validate |
Behavior
Section titled “Behavior”- Compiles the
.qualeproject through the parser, validator, and compiler pipeline - Prints all diagnostics (errors and warnings) to stderr
- If errors are found, exits with code 1
- On success, prints a summary line showing the count of each definition type
Output Format
Section titled “Output Format”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"?Examples
Section titled “Examples”-- Validate a single filequale check rail-driver.quale
-- Validate all files in a directoryquale check my_experiment/
-- Validate a specific evolve blockquale check my_experiment/ --run SignalComplianceNote: quale check validates language-level correctness only - syntax, references, type consistency, and bytecode compilation. All domain logic is expressed in the .quale file itself (perception, action, fitness blocks), so there is no separate domain validation step. If check passes, the file is ready for evolve.