[SCITT] Re: draft-noa-scitt-ai-agent-receipt-00 - ARP reconciliation run against the EMILIA and Noa corpora

Joel Hillier <jhillier@certisyn.com> Mon, 27 July 2026 06:34 UTC

Return-Path: <jhillier@certisyn.com>
X-Original-To: scitt@mail2.ietf.org
Delivered-To: scitt@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id B635E11F1061B for <scitt@mail2.ietf.org>; Sun, 26 Jul 2026 23:34:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1785134050; bh=d1v1R/p1x9EYBPkrQ5AWE05uY0zN23XjgKmkpHb5OGg=; h=From:To:CC:Subject:Date; b=aq6zsqd/DVVfC/RaJihghbgah9f23r/Osy2SRk2t38RjERtDBXJP/CAFplvMDVxpb Att/XHNltAZHFQr41EkktuEhdyCtTKA3+OM2u2+zi7aQXCdGgMv+bsxX1bI4zi3984 WUskI3cNbiG5w5L7/ywrjZj2R8KNII2ZK/5lufqE=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.797
X-Spam-Level:
X-Spam-Status: No, score=-1.797 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_PASS=-0.001, TRACKER_ID=0.1] autolearn=no autolearn_force=no
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UGSwQtli3hHb for <scitt@mail2.ietf.org>; Sun, 26 Jul 2026 23:34:06 -0700 (PDT)
Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11021105.outbound.protection.outlook.com [52.101.52.105]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 9595F11F105FF for <scitt@ietf.org>; Sun, 26 Jul 2026 23:34:06 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vDcqd/jpC5LG/FPN62u1qfd4p2qJVyBMh+CJCJapQVutiYFgvnalY54vOw6HAfy3/ZsljYpTIXDBO8u9JdV/ga+s2eAkhGD3UdfjzmeBsvE+lQCLoxOohOnZ1G4qi+XwjKgd/zf3rZ06bbARNMaMoVkirL1oyhhWw7EDNJeMslevcgxtSCxGzWdNWGBMsPgUeRMfGzRfdUDhGcTS6cvhMCkSiOJchU3uD8Zy0lK/4euS+MchtymZJGrxw3uAxeYIFmR6LgLE5Oi2jHVrr7/bZ42OyyoSCi/IVB+g5MdH8YVtgRGsIYdouxLYke0EqyKvy/LVgVXv+RCpwZLn7z4x/A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=88wikp6s8MiyDJz+VYShdq8zXFNmj6LtUdR2muH+C+g=; b=VxuK/W5dYHVAP0hCL6G3q4fDWMKA30De3PVPlHcXWTHflH4A6nmaCSuJjv+G8gOHExNvAFm3it3+xLSFqqSTOf3R4uPSAbVN3T8zgTXPUEu03ktNIW4HXbQ7246WakyXAsx5zgKf4Vlh4njzpiwKBfKZ5QGRlOB8vaCablLkz939j0+Zs5/VldVhVMQO7P/xLXrGug0nwPW0rn+NepnuF4l5JkWPwU2BItfbgAPaZL4uSkIZ03PkMQQg1n1P19lAOhW9Bm23F0DqlrhFQqjzfqzOQ6KL7QJXLSU+AfvrM4Pjj3vf9OGmyjc58gmtzagcS9MXUO0CGSROe3LCLctUqw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=certisyn.com; dmarc=pass action=none header.from=certisyn.com; dkim=pass header.d=certisyn.com; arc=none
Received: from BYAPR19MB2806.namprd19.prod.outlook.com (2603:10b6:a03:fa::15) by SA0PR19MB4208.namprd19.prod.outlook.com (2603:10b6:806:84::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Mon, 27 Jul 2026 06:33:57 +0000
Received: from BYAPR19MB2806.namprd19.prod.outlook.com ([fe80::6c0f:94c8:c4c8:3fbb]) by BYAPR19MB2806.namprd19.prod.outlook.com ([fe80::6c0f:94c8:c4c8:3fbb%6]) with mapi id 15.21.0245.012; Mon, 27 Jul 2026 06:33:56 +0000
From: Joel Hillier <jhillier@certisyn.com>
To: "scitt@ietf.org" <scitt@ietf.org>
Thread-Topic: [SCITT] Re: draft-noa-scitt-ai-agent-receipt-00 - ARP reconciliation run against the EMILIA and Noa corpora
Thread-Index: AQHdHYcRLqBRmz2Yn0qYi6HzhMldTw==
Date: Mon, 27 Jul 2026 06:33:56 +0000
Message-ID: <BYAPR19MB2806E06DC5117B7A4AC0A4CDADCC2@BYAPR19MB2806.namprd19.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=certisyn.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BYAPR19MB2806:EE_|SA0PR19MB4208:EE_
x-ms-office365-filtering-correlation-id: 486125a0-6536-4e27-8bd8-08deeba908ef
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|23010399003|6049299003|366016|10070799003|56012099006|7055299009|10067099003|3023799007|8096899003|18002099003|6133799003|13003099007|4053099003|38070700021|3613699012;
x-microsoft-antispam-message-info: LtFs7wwKl6g76U7mGil2vcERWiuPHtNje41+dgCKjNKRP5OWZk0zrFFMZM+FK4Kox64Z2sm/fg24em0VaZhnqcI/Qx8hVz3C0RO0X6GV4/+t+9oSLSCdFX8/+DbN23VNNYts2LKDfKo/YaS4xXf1ipE4CMeItdRRM1SMVKtAerIZ65kPNSbq9Ayk1/sTzfyhYZfEIAHUtsufXc94XRODqocLOE5boge9xkQmthoIHuWNTMTLNkrnfaVEIVWpsBdkNQ/EExRhJE5I0ZscUiwHV1rGQcYC7vuSN18GBjXYsz1Vp0f7tiao7J8Jfrg2m1dr07yuHbu20N7rV7es51mRApc6ZB573/pleHZTxy8DCfzLtGkr0MZ38wbSqjnV30sKIlBBBklCWXc2JcjKLCckrhV6FD3gglUwnTJzTOKWdmtNPS2AmHJ4ZR4CRvLwJygMjOL0X9hVNYmr0Thg1O/w7YvTxTv6lJVNhTEnbp4k7s+XFvWZnvUdnVsavTmZlssxkJrhm4F5Lm4nk0HdclkJ3Yjj2cAmSiLU+87ML/36BuiwAtPtVUKSkBIYmcSowTdmeH/Nvw8OZTLqH23EiFE410Ya9vjTPvs6odQVACg4Y1fMtPJMAi6l9LoTpfah/BxogtJGt4Ob1ext00kcCPbMs39QfLGXF7he8sXEpzxwcxY=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR19MB2806.namprd19.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(23010399003)(6049299003)(366016)(10070799003)(56012099006)(7055299009)(10067099003)(3023799007)(8096899003)(18002099003)(6133799003)(13003099007)(4053099003)(38070700021)(3613699012);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 2
x-ms-exchange-antispam-messagedata-0: 65movXF6l6JqOgxKuWU8cfD58A/9FFUVoW268kWsasz5AiuBfvEA+ndTQCoIKcxNWqo2HDjLiDgGFTC1q1Kc+Mb3p1izJhe6ABzQLVI2zgt3UvAu2iLb5CNSKWxDf6YvIN+4+HuqsODHYU1frZuj8MF5bLug0x4/NyZHITApuSfzrNm9Ezbk6CFNC0l8nv7K2zOaDlSsgfgV8ZIWRvB1K2O6G/rzrFh49NLSGuFAm8f1sC9caaDsTuDn4d8JdbCwBUBP3Ienwl8WnLGUAqrDGVRSDeV7TEoKJUuTbireS+13AHgyTd78KWI8yJZCONjPl7L4vwIXPJaCiWYSeBw2Zww05jSmOVcRExtKKe41Zi/gWo7t+gS/eTOUzRInf/JV+N6l2preubvMyI5fvQ+p98lzFZnGFBYO1hsUmwBNIeheeLNNh549bCqyKDwJrpfGhzai3IUiMPwCgJV3+/LlSjqrqiWBlfMePiXtMA5CD4imz/34fceytTzKD7ejq395WhG4X0joU0yBna/nRP+G8sSqrTwIOlfvlH2+E4s9uraCOpsSmVs1vWuESwerSztNgmat6Bovmek4Xsg/UFvcSvRDnMlFSBwaHxkHwRr1NfU6fDrSO/GYBznm3/HiWufPPIAmNHM9/YxDjN4X6wovZnFvVZ6w1ocHsNx0+U21Yp2ppH/AhI/3Jp26sJ06tGMWQnQ/SqJWHpsfQa4S9hHYZkrsmrTgo5DW6JyoMjNIUhZ30gpPQFIPw7lGKBHKnZD8LTrVHgqkS/O2eLnsZcjbEUYoyNCAAd/RgggaqCB139nHwjzfLl8IOUHoWlDF9Tt9ggFW1pinYOIB5suDMUFVa64834JiG+hyvyHOt+ktIU7ao8wRQlvVFiKF5XKcAjn7GT3WIP0Iyj0MVTStyEQcY6QivnX7nHsMl4Adl+yidsQA8mL3YWLO94Emzmio0mLchif4JuoQvfZ/rB8/A8zNsOcwZ0Rp3/sS9Gq65jHah74JAEm6pPtbKKJCJRDVMneMFQWYJRg3e/0Vz1hsqh7OQMFq8SYdYB9hze8rerrDZT13LzkDdtPHewAgeUKenp2VHSkb8WHz+QgOfuYl21moSxjFOKUAUOn5tCrtKUBiWERqy/ox1AYARyHyY2Yjz4f8p9PPr2iePM/OTG43whg+ct6Pt1FKQC1PQG7iP7Bz7zJjItaNb70EA3o1ry6aUHtulZWhThmub/fS93A2ePxHZX3DQ2L4T9W8YWX+yyDuTZfcI1VI3yb3GDR6QjxvRqHh9wdzbvg9fJIbb5PkqWo0TF3QkSIsjEbSmX39VbTISAJCNE2qSroDpM1H9vUjfJVhBhZM1C22aZmxeW/mxuUm0I3eNK67fZSpl+3j+tI+ujklpQ9FaYDAZbIKRgE8yzK//2aLzsVaww3hPYm3Qs8sLvK+ffCMpnSoCvu6Wt82Dr6XbZpmAkE6uM7OXOU/3n4oyw8ixqyG2QTh9z/QVBhJ2hcIFAw5OjtKl3i4g1w2HD5eNdTSkcOrzMlzvWf66WOkuXHWtell2FPEFcjSt14rBjOedJmyGVrNT5zPx+GkGtWadbE1ulQ0aO5XbpYJCtJquXMJ/sCEfOeHX4UKwhBdP4496bBwqd9qGi3QAXCymlJES9I9P+p+BBR4gaNAlk3Zqb4yJMPxQS8VyBo1mwnoHnm6PBmDTUIsflQezHyc4pm00EQotW+TXUciC+gCo0ERb96whKuBQnxfSKyIHJ3xX25oqT3CcrgvDCGG5xjXuJ2VQ0XBg8UaVkl5WLs1liTNqAcQNKsO
x-ms-exchange-antispam-messagedata-1: U3dCptZGoQLwYA==
Content-Type: multipart/mixed; boundary="_006_BYAPR19MB2806E06DC5117B7A4AC0A4CDADCC2BYAPR19MB2806namp_"
MIME-Version: 1.0
X-OriginatorOrg: certisyn.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BYAPR19MB2806.namprd19.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 486125a0-6536-4e27-8bd8-08deeba908ef
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jul 2026 06:33:56.4050 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 539494d9-b23d-4e5a-bc74-62613e2403f0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: I7bVfoSj4dAFBlz4m5P+Z4wRE42LaPwaMHerSF6MUxdGjXGrympqnJn2kp6QN/7VSGyYiPjzJ/IuRz+MOeL4Sg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR19MB4208
Message-ID-Hash: L2HSTOKQNCL3MHDDGNP72JR3Q5Z63WBO
X-Message-ID-Hash: L2HSTOKQNCL3MHDDGNP72JR3Q5Z63WBO
X-MailFrom: jhillier@certisyn.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Iman Schrock <team@emiliaprotocol.ai>, "steven@actionstate.ai" <steven@actionstate.ai>, "hello@ordeliya.com" <hello@ordeliya.com>, "carloshvp@gmail.com" <carloshvp@gmail.com>, "anton.sokolov@tyche.institute" <anton.sokolov@tyche.institute>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [SCITT] Re: draft-noa-scitt-ai-agent-receipt-00 - ARP reconciliation run against the EMILIA and Noa corpora
List-Id: "Supply Chain Integrity, Transparency, and Trust" <scitt.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/scitt/zWZBQXXSGV-vgbTeOLTjlb9DGLg>
List-Archive: <https://mailarchive.ietf.org/arch/browse/scitt>
List-Help: <mailto:scitt-request@ietf.org?subject=help>
List-Owner: <mailto:scitt-owner@ietf.org>
List-Post: <mailto:scitt@ietf.org>
List-Subscribe: <mailto:scitt-join@ietf.org>
List-Unsubscribe: <mailto:scitt-leave@ietf.org>

Hey everyone,

This is the run I said I would do: ARP against the published vectors rather
than another round of argument. It is long because the numbers are the point.
Pinned commits below, harness attached, so anyone can reproduce or contradict any figure in it.

  emiliaprotocol/emilia-protocol  125e4f4311f1319fef3f6d55c935c9ea4da5fc1b
  NordenSoft/noa                  21eadb38ae494cbeb64d7773486ed7c4a8417754

Real Ed25519 verification was performed on EP-RECEIPT-v1 and EP-BOUNDARY-v1, including full EP-MERKLE-v2 anchor reconstruction, and on the Noa receipt chain (chain-hash recompute plus signature against the published keyring).

The WebAuthn, RFC 3161, TSA-renewal and sparse-Merkle suites are consumed as declared and are labelled that way in every row of the output, so the totals cannot be read as more than was done.


1. ARP's shared subject digest interoperates exactly

ARP-01 Appendix D pins the correlation key: subject_digest =
SHA-256(JCS(action)). Measured against the 22 EP-CANONICALIZATION-v1 vectors carrying a pinned digest and a parseable input:

  Appendix D  SHA-256(JCS(action))   agrees with EP:  22 / 22

Appendix D's premise, that capsules produced by parties with no shared
producers and no shared schemas correlate on a common digest, now holds
against a deployed corpus rather than only on the page. That is the property
the whole composition rests on, and it is the one nobody had measured.

Anton, this also settles the CPB Related Work question in your favour. Your
text concerns Section 2's Canonical Claim rules, explicitly not Appendix D's
subject digest, and that distinction is exactly right. Use the wording as
drafted.


2. The refinement -02 will carry

ARP-01 defines a second construction for a different purpose: the Section 2
Canonical Claim, whose hash indexes the Settlement-Layer Ledger. It applies
Unicode NFC by design. JCS does not. Against the same 22 vectors it agrees
20/22 under a UTF-16 member sort and 19/22 under a code-point sort.

That divergence is intentional at the ledger layer. Folding NFC and NFD
spellings of the same claim to one index is the behaviour you want when the
question is "have I seen this claim before". It is not the behaviour you want
on a correlation key, and the two divergences are collisions rather than
mismatches:

  accept_nfd_decomposed  EP pins a959c355  S2 computes a84c1745
  accept_angstrom_sign_not_normalized  EP pins f560f24d  S2 computes 08eb5b93

a84c1745... is byte-for-byte EP's pinned digest for accept_nfc_composed.

So -02 will state normatively that the Claim Hash and the subject digest are
distinct constructions serving distinct purposes and MUST NOT be substituted for one another, pin the Section 2 member-sort code unit, and carry an explicit construction identifier so a consumer can determine compatibility rather than assume it. The harness emits identifiers whose digests commit to the declared canonicalization parameters:

  arp-subject-digest/1   id=f23ecefd99c54182  App.D, SHA-256(JCS(action))
  arp-canonical-claim/1  id=7d90aa1cbee90ef9  S2 Canonical Claim (NFC applied)
  ep-canonicalization/1  id=dc7df29214870f78  EMILIA EP-CANONICALIZATION-v1

Iman, looking forward to talking later this week. This is the empirical
answer to your guardrail, and it lands on your side. You asked that a CAID
mapping hold only where canonical fields, serialization, digest algorithm and
domain context match exactly, and fail closed otherwise. On the correlation
key they match exactly, 22 out of 22. On the ledger construction they do not,
and the difference is invisible without a shared vector. Fail-closed is
correct precisely because of that.


3. The interop set: the signature verifies and ARP still refuses

frozen-v1 publishes five EP-BOUNDARY-v1 vectors, covering four of the six
behaviours. With signatures actually verified rather than assumed:

  accept_pre_execution_receipt
      INDETERMINATE
  attribution_substituted_for_authorization
      REFUSE   attribution-substituted-for-authorization
  raw_claim_pass_through
      REFUSE   raw-claim-not-covered-by-signature
  same_party_evidence_presented_as_independent
      REFUSE   agent-impersonation-suspected
  policy_decision_presented_as_human_authorization
      REFUSE   machine-decision-not-human-authorization

In rows two and five the Ed25519 signature is genuine, verified here against
the vector's own key, and ARP refuses on the artifact-class leg. Attribution
states who was recorded as executing; it never grants authority. Machine
policy allowed is never named human approved. A verifier that returns one
boolean cannot express "signature good, claim wrong", which is the failure
mode this thread exists to design out.

The control does not approve either. accept_pre_execution_receipt is held at
INDETERMINATE with caid-binding-unverified, because its action_digest comes from a construction ARP has not been given a vector for. That is the
guardrail applied to the positive case, not only the negative ones. Publish
the action_digest preimage rule and that row upgrades to APPROVE on the next run.

Two of the six behaviours, controller-reported outcome and
physical-completion non-claim, have no vector in frozen-v1. ARP implements
both predicates. I will contribute the two vectors unless someone is already
drafting them.


4. Noa: the failures no per-receipt verifier can reach

23 of 23 adversarial files produced at least one integrity-class divergence
axis. The interesting part is which legs fire:

  cross-chain-splice   chain-scope-mismatch, chain-sequence-duplicate,
                       chain-head-truncated
  seq-gap              chain-sequence-gap, chain-link-broken
  tail-truncated       chain-head-truncated
  relinked             chain-link-broken
  tampered-content     artifact-tampered, signature-invalid

cross-chain-splice is the clean demonstration: both of its receipts hash
correctly and verify correctly in isolation. The forgery is a property of the
set, and it is only nameable at a layer that reconciles across sources. That
is the argument for a reconcile leg, made against someone else's attack
corpus.

The valid chain also produces the cleanest three-way authorization result in
the run. Three cryptographically indistinguishable receipts:

  seq 0   DEFERRED, no approval                -> agent-credential-absent
  seq 1   EXECUTED, approval.by = HUMAN:...    -> match
  seq 2   EXECUTED, low-risk-auto, no approval -> human-authorization-
                                                  unproven

Tora, your draft is explicit that a receipt attests tamper-evidence and not
correctness. This is that scope boundary rendered as a machine-checkable
field instead of a caveat in prose. No rush before the 15th.


5. Axis alignment: five of these are already filed

95 reject_* identifiers across the 16 EMILIA suites, all 95 mapping to a
named ARP divergence axis. The structural point is better than a new
vocabulary: five of the axes the corpus exercises are already normative in
filed text.

  agent-action-scope-divergence   ARP-01 S4, A.4
  agent-impersonation-suspected   ARP-01 S4, S6.3
  agent-principal-unverifiable    ARP-01 S4
  agent-credential-absent         ARP-01 S4
  freshness-stale                 ARP-00 S6

So the alignment is mostly confirmation rather than negotiation. The genuine
proposals are in the write-up, in the same kebab-case convention.

Worth noting that this run also puts a test behind a filed normative MUST.
ARP-01 S3.2 and S6.3 require friend-or-foe determination to default to ENEMY
and say the server MUST NOT silently upgrade an ENEMY requester to FRIENDLY.
The harness enforces the same discipline one layer over, at the artifact
level: an unproven binding is held at INDETERMINATE and never upgraded,
including on the positive control. The self-check asserts it. No case
APPROVEd while carrying an unproven binding.

Three names worth arguing rather than assuming:

  - agent-credential-absent covers both "no authorising credential exists"
    and "a required signoff is missing". One axis or two?

  - version-replay covers both "unsupported format version" and "legacy
    anchor refused by default". One axis or two?

  - canonicalization-gate-failed covers parse-boundary failures, I-JSON
    profile-predicate failures, and representation-canonicality failures
    such as a timestamp without an offset. One axis or three?

And one proposed new axis, anchor-leaf-not-bound-to-payload: a valid
inclusion proof for a leaf that is not this receipt's payload is a different
failure from a broken proof. The corpus has no vector isolating it, so I am
arguing the distinction rather than demonstrating it. A vector that is
unbound but otherwise proof-valid would settle it.


6. Coverage of the run

Stated precisely so every figure above can be quoted without qualification.
Parse-boundary checks are Noa's, not this harness's: Python's json.loads
accepts duplicate member names and lone surrogates where Noa rejects them at the parse boundary, so seven of the nine malformed/* files are refused at the shape gate rather than by a purpose-built parse check. The verdict is correct in every case.

Of the 129 EMILIA cases outside the canonicalization suite, 18 were verified cryptographically here and 111 were consumed as declared; WebAuthn, RFC 3161, TSA renewal chains and sparse-Merkle proofs are the producer's verification surface, not the reconciliation layer's, and are included so the axis vocabulary can be aligned across all 16 suites. On reject_v2_unbound_leaf and reject_legacy_v1_anchor_by_default the run refuses at the leaf-binding and algorithm gates and does not go on to evaluate the proof.

One ask: Steven, Tom, Songbo, I would like a copy of "Agent Accountability:
Composition and Conformance" (5 July). ARP-01 Appendix D composes over the CAN / WHO / WHAT / AUDIT slots and should cite it normatively in -02 rather than describe it.

Attached: the harness, the console output, the machine-readable JSON, and the write-up with the full axis table.

Best regards,

Joel Hillier PhD MBA
Chief Executive Officer and Founder
Certisyn, Inc.

https://certisyn.com
https://datatracker.ietf.org/doc/draft-hillier-scitt-arp/