34 lines
1004 B
Markdown
34 lines
1004 B
Markdown
|
|
# @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.
|