- tools/contract-verify/ — diffs CONTRACT.md ## Inputs table vs
src/commands/index.js registry. First run found 3 real drifts:
MGC has `set.scaling` in CONTRACT (not in registry); monster + settler
registry has `child.register` (not in CONTRACT); pumpingStation registry
has `set.outflow` (not in CONTRACT).
- tools/flow-lint/ — lints examples/*.flow.json against the rules in
.claude/rules/node-red-flow-layout.md. First run flagged the
monster/basic flow (4 ui-* at 0,0 + ui-chart missing interpolation
property) and rotatingMachine/edge.flow.json (6 ui-* at 0,0).
- Both tools are read-only, single-binary npm packages with a `--json`
output mode for CI, exit code 1 on drift. Encode the rules so we
don't have to re-discover the bugs that motivated them.
Per CLAUDE.md tooling doctrine: prefer these over ad-hoc grep/jq.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>