conformance 0.1.0


pip install conformance

  Latest version

Released: Jul 29, 2026


Meta
Author: Conformance
Requires Python: >=3.12

Classifiers

Development Status
  • 3 - Alpha

Intended Audience
  • Developers

Programming Language
  • Python :: 3.12
  • Python :: 3.13

Topic
  • Software Development :: Testing
  • Software Development :: Quality Assurance

Conformance

Verify what your AI agent did — not what it said.

Conformance injects deliberate faults at your agent's effect boundary (a redelivered queue event, a crash mid-write, a withheld approval, a raced turn), records what actually happened, and evaluates nine deterministic invariants over that record. No language model judges anything. Every finding comes with a content-addressed witness a sceptic can re-derive offline, without you.

$ conformance verify --scenario shipbot --seed 17

seed 17 · spec conformance-1.0 · 8 schedule(s) run

✕ 1 custody                  VIOLATED    wit_05b69e04ec177d5209056ab82d
⚠ 2 one-advance              inconclusive (no attachment point for staged_race…)
⚠ 3 no-scarce-hold           inconclusive (no pool acquisitions in record…)
✕ 4 quarantine               VIOLATED    wit_5fde8bf97de2a976d8a57fbd21
✕ 5 exactly-once-effect      VIOLATED    wit_d223f1f2cfec1b7eca4e89552a
⚠ 6 plan-identity            inconclusive (needs its own recording…)
⚠ 7 timeout-equals-cancel    inconclusive (no attachment point for delay_response…)
⚠ 8 structural-authority     inconclusive (no attachment point for withhold_approvals…)
⚠ 9 state-separation         inconclusive (no database schema discoverable…)

Result
  Level Achieved: —
  Target:         L1 (DURABLE)
  Depth:          V2 (DETERMINISTIC)
  Gate:           FAIL

Every invariant returns hold, violated, or inconclusive. inconclusive is never styled as a pass and never counts toward a level: unmeasured is not passed. That is the whole design.

Install

pip install conformance          # or: uv tool install conformance

Python 3.12+. No account, no API key for verification, nothing uploaded.

Start where you are

conformance init                      # detect the stack, find effect sites, run static checks
conformance doctor --explain-depth    # what each invariant needs to be decidable
conformance verify --path .           # V0 verdicts, no instrumentation required

init needs no SDK, no credentials, and no network. It reports what it found and — for anything it cannot decide at this depth — exactly what would decide it.

Going deeper: record once, verify forever

Declare a scenario naming an entrypoint that runs one bounded episode of your agent, then:

conformance record --scenario myagent --seed 1   # your key, your machine, once
conformance verify --scenario myagent --seed 1   # sealed, offline, byte-deterministic

Your credentials are used exactly once. Everything after that runs against the captured cassette: CI needs no model key and no network. A cassette miss is a loud failure (exit 3) — never a live call, never a guess.

Same commit, same seed, same cassette produces identical verdict bytes and identical witness ids: 1,000 out of 1,000 runs on the crash schedules, Wilson 95% CI ≤ 0.38% flake.

Checking a finding

A violation produces a witness. Export it and it becomes a file anybody can check, offline, without trusting this tool:

conformance export <witness-id>
conformance replay <witness-id>       # re-derives the verdict from the evidence

Editing the evidence breaks its content address and replay refuses.

In CI

- run: pip install conformance
- run: conformance ci --scenario myagent --seed 1 --level-target L1

A violation of an invariant your target level requires fails the check. Exit codes: 0 pass, 1 gate fail, 2 cannot execute, 3 fail-closed breach.

Depth, honestly

Depth What it needs What it decides
V0 nothing discovery, configuration, invariant 9
V2 SDK attached + a recorded cassette all nine, under fault

Most systems start and stay useful at V0. Moving to V2 means instrumenting the effect boundary — usually a single keyword argument if your effects are HTTP. conformance doctor --scenario <name> --explain-depth lists the exact step per invariant.

Documentation

Apache-2.0.

Wheel compatibility matrix

Platform Python 3
any

Files in release

Extras: None
Dependencies:
conformance-harness (==0.1.0)
textual (<9,>=8.2.8)