[SCITT] Re: Escalation and hold-window semantics — a companion layer for draft-munoz-scitt-permit-profile
"David S. Rose" <primacy@davidsrose.com> Fri, 04 September 2026 13:14 UTC
Return-Path: <david@gust.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 3271213576C3E for <scitt@mail2.ietf.org>; Fri, 4 Sep 2026 06:14:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1788527664; bh=NDF+mPT8VpkKsnMgfhUJCzkJ01qxWeVuiWlyCPS+nz8=; h=Subject:From:In-Reply-To:Date:Cc:References:To; b=UErs1WZTFulr0apgPmJ7lrbwyhR94xAPs8uXgQPQuABaVfNMkm9geuxgXJBJ3UuI2 RsyaUZQv8b8viKVm8+mIOeIifIF0LcXtTEq4ie7eODhckqfXTkI6GWdEWUdo+65j5X g2NAmxMj4Dl/An9+2b7ZmWHvpqdhV1dHGlslf9Ik=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level:
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham 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 Mx7DsejdzMPD for <scitt@mail2.ietf.org>; Fri, 4 Sep 2026 06:14:23 -0700 (PDT)
Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) (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 8807F13576C32 for <scitt@ietf.org>; Fri, 4 Sep 2026 06:14:23 -0700 (PDT)
Received: by mail-qt1-f169.google.com with SMTP id d75a77b69052e-52e2d1bdbc0so7594751cf.0 for <scitt@ietf.org>; Fri, 04 Sep 2026 06:14:23 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788527657; x=1789132457; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:content-type:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Ny7peefrE38MZyXAjWA93if4nvwakRflDvnJ+tLBj4I=; b=Q/z1kekncJ9S7Fvlfem2J9RS1ZUMSxz1g0T1lWjQPscw1iIRsS9JLhbk351R8ULwh+ vXBY5QI4P/0fdfL8KJuFW3DiuAN2fd17kijA2XAHE2MMlNlAcHw3A2KwTPVtOebfigKn LG391QI11HF43WIHz1MfzqBpyRaJleevLYIJxVcQleocOGhHHwznzN6P516ORY97B9lw Z6vWDP8QnxyPrw8IsIGXOOXag5uXTJ+vlpcW2kRlQKamdjKSyhp+MOQNIjT9DE63tB5f MwHW+/XeKspcBH4X+DzLX1cm+yAOg3umFwvOX2RIsm6Wxy2brR5Ls+HB8aCNnUlMMV2E ipow==
X-Gm-Message-State: AFuF++mssN19Q9FmSHwMeAX4zNuPIzLNO6ph8YLws0YBAxH1YEXusa54 KYShWR5laASHSPRTPKhTKAEcnW48DiQy+fFnH3KX5yFqH0Ruhqv2wBbTaWSW9R7IAKw=
X-Gm-Gg: AYBFou0WA1ztME9LwG4+NGQI28Ty8bRJYouePtzM8aNN70Wq0yIwL+FNqTiuWNUo3A6 ZJ11qryOVjTgFlS2fENFCasm+PX41SS6Rq/2f9o9NMZtMPZp8pp3zrWcVwKziYqTL+WYfEpwDHX nfzLaFkiEJ6rnQEtZ65+0qMkO79f0uWqSz5YAu82jopIbKRyIFINtSmRp5kBkEFrmlEXbJRxmjS MhjzoGew1ulGsg39g5F5lQVYq6524hs1PUQQ7pK07YdN2KFE3BEleji3hfuEQWMoFbhSZdyX8/r +S3d7eZ92UK3tZuQKp+JNLsHGG0Xad+Z0N67nPWuKWAp5/ASVmwBQBIFe6wADL5ZSSxrISPVFI/ Siwl3V0YgiFN1JYZ9Ep98KCz2gc1g1Y5lBFBlJYNFclXq2D7jrgu4qIcx4/6G92wb1Ztrwomm1e h/HxGA0HDVpj4Kwh/OMZNlISjd81ATkVnr7h6OxDsGL51qIVy2HbFui3efQ8Bcx5+iFTfSdaSlj /KmXd9oveWhtAAYqecnBCE3l0rq/j7LvIOR2F9M6bFhu4d3CYxjfstdTV5LZbKpFxikf7OBLb8q cj0iL5QuhjtK4qWLDeyh2zxSt7fSyLINquOrnGtyQAnzzVXis+6G4ebHpD4WQXndkKGnNEJWTli VNQgpEo/k3lVwKVyCP5V9Dg+rFAKB1bHCmGax+3Waqw9XS6+tZ9triDARLv22TTxulpq7wQjdfQ ==
X-Received: by 2002:a05:622a:54d:b0:51c:849e:e222 with SMTP id d75a77b69052e-530549c6608mr59756881cf.36.1788527652526; Fri, 04 Sep 2026 06:14:12 -0700 (PDT)
Received: from smtpclient.apple (pool-98-116-246-178.nycmny.fios.verizon.net. [98.116.246.178]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-5305402a8d3sm20467371cf.2.2026.09.04.06.14.11 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 04 Sep 2026 06:14:11 -0700 (PDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3864.700.51.1.1\))
From: "David S. Rose" <primacy@davidsrose.com>
In-Reply-To: <CALc05oGOuV4p_PVAbLKfGHT_v5B71pOUEDPTtmbGr1P0jmchSw@mail.gmail.com>
Date: Fri, 04 Sep 2026 09:14:00 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <6AFAD579-79DF-47C6-9DCC-52ED0F813F54@davidsrose.com>
References: <A4003FB6-3069-4038-9125-A86F61D5BFD8@davidsrose.com> <CALc05oGOuV4p_PVAbLKfGHT_v5B71pOUEDPTtmbGr1P0jmchSw@mail.gmail.com>
To: Walter Hawkins <wdhawkins46@gmail.com>
X-Mailer: Apple Mail (2.3864.700.51.1.1)
Message-ID-Hash: E2GDIT5EQRBLN6V5FMJGNCUCUOPB3JW2
X-Message-ID-Hash: E2GDIT5EQRBLN6V5FMJGNCUCUOPB3JW2
X-MailFrom: david@gust.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, christian@keelapi.com
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [SCITT] Re: Escalation and hold-window semantics — a companion layer for draft-munoz-scitt-permit-profile
List-Id: "Supply Chain Integrity, Transparency, and Trust" <scitt.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/scitt/PeLuZnz2BsNwLwZ4BDIMkez_Psw>
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>
Walter,
Thanks for your comments — the feedback is really helpful.
Taking your three points in order:
> a monitor asserting it ingested a byte stream is fundamentally
> decoupled from asserting semantic non-objection
Agreed, and the attached spec is emphatic about it — §6 (Non-claims):
"Consumption is not comprehension: the attestation does not certify
that the monitor evaluated the action correctly, or at all." Attested
consumption is offered as a necessary condition for admitting silence
as evidence, never a sufficient one. The construct's claim is narrower
than the one you're arguing against: an unwatched veto window
manufactures records in which absence reads as review, and the
attestation makes that specific laundering impossible without a signed
falsehood attributable to its signer.
On lag, skew, and partition "collapsing the system back into a
fail-closed gate": yes — deliberately. That is §3.5's normative
behavior ("when in doubt, degrade"), and the spec prices it plainly: a
non-consuming monitor costs availability, never safety. A monitor that
goes silent to dodge accountability has not vetoed anything — it has
converted holds to explicit-approval gates and triggered the
stalled-monitor alert to the principal (§3.5), which is a visible,
attributable event. And explicit signed approval is not an alternative
to this construct; it is the other half of it. Critical actions take
that path unconditionally. The staged path exists for the volume
regime where demanding a human signature per action decays into
rubber-stamping — the failure mode the construct was built against.
> SCITT is an evidentiary transparency layer, not an active workflow
> queue
Agreed again, and nothing proposed puts orchestration in the log. §5
(Composition): the staged record, the attestation, the objection, and
the adjudication "are payloads any signed-record system can carry."
No polling states, no interim mutation of receipts. What is offered is
record vocabulary — so that your "subsequent attested statement
referencing the subject artifact" has defined semantics, and, more
importantly, so the *absence* of one at expiry does. That absence is
the case the permit profile currently leaves open: `challenge` is a
decision value with no stated downstream semantics, which is the gap
this responds to. Whether the vocabulary lands in the family, in a
companion profile, or as application guidance is genuinely the group's
call — the offer stands for whichever the group prefers.
On your three questions:
1. Override vs. approval at the payload layer: semantics first,
encodings per the family's conventions. In my running system this is
an adjudication enum (approve / reject / modify / cancel / defer /
timeout / preempted) plus an override marking recorded as its own
fact — an approval over a standing objection is never representable
as an ordinary approve. I'm happy to draft a COSE claim-set mapping
against the permit-profile conventions if there's interest.
2. Replay and forgery of the attested position: the coverage
predicate is the defense (§2). An attestation covers a hold window only
if its signing time is at or after that window's close AND its attested
position is at or beyond the window's staged record — so a replayed
older attestation fails the signing-time leg for any later window by
construction. Deployments MUST reject attestations that are unsigned,
unattributed, replayed, or bound to positions the stream does not
contain (§4). A compromised monitor signing a false position is not
prevented — it is converted into attributable signed fraud, which is
the designed property, and the drill discipline in §4 exists to catch
the consuming-but-not-evaluating case from the outside.
3. Simultaneous expiry of the veto window and the underlying
authorization: release requires both legs live at the release
instant — a covering attestation AND a currently-valid authorization.
A tie resolves to no-release; the action re-enters as a fresh
proposal under whatever authorization then holds. You're right that
the current text leaves this composition invariant implicit; the next
revision will state it explicitly. Thanks for surfacing it.
One scoping note, since your invariance results come from
high-frequency settlement rails: that regime is explicitly outside
this construct's silence-release scope. Actions in the
irreversible/high-impact class never release on expiry under any
attestation state (§3.2) — they stage and gate. The construct
addresses human oversight of consequential agent actions, not
settlement finality, and makes no claims into your domain.
The full state machine and failure behavior are §§3.4–3.5 of the
attached spec; I'd genuinely welcome findings against them.
-David
> On Sep 4, 2026, at 6:08 AM, Walter Hawkins <wdhawkins46@gmail.com> wrote:
>
> Hi David,
>
> A quick technical observation on this proposal, having spent considerable engineering time implementing deterministic pre-execution invariants and post-settlement transparency receipts in this exact domain (draft-hawkins-scitt-attested-agent-payment, draft-munoz-scitt-permit-profile, and the receipt-invariant/1 production suite).
>
> While the intent to model downstream escalation is understandable, the mechanics described in your note introduce several severe protocol ambiguities that SCITT’s architectural model was specifically designed to avoid:
>
> 1. The Fallacy of "Attested Stream Consumption" for Vetoes:
> You state: "releases on expiry only when an independent monitor's attested last-processed stream position shows it actually consumed the proposal before the window closed — silence as no-objection only when the objector was demonstrably reading."
>
> From an attestation and state-machine perspective, a monitor asserting it ingested a byte stream is fundamentally decoupled from asserting semantic non-objection. It introduces an undefined failure mode: network lag, clock skew, or log partitioning immediately collapses the system back into a fail-closed gate. In adversarial multi-agent environments, an objector who wishes to veto without accountability can simply halt its stream ack or delay heartbeat attestation. Silence cannot be made safe by merely proving observation; safety requires explicit, signed cryptographic assertions (such as COSE_Sign1 claims or bounded pre-authorizations).
>
> 2. Boundary Confusion with draft-munoz-scitt-permit-profile:
> The permit profile (draft-munoz-scitt-permit-profile-01) intentionally bounds itself to the verifiable decision record. The moment you introduce human hold-windows, arbitrary veto timeouts, and asynchronous escalation into the SCITT envelope, you are conflating immutable ledger receipts with stateful orchestration/workflow engines. SCITT is an evidentiary transparency layer, not an active workflow queue. If an escalation results in an override, the resolution is simply recorded as a subsequent attested statement referencing the subject artifact — there is no need to bloat the core receipt schema with interim "awaiting approver" polling states.
>
> 3. Reconciliation Invariants and Replay Vulnerability:
> Under production conditions (e.g. high-frequency autonomous agent settlement), "hold windows" with asymmetrical timeout defaults create severe race conditions between authorization expiry and settlement finality. In our formal invariance testing across live rails, any model that relies on time-decay release without cryptographic two-phase locking (receipt-invariant/1 / RFC 8785 canonical vectors) reliably breaks under network partitions, resulting in unauthorized double-releases or orphaned authorizations.
>
> If you intend to propose formal companion semantics for the permit-profile family, could you clarify:
> - How does your proposed schema represent the distinction between an override and an approval at the CBOR/COSE payload layer?
> - What canonical structure guarantees that the "attested stream position" cannot be replayed or forged by a compromised monitor?
> - What are the concrete state-transition invariants when the veto window and the underlying authorization epoch expire simultaneously?
>
> Without rigorous, deterministic state definitions, informal hold windows belong in application-level runtime orchestration (such as local policy agents), rather than the IETF SCITT standards track.
>
> Regards,
>
> Walter Hawkins
> Corrente Labs, Inc.
> Author, draft-hawkins-x402-dns-discovery / draft-hawkins-scitt-attested-agent-payment
> ashlar.blue | correntelabs.com
>
> On Thu, Sep 3, 2026 at 11:47 PM David S. Rose <primacy@davidsrose.com> wrote:
> Hi all,
>
> I'm David S. Rose. I build and operate a governed personal-AI-agent
> deployment, and I've been following the agent-drafts discussion here
> with interest.
>
> The permit profile (draft-munoz-scitt-permit-profile-01) scopes itself
> to the pre-execution decision record, and — as far as I can see —
> escalation workflows, hold windows, and monitor constructs appear
> nowhere in it: "challenge" is a decision value whose downstream
> semantics the document leaves open. The CHAP discussion in August
> was circling the same ground from the human-authority side.
>
> I have been operating a construction for exactly that layer and would
> like to contribute its semantics:
>
> - Two escalation shapes with opposite timeout defaults: an approver
> gate that fails closed (expiry -> deny), and a veto window that
> releases on expiry only when an independent monitor's attested
> last-processed stream position shows it actually consumed the
> proposal before the window closed — silence as no-objection only
> when the objector was demonstrably reading — with degradation to
> gate semantics otherwise.
>
> - An adjudication vocabulary that records an approval-over-objection
> as an override, rather than an ordinary approve.
>
> - A deliberate distinction between "awaiting an approver" and "staged
> pending conditions" — different pauses with different safe defaults.
>
> A short standalone specification of the release interlock ("Attested
> Staged Release", v0.1 draft) is attached for discussion. Offered for
> incorporation into the permit-profile family or as a companion
> profile, whichever the group prefers.
>
> -David
> --
> SCITT mailing list -- scitt@ietf.org
> To unsubscribe send an email to scitt-leave@ietf.org
- [SCITT] Escalation and hold-window semantics — a … David S. Rose
- [SCITT] Re: Escalation and hold-window semantics … Walter Hawkins
- [SCITT] Re: Escalation and hold-window semantics … David S. Rose
- [SCITT] Re: Escalation and hold-window semantics … Walter Hawkins