Command line
Output
The human report is a summary. The JSON is the complete record, including every issue the summary compresses.
The human report
One block per entry, then a worst-of summary. Each block names the entry kind, its ledger key, the contracts it serves, what remains, where it ends and how it was graded.
Colour is added only for an interactive terminal and honours NO_COLOR. The state word always prints, so piped output and screenshots lose nothing — a red CRITICAL and a plain CRITICAL carry the same information.
--json
Prints the ScanResult: entries keyed by ledger key, each carrying the contracts it serves, plus health, cost and optimization blocks.
The shape is declared in packages/shared-types/src/index.ts. That declaration is authoritative and is not copied into this documentation, because a copy drifts. Every JSON panel on this site prints the same shape the CLI prints.
The human view compresses issues into a count — Scan is PARTIAL — 2 issue(s). The JSON carries every one of them with its code and the contracts it applies to. If you are building on the output, build on the JSON.
Issues are part of the result
An issue is not an error. sharing-undetermined and coverage-limited both appear on a scan that completed normally; they record what the scan could not establish. A consumer that ignores them is reading a partial answer as a complete one. Undetermined, unread, not found
Next