Sources
Each side is a local file, anhttp(s) URL, or git:<ref>:<path>, which reads straight from git object storage with no checkout.
Both sides are normalized to pikopod’s internal representation first, so OpenAPI 3.x, Swagger 2.0 and Postman collections all diff, even against each other. A spec split across files works when the source is a file or a git ref; see Multi-file specs.
Exit codes
--fail-on accepts ERR (default), WARN or INFO.
Output formats
--format accepts text (default), json, markdown and githubactions.
- text
- githubactions
- markdown
- json
A summary line, one block per finding with the check ID and a stable fingerprint, and a trailer on stderr when the gate fails.
What a finding carries
Every finding has a check ID (endpoint-removed, response-required-property-removed, request-type-changed, and so on), a level, the method and path template, a human detail line, and a fingerprint fp_… that identifies the change stably across runs. Findings on the new document also carry a JSON pointer into the source so tools can point at the exact line.
Severity is never hand-assigned per check. One function maps the shape of a change onto ERR, WARN or INFO. See Severity.
Examples of what moves the gate
From the same command in CI
Related
pikopod spec-diffreference- Spec watch: the same diff, re-run on a schedule against your pinned import.
- Spec update: turn traffic evidence into additive spec patches.