[SCITT] Re: draft-noa-scitt-ai-agent-receipt-00: physical-completion non-claim for agents acting on external systems

Ordeliya Support <hello@ordeliya.com> Thu, 23 July 2026 18:53 UTC

Return-Path: <hello@ordeliya.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 DFCBF11DA48E5 for <scitt@mail2.ietf.org>; Thu, 23 Jul 2026 11:53:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1784832801; bh=gaVUsNfUowZ906XgbcUPiwLHeXBVh/xk+Y8FzUqd5eU=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=jLF4EJYyv972Itt9OtUsceBtTQOufloTk41b0kQykZhNHLtssuEx0QJSGZjI96kb/ VEMuGGITztXpSpVks3CdsQMDjAmmv0KM5WJuDCcqf6ssiThwYGKFVWO+g3D/F207a5 kz6zu3cF2aXDlV+fKKGGpXMIOMYN/5/MH+MVGsp0=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=ordeliya.com
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 PjLux4h3jgb0 for <scitt@mail2.ietf.org>; Thu, 23 Jul 2026 11:53:20 -0700 (PDT)
Received: from mail-pf1-x42b.google.com (mail-pf1-x42b.google.com [IPv6:2607:f8b0:4864:20::42b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id D100211DA48DE for <scitt@ietf.org>; Thu, 23 Jul 2026 11:53:20 -0700 (PDT)
Received: by mail-pf1-x42b.google.com with SMTP id d2e1a72fcca58-84a652535dcso663989b3a.3 for <scitt@ietf.org>; Thu, 23 Jul 2026 11:53:20 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1784832800; cv=none; d=google.com; s=arc-20260327; b=Vv9sltnSwu+ZhKddt+veAFRemquag4ELeLGP5wIKiWfIyIZ7FDhisCPwskdkwmWZ7W Q4c+F2WiDLqSH2Rvx2UxYZRoM8oy4pQyBXvlPR6s6Ys2BZ6gre4hi669Agn37+C8ioPn PU929gxZOvjB8vDdfQvJkJhfR6NK2u7GqZ+rBIZGCIFwAcQgqRRDL5FTYO8llPXoHFGu W8CMJLzQKBdq3i187/P5nhKEMxbGKNByTmKdkUFam6HbNEZgjscXY139zAWNvsY4/Ui/ VBbdzGEtLYhZkFyeCvyOmEm2mFjrn2OKwcmETxsnXEKCR3W9/gdD8BAbUxLPiR1YJ1oP Vi/Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=MgrFTy5HMHaq8c4xl9jNG2rKydMulD53cksEDsjbHOU=; fh=MMkuWmpnmmUilvFxarzYrAFqTqjzDQQ1QfTEbsUvvCA=; b=isINaG9EghW8wrzBu1T69ifYx/J/lnmVx3DBXhpe3+DyNHG6Qsn1B8u6IobWPsWeVU VjPvNQuVCQnXAuk9yg9kaLPq8dvlMU9zCFY+XxRQ/P9HeMu973qdsLpJBUidPjKQ12F1 t3o2F0LmAqxYyrcEsKBFEv3zxghWkap1x3iHZNA1aynthFeoSvSBUfcVNaN+WpCxeKXc mtb3z2XmHl+ovvjTHzGd/TdCwaFWVsPa12e3D81vQAOKQ6VrpRCSNOP2SrtLbTI5b1xT pONhVIRkrkMRn/zluEfN8DCSMe/Nu3C+JXZ3KtXgz1TmEOFwW97aU2pJcJPvvHyMQ/vz noYA==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ordeliya.com; s=google; t=1784832800; x=1785437600; darn=ietf.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=MgrFTy5HMHaq8c4xl9jNG2rKydMulD53cksEDsjbHOU=; b=DCalJDvDsHOwDTDjPN3PIu1jAwoKh7leOceD2p5L1hIGEZ5QdJpd4mr/1Y9HPaouB5 IAZB6bQn7zp6YYbML+B488jy9ogY/+uPt2mNfoRY8HAiUhf9bxPv6BCSqDiyJ/cJ1Brv bY7wn25cmbFzwKRZXSd2PzQrvijsdO2BQYGVviFByexDcrQu5ZqOx3MYL9mmvA+0YBT9 HmlB9qtOh7Ma1aE8YqWZOaUdTl4PnAcDiA4u26Oo4XSHmKDDI7AI0SatD9EnSaNHtFZZ WGiRaevlHt1NHMaYGGqpTQOyFR/WIHLY//adS8fCeKm0H3PsWlIqydbcHHw2SmJmOn3J r8Rg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784832800; x=1785437600; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=MgrFTy5HMHaq8c4xl9jNG2rKydMulD53cksEDsjbHOU=; b=Itj4BOu9KBDfHEn/gc+d9/su9YUGdyoFTqB3ngVq+TjxdGCdCQ9Cuzc22XYHJY/S3B DwHQ34r2t4MRzHZm6qwOinkUk+ntvwqdQrGjxFlTP0hSWfpCz6yhy/CsblseWKK3u+h9 X0MsBNsgK7maL5GGchq2MK4Le31Z6SFW2bsNLE9aSwj+e551qSTWlAF89mp6E8PGJ6Pc /i1h4lMctw9CsanpHqpRLLPCHsyOXZXKOYf0WC67jCx6h0Tf6C25xcGM/nkNkLTWJM6Q JfWh2wZqofU24PQ7VDc4pJh7RvbCLvPYHyi+LHJPdM35OnnRX3xVL/C8XweSlGBugvI6 Cd4w==
X-Gm-Message-State: AOJu0YzKW24zvKT9gvwE2jRG5+j8Z2SLXi9V4rEgvEUbICPWckgdRd55 n9lgOoY+yZQ+LUHdklWQjRDaHG67M6NKYb1xIiwTTxuiov365nnhvQGZcM9wqKqQKfWI8URQMKs XVWd0yELRSInGFTcNXWvizoX60qsm8VERsF93HOF7qSE=
X-Gm-Gg: AR+sD12gizUv/L42SViDen+Q1Z2HH8vkj8fZIrSGpktmYuuUEOwjw1UJnufbKPSmTuw bQnw40Oj/1m3C7ugL9xiEZqzSUMuQ6lGahrxihYerPYu4D8QmJVOHOjuyk0r4dLo1fqqj6lOgp/ wZ/Q7OFetY1+aa8NlRlSQ6DtnVS/ezHSl+ZVygmoPuGSkGdc2oUNpNOMCrK/69Pi83grxnvoIDY np8RTKyHTCB203tWeZYtij4FrnGw18WEs1NZYqbTIU9iDqPGWE96ma03kKlc4U1Nr76nshiCLWs NZ6ymg6qJcqkS2Wu
X-Received: by 2002:a05:6a00:a88e:b0:848:2f84:f42c with SMTP id d2e1a72fcca58-84e2bc1a3f9mr5072678b3a.69.1784832799755; Thu, 23 Jul 2026 11:53:19 -0700 (PDT)
MIME-Version: 1.0
References: <CAPnX_iOmfRZqqLSdUvC-Cz1HzDG3AF+a2qwm3WiKEyHR+AgTbA@mail.gmail.com> <CAPnX_iObT+JndAPANjY9RM-fdbcm4Ds06o8aD5iLLKb=ttAvEA@mail.gmail.com> <CAOfgHgqOeBMrW6ran9tgh3fzKZF5vgrakAsek+m_A=eUifkOcQ@mail.gmail.com> <CAJsPq9udOHb=vrKPsLXuZuGE=KWZn3L04_xNXdBEixG5Z5-eRA@mail.gmail.com>
In-Reply-To: <CAJsPq9udOHb=vrKPsLXuZuGE=KWZn3L04_xNXdBEixG5Z5-eRA@mail.gmail.com>
From: Ordeliya Support <hello@ordeliya.com>
Date: Thu, 23 Jul 2026 20:53:06 +0200
X-Gm-Features: AUfX_mxNfHByqrEgPU-qlqGoD3ZWjkNAfa_UPqMKtzouHH3wh2cY2gh4ejeyYnU
Message-ID: <CAPphZoo16NH-Xa5as6i2UbOZ+iHOGhbiombdMiNYa_k+QtkS4g@mail.gmail.com>
To: steven@actionstate.ai
Content-Type: multipart/alternative; boundary="000000000000035ceb06574bc56d"
Message-ID-Hash: 4P6A5XKM6R55RLTLNYQPJ4ELTJZ6JLPT
X-Message-ID-Hash: 4P6A5XKM6R55RLTLNYQPJ4ELTJZ6JLPT
X-MailFrom: hello@ordeliya.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: scitt@ietf.org, carloshvp@gmail.com, team@emiliaprotocol.ai
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [SCITT] Re: draft-noa-scitt-ai-agent-receipt-00: physical-completion non-claim for agents acting on external systems
List-Id: "Supply Chain Integrity, Transparency, and Trust" <scitt.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/scitt/7QfK2KTD-WdRrPMnfZlwnDC3_NA>
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>

Dear Carlos, Iman, Steven, and the SCITT list,

Thank you for the detailed and constructive feedback.

I agree with the central distinction raised in this thread: pre-execution
authorization, controller-reported outcome, and physical completion are
three separate claims. A shared action digest can correlate records, but
digest equality alone proves none of those claims. Where a signed outcome
is used, the relationship between the outcome signer and the request or
authorization signer must also be explicit.

I am currently away with limited email access and will return on 15 August.
Rather than provide a rushed response, I want to record the exact
implementation status as of 23 July 2026.

The published -00 draft remains the current specification. Its defensible
claim is deliberately narrow: it binds recorded fields to an
issuer-authenticated, signature-verifiable, tamper-evident record. It does
not establish that recorded inputs were true or complete, that a policy was
adequate or in force, that a controller succeeded, that a physical effect
occurred, or that the person named in an approval field authorized that
exact action before execution.

The public reference implementation has advanced beyond the
implementation-status text in -00:

- It implements signed, JCS-canonicalized, hash-chained receipts, offline
verification, identity binding, and COSE_Sign1 encoding and verification.
- It now emits and verifies the RFC 9864 Ed25519 algorithm identifier `-19`
and rejects the legacy polymorphic `-8` identifier.
The migration note in Appendix A of -00 is therefore stale.
- The repository reports TypeScript and separately implemented Python
verification against the same public conformance corpusin CI.
- Go, Rust, and C# verifier implementations are present in the repository,
but I am not claiming that all of them currently have the same CI-backed
conformance coverage or that external interoperability across all
implementations has been demonstrated.
- An optional deterministic policy-commitment and replay implementation
also exists. It is separate from the base receipt claim and remains outside
the normative scope of -00. It does not prove that recorded inputs were
true or that the referenced policy was adequate or actually in force.

The public repository also contains a separate alpha implementation of the
pre-execution approval flow. It includes signed Hold and Decision
artifacts, pre-dispatch Execution Grant reservation, post-dispatch evidence
artifacts, and an offline gate-boundary evidence verifier. This provides
implementation experience for the authorization claim, but it is not yet
the claim model proposed in this thread and it does not prove a downstream
or physical outcome.

  Public implementation:
  https://github.com/NordenSoft/noa

  Public CI example:
  https://github.com/NordenSoft/noa/actions/runs/29955229764

  To be explicit about what is not implemented today:

  - `controller_reported_outcome` is not yet part of the receipt profile;
  - `physical_completion` is not yet represented as a machine-readable
claim or non-claim;
  - the proposed outcome-signer relationship is not yet represented;
  - the proposed purpose-specific negative vectors are not yet in the
public conformance corpus; and
  - we have not published a reproducible demonstration of registration with
an external SCITT Transparency Service.

  In the current approval-evidence implementation, `EXECUTED` records
dispatch or attempt at the governed gate boundary. It does not attest
controller acceptance or physical completion.

  A receipt may therefore remain cryptographically valid while being
insufficient for a particular consumer intent, such as physical-completion
proof or independent-outcome proof. I believe that distinction should
become explicit and machine-checkable in the next revision.

The mobile application is scheduled to go live on 15 August 2026.

For the next revision, I plan to:

1. separate pre-execution authorization, controller-reported outcome, and
physical completion;
2. define the trust semantics and failure behavior for each claim
independently;
3. make signer relationships machine-readable when signed outcome evidence
is present;
4. add purpose-specific negative conformance vectors;
5. define the shared action-digest construction rather than assume
equivalence with the current `action.paramsHash`;
6. clarify the relationship between the native receipt signature and the
outer COSE_Sign1 envelope;
7. resolve the current policy-identity inconsistency in the base payload;
8. clarify that a self-signed chain verifies the continuity of the
presented sequence but cannot prove that an unseen tail does not exist
without a trusted checkpoint or external witness;
9. replace the term “non-repudiable” with the narrower
“issuer-authenticated” or “signature-verifiable” wording; and
10. update the stale algorithm-migration implementation note.

The proposed field names remain contributions for discussion rather than
agreed SCITT or IETF terminology. I will provide a point-by-point technical
response and proposed -01 text after I return.

Thank you again for the careful review and for contributing concrete field
and negative-vector proposals.

Best regards,

Tora Toraman
Noa
Copenhagen / Denmark
 Author of draft-noa-scitt-ai-agent-receipt


Steven Mih <steven@actionstate.ai>, 7 Tem 2026 Sal, 07:05 tarihinde şunu
yazdı:

> Tora, Carlos, Iman, all,
>
> Strong thread. Controller-reported outcome, physical completion, and
> Iman's pre-execution authorization are three genuinely distinct claims
> sharing one action digest — and stating each as a field the verifier
> renders, with a matching negative vector, is the right discipline.
>
> Happy to help turn those non-claims into shared conformance vectors so the
> vocabulary lands cleanly rather than fragmenting across profiles. Several
> of us will be at IETF 126 if it's easier in person.
>
> Best,
> Steven
>
> On Mon, Jul 06, 2026 12:32 PM, Iman Schrock <team=
> 40emiliaprotocol.ai@dmarc.ietf.org> wrote:
>
>> Carlos, Tora, all,
>>
>> The two-fact split is right, and there is a third fact that sits in front
>> of both: whether a named human authorized this exact action before it ran.
>> Controller-reported outcome, physical completion, and pre-execution
>> authorization are three different claims. They can share one action digest
>> as a join key, but digest equality proves none of them, and each should
>> fail independently.
>>
>> Both suggestions have running precedents in EMILIA Protocol, offered as
>> vocabulary to reuse rather than fragment:
>>
>> 1. Machine-checkable non-claims: our conformance suite carries a named
>> negative case, attribution_substituted_for_authorization, where a validly
>> signed post-execution record is refused when presented as pre-execution
>> authorization. A non-claim stated as a field the verifier renders is the
>> same discipline, and physical_completion defaulting to none deserves a
>> matching negative vector: a receipt presented as physical proof must be
>> rejected with the failing check named.
>>
>> 2. Signer relationship: EP-EXTERNAL-VERIFICATION-STATEMENT-v1 exists for
>> the same forensic trap on the verification side. An independent party signs
>> what it checked under its own key, and same-party evidence cannot silently
>> stand in for independent proof. Stating the outcome signer's relationship
>> to the authorization signer in the receipt is the emitting-side twin of
>> that, and it should be a required field, not prose.
>>
>> Happy to contribute the negative-vector text. The framing several of us
>> have converged on elsewhere (same action digest, different claims,
>> independent failure) covers this case without any profile expanding its
>> mandate.
>>
>> Iman Schrock
>> EMILIA Protocol
>>
>> On Mon, Jul 6, 2026 at 11:24 AM Carlos Hernandez <carloshvp@gmail.com>
>> wrote:
>>
>>> I sent this to the authors directly and am reposting to the list for
>>> the archive and wider input.
>>> Carlos Hernandez
>>> --
>>>
>>> Hi Tora, and the list,
>>>
>>> I read draft-noa-scitt-ai-agent-receipt-00 with interest. The restraint
>>> in
>>> the abstract is the right instinct: the profile signs "what an agent did,
>>> under which policy, with what verdict," and explicitly does not claim the
>>> recorded inputs were true or that any real-world outcome followed.
>>>
>>> One suggestion. For agents whose authorized action reaches an external
>>> controller or an actuated system (a robot action server, an industrial
>>> controller, a physical process), the single phrase "real-world outcome"
>>> actually collapses two distinct facts that a receipt consumer will want
>>> to
>>> keep apart after an incident:
>>>
>>>   1. what the downstream system *reported* as its terminal status
>>>      (controller-reported outcome), and
>>>   2. whether the intended physical effect actually occurred
>>>      (physical completion).
>>>
>>> These are not the same claim, and conflating them is exactly the
>>> overclaim
>>> this profile is otherwise careful to avoid. A controller reporting
>>> "succeeded" attests success under its own semantics; it does not prove
>>> the
>>> object moved or the scene was safe.
>>>
>>> Two small, in-scope things this profile could do without expanding its
>>> mandate:
>>>
>>>   - carry an explicit, machine-checkable non-claim field (e.g. a
>>>     physical_completion claim defaulting to "none") rather than leaving
>>> the
>>>     limit in prose, so a verifier renders it rather than a human
>>> inferring it; and
>>>
>>>   - where the action outcome is itself signed, let a receipt state the
>>>     relationship between the outcome signer and the request/authorization
>>>     signer (same administrative party vs. independent party). Same-party
>>>     evidence presented as independent proof is a common forensic trap.
>>>
>>> Happy to contribute concrete field text if useful. I've been working on
>>> the
>>> narrow case of agent-to-controller action handoffs and would rather see
>>> the
>>> vocabulary land cleanly here than fragment across profiles.
>>>
>>> Carlos Hernandez
>>>
>>> --
>>> SCITT mailing list -- scitt@ietf.org
>>> To unsubscribe send an email to scitt-leave@ietf.org
>>>
>>
>>
>> --
>> Iman Schrock
>> Founder
>> EMILIA Protocol
>> emiliaprotocol.ai | team@emiliaprotocol.ai
>> --
>> SCITT mailing list -- scitt@ietf.org
>> To unsubscribe send an email to scitt-leave@ietf.org
>>
>