Files
EVOLV/tools/contract-verify/README.md

34 lines
1004 B
Markdown
Raw Permalink Normal View History

# @evolv/contract-verify
Verify that `nodes/<n>/CONTRACT.md`'s topic table matches the canonical
registry in `nodes/<n>/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.