What I found
In yaml-generation/generateDimensions.php line 162:
exit("Please fix the errors");
In PHP passing a string to exit() exits with code 0 (success). So CI never actually fails when there are YAML errors.
Why this matters
The Dockerfile copies the old model.yaml into the container before the PHP script runs. So when the script fails silently with code 0, sed just runs on the old file, Docker build passes and the stale model.yaml gets committed. The actual error is never shown.
Fix
echo "Please fix the errors\n";
exit(1);
Test PR
Raised #73
Where I intentionally broke a YAML file but i am not able to validate because there are no build checks in PR.