# README deliverable

Created `README.md` with source-checkout setup, direct Node 24 execution, CLI table/JSON/help commands, an executable public API example, the full schema and validation rules, every scoring boundary, proof gating, ranking ties, heuristic limits, tests, and the MIT license. Included the complete supplied snapshot in its required row/key order and two-space indentation, its exact table output, all modeling caveats, and the link to `docs/example-sources.md`.

The only source change is `README.md`. This report is the separately delivered output. Verification scaffolding and the downloaded runtime remain in disposable `test/scratch/`; no package, configuration, implementation, or dependency files changed.

## Checks

Used Node **v24.22.1**, downloaded into `test/scratch/` and checked against its published SHA-256 checksum. The test environment selected that runtime on PATH and kept temporary files and npm cache under `test/scratch/`.

| Command/check | Result |
| --- | --- |
| `npm test` | **46 passed, 0 failed**, none skipped; existing validation, scoring, ranking, and CLI tests |
| `node test/scratch/check-readme.ts` | **12 passed, 0 failed** after correcting one scratch-check assumption |
| README formatting and links | Fences and trailing whitespace checked; all existing local link targets resolved; the concurrent source-notes link is deferred |

The documentation checker extracted the README's JSON, TypeScript, and table blocks. It verified every supplied value and the exact input formatting; ran the CLI table, both `--json` positions, `--help`, and `-h`; exercised `npm start`; executed the unchanged API snippet with valid and invalid input; checked CLI error and empty-input behavior; and compared package metadata with the documentation. It used only existing trunk modules and scratch fixtures.

The `npm start` check used `npm start -- test/scratch/rollups.json`. The direct CLI checks ran from a scratch directory linked to the existing `src/`, allowing the documented `node src/cli.ts rollups.json` commands to run unchanged. The API snippet ran as `node check-rollups.ts` there.

The initial documentation run was **11 passed, 1 failed**: the scratch helper incorrectly required the npm wrapper's stderr to be empty, although npm exited 0 and produced the correct table. npm emitted warnings. The corrected check verifies successful exit and the table; direct CLI checks still require empty stderr on success. No application change was needed.

## Expected versus actual

No score, ranking, JSON, or table discrepancies: Arbitrum One **85**, OP Mainnet **75**, Base **70**, Starknet **65**, ZKsync Era **50**, Scroll **45**. CLI table output equals the README block byte for byte; JSON output equals the complete public API result.

The brief contains a labeling inconsistency: Base's supplied row says `fraud`, while its caveat discusses a validity label simplifying a hybrid TEE/ZK system. The README preserves `fraud` exactly and explicitly explains the caveat. Equal proof points leave the requested score unchanged. Snapshot claims were not reverified as live facts.

## Deferred until the wave merges

Resolve and review `docs/example-sources.md`, compare the README blocks with `examples/rollups.json`, `examples/expected.txt`, and `examples/expected.json`, and rerun `npm test` with the concurrent example tests present. Those files were absent from this checkout and were not required for the completed checks.
