- CLI evaluate/check --json vs programmatic evaluateSubject: same subject,
same typed report
- QC-19 parity vs a verbatim copy of the absorbed presence loop (positive and
negative fixtures, all scaffold kinds) and QC-20 parity vs the real
framework verify.sh output contract
- negative controls: unknown check id, absent subject, missing probePath,
spawn error, timeout, nonzero/unexpected exit, malformed output, throwing
check, unqualified skip — all never passed