Verdict and evidence
What each run publishes, what its result means, and how to verify it yourself.
The three outcomes
The check run concludes one of three ways:
Successevidence was verified and published, and the verdict was clean or its findings were advisory-only.
Failureblocking findings in enforce mode, a rejected input, or an evidence-verification failure. Fail-closed: an unreadable ruleset, an unobtainable diff, or a GitHub API error is never a pass.
Neutralshadow mode with blocking findings, or a pre-verdict infrastructure failure while shadow mode is active.
What's in the evidence artifact
swazona-evidence.json is a single, schema-versioned JSON file recording one run. The check summary and PR comment are separate, human-readable outputs, and the file itself is the named artifact you download to verify a run. Among the evidence file's own top-level fields:
- head_sha, base_sha and result_sha256 bind the record to the exact commit and diff reviewed.
- digests carries hashes of the diff, ruleset, cache key and prompts used.
- findings, refuted, discarded, unknowns and not_checked record what the gate found and what it didn't check.
- cost, trust and attestation record model spend, provenance signals, and the attestation mode and whether one was required — the outcome itself is written to a separate swazona-attestation artifact.
Attestation
Attestation records that GitHub itself built the evidence artifact you are looking at. It runs in one of three modes:
autoattempted when the repository is public and the workflow has permission; recorded and skipped otherwise.
truerequired; a failed or unavailable attestation fails the run.
falseattestation is skipped. auto also skips private repositories by default.
gh run download <run-id> -R <owner>/<repo> -n swazona-evidence-<invocation-id> -D swazona-evidence
cd swazona-evidencegh attestation verify swazona-evidence.json -R <owner>/<repo>The invocation id inside the artifact names above (swazona-evidence-<invocation-id>) ties a check run to its evidence and, when present, its attestation. A run with no attestation record has nothing beyond the artifact itself to verify against.
Private repositories
attest: auto skips private and internal repositories, because the probe cannot see the plan; the evidence records that attestation was unavailable. On GitHub Enterprise Cloud you can set attest: true to require it there too.
What isn't checked
Model-tier findings are advisory unless you opt in to let them block, and once a run's model spend reaches its cap, the remaining files are reported as not reviewed rather than silently skipped.