[SCITT] Re: Escalation and hold-window semantics — a companion layer for draft-munoz-scitt-permit-profile

Walter Hawkins <wdhawkins46@gmail.com> Sat, 05 September 2026 06:08 UTC

Return-Path: <wdhawkins46@gmail.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 13FCF135E18E8 for <scitt@mail2.ietf.org>; Fri, 4 Sep 2026 23:08:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1788588489; bh=ujiEEQ5ZPTUcsS3qBAex2PljuiU47Owj+wKIZiVe+P8=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=ECZn7d2peB5BxzLBrf4R8UaboUdeePr21SjqjxpT5Riwm6hu3f0zQrSfRk+zySYG9 c1gmn2YjKklrUr5jQJG6iLmZOWbZ6wqaKjsYkf7N9m92wuwdaz+445SgoMx98DcSlR 3JUOm+2O53WsRVdCSIXOccVGiRjIT/x9UoBm6cMo=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.848
X-Spam-Level:
X-Spam-Status: No, score=-1.848 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, 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=gmail.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 GVg2zEbimgNI for <scitt@mail2.ietf.org>; Fri, 4 Sep 2026 23:08:07 -0700 (PDT)
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com [IPv6:2a00:1450:4864:20::22f]) (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 D30D0135E18D5 for <scitt@ietf.org>; Fri, 4 Sep 2026 23:08:06 -0700 (PDT)
Received: by mail-lj1-x22f.google.com with SMTP id 38308e7fff4ca-3a1f75277f3so13609671fa.0 for <scitt@ietf.org>; Fri, 04 Sep 2026 23:08:06 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1788588480; cv=none; d=google.com; s=arc-20260327; b=OiEDJpuVsu0MTBZlESKU0eo87OBHz2dA6sSxku1FS24ucVztHStHun178JWWTHue4u BqWKooelwo7aJu925BLvgqTTPRlnts3rNWVZ5iTpoqGXphF/cY0G1E4GYyW1PFcLoCqj z/bhL94pNHUDMFpXhQYkuQandhhC+bLWLLph0SfyeKXYermxcQNQtH9pW/3w63QYsSqc vwNVij1zA5upDL9G84+drjXZNovrDeh1xJOXCgjT3mUNVx/JwNGb2aYDpDLC1IBiX034 N69L9/q9w8VtiY6naxIM6+Q5JNTtlOrdBsMmoY732ylpnV2a5+GLmS27ZYXBvaSUPm9Z JqKA==
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=hbDRsFtigl5FxnggZanhzH307QyEZMWKkP6KVBYbdFE=; fh=IbekRiZIfQeuOB7fJDLmB8tZyA6L9CxJqhbMlrevEnc=; b=TB8wLCqf27YeQcjWhpkuH5KnE7e1utK1w1MG+SJj9IbesBOaVeVcwRjtZgAq1Xn5ih ZVh8elmGEMU3AmCUKKR8ulQ8I5hH3WXfhXU0QmQ4Q0nDCfZd/8wDeXW0XhksYoDX0gym 5+YX6k6pACe28qFkItWdpS7Y/WBnWMnulHuQ2A3qp/RryYc5fqd5xZYzdZRJrD/KAP4x XCBkPkpzv6iq8FvBVprCn2+/lbyh2jxgywUP2aBibzHor6rRTJ1SC70NDXU8GCAMK7Or LTTVslY4ZaG2o+d+F7OgmEVclW8K9f3dlQrRXZ2jQXIJFgjZMmVRP7ss6Hibt0dE7zG4 xGLA==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788588480; x=1789193280; 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=hbDRsFtigl5FxnggZanhzH307QyEZMWKkP6KVBYbdFE=; b=ZoW1lzFStkvkQ6bWmfvTz4SjospjuXf+yb+qWL+/LbJ2p3B66lNmUp5wp7jgtq/HPK NBAS24qWVy1tTCNwl9RRpA10sdmVyhxiU6DzO4kBXsEg17xip2d0MnBn/6rvmEqm30VI Mvhs1sYSZWUQur5++QWOJBDaEApxSqFam7Qd+CeG0ylEDTSq1fq/fT6GGqvojHg7ScLA Z0rrjNjRV+Jcwvjn/bcekiFw4AbNtg0hpRxAxCYMojhFxnuwpiYr0HOKeygfihXr/VHo l8nxO59zRWq5mkiR/8F0qmNu7OPlrrTLYxbvHSnWjRXmDfM9yik8WCt/ykEmV2oNrMG+ GSsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788588480; x=1789193280; 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=hbDRsFtigl5FxnggZanhzH307QyEZMWKkP6KVBYbdFE=; b=qpI/8H02+CawblFuRhbXX8iLgxvEnYjbtKsP8/0/VJRbGalsly+KXJXlMS/VpChYd1 KgqKpl4X90RttjdB8hcSvcCdyonnFIY/O50VHjYJviAY9Edmfjo3kfySIRYMGGTOKdeh zfOger5w8FHiJKnwl3o4fz7RvU02EJT/fxZrW9zZj1QTua3r0rNeYu4SBibKfi6SVcQi p+j/5Ohi6ICOe840OSsdr1Of3Yfqw0yXf1/lQI/7EfHbfP31mDdKZwQI+qY3U8KGCTgs iCKG02MGOa8J+sTc5hvqzqGykT8osVatQIdf0y52QkUhTsu+NemT+rXwlEMjMhBUZaX6 ugtQ==
X-Gm-Message-State: AFuF++nx/BTYXzyThUcvIy97FAe7D3ABjiLx8QiBNDHOLBR8RJJwWQZO B8i+YmxjH84AXjAZrVTXK6r4D5iFjwnNpJrf3qaMvhyGqks42fUZnHaXU5gOjAeD2qJ0XUxXUiN MfJUIXzKCmXr6SrkMoyhZTCYtmkaPS2Bz1J1aUus=
X-Gm-Gg: AYBFou17ogw94IusKz1NPrXkHjIDGchYlSDiXg+03AFWm+JcBmfyVuVVENIh7nivjhp Ztc/eJVe9sJndCn3qqXgE7pw51AjNEDtxD3RoaI8KvYU9RFVyF1nTewu+ZWgrHW3gVnuSXZiyFI K8mwHvmEPZof4ZPgpjJ8gT21fgyS0VHv0DhvHpr/PQYIWEStMRoCCllAye0aTLlfvQP8fGXXHuX 595oZBROGDwe2UENhJtZWNAn5tDHDY29tJ/pvrPZbKkEwGMbRabb5Ie+afB5c8evzVHwpr4TaLv s1pvM3OcmQu/ORPt5UvRbUwjjoGnwa/AMbN58HQok6I=
X-Received: by 2002:a05:651c:a162:b0:3a1:b658:feac with SMTP id 38308e7fff4ca-3a371bd3747mr12707831fa.13.1788588479683; Fri, 04 Sep 2026 23:07:59 -0700 (PDT)
MIME-Version: 1.0
References: <A4003FB6-3069-4038-9125-A86F61D5BFD8@davidsrose.com> <CALc05oGOuV4p_PVAbLKfGHT_v5B71pOUEDPTtmbGr1P0jmchSw@mail.gmail.com> <6AFAD579-79DF-47C6-9DCC-52ED0F813F54@davidsrose.com>
In-Reply-To: <6AFAD579-79DF-47C6-9DCC-52ED0F813F54@davidsrose.com>
From: Walter Hawkins <wdhawkins46@gmail.com>
Date: Sat, 05 Sep 2026 01:07:48 -0500
X-Gm-Features: AcwNN1X6iGoBgv-IItgqVOShus-TG1gGKWZfjJoNPXui8EOcaL6ev4bZZcqhx8Y
Message-ID: <CALc05oEqz9xa-38A91fBq=SDUw7uwd8Cgire=Np6Qmx0x-md1w@mail.gmail.com>
To: "David S. Rose" <primacy@davidsrose.com>
Content-Type: multipart/alternative; boundary="000000000000fb203b065ab634b6"
Message-ID-Hash: 3RX7AOWZQXJSS4VUILTKPH3Z2MN7DGT4
X-Message-ID-Hash: 3RX7AOWZQXJSS4VUILTKPH3Z2MN7DGT4
X-MailFrom: wdhawkins46@gmail.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/87zomV0Y4CJracWSslxzBmdX7dI>
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>

David,

Thank you for such a thoughtful, rigorous response. It is rare and
refreshing to see feedback engaged with this level of technical precision
and good faith.

Your formulation in §6 — "Consumption is not comprehension" — is spot-on
and deserves to become standard terminology across agent governance. The
failure mode you are designing against (unwatched veto windows laundering
absence into implied review) is a very real hazard in autonomous workflows,
and forcing that state into an attributable signed record is exactly the
right countermeasure.

A few quick points of alignment:

1. Simultaneous Expiry Invariant: Really glad to hear that will be made
explicit in the next revision. Closing that race condition ensures
implementations can't release on stale authorizations when windows tie.
2. Domain Scoping: Your boundary between high-frequency settlement finality
and human oversight of consequential actions is cleanly drawn. Keeping
those blast radiuses separated protects both the settlement rails and the
governance layers from leaky abstractions.
3. Vocabulary vs Orchestration: Framing this strictly as record vocabulary
for downstream state resolution rather than log-level workflow queuing
addresses the core architectural concern nicely.

I will spend some time with §§3.4–3.5 over the weekend and will share any
edge-case findings on the state machine before your next draft drops.

Really appreciate the collaborative exchange, and looking forward to
following the revision.

Warm regards,
Walter

On Fri, Sep 4, 2026 at 8:14 AM David S. Rose <primacy@davidsrose.com> wrote:

> 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
>
>
>