Veridict |
The verdict that survived verification. | Türkçe
Veridict is a protocol and reference implementation for auditing AI with AI when humans no longer can. An append-only, hash-chained evidence ledger records every step of an audit: falsifiable claims, machine verifiers, a blind heterogeneous jury, third-party watchers, and a signed certificate that anyone can verify offline — no trust in the auditor required.
The founding premise: as AI output outgrows human review capacity, the human role is not code reviewer but risk owner. Veridict is built around that transformation — the machine owns the verdict of intelligence, the human owns the verdict of responsibility.
Why an audit ledger
- No silent passes. No evidence → INCONCLUSIVE, flagged — never a clean bill.
- Tiers, not vibes. Evidence has a fixed rank order: what a machine can check directly (W1a) beats what can be reproduced statistically (W1b), and both beat what a jury of models believes (W2/W3) — the ladder never lets doctrine overturn machine evidence, and W3 alone never verifies.
- Identity is binding. Every entry's hash binds its author; watcher manifests are signed, W1a is structurally impossible for them; a calibration ledger discounts producers whose claims were contradicted.
- Verify, don't trust. Certificates replay offline against the ledger.
examples/spec_verifier.pyis a verifier written from the standard alone (zero imports of this codebase) that reaches the same verdicts from the published test vectors.
Quickstart
pip install -e . && pip install pytest
# PyPI name: `veridict-standard` (the bare `veridict` on PyPI is a
# DIFFERENT project — not ours; from this repo or `pip install
# veridict-standard` once published)
# audit a task end-to-end (GATE mode) — see examples/ for runnable scenarios
veridict --help
# the system audits itself: ledger → claims → jury → certificate → offline verify
python scripts/dogfood.py
# verify a certificate offline (the property third parties care about)
# (ledger + cert are release assets: gh release download v0.3.1
# or https://github.com/goun7/veridict/releases)
veridict verify --ledger dogfood_ledger.jsonl --cert dogfood_cert.json
# regenerate the standard's conformance test vectors (deterministic)
python scripts/build_test_vectors.py
# measure GATE latency against the design budget (§6.5: p95 < 30 min)
python scripts/measure_latency.py
Receipts (evidence over claims)
The self-audit badge above is regenerated by CI on every push from the
actual dogfood certificate (never hand-drawn) — and it links to that
certificate, which you can verify offline yourself: fetch the ledger and
certificate from the latest release
(gh release download or the assets list), then run
veridict verify --ledger dogfood_ledger.jsonl --cert dogfood_cert.json.
A failing audit turns it amber or red — worst-verdict-wins.
| Check | Result |
|---|---|
| Test suite | 260 passed (both invocation styles, Python 3.12–3.14 in CI) |
| Self-audit | valid certificate, risk low, GATE not blocked |
| Offline replay | veridict verify rc 0 on the dogfood certificate |
| Canary protocol | 10 catches / 3 honest misses / 0 false positives across 12 defect classes |
| Tamper soak | 1500 mutated ledgers, 5 seeds → 100% detected, 0 silent passes |
| Spec parity | reference verifier ≡ spec-only verifier on 8 failure modes |
CI runs the suite, the dogfood self-audit, and the offline replay on every push — the receipts are regenerated, not narrated. The 1500-ledger tamper soak runs nightly (the push run exercises a 150-ledger slice).
Register a watcher in 3 commands
veridict registry init --registry r.jsonl --key-out r.key.json
veridict registry register --registry r.jsonl --manifest examples/manifests/example-security.json --key-file r.key.json
veridict registry index --registry r.jsonl --out index.json
Then audit with the external registry as authority:
veridict audit ... --registry r.jsonl — revoked watchers are refused
(§6.6). See CONTRIBUTING.md for writing your own.
Audit your own repo in 3 commands
The fastest way to see Veridict work on your code: write a one-file task
manifest naming your checkout and the claims you want evidence about, run
the audit, verify the certificate offline — then link the pair from your
README. A runnable demo lives in examples/run_audit.py.
# 1) a task manifest (see examples/ and TaskManifest in veridict/schemas.py)
cat > task.json <<'EOF'
{"task_id": "my-audit", "artifact_path": "/path/to/your/repo",
"actor_identity": "you", "intent_lines": ["DOCTRINE: modules are idiomatic python"],
"criticality": [], "has_existing_tests": true, "pytest_args": []}
EOF
# 2) audit → ledger + certificate
veridict audit --task task.json --mode HYBRID \
--ledger my-ledger.jsonl --cert-out my-cert.json
# 2b) or WATCH a live audit as it writes (streaming transport, §10.3):
veridict watch --ledger my-ledger.jsonl --forever
# 3) verify offline (anyone can; no trust in the auditor required)
veridict verify --ledger my-ledger.jsonl --cert my-cert.json
Want the reference implementation to run the audit for you and publish the certificate? Open an Audit my repo issue — the certificate that comes back is evidence, not endorsement (§13): anyone can replay it offline against the published ledger, and a REFUTED claim says exactly which evidence refuted it.
Audit on every push (GitHub Action)
Run Veridict inside your own CI without installing anything locally:
jobs:
audit:
uses: goun7/veridict/.github/workflows/veridict-audit.yml@v1
with:
intent: "DOCTRINE: modules are idiomatic python"
mode: HYBRID # GATE / WATCH / CERTIFICATE also available
fail-on-refuted: false # flip to true once you trust the audit
The run uploads veridict-audit artifacts (ledger + certificate) — download
once, verify forever: veridict verify --ledger veridict-ledger.jsonl --cert veridict-cert.json. See the workflow file for all inputs.
Public site
The standard and the design document are readable (and linkable) at
https://goun7.github.io/veridict/ — deployed from main on every push.
Documents
- Standard (normative draft):
docs/specs/2026-09-10-veridict-standard-v1.0.md— §14.2 carries errata; errata proposals are a first-class issue template - Standard v1.1 delta (draft):
docs/specs/2026-09-12-veridict-standard-v1.1-delta.md— ratifies the WATCH transport latency sentence (D10); read on top of v1.0 - Design document (founding paper):
docs/specs/2026-09-09-veridict-design.md - Architecture:
ARCHITECTURE.md— module map to standard sections - Commercial model:
docs/commercial-model.md— open-core model, growth levers, anti-corruption guardrails - Contributing / Governance / Security:
CONTRIBUTING.md·GOVERNANCE.md·SECURITY.md
Status & roadmap
Phase 1 (core) and Phase 2 (watcher layer) are implemented with end-to-end receipts in the dogfood run. Phase 3 (platform + standard) substrate is in place: spec draft, conformance kit (C1–C10), marketplace index, test vectors, spec-only verifier. The remaining exit criteria are external by nature:
- an independent verifier implemented from the spec by someone else,
- a first external production deployment,
- ≥10 active watcher manifests on the marketplace.
Roadmap decisions are tracked in the issue tracker; the commercial
model is documented in docs/commercial-model.md.
Contributing
Start with the issue tracker — the tracker is seeded with the project's own exit criteria:
- Independent verifier from the standard alone (exit criterion ①) — write a verifier without reading our code; where you and the reference disagree, either the standard is ambiguous or someone is wrong, and both findings earn errata credit.
- Good-first issues — e.g. canary corpus expansion (self-contained, tests included as reference).
- Errata proposals — a normative sentence that is wrong, ambiguous, or unimplementable. Accepted errata land in §14.2 with credit.
All work is governed by the receipts culture: tests and regenerated
evidence over claims. See CONTRIBUTING.md.
Model
Open-core: the standard, the ledger core, and the offline verifier are
Apache-2.0 — forever. Commercial offerings (hosted platform, watcher
certification, enterprise integrations) build on top and never gate the
open core. See docs/commercial-model.md.
Release files for veridict-standard 0.3.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 | |
|---|---|---|---|
| veridict_standard-0.3.1.tar.gz | 111.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| veridict_standard-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 172.3 kB
Release files / veridict_standard-0.3.1.tar.gz
| Download URL | veridict_standard-0.3.1.tar.gz |
|---|---|
| Size | 111.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a750b8d90c8723f0c7a4e2577c01fd3057056b79a9fe47eea4d166887f11b78d
|
|
BLAKE2b-256 checksum How to use checksums |
247862a22ee9054dec8c91dfb257f87dab49c75135c9346c091b4c72ece611c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / veridict_standard-0.3.1-py3-none-any.whl
| Download URL | veridict_standard-0.3.1-py3-none-any.whl |
|---|---|
| Size | 60.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e719069e0d836435a96db824c3147c61ecaf7909090f49d5a4326b4861bfcf43
|
|
BLAKE2b-256 checksum How to use checksums |
ab7aec4b5ea7ae25a7ef7a2fd31eb22919f17fec62fe0d28cc3f6c5f6e2b885e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|