geval check, Geval writes a decision artifact to disk (typically under .geval/decisions/) containing enough information to audit what was evaluated: contract hashes, policy results, signals hash, timestamps, and overall outcome.
Exact field names evolve with the artifact_version — treat the file as structured audit data, not a public HTTP API.
What to use it for
- Compliance — prove which contract version and policy hashes produced a merge decision.
- Debugging — compare two runs side-by-side when outcomes surprise you.
- Downstream automation — ingest JSON in your own tooling (with version checks).
What is inside (conceptual)
A multi-contract run generally includes:artifact_version— Schema version for the JSON file.geval_version— Binary version string.bundle_hash— Hash over the set of contracts participating in the run.contracts_combine_rule— How multiple contracts were merged for the overall outcome.contracts— Per-contract blocks: paths, names, versions, hashes, per-policy outcomes, combined decision.overall_combined_decision— Final merged outcome across contracts.signals_hash— Hash of the signals payload; optionalsignals_name/signals_versionwhen present in the file.timestamp— UTC timestamp for the write.
artifact/writer.rs in the repository.
Location
Artifacts are written relative to the current working directory whengeval check runs — typically .geval/decisions/<timestamp>.json.