# @evolv/contract-verify Verify that `nodes//CONTRACT.md`'s topic table matches the canonical registry in `nodes//src/commands/index.js`. ## Usage ```bash # verify every node with a CONTRACT.md node tools/contract-verify/bin/contract-verify.js # verify one node node tools/contract-verify/bin/contract-verify.js nodes/rotatingMachine # CI-friendly JSON output node tools/contract-verify/bin/contract-verify.js --json ``` Exit code `1` on any drift; `0` if every checked node agrees. ## What it checks 1. Every `topic:` in the registry appears as a canonical row in the `## Inputs` table. 2. Every canonical row in the `## Inputs` table is registered. 3. The `aliases:` array on each descriptor matches the "Aliases" column. ## What it does NOT check - Payload schemas (registry's `payloadSchema` vs. the "Payload" column). - The "Effect" description column. - Output ports — see `tools/output-manifest-verify/`. Run after touching `src/commands/index.js` or `CONTRACT.md` in any node.