← Conformance archive · companion records: lra-runner (revision 2) · lra-runner (revision 3)

moltycel-aae-vectors · independent run

Agent Authorization Envelope (AAE) · three vector sets · non-author-produced · first independent run in the candidate's record

IDENTITY · QUALITY · ASSURANCE SEALED ARTIFACTS · IQA.ORG IQA

An independent, non-author-produced run of the moltycel-aae-vectors candidate (PR #190, merged 2026-10-26) — conformance vectors for the Agent Authorization Envelope, submitted by Lars Kroehl (MoltyCel, for CryptoKRI GmbH / MolTrust). The candidate's own evidence table recorded two author-produced runs and the line “No independent run exists yet”; this record is that first independent run. Result: all suites green, exit 0 — 64 files byte-verified against the pinned source commit before anything ran; native set 15/15 (5 runtime, 10 structural) plus 14/14 verifier unit tests; enforce set 26/26; composition set 6/6 row-by-row across the eight-stage ladder; 11/11 negative controls; and the regeneration gate rebuilt every vector byte-identically. The candidate shipped code ran unmodified, under its own audit hook that refuses network access during verification.

Scope and method

Family contract: the moltycel-aae-vectors candidate as merged into the lab (PR #190, 2026-10-26), targeting three published revisions of others' Internet-Drafts: native (15 vectors, draft-kroehl-agentic-trust-aae-00), enforce (26 vectors, -02, enforce kernel 3.0), and composition (6 vectors, aae-00 with draft-yossif-psea-02). Frozen inputs: the candidate's 64 files, each a byte copy of MoltyCel/aae-conformance-vectors at commit 6bb462f578c12d339b8fa964a5b1d8f97dbffa68; run.sh compares every one against a fresh clone at that pin before executing anything. Method: the candidate's own verification pipeline, executed unmodified — three schema validations, three shipped reference verifiers, the verifier unit tests, the PSEA fixture pin, and all three generators with a must-be-byte-identical regeneration gate. Every verification step runs under the candidate's offline.py audit hook, which refuses socket and name-lookup calls in the interpreting process. The clone is the only network step; verification itself is offline. We wrote no vectors, altered no verifier, and supplied no expected value: the run scores the author's frozen bytes against the author's own pinned expectations, executed by an independent operator.

Declared claim set: that the candidate's verification pipeline passes end-to-end, unmodified, on a second operator's host — nothing more. A run verifies the vectors, not the spec; scoring and verdict are separate acts. The lab's separate interop/aae-envelope record is the lab's own and is not evidence for this candidate.

Results

SuiteGateVerificationExtraFailures
native (aae-00, 15 vectors)schema 15/1515/15 (5 runtime, 10 structural)unit tests 14/14 (pytest, 0.07 s)0
enforce (aae-02, 26 vectors)schema 26/2626/26 (verdicts + core digests)—0
composition (aae-00 × psea-02, 6 vectors)schema 6/66/6 (eight staged rows, row-by-row)fixture pin OK0
negative controls (composition)—11/11 (mutated inputs, expected rows)—0
regeneration—3/3 generatorsgit status clean — rebuild byte-identical0
Total47/47 schema47/47 vectors11/11 controls · 14/14 tests0 · exit 0

The recorded output is run-output.txt (reproduced verbatim, uncut, below); the environment record is ENVIRONMENT.txt; the manifest is SHA256SUMS.txt.

Instrumentation contract (instrumented, not asserted)

Mutation battery

No more, no less: none. This candidate ships no mutation battery — its discriminating power is exercised instead through the 11 negative controls (mutated inputs with pinned expected rows, part of the frozen composition set) and through pinned expected verdicts and rejection reasons on every vector. We did not add one: the claim recorded here is the candidate's own pipeline passing unmodified, not a re-engineering of it.

Verdict vocabulary exercised

SuiteVerdicts observed
nativeACCEPT (2) · REJECT (13) — each with a numbered stopping step of the nine-step algorithm (§5) and a reason code (expired_not_after, revocation_status_indeterminate, single_use_already_consumed, ancestor_revoked, delegated_actions_not_subset, delegated_constraint_relaxed, delegation_depth_exceeded, delegation_cycle_detected, signing_authority_mismatch, unrecognized_required_constraint, cty_not_aae_json, delegation_currency_mismatch, not_yet_valid_not_before)
enforcePERMIT (4) · DENY (17) · PENDING (1) · RATIFIED (3) · REJECTED (1) · RatifyError (2) — with the core digest recomputed from the input alone
compositioneight-stage row sets ending AUTHORIZED (3) or REFUSED (3) with reasons (principal_divergence, unresolved_binding ×2)
negative controls11 forced failures across the ladder: join_mismatch, principal_divergence, secondary_unauthenticated, aae_native_reject (expired clock), action_linkage_unestablished (binding mismatch, absent binding, non-I-JSON payload), payload_digest_mismatch, counter_malformed

Diagnostics

The composition suite reports an eight-stage ladder per case (aae_native → action_linkage → principal_linkage → evidence_satisfaction → freshness → decision → admission → outcome); every stage of every case and control is printed row-by-row in the recorded output, so a divergence anywhere would be localized by stage, not merely by case. The native suite reports the exact stopping step and reason per vector; enforce reports verdict plus recomputed core digest.

Exit status

The wrapper captured RUN-EXIT=0. run.sh uses set -eu: any failed check, digest mismatch, or non-identical regeneration aborts the run with a non-zero status before the next step. The recorded run reached the final line (ok: rebuild is byte-identical) and exited zero.

Negative-path self-check

Two layers, both executed: (1) the byte gate — the run begins by comparing all 64 files against the pinned source clone; a tampered candidate file fails the run before any verification; (2) the regeneration gate — the run ends by re-deriving every vector from the generators; a single altered byte in any published file fails the run after all scoring. The 11 negative controls additionally exercise the failure direction of the composition ladder itself.

Determinism and cost

The suite is deterministic by construction: the generators use no clock, no randomness and no network; Ed25519 signing is deterministic (RFC 8032); the regeneration gate is the machine check of that claim and passed. Recorded output of the 2026-11-04 run: sha256 d33a484a643298e3…. Wall-clock cost of the full run (clone, byte gate, all suites, unit tests, regeneration): under two minutes on the recorded host, dominated by the clone; verification itself is offline and fast (the pytest segment alone reports 0.07 s). Any party with git and Python 3.9+ can reproduce it with two commands (below).

Per-vector results (47/47 passed, uncut)

#VectorExpected / observed
native · draft-kroehl-agentic-trust-aae-00 · 15/15
01valid-root-aaeACCEPT @ step 7 [structural]
02expired-not-afterREJECT @ step 3 [runtime] expired_not_after
03too-early-not-beforeREJECT @ step 3 [runtime] not_yet_valid_not_before
04revocation-endpoint-5xxREJECT @ step 8 [runtime] revocation_status_indeterminate
05single-use-replayREJECT @ step 5 [runtime] single_use_already_consumed
06delegation-valid-depth-2ACCEPT @ step 9 [structural]
07delegation-action-supersetREJECT @ step 9 [structural] delegated_actions_not_subset
08delegation-constraint-relaxationREJECT @ step 9 [structural] delegated_constraint_relaxed
09delegation-depth-exceededREJECT @ step 9 [structural] delegation_depth_exceeded
10delegation-cycle-detectionREJECT @ step 9 [structural] delegation_cycle_detected
11delegation-cascade-revocationREJECT @ step 9 [runtime] ancestor_revoked
12signing-authority-mismatchREJECT @ step 1 [structural] signing_authority_mismatch
13unrecognized-required-constraintREJECT @ step 7 [structural] unrecognized_required_constraint
14cty-header-wrongREJECT @ step 2 [structural] cty_not_aae_json
15currency-mismatch-delegationREJECT @ step 9 [structural] delegation_currency_mismatch
enforce · draft-kroehl-agentic-trust-aae-02 (kernel 3.0) · 26/26
01type-form-matches-permitPERMIT
02instance-value-inside-the-action-denyDENY
03type-field-missing-from-the-action-denyDENY
04action-is-a-string-denyDENY
05action-is-an-array-denyDENY
06action-is-a-number-denyDENY
07action-is-null-denyDENY
08grant-without-type_fields-denyDENY
09type_fields-without-verb-denyDENY
10duplicate-name-in-type_fields-denyDENY
11exact-holds-permitPERMIT
12exact-fails-on-a-vanity-prefix-denyDENY
13enum-holds-permitPERMIT
14enum-fails-denyDENY
15range-holds-at-the-upper-bound-permitPERMIT
16range-fails-one-over-the-bound-denyDENY
17unknown-constraint-type-denyDENY
18field-path-with-an-empty-segment-denyDENY
19explicit-hold-pendingPENDING
20unaddressed-action-is-never-pending-denyDENY
21forbid-outranks-an-allowing-grant-denyDENY
22ratified-by-the-issuing-principalRATIFIED
23stranger-with-a-valid-signature-rejectedREJECTED
24a-permit-is-not-ratifiable-caller-errorRatifyError
25chain-link-pointing-elsewhere-caller-errorRatifyError
26chain-link-set-explicitly-to-the-ratified-recordRATIFIED
composition · aae-00 × draft-yossif-psea-02 · 6/6 (eight staged rows per case; last stage shown)
XP-1aligned-principalAUTHORIZED (all eight stages clean)
XP-2principal-divergenceREFUSED (principal_divergence)
XP-3unresolved-bindingREFUSED (unresolved_binding)
XP-5aenrollment-pendingREFUSED (unresolved_binding)
XP-5benrollment-completeAUTHORIZED
XP-6alias-convergenceAUTHORIZED
negative controls · 11/11 (one octet or one field mutated per control; refused stage shown)
C1secondary-side digest flippedREFUSED (join_mismatch)
C2principal table entry resolves elsewhereREFUSED (principal_divergence)
C3PSEA proof signature tamperedREFUSED (secondary_native_reject ← secondary_unauthenticated)
C4clock moved past the AAE not_afterREFUSED (aae_native_reject ← expired_not_after)
C5another instant inside both windowsAUTHORIZED (sanity control)
C6declared digest differs from signed action_bindingREFUSED (action_linkage_unestablished)
C7envelope carries no action_bindingREFUSED (action_linkage_unestablished)
C8payload does not hash to declared digestREFUSED (payload_digest_mismatch)
C9payload leaves the I-JSON subsetREFUSED (action_linkage_unestablished ← payload_not_i_json)
C10token carries own key material, claims enrolled kidREFUSED (secondary_native_reject)
C11psea_counter absentREFUSED (counter_malformed)

All rows are transcribed from the recorded output; the uncut recording is run-output.txt.

Run metadata (per the lab's required report fields)

FieldValue
Who ran itShaoBao Li (Lee) (@Aicent-com); repository maintained under the @Aicent-Stack org
Date2026-11-04
Run modeIndependent run — non-author-produced: the operator is not affiliated with MoltyCel / MolTrust / CryptoKRI and wrote none of the vectors, generators, verifiers or expectations; this is the first independent entry in the candidate's evidence table
Implementationthe candidate's own pipeline, unmodified: run.sh + offline.py + the three shipped schema validators, reference verifiers and generators (sealed in the artifact below)
Corpus referenceMoltyCel/aae-conformance-vectors @ 6bb462f578c12d339b8fa964a5b1d8f97dbffa68 (vector set 1.4.0 + pinned verifier changes; no vector or expected result changed after 1.4.0); candidate merged in lab PR #190 (2026-10-26)
EnvironmentPython 3.11.2, Debian GNU/Linux 12 (bookworm), kernel 6.1.0-53-amd64, x86_64; cryptography 50.0.2 · jcs 0.2.1 · jsonschema 4.26.0 · jsonschema-specifications 2025.9.1 · pytest 9.2.0
Suspected defective vectorsnone observed

Verbatim command and output (uncut)

Command sequence: git clone + checkout of the pin (performed by run.sh), then sh run.sh. The complete console output, uncut:

== candidate bytes equal the source at 6bb462f578c12d339b8fa964a5b1d8f97dbffa68
ok: 64 files
== native, draft-kroehl-agentic-trust-aae-00
$ python3 tools/validate_schema.py
OK    01-valid-root-aae.json
OK    02-expired-not-after.json
OK    03-too-early-not-before.json
OK    04-revocation-endpoint-5xx.json
OK    05-single-use-replay.json
OK    06-delegation-valid-depth-2.json
OK    07-delegation-action-superset.json
OK    08-delegation-constraint-relaxation.json
OK    09-delegation-depth-exceeded.json
OK    10-delegation-cycle-detection.json
OK    11-delegation-cascade-revocation.json
OK    12-signing-authority-mismatch.json
OK    13-unrecognized-required-constraint.json
OK    14-cty-header-wrong.json
OK    15-currency-mismatch-delegation.json

15/15 vectors valid against schema
$ python3 examples/python-verify.py
PASS  01-valid-root-aae.json                     ACCEPT @ step 7  [structural]
PASS  02-expired-not-after.json                  REJECT @ step 3  [runtime] (expired_not_after)
PASS  03-too-early-not-before.json               REJECT @ step 3  [runtime] (not_yet_valid_not_before)
PASS  04-revocation-endpoint-5xx.json            REJECT @ step 8  [runtime] (revocation_status_indeterminate)
PASS  05-single-use-replay.json                  REJECT @ step 5  [runtime] (single_use_already_consumed)
PASS  06-delegation-valid-depth-2.json           ACCEPT @ step 9  [structural]
PASS  07-delegation-action-superset.json         REJECT @ step 9  [structural] (delegated_actions_not_subset)
PASS  08-delegation-constraint-relaxation.json   REJECT @ step 9  [structural] (delegated_constraint_relaxed)
PASS  09-delegation-depth-exceeded.json          REJECT @ step 9  [structural] (delegation_depth_exceeded)
PASS  10-delegation-cycle-detection.json         REJECT @ step 9  [structural] (delegation_cycle_detected)
PASS  11-delegation-cascade-revocation.json      REJECT @ step 9  [runtime] (ancestor_revoked)
PASS  12-signing-authority-mismatch.json         REJECT @ step 1  [structural] (signing_authority_mismatch)
PASS  13-unrecognized-required-constraint.json   REJECT @ step 7  [structural] (unrecognized_required_constraint)
PASS  14-cty-header-wrong.json                   REJECT @ step 2  [structural] (cty_not_aae_json)
PASS  15-currency-mismatch-delegation.json       REJECT @ step 9  [structural] (delegation_currency_mismatch)

15/15 vectors passed  (5 runtime, 10 structural)
$ python3 -m pytest -q -p no:cacheprovider tests/
..............                                                           [100%]
14 passed in 0.07s
== enforce, draft-kroehl-agentic-trust-aae-02
$ python3 tools/validate_enforce_schema.py
PASS  01-type-form-matches-permit.json
PASS  02-instance-value-inside-the-action-deny.json
PASS  03-type-field-missing-from-the-action-deny.json
PASS  04-action-is-a-string-deny.json
PASS  05-action-is-an-array-deny.json
PASS  06-action-is-a-number-deny.json
PASS  07-action-is-null-deny.json
PASS  08-grant-without-type_fields-deny.json
PASS  09-type_fields-without-verb-deny.json
PASS  10-duplicate-name-in-type_fields-deny.json
PASS  11-exact-holds-permit.json
PASS  12-exact-fails-on-a-vanity-prefix-deny.json
PASS  13-enum-holds-permit.json
PASS  14-enum-fails-deny.json
PASS  15-range-holds-at-the-upper-bound-permit.json
PASS  16-range-fails-one-over-the-bound-deny.json
PASS  17-unknown-constraint-type-deny.json
PASS  18-field-path-with-an-empty-segment-deny.json
PASS  19-explicit-hold-pending.json
PASS  20-unaddressed-action-is-never-pending-deny.json
PASS  21-forbid-outranks-an-allowing-grant-deny.json
PASS  22-ratified-by-the-issuing-principal.json
PASS  23-stranger-with-a-valid-signature-rejected.json
PASS  24-a-permit-is-not-ratifiable-caller-error.json
PASS  25-chain-link-pointing-elsewhere-caller-error.json
PASS  26-chain-link-set-explicitly-to-the-ratified-record.json

26/26 enforce vectors valid
$ python3 examples/enforce-verify.py
PASS  01-type-form-matches-permit.json             PERMIT
PASS  02-instance-value-inside-the-action-deny.json DENY
PASS  03-type-field-missing-from-the-action-deny.json DENY
PASS  04-action-is-a-string-deny.json              DENY
PASS  05-action-is-an-array-deny.json              DENY
PASS  06-action-is-a-number-deny.json              DENY
PASS  07-action-is-null-deny.json                  DENY
PASS  08-grant-without-type_fields-deny.json       DENY
PASS  09-type_fields-without-verb-deny.json        DENY
PASS  10-duplicate-name-in-type_fields-deny.json   DENY
PASS  11-exact-holds-permit.json                   PERMIT
PASS  12-exact-fails-on-a-vanity-prefix-deny.json  DENY
PASS  13-enum-holds-permit.json                    PERMIT
PASS  14-enum-fails-deny.json                      DENY
PASS  15-range-holds-at-the-upper-bound-permit.json PERMIT
PASS  16-range-fails-one-over-the-bound-deny.json  DENY
PASS  17-unknown-constraint-type-deny.json         DENY
PASS  18-field-path-with-an-empty-segment-deny.json DENY
PASS  19-explicit-hold-pending.json                PENDING
PASS  20-unaddressed-action-is-never-pending-deny.json DENY
PASS  21-forbid-outranks-an-allowing-grant-deny.json DENY
PASS  22-ratified-by-the-issuing-principal.json    RATIFIED
PASS  23-stranger-with-a-valid-signature-rejected.json REJECTED
PASS  24-a-permit-is-not-ratifiable-caller-error.json RatifyError
PASS  25-chain-link-pointing-elsewhere-caller-error.json RatifyError
PASS  26-chain-link-set-explicitly-to-the-ratified-record.json RATIFIED

26/26 enforce vectors passed
== composition, draft-kroehl-agentic-trust-aae-00 with draft-yossif-psea-02
$ python3 tools/validate_interop_schema.py
OK    interop/psea/vectors/xp-1-aligned-principal.json
OK    interop/psea/vectors/xp-2-principal-divergence.json
OK    interop/psea/vectors/xp-3-unresolved-binding.json
OK    interop/psea/vectors/xp-5a-enrollment-pending.json
OK    interop/psea/vectors/xp-5b-enrollment-complete.json
OK    interop/psea/vectors/xp-6-alias-convergence.json

6/6 composition vectors valid against schema
$ python3 examples/composition-verify.py
stages: aae_native | action_linkage | principal_linkage | evidence_satisfaction | freshness | decision | admission | outcome

PASS  xp-1-aligned-principal.json
        ACCEPT | EQUIVALENT | SAME | SATISFIED | WELL_FORMED | AUTHORIZED | NONE | NONE
PASS  xp-2-principal-divergence.json
        ACCEPT | EQUIVALENT | DIVERGENT(principal_divergence) | UNSATISFIED(principal_divergence) | WELL_FORMED | REFUSED(principal_divergence) | NONE | NONE
PASS  xp-3-unresolved-binding.json
        ACCEPT | EQUIVALENT | UNRESOLVED(unresolved_binding) | NOT_EVALUATED(unresolved_binding) | WELL_FORMED | REFUSED(unresolved_binding) | NONE | NONE
PASS  xp-5a-enrollment-pending.json
        ACCEPT | EQUIVALENT | UNRESOLVED(unresolved_binding) | NOT_EVALUATED(unresolved_binding) | WELL_FORMED | REFUSED(unresolved_binding) | NONE | NONE
PASS  xp-5b-enrollment-complete.json
        ACCEPT | EQUIVALENT | SAME | SATISFIED | WELL_FORMED | AUTHORIZED | NONE | NONE
PASS  xp-6-alias-convergence.json
        ACCEPT | EQUIVALENT | SAME | SATISFIED | WELL_FORMED | AUTHORIZED | NONE | NONE

6/6 composition vectors passed (row-by-row)
$ python3 tools/run_negative_controls.py
stages: aae_native | action_linkage | principal_linkage | evidence_satisfaction | freshness | decision | admission | outcome

PASS  C1  One octet of the secondary-side digest flipped
        ACCEPT | NOT_EQUIVALENT(join_mismatch) | SAME | UNSATISFIED(evidence_covers_a_different_action) | WELL_FORMED | REFUSED(join_mismatch) | NONE | NONE
PASS  C2  XP-3's principal given a table entry resolving to a different principal
        ACCEPT | EQUIVALENT | DIVERGENT(principal_divergence) | UNSATISFIED(principal_divergence) | WELL_FORMED | REFUSED(principal_divergence) | NONE | NONE
PASS  C3  PSEA proof signature tampered
        ACCEPT | INDETERMINATE(secondary_unauthenticated) | UNRESOLVED(secondary_unauthenticated) | UNSATISFIED(invalid_signature) | NOT_EVALUATED(secondary_unauthenticated) | REFUSED(secondary_native_reject) | NONE | NONE
PASS  C4  Clock moved past the AAE not_after
        REJECT(expired_not_after) | INDETERMINATE(aae_not_admitted) | UNRESOLVED(aae_not_admitted) | NOT_EVALUATED(aae_not_admitted) | NOT_EVALUATED(aae_not_admitted) | REFUSED(aae_native_reject) | NONE | NONE
PASS  C5  Another instant inside both validity windows
        ACCEPT | EQUIVALENT | SAME | SATISFIED | WELL_FORMED | AUTHORIZED | NONE | NONE
PASS  C6  Declared aae_digest differs from the signed action_binding
        ACCEPT | INDETERMINATE(aae_binding_mismatch) | UNRESOLVED(action_linkage_unestablished) | NOT_EVALUATED(action_linkage_unestablished) | NOT_EVALUATED(action_linkage_unestablished) | REFUSED(action_linkage_unestablished) | NONE | NONE
PASS  C7  Signed envelope carries no action_binding
        ACCEPT | INDETERMINATE(aae_binding_absent) | UNRESOLVED(action_linkage_unestablished) | NOT_EVALUATED(action_linkage_unestablished) | NOT_EVALUATED(action_linkage_unestablished) | REFUSED(action_linkage_unestablished) | NONE | NONE
PASS  C8  Payload does not hash to the declared action digest
        ACCEPT | NOT_EQUIVALENT(payload_digest_mismatch) | SAME | UNSATISFIED(payload_digest_mismatch) | WELL_FORMED | REFUSED(payload_digest_mismatch) | NONE | NONE
PASS  C9  Payload leaves the I-JSON subset
        ACCEPT | INDETERMINATE(payload_not_i_json) | UNRESOLVED(action_linkage_unestablished) | NOT_EVALUATED(action_linkage_unestablished) | NOT_EVALUATED(action_linkage_unestablished) | REFUSED(action_linkage_unestablished) | NONE | NONE
PASS  C10  Token carries its own key material and claims an enrolled kid
        ACCEPT | INDETERMINATE(secondary_unauthenticated) | UNRESOLVED(secondary_unauthenticated) | UNSATISFIED(invalid_signature) | NOT_EVALUATED(secondary_unauthenticated) | REFUSED(secondary_native_reject) | NONE | NONE
PASS  C11  Signed token with psea_counter absent
        ACCEPT | EQUIVALENT | SAME | SATISFIED | CLAIMS_MALFORMED(counter_malformed) | REFUSED(counter_malformed) | NONE | NONE

11/11 negative controls passed (row-by-row)
psea-fixture-v0.json: OK
== regeneration: every generator rebuilds its files byte for byte
ok: rebuild is byte-identical

Findings raised and resolved

Findings on the corpus: none — zero failed checks across all suites, and no suspected defective vector. Operator-side notes (environmental, not scoring): the run host required python3.11-venv to be installed before the virtual environment could be created, and the source archive's directory layout nests one candidates/ level deeper than the checkout path run.sh assumes — both resolved before the run; neither touches any vector, verifier or expectation. The recorded output begins at the byte gate, which is the first step run.sh prints.

Revision history (append-only): this is the first record for this runner page — there is no prior cut to supersede. The candidate's evidence table (in CANDIDATE.md) records two author-produced runs (Lars Kroehl, 2026-10-25, Mode A; MolTrust, 2026-09-05, enforce set against a second implementation, Mode B, same author on both sides) and stated that no independent run existed; this record is filed to close exactly that gap.

Positioning note: the runner here is the candidate's own shipped pipeline, so the independence of this record rests on the operator, not on an alternate implementation — the complement of our lra-runner records, where the implementation is independent and the operator is the author. Both shapes are legitimate under the lab's author-produced/independent accounting; this page states plainly which one it is.

Artifact and seal

ArtifactSHA-256 (first 16)Seal
aae-runner-20261104a.tar.gz (complete artifact · 54,832 B · current)5dd92d2729c90932…sealed

Manifest: moltycel-aae-vectors/ (the candidate as merged, 64 source-pinned files + CANDIDATE.md + CHECKSUMS.sha256 + NOTICE + offline.py + run.sh) · run-output.txt (the recorded run) · ENVIRONMENT.txt · SHA256SUMS.txt. The candidate directory holds no private key material by its own design; the test keys it needs are fetched at the pinned commit by the clone step. Raw files are also served unarchived under /conformance/aae-runner/.

Replay

Two commands (git + Python 3.9+; four PyPI packages; the clone is the only network step — verification itself runs offline under the audit hook):

tar xzf aae-runner-20261104a.tar.gz
cd aae-runner/moltycel-aae-vectors && pip install cryptography jsonschema jcs pytest && sh run.sh

Expected output: ends with ok: rebuild is byte-identical, exit status 0; the byte gate prints ok: 64 files. Provenance: the corpus is MoltyCel/aae-conformance-vectors at commit 6bb462f, merged into the lab as PR #190; the sealed artifact above carries the candidate bytes and this run's record — the tarball is the code-as-run identity of this record.

On independence: this record scores the author's frozen bytes by the author's own pipeline, executed by an operator with no stake in the corpus — the run either passes unmodified on a second host or it does not. The vectors were pinned by commit and checksum before anything ran; the output is a whole-session recording, reproducible by anyone; and nothing in the pipeline was tuned to pass.

One artifact, two addresses

Both addresses are derived from the artifact's own SHA-256 digest — nothing is invented, nothing is registered: the sister schemes split one referent across the question and the answer. Paste either into the respective scheme's resolver to see it resolve locally, without any network call beyond fetching this page.

rttp:// · the question (WHERE + WHEN) · intent side rttp://5dd92d27.conformance.iqa

intent = first 8 hex of the artifact digest (the intent field is 8 lowercase hex by grammar); pillar and root are operator-chosen labels. Authority: 5dd92d27.conformance.iqa.

iqa:// · the answer (WHETHER) · attestation side iqa://5dd92d2729c90932768a408f39c0a9bb.forge.iqa

subject = first 32 hex of the same digest; organ forge (closed set) — this is the exact subject the organ seal above attests, and the organ answers live at /organ-api/v1/production?subject=5dd92d2729c90932768a408f39c0a9bb.

Verify offline with pip install "iqa-org[ed25519]==1.3.1" and the seal bundle at /attestations/release-attestations.json · Organ AID: ba92fadd46a51caf25633e0f315c4ad10103b879d7397397362f89dc33817153.

Citation

Cite this run: moltycel-aae-vectors independent run · AAE candidate family, frozen at MoltyCel/aae-conformance-vectors 6bb462f (lab PR #190) · record: iqa.org/conformance/aae-runner/ · operator: Lee / Aicent Stack — RTTP, CRI scheme number 27 · IQA, CRI scheme number 28 · sealed artifact: aae-runner-20261104a.tar.gz (SHA-256 5dd92d2729c90932…). This run verifies the vectors, not the spec.

Sealed · 2026-11-04 · page sha256 0fc37b2af4288486… (seal line excluded) · rttp://0fc37b2a.site.iqa · iqa://0fc37b2af4288486f9b50f054b35a5d9.forge.iqa · artifact: aae-runner-site-20261104a.tar.gz