pithyx catalog verify checks a branch folder of a catalog as a box does before it uses it: the signature (when you give keys), the index for this catalog and channel, and every file of every version against its entry. Catalog CI runs it after signing.
--channel stable|beta: the channel the index must declare.
--key <id>=<base64> (repeatable): a trusted public key, the raw 32-byte Ed25519 key in base64, trusted for the given channel. With at least one key, index.json.sig must carry a valid signature by one of them. Without keys the signature is not checked, as for a custom catalog.
--catalog <file>: the catalog file whose id the index must name (default catalog.json).
store.catalog.invalid_json when index.json is missing, the other store.catalog.* codes of the index (signature_invalid with the reason missing, malformed, untrusted or mismatch), and store.package.hash_mismatch for every file that differs. See Findings.