Conformance board

Every outside implementation we can run, scored against one pinned corpus

Generated from the board data; corpus agent-evidence-vectors 0.29.3, results of 2026-10-29.

Each row runs an outside implementation’s own code on the saved records of agent-evidence-vectors 0.29.3. Our CI re-runs every score on a schedule and whenever the implementation’s default branch moves, so a verdict at a new upstream commit appears here without anyone asking for it. Pass means the harness executed every vector and none failed. Fail means it executed every vector and some failed. Not runnable means the implementation could not be run to completion on that corpus, and the cell says why.

A verdict is kept only when the same adapter first passes two controls: the corpus’s reference canonicalizer must pass every vector, and a deliberately wrong canonicalizer must fail the ten vectors the corpus expects it to fail. For the anchor stream the control is that the runner reproduces the corpus’s own recording of a published verifier tag on every member. A failure in a row below therefore comes from the implementation, not from the adapter or the harness. Each implementation’s declared scope is printed beside its verdict. A vector outside the scope an implementation declares is a difference of profile, and the row says so rather than hiding it.

RFC 8785 canonical bytes

Corpus vectors-a2a-jcs-v01, target rfc8785, 53 vectors. One JSON value to its RFC 8785 canonical UTF-8 bytes: key order, string escapes, number spelling, literals. A function that raises on a value is a refusal.

implementation declared scope at the pinned commit at the default-branch head failing vectors at the pin runs
MolTrust AAE app/signature.py canonicalize: RFC 8785; integers beyond 2^53-1 are refused by design pass (53 of 53) at 1cd28477 (the pin) pass (53 of 53) at 1cd28477 (the pin) none run
Agent Passport System (APS) src/core/canonical-jcs.ts canonicalizeJCS: strict RFC 8785; undefined and lone surrogates are refused pass (53 of 53) at f95c9168 (the pin) pass (53 of 53) at f95c9168 (the pin) none run
Horizon (conduct walk) rfc8785() in a2a_conduct_walk.py: RFC 8785 for the values an agent card holds; it raises NotReproducible for anything it would have to guess at pass (53 of 53) at 175066c1 (the pin) pass (53 of 53) at 5d6fce79 none run
PIC (pic-standard) pic_standard.canonical.canonicalize: PIC-CJSON/1.0, RFC 8785 as the baseline plus PIC-specific rules; the profile is frozen, so a vector where the profile differs from plain RFC 8785 is a profile difference the project declares pass (53 of 53) at 6856f362 (the pin) pass (53 of 53) at 6856f362 (the pin) none run
REMORA integrations/horizon55/canon.py jcs: RFC 8785 for objects, arrays, strings, integers within 2^53-1, true, false and null; floats are refused at parse time by its own profile fail (42 of 53); inside its declared float-free subset 39 of 39 at 76bebaaf (the pin) fail (42 of 53); inside its declared float-free subset 39 of 39 at 76bebaaf (the pin) 11: A5-001, A5-002, A5-006, A5-007, A5-008, A5-010, A5-011, A5-012, A5-013, A5-015, A6-005 run

ANCHORS stream verification

Corpus vectors-anchor-stream, target anchors-verify, 34 vectors. An append-only anchor stream and its digest sidecar, with every platform byte pinned. Scores the verdict and the stop reason.

implementation declared scope at the pinned commit at the default-branch head failing vectors at the pin runs
AOS catalog anchors_verify.py: the ANCHORS stream and sidecar verifier; the corpus was cut at the anchors-verify-v0.4 tag and the verifier has moved since fail (31 of 34) at 9980aab3 (the pin) fail (31 of 34) at 5db6df1d 3 members, 3 of them under clauses the corpus marks proposed because the verifier’s contract text leaves them open: ans-c-3: expected VERIFY FAILED (exit 1), observed VERIFY PARTIAL (exit 3) VERIFY PARTIAL: lines=24 digests=18 witness_repo=aos-standard/catalog; ans-c-3: expected VERIFY FAILED (exit 1), observed VERIFY PARTIAL (exit 3) VERIFY PARTIAL: lines=24 digests=18 witness_repo=aos-standard/catalog; ans-c-9: expected VERIFY FAILED (exit 1), observed VERIFY FAILED (exit 1) position binding at line 19: names no witness repository run

No entry point that takes the corpus

These implementations were read at the pinned commit and have no command that can run a corpus of ours. The row names the tree that was read.

implementation pinned commit tree read why it is not runnable
Frequency dabb76d5 tree The public repository is a review capsule whose only entry point replays the APS and PriorSeal fixtures; its canonical-value function is private to that adapter, and its capsule records the formal run as not run pending scope confirmation.
Microsoft Agent Framework fc3c3c07 tree The tree has no canonicalizer, record verifier or conformance entry point that takes a vector file; its verify-samples tool checks sample programs, not evidence records.

Not scored on this board

The board’s publication rules hold these implementations out of the tables above. They are listed so the board covers the field it names.

implementation pinned commit
Microsoft agent-governance-toolkit (AGT) 1b680536
Jans TRACE producer c1609a1f

Verified by Probity

Verified by Probity (github.com/probityai/probity). A score on this board is our CI running an outside implementation against the pinned corpus. It is not the badge. The badge is granted to a project, never self-declared, recorded in the grant ledger of agent-evidence-vectors, and re-checked at every release; the rules are on the Verified by Probity page. No row on this board carries it.

To run the same corpus in your own CI, pin the package:

uv add agent-evidence-vectors==0.29.3
pip install agent-evidence-vectors==0.29.3

Add an implementation

Add one entry to data/board.toml: the repository, a pinned commit, the file and function that take the corpus, and its declared scope. The workflow scores it on the next run. To run one row by hand, see tools/run_board.py. The packaged corpus runs in your own CI with the agent-evidence-vectors Action.

Each verdict has a row in the claim ledger.