product: maestro audience: test-developer authority: normative
Validation Rules
The YAML validator reports these errors. All MUST be fixed before committing.
| Error | Cause | Fix |
|---|---|---|
name is required |
Top-level test.name missing |
Add name: "..." |
version is required |
Top-level test.version missing |
Add version: "1.0.0" |
steps is required |
No steps block |
Add at least one step |
Step name is required |
A step has no name |
Every step needs a unique name |
low_limit must be < high_limit |
Limits inverted | Swap or correct the values |
Undeclared variable 'x' |
{{x}} used but not in variables |
Add x to the variables block |
Unknown step type 'foo' |
Typo in type: |
Use: delay, mock, prompt, sequence |
duration is required for delay steps |
type: delay without duration: |
Add duration: <seconds> |
max_iterations is required |
repeat: without max_iterations |
Add a safety cap |
message is required for prompt |
type: prompt without prompt.message |
Add the message text |
Two validation levels
| Level | Requires stack? | What it catches |
|---|---|---|
| 1 — Structural | No | Unknown fields, missing required fields, wrong types |
| 2 — Semantic | Yes | Template variable resolution, limit ordering, step logic |
Run py validate.py before every commit. Level 2 IS skipped gracefully when the
stack is not running.