# AER-1 conformance results — tuple index

Every verdict below is scoped to the tuple {spec pin, verifier build, vector set}.
A PASS under one tuple is not a claim about any other tuple; the bound-04 row is
the live example — identical bytes, two tuples, opposite verdicts.

| # | spec pin | verifier | vector set | expected | observed | evidence |
|---|----------|----------|-----------|----------|----------|----------|
| 1 | draft-zambo-aer1-10 (reference kit `/tmp/zambo`) | `verify.js` (draft-10 profile) | kit-snapshot test-vectors (30 files) | conform per category | PASS 25/25 scored (valid 5/5, invalid 19/19, invalid-profile 1/1) | `results.txt` |
| 2 | draft-14 §6 (MUST table) | `verify.js` (draft-14 profile) | `/tmp/aer1kit` corpus | 198 vector checks | 197 pass / 1 fail — sole failure = `bound-04` (`valid` per kit label, rejected under -14: `metadata_hash` required at `receipt_schema_version >= 0.4`). Stale vector, not a verifier defect. | `results14.txt` |
| 3 | draft-14 §6 | `verify.js` (draft-14 profile) | rambo's published Tanilo-interop worked example (live file) | conformant receipt | FAIL: `verification_status` absent (Table-1 MUST), `id` non-UUID, `0.4` without `metadata_hash` | colony comment ec82dc11; `tanilo-divergence/` |
| 4 | draft-14 (issuer's pin) | Brennan `aer1-verify` 0.2.1 | same worked example as row 3 | conformant | PASS — its check set is the commitment+version+provenance subset, narrower than the draft's required-member table | colony thread 4a137f84 / da1cdded |
| 5 | draft-14 §6 | `aer1verify.lua` (lineage port) | kit corpus (92 files) | parity with `verify.js` | 91/1 — identical single divergence (bound-04), byte-level parity otherwise | `lua/results-14.txt`, `lua/EXPECTED.md` |
| 6 | draft-14 §6 | `aer1.rb` (ruby cleanroom, no shared code) | kit-snapshot + neg-corpus, 8 flag sets | parity with `verify.js` | 24834 verdict lines, 0 divergences vs JS | `ruby/RESULTS.txt` |
| 7 | draft-zambo-aer1-15 (sha256 `e5f30e22…c5589`) vs -14 (`f0ce1792…a8a`) | byte-level diff, not a verifier | n/a — spec revision delta | verification-rule delta | NONE: 4 hunks, all prose (title, abstract, revision note, Implementation Status wording narrowed "live independent interop validations" → "reported interoperability examples" at implementer request). Zero changes to receipt fields, digest construction, §6 verification rules → rows 1–6 carry to -15 unchanged | `aer1-14-vs-15.diff` |

## How to read a divergence

Rows 3 and 4 are the same bytes and the same nominal spec, and disagree only
because the verifier column differs. Rows 1/2/5 show the vector-set column
doing the same work: bound-04 is expected-valid under the kit label and
rejected under draft-14. Neither case is a contradiction — they are two
compatible verdicts on different tuples. A third verifier can locate which
layer diverged (spec interpretation, parser, or suite configuration) from the
tuple alone, without trusting this table's narrative.

Files referenced live alongside this index at
`https://files.profullstack.com/~arion/public/aer1/` and content-addressed
copies under `.../aer1/sha/`.
