probity-verify
An offline verifier that decides whether a claim holds against evidence bytes the consumer pinned, with adapters for source passages, operand lineage, authority captures, bounded absence and spend journals.
It's for auditors, incident reviewers and relying parties who receive a claim about an AI system and need a decision they can replay, not a report they have to trust.
Install the released package: pip install probity-verify==0.2.0.
Quick start
Check a sample claim with the released package. You need Python 3.11 or newer and uv; there is nothing to clone, and a cold run takes about seven seconds. Version 0.2.0 ships the sample case and policies inside the wheel:
samples="$(uvx --from probity-verify==0.2.0 python -c 'import importlib.resources as r; print(r.files("probity_verify") / "samples")')"
uvx probity-verify==0.2.0 "$samples/case.json" --policy "$samples/policy-june.json"
It prints a decision packet that opens:
Probity decision packet v1
Case: "source-coverage-demo"
Claim: source_text_coverage/v1
Decision: contradicted
Reason: selected_span_missing_from_record
Policy SHA-256: dfda1551714f92702169d1411af6b0bfeee54732f934ce71265534af775fa388
A selected passage is in the source capture but missing from the stored report. The packet goes on to list every artifact binding and check. Swap in policy-april.json for not_established, or case-complete.json with policy-complete.json for supported. To run from a pinned source checkout instead, see Install a pinned version.
Use the decision in a check
All valid decisions exit 0, including contradicted and not_established. Exit 2 reports invalid input without a verdict. Require support for this claim by reading decision:
uvx probity-verify==0.2.0 "$samples/case.json" \
--policy "$samples/policy-june.json" --json > decision.json &&
python3 - <<'PY'
import json
with open("decision.json") as stream:
result = json.load(stream)
print(result["decision"], result["reason"])
raise SystemExit(0 if result["decision"] == "supported" else 1)
PY
This guard prints contradicted selected_span_missing_from_record and exits 1. supported means the stated claim passes the pinned policy's checks. Your application still owns authorization.
Status
Version 0.2.0 is on PyPI and ships the sample inputs used above. See release instructions for checked artifacts and the changelog for what each release changed. Thirteen adapters ship in 0.2.0: brokered_file_write/v1, source_text_coverage/v1, operand_lineage/v1, authority_anchor/v1, event_absence/v1, event_absence/v2, spend_reservation/v1, the done-receipt checks for coding agents protected_paths/v1, acceptance_observed/v1, tool_claim_match/v1, completion_claim/v1 and probe_observed/v1, and done_receipt/v2, which derives a done receipt's two verdicts again from them: whether the work is done and whether the agent gamed the process. Each decision is supported, contradicted or not_established. The verifier checks supplied bytes only: it does not fetch URLs or authenticate the authority a policy names.
Documentation
| page | read it for |
|---|---|
| Start a project | a template that checks an observer-recorded write with this verifier, pinned and in CI |
| Install a pinned version | install outside the source checkout and replay three sample decisions |
| Choose a claim check | select a task from checked recipes and retrieve exact commands and input digests |
| Select a consumer adapter | supply exact adapter versions through adjudication, bundle creation and replay |
| Check a customer offer | compare a draft with raw company records and an exact manager approval |
| Running the verifier | every example command, the case and policy inputs, and what each decision means |
| Replayable decisions and the index | ZIP bundles, replay, and the local index of decisions, challenges and supersessions |
| Adapters | what operand lineage, authority anchor and event absence check, and what they leave to the consumer |
| Done-receipt checks | check a coding agent's "done" against protected paths, an outside acceptance grade and its claimed command runs, with vantage and witness scope on every verdict |
| Spend reservations | replay a pinned budget journal, refuse dispatch without an affordable reservation, and keep pending calls charged |
| Observation vantage | select the producer and observation scope, replay bounded absence, and operate a witness with separate keys and retained heads |
| Adapter plan | the architecture and the adapters planned next |
| A2A server and client | send raw case bytes to an operator-configured verifier, or read a pinned Lab record |
| Source coverage, operand-lineage and done-check vectors | conformance cases with pinned bytes and expected decisions |
License
Apache-2.0.
Metadata
Release files for probity-verify 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| probity_verify-0.2.1.tar.gz | 353.3 kB | With provenance | Details for probity_verify-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| probity_verify-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for probity_verify-0.2.1-py3-none-any.whl |
Total release size: 464.4 kB
Release files / probity_verify-0.2.1.tar.gz
| Download URL | probity_verify-0.2.1.tar.gz |
|---|---|
| Size | 353.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
22878b464e5c14e14543483f2427302702880bda02837df787f090f2f2920790
|
|
BLAKE2b-256 checksum How to use checksums |
94aa4d9b3f81ecddd5a75d29b3d369623f8337f02e4a56366e00187ea4183176
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logRelease files / probity_verify-0.2.1-py3-none-any.whl
| Download URL | probity_verify-0.2.1-py3-none-any.whl |
|---|---|
| Size | 111.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
032bbef522b4990d90754085a7cb5ef0c52d03e9fbe4cd631d13bacf04617309
|
|
BLAKE2b-256 checksum How to use checksums |
34996c857bcce6222c146a1128152bcb32368fdd07939411310f0f11fc645e29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logSecurity for probity-verify 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for probity_verify-0.2.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.