<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.11) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8259 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8259.xml">
<!ENTITY RFC8441 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8441.xml">
]>


<rfc ipr="trust200902" docName="draft-morrison-agent-channel-fan-out-00" category="info" submissionType="independent">
  <front>
    <title abbrev="Agent-Channel Fan-Out">An Agent-Channel Frame for Identity-Keyed Fan-Out Delivery to Concurrent Sessions</title>

    <author fullname="Blake Morrison">
      <organization>Alter Meridian Pty Ltd (~truealter)</organization>
      <address>
        <email>blake@truealter.com</email>
        <uri>alter:~blake</uri>
      </address>
    </author>

    <date year="2026" month="May"/>

    
    
    

    <abstract>


<?line 72?>

<t>This memo specifies an application-layer frame format and a delivery
model by which the several concurrent agentic sessions of a single
identity-bound principal, and the recognised members of an
organisational identity substrate, exchange short structured
messages.  The frame, termed the agent-channel frame, is a transport
envelope: it carries a closed-catalogue kind discriminator, a
structured per-kind payload, an identity attribution pair, and an
inline provenance block.  Delivery is fan-out: a sender names a
recipient scope rather than a single endpoint, and the scope is
expanded at delivery time against the recipient's subscriptions.
Recipients receive frames over a per-handle Server-Sent Events
stream and MAY narrow what they receive with a subscribe-time filter
expression.  Frames are ephemeral routing units; the memo specifies
only the wire envelope, the scope-expansion grammar, the subscribe
filter grammar, and the delivery semantics.  Frame persistence,
where an implementation chooses to retain frames for replay, is out
of scope and is not specified.  The memo composes with the handle
namespace of <xref target="IDPRONOUNS"></xref>, the discovery surface of <xref target="MCPDNS"></xref>, and
the cross-organisational ceremony of <xref target="IDACCORD"></xref>; no new transport
and no new handle category is introduced.</t>



    </abstract>



  </front>

  <middle>


<?line 95?>

<section anchor="status-of-this-memo"><name>Status of This Memo</name>

<t>This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.</t>

<t>Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF).  Note that other groups may also distribute
working documents as Internet-Drafts.  The list of current
Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.</t>

<t>Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time.  It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."</t>

</section>
<section anchor="introduction"><name>Introduction</name>

<t>A single human principal increasingly operates several
artificial-intelligence agent runtimes at once: multiple concurrent
sessions of one coding assistant, a separate assistant in an
integrated development environment, a command-line agent, and a
background runtime daemon.  Those surfaces need to exchange short
messages with one another: to advise a sibling that a file is being
edited, to hand work over when one session ends, to ask a question
and collect answers, to announce that a branch was merged.</t>

<t>In current practice such messages have no shared transport.  Where
two sessions of the same principal must coordinate, the prevailing
fallback is a file written to a shared temporary directory and a
manual instruction to a second session to read it.  That fallback
has no addressing, no delivery guarantee, no attribution, and no
filtering; it does not reach a session on a second host, and it does
not reach the principal's runtimes operating under a second
organisational context.</t>

<t>This memo specifies a frame format and a delivery model that
replace the file fallback.  The contribution is deliberately narrow.
The companion memo <xref target="SUBSTRATE"></xref> argues that <em>coordination</em> (the
deconfliction of conflicting action) should not be standardised as
an envelope protocol, because envelope coordination re-centralises
an inherently distributed problem.  The present memo does not
contradict that argument.  It specifies a <em>delivery</em> frame for
messages a session has <em>chosen</em> to send: an advisory, a handover, a
question.  It is a transport, not a coordination protocol.  No frame
in this memo's catalogue compels a recipient to any action; no frame
carries a lock a recipient must honour; the lock-shaped frames of
Section 5 are advisory announcements, and a recipient that ignores
one remains conformant.  Reconciliation of conflicting action,
where it occurs, occurs through the substrate-observation cascade of
<xref target="SUBSTRATE"></xref>, not through this memo's frames.</t>

<t>The frame is identity-keyed.  A sender names a recipient <em>scope</em>:
"all my sessions", "all sessions of one tool", "one named session",
or "all members of an organisation"; the scope is expanded against
recipients' live subscriptions at delivery time.  The fan-out is the
load-bearing delivery primitive: a sender addresses a set, not an
endpoint, and the set is resolved by the delivery substrate from
identity, not from a registry of endpoints the sender maintains.</t>

<t>The frame is ephemeral.  A delivered frame is a routing unit with a
time-to-live; once delivered, the delivery substrate is under no
obligation specified by this memo to retain it.  Where an
implementation retains delivered frames so that a late-joining
session can replay recent traffic, the retention mechanism, its
ordering properties, and its retention horizon are implementation
matters outside the scope of this specification.  This memo
specifies the wire envelope and the delivery semantics; it does not
specify a store.</t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 <xref target="RFC8174">RFC2119</xref> when, and only when, they appear in all
capitals, as shown here.</t>

<t>The following terms are defined for the purposes of this document.
Terms previously defined by the referenced Morrison-family memos
retain their established meaning and are reproduced here only when
operative for the present specification.</t>

<dl>
  <dt>~handle</dt>
  <dd>
    <t>A principal identity handle as defined by <xref target="IDPRONOUNS"></xref>.  A
Sovereign-tier handle is human-controlled (e.g. <spanx style="verb">~alice</spanx>); an
Instrument-tier handle is agent-runtime-vendor-controlled and
conventionally prefixed <spanx style="verb">~cc-</spanx> (e.g. <spanx style="verb">~cc-example-model</spanx>).</t>
  </dd>
  <dt>Agent-channel frame</dt>
  <dd>
    <t>The application-layer message unit specified by this memo.  A
single JSON object <xref target="RFC8259"></xref> comprising an envelope, a kind
discriminator, a structured payload, an identity attribution
pair, and a provenance block.</t>
  </dd>
  <dt>Kind</dt>
  <dd>
    <t>The closed-catalogue discriminator naming the frame's purpose.
Section 4 enumerates the catalogue.  An implementation that
receives a kind outside the catalogue MUST reject the frame.</t>
  </dd>
  <dt>Payload</dt>
  <dd>
    <t>The kind-specific structured body of a frame.  Each kind has
exactly one payload shape; a frame whose payload shape does not
match its kind is malformed.</t>
  </dd>
  <dt>Recipient scope</dt>
  <dd>
    <t>A string naming the set of recipients a frame is to be delivered
to.  Section 6 specifies the scope grammar.  A recipient scope is
not an endpoint; it is expanded against live subscriptions at
delivery time.</t>
  </dd>
  <dt>Delivery substrate</dt>
  <dd>
    <t>The network-addressable system that accepts a submitted frame,
expands its recipient scope, and emits the frame to the
subscriptions the scope names.  The delivery substrate is
addressed per the discovery mechanism of <xref target="MCPDNS"></xref>.</t>
  </dd>
  <dt>Per-handle stream</dt>
  <dd>
    <t>A single Server-Sent Events <xref target="RFC8441">HTML-SSE</xref> stream
associated with one <spanx style="verb">~handle</spanx>, over which the delivery substrate
emits the frames whose expanded recipient scope includes a
session of that handle.</t>
  </dd>
  <dt>Subscribe filter</dt>
  <dd>
    <t>An expression supplied by a subscriber at the time it opens its
per-handle stream, narrowing the frames the delivery substrate
emits to that subscriber.  Section 8 specifies the filter
grammar.</t>
  </dd>
  <dt>Time-to-live</dt>
  <dd>
    <t>A per-frame integer, in milliseconds, after which a sender
declares the frame's content no longer operative.  The
time-to-live is advisory to recipients; it is not a retention
directive to the delivery substrate.</t>
  </dd>
</dl>

</section>
<section anchor="the-agent-channel-frame"><name>The Agent-Channel Frame</name>

<t>An agent-channel frame is a single JSON object <xref target="RFC8259"></xref>.  Its
fields are specified below.  An implementation receiving a frame
MUST reject it if a REQUIRED field is absent, if any field carries
a value outside the constraints below, or if an unrecognised field
is present (the frame object does not admit extension fields; see
Section 12).</t>

<section anchor="envelope-fields"><name>Envelope Fields</name>

<dl>
  <dt><spanx style="verb">envelope_version</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>The wire-contract version.  This memo specifies version <spanx style="verb">"1.0"</spanx>.
A receiver that does not implement the stated version MUST reject
the frame rather than attempt a partial parse.</t>
  </dd>
  <dt><spanx style="verb">frame_id</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>A version-4 UUID generated by the sender, unique to this frame.
Receivers MAY use <spanx style="verb">frame_id</spanx> to discard a duplicate delivery of
the same frame.</t>
  </dd>
  <dt><spanx style="verb">kind</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>One of the fifteen catalogue values of Section 4.  A <spanx style="verb">kind</spanx>
outside the catalogue MUST cause rejection (Section 10).</t>
  </dd>
  <dt><spanx style="verb">sender_handle</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>The <spanx style="verb">~handle</spanx> of the sending principal, in the canonical handle
form of <xref target="IDPRONOUNS"></xref>.  The delivery substrate MUST verify that
<spanx style="verb">sender_handle</spanx> matches the authenticated identity of the
submitting session and MUST reject a frame whose <spanx style="verb">sender_handle</spanx>
does not.</t>
  </dd>
  <dt><spanx style="verb">recipient_handle</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>The <spanx style="verb">~handle</spanx> of the target principal, in canonical handle form.
For a frame addressed to the sender's own sessions, <spanx style="verb">sender_handle</spanx>
and <spanx style="verb">recipient_handle</spanx> are identical.  The recipient <em>scope</em>
(Section 6) further qualifies which sessions of <spanx style="verb">recipient_handle</spanx>
receive the frame; <spanx style="verb">recipient_handle</spanx> alone identifies the target
principal.</t>
  </dd>
  <dt><spanx style="verb">created_at</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>An RFC 3339 timestamp, with time zone, at which the sender emitted
the frame.  The delivery substrate MAY reject a frame whose
<spanx style="verb">created_at</spanx> lies implausibly far in the future or the past
relative to substrate time.</t>
  </dd>
  <dt><spanx style="verb">ttl_ms</spanx> (integer, OPTIONAL)</dt>
  <dd>
    <t>The frame's advisory time-to-live in milliseconds.  When absent,
the recipient applies an implementation-default horizon.  The
field is advisory to the recipient (it indicates when the
sender considers the content stale); it places no retention
obligation on the delivery substrate.</t>
  </dd>
  <dt><spanx style="verb">payload</spanx> (object, REQUIRED)</dt>
  <dd>
    <t>The kind-specific body, with the shape specified for the frame's
<spanx style="verb">kind</spanx> in Section 5.</t>
  </dd>
</dl>

</section>
<section anchor="attribution-fields"><name>Attribution Fields</name>

<t>Every frame carries the tier-structured attribution pair of
<xref target="IDCOMMITS"></xref>, lifted from version-control commit time to wire time.</t>

<dl>
  <dt><spanx style="verb">acted_by</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>The Sovereign-tier <spanx style="verb">~handle</spanx> of the human principal on whose
behalf the frame is sent.</t>
  </dd>
  <dt><spanx style="verb">drafted_with</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>The Instrument-tier <spanx style="verb">~handle</spanx> of the agent runtime that composed
the frame.</t>
  </dd>
</dl>

<t>The attribution pair lets a receiver distinguish a frame a human
authored directly from a frame an agent runtime composed, without a
side-channel lookup.  An agent-channel frame and an <spanx style="verb">Acted-By:</spanx> /
<spanx style="verb">Drafted-With:</spanx> commit trailer block carry the same attribution
shape: one at message time, one at commit time.</t>

</section>
<section anchor="provenance-block"><name>Provenance Block</name>

<t>Every frame carries an inline provenance block so a receiver can
assess the frame's basis without an out-of-band query.  The block
comprises five fields.</t>

<dl>
  <dt><spanx style="verb">provenance_compute_location</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>Where the inference behind the frame's content was computed.  One
of <spanx style="verb">"server-active"</spanx>, <spanx style="verb">"server-aggregate"</spanx>, or
<spanx style="verb">"local-only"</spanx>.  The value <spanx style="verb">"local-only"</spanx> asserts that the
frame's content derives from inference that did not leave the
principal's device.</t>
  </dd>
  <dt><spanx style="verb">provenance_method</spanx> (array of strings, REQUIRED, non-empty)</dt>
  <dd>
    <t>One or more derivation-method tags identifying how the frame's
content was produced (for example, a session-context snapshot, a
pre-compaction snapshot).  At least one tag is REQUIRED.</t>
  </dd>
  <dt><spanx style="verb">provenance_return_ref</spanx> (string, OPTIONAL)</dt>
  <dd>
    <t>A reference to a return record, where the frame's content is
derived from a recipient's data and the implementation maintains
a return-accounting surface.  Absent where inapplicable.</t>
  </dd>
  <dt><spanx style="verb">provenance_context_check</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>One of <spanx style="verb">"passed"</spanx> or <spanx style="verb">"skipped"</spanx>.  The value <spanx style="verb">"passed"</spanx> asserts
that the sender confirmed the frame is not emitted in a context
the sender's policy prohibits; <spanx style="verb">"skipped"</spanx> asserts the check is
inapplicable to the frame.</t>
  </dd>
  <dt><spanx style="verb">provenance_basis</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>A short tag naming the stream the frame belongs to and the basis
under which that stream emits.</t>
  </dd>
</dl>

<t>The provenance block is descriptive metadata carried for the
receiver's benefit.  This memo does not specify a conformance
behaviour keyed to any provenance field; an implementation MAY use
the block to inform its own acceptance policy.</t>

</section>
</section>
<section anchor="the-frame-kind-catalogue"><name>The Frame-Kind Catalogue</name>

<t>The <spanx style="verb">kind</spanx> field takes one of exactly fifteen values.  The catalogue
is closed: a sixteenth value is an error (Section 10), not an
extension point.  The catalogue is grouped below by function; the
grouping is descriptive and is not encoded on the wire.</t>

<section anchor="advisory-and-broadcast-kinds"><name>Advisory and Broadcast Kinds</name>

<dl>
  <dt><spanx style="verb">agent_advisory</spanx></dt>
  <dd>
    <t>A session announces what it is doing, for example that it is
about to edit a named file, or that it is operating in a named
working tree on a named branch.  Default recipient scope is the
sender's own sessions.</t>
  </dd>
  <dt><spanx style="verb">agent_broadcast</spanx></dt>
  <dd>
    <t>A session announces a completed event other sessions should know
of, for example that a branch was merged, or that a sibling's
working tree is now stale.  Carries a coarse event class so a
subscriber may filter without parsing the body.</t>
  </dd>
</dl>

</section>
<section anchor="handover-kind"><name>Handover Kind</name>

<dl>
  <dt><spanx style="verb">agent_handover</spanx></dt>
  <dd>
    <t>A session passes work to another session, carrying the prose
content a principal would otherwise place in a shared temporary
file and a list of pointer references (file paths, change-request
references, working-tree paths).  This kind replaces the
temporary-file fallback described in Section 1.</t>
  </dd>
</dl>

</section>
<section anchor="lock-shaped-kinds"><name>Lock-Shaped Kinds</name>

<t>The following three kinds are <em>advisory announcements</em>.  They
announce a session's intent regarding a named resource.  They do
not, and cannot, compel a recipient.  A recipient that receives an
<spanx style="verb">agent_lock_request</spanx> and proceeds to act on the named resource
anyway is conformant; the announcement is information, not
authority.  Enforcement of mutual exclusion, where an
implementation requires it, is performed locally by the operating
environment (for example, a filesystem advisory lock), not by this
memo's frames.</t>

<dl>
  <dt><spanx style="verb">agent_lock_request</spanx></dt>
  <dd>
    <t>Announces that the sender claims a named resource for an advisory
lease, carrying a lease identifier and a lease lifetime.</t>
  </dd>
  <dt><spanx style="verb">agent_lock_release</spanx></dt>
  <dd>
    <t>Announces that the sender has released an advisory lease,
carrying the lease identifier.</t>
  </dd>
  <dt><spanx style="verb">agent_lease_extend</spanx></dt>
  <dd>
    <t>Announces that the sender extends the lifetime of an advisory
lease, carrying the lease identifier and the additional
lifetime.</t>
  </dd>
</dl>

<t>The lease identifier is a correlation value only.  The delivery
substrate MUST NOT treat it as a key into any lock table, MUST NOT
enforce uniqueness of an outstanding lease, and MUST NOT reject an
<spanx style="verb">agent_lock_release</spanx> whose lease identifier does not match a prior
<spanx style="verb">agent_lock_request</spanx>.  Correlation of the three kinds is performed
by recipients; the delivery substrate validates only their shape.</t>

</section>
<section anchor="question-and-answer-kinds"><name>Question-and-Answer Kinds</name>

<dl>
  <dt><spanx style="verb">agent_query</spanx></dt>
  <dd>
    <t>Asks a question and names a scope to which answers should be
delivered, carrying a query identifier and a caller-side
collection window.</t>
  </dd>
  <dt><spanx style="verb">agent_response</spanx></dt>
  <dd>
    <t>Answers an <spanx style="verb">agent_query</spanx>, carrying the query identifier it
answers and the responding session's identifier.</t>
  </dd>
  <dt><spanx style="verb">agent_return_event</spanx></dt>
  <dd>
    <t>Records the closure of a question-and-answer exchange against a
return-accounting surface, where the implementation maintains
one, carrying a return reference and an optional query
identifier.</t>
  </dd>
</dl>

</section>
<section anchor="decision-request-kind"><name>Decision-Request Kind</name>

<dl>
  <dt><spanx style="verb">agent_binding_moment</spanx></dt>
  <dd>
    <t>Carries a structured decision request from one session to
another.  Its payload is the eight-slot grammar of Section 5.10.</t>
  </dd>
</dl>

</section>
<section anchor="diagnostic-kinds"><name>Diagnostic Kinds</name>

<dl>
  <dt><spanx style="verb">peer_diagnostic_request</spanx></dt>
  <dd>
    <t>Reports an observed symptom to a peer for troubleshooting,
carrying a diagnostic identifier and a coarse severity.</t>
  </dd>
  <dt><spanx style="verb">peer_diagnostic_response</spanx></dt>
  <dd>
    <t>Answers a <spanx style="verb">peer_diagnostic_request</spanx>, carrying the diagnostic
identifier and a finding.</t>
  </dd>
</dl>

</section>
<section anchor="convergence-kinds"><name>Convergence Kinds</name>

<dl>
  <dt><spanx style="verb">intent_declare</spanx></dt>
  <dd>
    <t>Announces a session's intent to incur a class of costly external
effect, carrying a namespaced class identifier, a pointer to the
intended effect, and a decay horizon.</t>
  </dd>
  <dt><spanx style="verb">intent_withdraw</spanx></dt>
  <dd>
    <t>Withdraws a previously declared intent before its effect is
executed, carrying the class identifier and a pointer to the
declared intent.</t>
  </dd>
  <dt><spanx style="verb">flush_executed</spanx></dt>
  <dd>
    <t>Announces that a session has executed a batched effect on behalf
of a set of declared intents, carrying a pointer to the result
and the pointers of the included intents.</t>
  </dd>
</dl>

<t>The three convergence kinds let a set of sessions batch a costly
effect (for example, opening a single change request for several
pooled changes) without electing a coordinator: each session
announces its intent, observes the others' announcements, and one
session executes the batched effect.  As with the lock-shaped
kinds, the announcements carry no authority; a session that
declares an intent and a session that executes a flush each act on
their own observation of the announced traffic.</t>

</section>
</section>
<section anchor="payload-schemas"><name>Payload Schemas</name>

<t>Each kind has exactly one payload shape.  A frame whose <spanx style="verb">payload</spanx>
does not satisfy the shape for its <spanx style="verb">kind</spanx> is malformed and MUST be
rejected.  The schemas below give the REQUIRED and OPTIONAL fields
of each payload; string-length and numeric bounds are stated where
an implementation is expected to enforce them.</t>

<section anchor="agentadvisory"><name>agent_advisory</name>

<dl>
  <dt><spanx style="verb">advisory_text</spanx> (string, REQUIRED, 1 to 2048 octets)</dt>
  <dd>
    <t>What the sender is doing.</t>
  </dd>
  <dt><spanx style="verb">file_refs</spanx> (array of strings, OPTIONAL)</dt>
  <dd>
    <t>Files the advisory concerns.</t>
  </dd>
  <dt><spanx style="verb">worktree</spanx> (string, OPTIONAL, up to 512 octets)</dt>
  <dd>
    <t>The working-tree path the sender operates in.</t>
  </dd>
  <dt><spanx style="verb">branch</spanx> (string, OPTIONAL, up to 256 octets)</dt>
  <dd>
    <t>The branch the sender is on.</t>
  </dd>
</dl>

</section>
<section anchor="agentbroadcast"><name>agent_broadcast</name>

<dl>
  <dt><spanx style="verb">broadcast_text</spanx> (string, REQUIRED, 1 to 2048 octets)</dt>
  <dd>
    <t>The announcement body.</t>
  </dd>
  <dt><spanx style="verb">event_class</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>One of <spanx style="verb">"merged"</spanx>, <spanx style="verb">"stale"</spanx>, <spanx style="verb">"released"</spanx>, <spanx style="verb">"other"</spanx>.  A coarse
class permitting subscriber-side filtering without body parsing.</t>
  </dd>
  <dt><spanx style="verb">refs</spanx> (array of strings, OPTIONAL)</dt>
  <dd>
    <t>Branch, change-request, or commit references the broadcast
concerns.</t>
  </dd>
</dl>

</section>
<section anchor="agenthandover"><name>agent_handover</name>

<dl>
  <dt><spanx style="verb">previous_session_id</spanx> (string, REQUIRED, 1 to 128 octets)</dt>
  <dd>
    <t>An opaque identifier for the handing-over session.</t>
  </dd>
  <dt><spanx style="verb">next_session_id</spanx> (string, OPTIONAL, up to 128 octets)</dt>
  <dd>
    <t>An identifier for the session that claims the handover.  Absent
at emission; a claiming session populates it by a subsequent
frame.</t>
  </dd>
  <dt><spanx style="verb">handover_body</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>The handover content.</t>
  </dd>
  <dt><spanx style="verb">pointer_refs</spanx> (array of strings, OPTIONAL)</dt>
  <dd>
    <t>File paths, change-request references, decision identifiers, and
working-tree paths the handover points at.</t>
  </dd>
</dl>

</section>
<section anchor="agentlockrequest"><name>agent_lock_request</name>

<dl>
  <dt><spanx style="verb">resource</spanx> (string, REQUIRED, 1 to 512 octets)</dt>
  <dd>
    <t>The resource the sender claims an advisory lease over.</t>
  </dd>
  <dt><spanx style="verb">lease_id</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>A version-4 UUID correlating this announcement with later
<spanx style="verb">agent_lock_release</spanx> and <spanx style="verb">agent_lease_extend</spanx> frames.</t>
  </dd>
  <dt><spanx style="verb">ttl_ms</spanx> (integer, REQUIRED, greater than 0, at most 3 600 000)</dt>
  <dd>
    <t>The advisory lease lifetime in milliseconds.</t>
  </dd>
  <dt><spanx style="verb">intent</spanx> (string, OPTIONAL, up to 2048 octets)</dt>
  <dd>
    <t>A human-readable reason for the claim.</t>
  </dd>
</dl>

</section>
<section anchor="agentlockrelease"><name>agent_lock_release</name>

<dl>
  <dt><spanx style="verb">lease_id</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>The lease the announcement releases.</t>
  </dd>
  <dt><spanx style="verb">resource</spanx> (string, REQUIRED, 1 to 512 octets)</dt>
  <dd>
    <t>The resource the released lease covered.</t>
  </dd>
</dl>

</section>
<section anchor="agentleaseextend"><name>agent_lease_extend</name>

<dl>
  <dt><spanx style="verb">lease_id</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>The lease whose lifetime is extended.</t>
  </dd>
  <dt><spanx style="verb">additional_ttl_ms</spanx> (integer, REQUIRED, greater than 0, at most</dt>
  <dd><t/></dd>
  <dt>3 600 000)</dt>
  <dd>
    <t>The additional lifetime in milliseconds.</t>
  </dd>
</dl>

</section>
<section anchor="agentquery"><name>agent_query</name>

<dl>
  <dt><spanx style="verb">query_text</spanx> (string, REQUIRED, 1 to 2048 octets)</dt>
  <dd>
    <t>The question.</t>
  </dd>
  <dt><spanx style="verb">query_id</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>A version-4 UUID correlating the query with its responses and
return event.</t>
  </dd>
  <dt><spanx style="verb">response_scope</spanx> (string, REQUIRED, 1 to 512 octets)</dt>
  <dd>
    <t>The recipient scope (Section 6) to which responses are to be
delivered.</t>
  </dd>
  <dt><spanx style="verb">timeout_ms</spanx> (integer, REQUIRED, greater than 0)</dt>
  <dd>
    <t>The caller-side window, in milliseconds, over which the caller
collects responses.</t>
  </dd>
</dl>

</section>
<section anchor="agentresponse"><name>agent_response</name>

<dl>
  <dt><spanx style="verb">query_id</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>The query this frame answers.</t>
  </dd>
  <dt><spanx style="verb">response_text</spanx> (string, REQUIRED, 1 to 2048 octets)</dt>
  <dd>
    <t>The answer.</t>
  </dd>
  <dt><spanx style="verb">responder</spanx> (string, REQUIRED, 1 to 128 octets)</dt>
  <dd>
    <t>An identifier for the responding session.</t>
  </dd>
</dl>

</section>
<section anchor="agentreturnevent"><name>agent_return_event</name>

<dl>
  <dt><spanx style="verb">return_event_ref</spanx> (string, REQUIRED, 1 to 256 octets)</dt>
  <dd>
    <t>A reference to a return record on the implementation's
return-accounting surface.</t>
  </dd>
  <dt><spanx style="verb">query_id</spanx> (string, OPTIONAL)</dt>
  <dd>
    <t>The query this return event closes, where the return is paired
with an <spanx style="verb">agent_query</spanx>.</t>
  </dd>
  <dt><spanx style="verb">summary</spanx> (string, REQUIRED, 1 to 2048 octets)</dt>
  <dd>
    <t>A human-readable summary of what was returned.</t>
  </dd>
</dl>

</section>
<section anchor="agentbindingmoment"><name>agent_binding_moment</name>

<t>The <spanx style="verb">agent_binding_moment</spanx> payload carries an eight-slot decision
request.  The eight slots are: a one-sentence <spanx style="verb">synopsis</spanx>; an array
of <spanx style="verb">findings</spanx>; an array of <spanx style="verb">recommendations</spanx>; a one-line <spanx style="verb">offer</spanx>;
and a <spanx style="verb">question</spanx> object comprising a one-sentence <spanx style="verb">stem</spanx>, an array
of two to four <spanx style="verb">options</spanx> (each an object carrying a short <spanx style="verb">label</spanx>
and a one-line <spanx style="verb">reasoning</spanx>), a <spanx style="verb">recommended_idx</spanx> integer naming
exactly one option, and a <spanx style="verb">hatches</spanx> object carrying two booleans,
<spanx style="verb">free_text</spanx> and <spanx style="verb">dialogue</spanx>, each defaulting to true.</t>

<t>The two hatches preserve a dual escape from the decision frame:
<spanx style="verb">free_text</spanx> indicates the recipient may answer outside the option
set, and <spanx style="verb">dialogue</spanx> indicates the recipient may revise the question
itself.  A decision-request frame in which both hatches are false
is malformed; a recipient MUST be left a path that is not one of
the enumerated options.</t>

</section>
<section anchor="peerdiagnosticrequest"><name>peer_diagnostic_request</name>

<dl>
  <dt><spanx style="verb">symptom</spanx> (string, REQUIRED, 1 to 2048 octets)</dt>
  <dd>
    <t>A description of the observed symptom.</t>
  </dd>
  <dt><spanx style="verb">diagnostic_id</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>A version-4 UUID correlating the request with its response.</t>
  </dd>
  <dt><spanx style="verb">substrate_refs</spanx> (array of strings, OPTIONAL)</dt>
  <dd>
    <t>Observation references supporting the report.</t>
  </dd>
  <dt><spanx style="verb">severity</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>One of <spanx style="verb">"info"</spanx>, <spanx style="verb">"degraded"</spanx>, <spanx style="verb">"blocked"</spanx>.</t>
  </dd>
</dl>

</section>
<section anchor="peerdiagnosticresponse"><name>peer_diagnostic_response</name>

<dl>
  <dt><spanx style="verb">diagnostic_id</spanx> (string, REQUIRED)</dt>
  <dd>
    <t>The request this frame answers.</t>
  </dd>
  <dt><spanx style="verb">finding</spanx> (string, REQUIRED, 1 to 2048 octets)</dt>
  <dd>
    <t>The diagnostic finding.</t>
  </dd>
  <dt><spanx style="verb">remediation</spanx> (string, OPTIONAL, up to 2048 octets)</dt>
  <dd>
    <t>A suggested remediation, where one is known.</t>
  </dd>
</dl>

</section>
<section anchor="intentdeclare-intentwithdraw-flushexecuted"><name>intent_declare, intent_withdraw, flush_executed</name>

<t><spanx style="verb">intent_declare</spanx> carries a <spanx style="verb">convergence_class</spanx> namespaced
identifier, a <spanx style="verb">payload_ref</spanx> pointer to the intended effect, an
<spanx style="verb">acted_by</spanx> and <spanx style="verb">drafted_with</spanx> attribution pair, a <spanx style="verb">declared_at</spanx>
timestamp, a <spanx style="verb">ttl</spanx> decay horizon in milliseconds, a <spanx style="verb">withdrawable</spanx>
boolean, and an OPTIONAL <spanx style="verb">urgency</spanx> of <spanx style="verb">"normal"</spanx> or <spanx style="verb">"urgent"</spanx>.</t>

<t><spanx style="verb">intent_withdraw</spanx> carries the <spanx style="verb">convergence_class</spanx>, an <spanx style="verb">intent_ref</spanx>
pointing at the declared intent, and a <spanx style="verb">withdrawn_at</spanx> timestamp.</t>

<t><spanx style="verb">flush_executed</spanx> carries the <spanx style="verb">convergence_class</spanx>, a <spanx style="verb">result_ref</spanx>
pointing at the result of the executed effect, an OPTIONAL
<spanx style="verb">batch_refs</spanx> array of the included intent pointers, and an
<spanx style="verb">executed_at</spanx> timestamp.</t>

<t>The pointer fields (<spanx style="verb">payload_ref</spanx>, <spanx style="verb">intent_ref</spanx>, <spanx style="verb">result_ref</spanx>,
<spanx style="verb">batch_refs</spanx>) carry references (change-request identifiers,
settlement identifiers, filing identifiers) and not the referenced
objects themselves.  Carrying references keeps frames small and
keeps the delivery substrate free of the referenced content.</t>

</section>
</section>
<section anchor="recipient-scope-grammar"><name>Recipient Scope Grammar</name>

<t>A frame is submitted with a recipient scope: a string naming the
set of sessions the frame is to reach.  The delivery substrate
expands the scope at delivery time against the live subscriptions
(Section 7) of <spanx style="verb">recipient_handle</spanx>.  A scope is not a list of
endpoints; the sender names a set by its identity shape, and the
substrate resolves the membership.</t>

<t>The following scope forms are specified.</t>

<dl>
  <dt><spanx style="verb">~handle</spanx></dt>
  <dd>
    <t>Point-to-point in the degenerate sense: every session of the
named handle.  Equivalent to <spanx style="verb">~handle/*</spanx>.</t>
  </dd>
  <dt><spanx style="verb">~handle/*</spanx></dt>
  <dd>
    <t>All sessions of the named handle.  When <spanx style="verb">~handle</spanx> is the
sender's own handle, this is the same-principal fan-out that
reaches all the sender's concurrent sessions.</t>
  </dd>
  <dt><spanx style="verb">~handle/&lt;prefix&gt;*</spanx></dt>
  <dd>
    <t>All sessions of the named handle whose instrument identifier
begins with <spanx style="verb">&lt;prefix&gt;</spanx>.  For example, <spanx style="verb">~alice/cc-*</spanx> reaches all
of <spanx style="verb">~alice</spanx>'s sessions whose instrument identifier begins
<spanx style="verb">cc-</spanx>.</t>
  </dd>
  <dt><spanx style="verb">~handle/&lt;instrument&gt;@&lt;session-id&gt;</spanx></dt>
  <dd>
    <t>A single named session, identified by instrument and session
identifier.</t>
  </dd>
  <dt><spanx style="verb">org:&lt;org-handle&gt;/members/*</spanx></dt>
  <dd>
    <t>All sessions of all recognised members of the named
organisational identity substrate.</t>
  </dd>
  <dt><spanx style="verb">org:&lt;org-handle&gt;/members/&lt;role&gt;/*</spanx></dt>
  <dd>
    <t>All sessions of recognised members holding the named role.</t>
  </dd>
  <dt><spanx style="verb">accord:&lt;peer-org-handle&gt;/grant:&lt;grant-scope&gt;</spanx></dt>
  <dd>
    <t>All sessions of the named peer organisation reachable under an
Identity Accord <xref target="IDACCORD"></xref> grant of the named grant scope.</t>
  </dd>
</dl>

<t>A delivery substrate MUST refuse a scope the submitting session is
not authorised to address.  In particular, a session MUST NOT
submit a frame to a scope naming a handle other than
<spanx style="verb">recipient_handle</spanx>, MUST NOT submit a frame to an <spanx style="verb">org:</spanx> scope of
an organisation that does not recognise the sender as a member,
and MUST NOT submit a frame to an <spanx style="verb">accord:</spanx> scope absent a
corresponding Accord grant.  Cross-organisational delivery is
always grant-mediated through the peer-protocol ceremony of
<xref target="IDACCORD"></xref>; it is never effected by an administrative assignment.</t>

<t>A delivery substrate MAY decline to implement the <spanx style="verb">org:</spanx> and
<spanx style="verb">accord:</spanx> scope forms in an initial deployment, in which case it
MUST reject a frame carrying an unimplemented scope with the
<spanx style="verb">scope-unimplemented</spanx> error of Section 10 rather than silently
dropping it.</t>

</section>
<section anchor="delivery-over-the-per-handle-stream"><name>Delivery over the Per-Handle Stream</name>

<t>Each <spanx style="verb">~handle</spanx> is associated with one per-handle Server-Sent Events
stream <xref target="RFC8441">HTML-SSE</xref>.  A session of the handle opens the
stream by an authenticated request to the delivery substrate
resolved per <xref target="MCPDNS"></xref>.  The stream is unidirectional from the
substrate to the subscriber; a session sends a frame by a separate
authenticated submission, not over the stream it subscribes on.</t>

<section anchor="submission-and-expansion"><name>Submission and Expansion</name>

<t>A session submits a frame to the delivery substrate.  The substrate:</t>

<t><list style="numbers" type="1">
  <t>validates the frame against Sections 3, 4, and 5, rejecting a
malformed frame per Section 10;</t>
  <t>verifies that <spanx style="verb">sender_handle</spanx> matches the submitting session's
authenticated identity, and that the submitting session is
authorised to address the supplied recipient scope (Section 6);</t>
  <t>expands the recipient scope against the live subscriptions of
<spanx style="verb">recipient_handle</spanx>; and</t>
  <t>emits the frame as a Server-Sent Events event on the per-handle
stream of each subscription the expansion names, subject to that
subscription's filter (Section 8).</t>
</list></t>

<t>A frame whose expanded scope names no live subscription is
delivered to no subscriber.  This is not an error: the sender
addressed a set, and the set was, at delivery time, empty.  The
submission result reports the count of subscriptions the frame was
emitted to so a sender may observe an empty fan-out.</t>

</section>
<section anchor="stream-maintenance"><name>Stream Maintenance</name>

<t>The per-handle stream is a long-lived HTTP response.  The delivery
substrate SHOULD emit a periodic keepalive comment so that
intermediaries do not close an idle stream, and a subscriber
SHOULD treat a prolonged absence of both frames and keepalives as
a dropped stream and re-open it.</t>

<t>Each emitted event carries the Server-Sent Events <spanx style="verb">id</spanx> field.  A
subscriber that re-opens a dropped stream MAY supply the <spanx style="verb">id</spanx> of
the last event it received in the <spanx style="verb">Last-Event-ID</spanx> request header.
A delivery substrate MAY honour <spanx style="verb">Last-Event-ID</spanx> by resuming
emission after the named event, where the substrate retains
recent events; a substrate that does not retain events, or for
which the named event has aged past retention, resumes emission
from the current stream position.  Whether, and for how long, a
substrate retains delivered frames for resumption is an
implementation matter and is not specified by this memo (Section
1).  A subscriber MUST NOT assume gap-free resumption.</t>

</section>
<section anchor="ephemerality"><name>Ephemerality</name>

<t>A delivered frame is a routing unit.  Once the delivery substrate
has emitted a frame to the subscriptions its scope named, this memo
places no further obligation on the substrate with respect to that
frame.  The frame's <spanx style="verb">ttl_ms</spanx> is advisory to recipients and is not
a directive to the substrate.  An implementation that retains
delivered frames does so under its own retention policy; the
retention policy, the order in which retained frames are presented,
and any durability property of the retention store are outside the
scope of this specification.</t>

</section>
</section>
<section anchor="subscribe-filter-grammar"><name>Subscribe Filter Grammar</name>

<t>A subscriber MAY narrow the frames it receives on its per-handle
stream by supplying a filter expression when it opens the stream.
The filter is carried as a query-string parameter on the
stream-open request; this memo names the parameter <spanx style="verb">filter</spanx> for
the reference deployment, and an implementation MAY use any name
consistent with its addressing convention.</t>

<t>A filter expression is a comma-separated list of <spanx style="verb">key:value</spanx>
clauses.  A frame is emitted to a filtered subscription only if it
satisfies every clause.  An empty filter, or an absent filter
parameter, matches every frame.</t>

<t>The following filter axes are specified.</t>

<dl>
  <dt><spanx style="verb">kind:&lt;kind&gt;</spanx></dt>
  <dd>
    <t>Matches frames whose <spanx style="verb">kind</spanx> equals the named catalogue value.  A
value outside the catalogue MUST cause the stream-open request to
be rejected, so that a misspelled <spanx style="verb">kind</spanx> does not silently match
nothing.</t>
  </dd>
  <dt><spanx style="verb">sender:&lt;~handle&gt;</spanx></dt>
  <dd>
    <t>Matches frames whose <spanx style="verb">sender_handle</spanx> equals the named handle.
A value that is not a canonical handle MUST cause the
stream-open request to be rejected.</t>
  </dd>
  <dt><spanx style="verb">content_type:&lt;value&gt;</spanx></dt>
  <dd>
    <t>Matches frames whose payload carries a content-type field equal
to the named value.  A frame whose payload carries no
content-type field does not match a <spanx style="verb">content_type</spanx> clause; the
axis is an opt-in field filter, not a default-pass.</t>
  </dd>
  <dt><spanx style="verb">tool:&lt;tool-class&gt;</spanx></dt>
  <dd>
    <t>Matches frames emitted by a session of the named tool class.</t>
  </dd>
  <dt><spanx style="verb">org:&lt;org-handle&gt;</spanx></dt>
  <dd>
    <t>Matches frames scoped to the named organisation.</t>
  </dd>
</dl>

<t><spanx style="verb">tool</spanx> and <spanx style="verb">org</spanx> are forward-compatibility axes: a deployment that
has not yet implemented the <spanx style="verb">org:</spanx> recipient scope of Section 6
accepts and parses an <spanx style="verb">org</spanx> filter clause so that subscribers may
write their filter strings ahead of substrate support, but the
clause matches no frame until the corresponding scope form is
implemented.  A parsed-but-not-yet-effective clause MUST NOT widen
the stream; the subscriber asked for a narrowing and receives, at
worst, a valid no-op.</t>

<t>An unrecognised filter axis MUST cause the stream-open request to
be rejected with the <spanx style="verb">filter-axis-unknown</spanx> error of Section 10.  A
filter is a narrowing instruction the subscriber relies on; a
typo that silently disabled the narrowing would be a privacy
failure, not a convenience.</t>

<t>Filtering is performed by the delivery substrate, not by the
subscriber.  A subscriber that supplies a filter receives only the
frames the filter admits; the substrate does not emit and then
expect the subscriber to discard.  Substrate-side filtering keeps
the volume on a constrained subscriber link proportional to what
the subscriber asked for, rather than proportional to the
handle's total fan-out traffic.</t>

</section>
<section anchor="error-handling"><name>Error Handling</name>

<t>A delivery substrate that rejects a submitted frame, or a
stream-open request, MUST return a machine-readable error.  An
error is a JSON object carrying a stable <spanx style="verb">code</spanx> string, a
<spanx style="verb">field</spanx> naming the offending field where one applies, and a
human-readable <spanx style="verb">message</spanx>.  The following codes are specified.</t>

<dl>
  <dt><spanx style="verb">envelope-version-unsupported</spanx></dt>
  <dd>
    <t>The frame's <spanx style="verb">envelope_version</spanx> is not implemented.</t>
  </dd>
  <dt><spanx style="verb">kind-unknown</spanx></dt>
  <dd>
    <t>The frame's <spanx style="verb">kind</spanx> is outside the fifteen-value catalogue.</t>
  </dd>
  <dt><spanx style="verb">payload-kind-mismatch</spanx></dt>
  <dd>
    <t>The frame's <spanx style="verb">payload</spanx> shape does not match its <spanx style="verb">kind</spanx>.</t>
  </dd>
  <dt><spanx style="verb">field-missing</spanx></dt>
  <dd>
    <t>A REQUIRED field is absent.  <spanx style="verb">field</spanx> names it.</t>
  </dd>
  <dt><spanx style="verb">field-invalid</spanx></dt>
  <dd>
    <t>A field carries a value outside the constraints of Section 3, 4,
or 5.  <spanx style="verb">field</spanx> names it.</t>
  </dd>
  <dt><spanx style="verb">field-unknown</spanx></dt>
  <dd>
    <t>The frame carries a field outside the specified set (Section 12).
<spanx style="verb">field</spanx> names it.</t>
  </dd>
  <dt><spanx style="verb">sender-identity-mismatch</spanx></dt>
  <dd>
    <t>The frame's <spanx style="verb">sender_handle</spanx> does not match the submitting
session's authenticated identity.</t>
  </dd>
  <dt><spanx style="verb">scope-unauthorised</spanx></dt>
  <dd>
    <t>The submitting session is not authorised to address the supplied
recipient scope.</t>
  </dd>
  <dt><spanx style="verb">scope-unimplemented</spanx></dt>
  <dd>
    <t>The supplied recipient scope is well-formed but the delivery
substrate does not implement that scope form.</t>
  </dd>
  <dt><spanx style="verb">filter-axis-unknown</spanx></dt>
  <dd>
    <t>A stream-open filter clause names an unrecognised axis.</t>
  </dd>
  <dt><spanx style="verb">filter-value-invalid</spanx></dt>
  <dd>
    <t>A stream-open filter clause carries a value invalid for its
axis.</t>
  </dd>
</dl>

<t>A rejection MUST NOT result in a partial delivery: either a frame
is fully validated and entered into scope expansion, or it is
rejected and emitted to no subscriber.</t>

</section>
<section anchor="a-reference-tool-surface"><name>A Reference Tool Surface</name>

<t>This section describes, non-normatively, the agent-runtime-facing
verb surface of the reference deployment.  The verbs are exposed as
Model Context Protocol <xref target="MCP"></xref> tools; an implementation MAY expose
the same operations under any addressing convention.  The verbs are
named here so that the wire elements of Sections 3 through 8 can be
related to the operations an agent runtime performs.</t>

<dl>
  <dt><spanx style="verb">agent_send</spanx></dt>
  <dd>
    <t>Submits a single frame to a recipient scope.</t>
  </dd>
  <dt><spanx style="verb">agent_advise</spanx></dt>
  <dd>
    <t>Submits an <spanx style="verb">agent_advisory</spanx> frame; a distinct verb from
<spanx style="verb">agent_send</spanx> so a runtime hook can emit an advisory without
selecting a kind.</t>
  </dd>
  <dt><spanx style="verb">agent_broadcast</spanx></dt>
  <dd>
    <t>Submits an <spanx style="verb">agent_broadcast</spanx> frame to a fan-out scope.</t>
  </dd>
  <dt><spanx style="verb">agent_handover</spanx></dt>
  <dd>
    <t>Submits an <spanx style="verb">agent_handover</spanx> frame, retiring the temporary-file
fallback of Section 1.</t>
  </dd>
  <dt><spanx style="verb">agent_lock_acquire</spanx>, <spanx style="verb">agent_lock_release</spanx>, <spanx style="verb">agent_lease_extend</spanx></dt>
  <dd>
    <t>Submit the three advisory lock-shaped frames of Section 4.4.</t>
  </dd>
  <dt><spanx style="verb">agent_query</spanx></dt>
  <dd>
    <t>Submits an <spanx style="verb">agent_query</spanx> frame and returns the query identifier
for the caller to correlate responses against.</t>
  </dd>
  <dt><spanx style="verb">agent_roster</spanx></dt>
  <dd>
    <t>Returns the set of the handle's sessions currently subscribed to
the per-handle stream, i.e. the live membership against which a
recipient scope would expand.</t>
  </dd>
  <dt><spanx style="verb">agent_subscribe</spanx></dt>
  <dd>
    <t>Opens the per-handle stream with an OPTIONAL filter expression
(Section 8).</t>
  </dd>
</dl>

<t>The reference deployment exposes these verbs alongside, and
distinct from, the verb surface by which human-readable messages
are exchanged.  The agent-channel frame and the human-message
surface share a delivery substrate and a per-handle stream; they
are distinguished by the structured-versus-prose shape of their
payloads and by the kind catalogue, which the human-message
surface does not carry.</t>

</section>
<section anchor="composition-with-companion-memos"><name>Composition with Companion Memos</name>

<t>This memo composes with four Morrison-family Internet-Drafts and
does not introduce a transport, a handle category, or an
attribution slot beyond them.</t>

<t><xref target="IDPRONOUNS"></xref> supplies the <spanx style="verb">~handle</spanx> namespace and the
Sovereign/Instrument trust-tier taxonomy used by the
<spanx style="verb">sender_handle</spanx>, <spanx style="verb">recipient_handle</spanx>, <spanx style="verb">acted_by</spanx>, and <spanx style="verb">drafted_with</spanx>
fields and by the scope grammar of Section 6.</t>

<t><xref target="MCPDNS"></xref> supplies the discovery mechanism by which an agent runtime
resolves the delivery substrate for a <spanx style="verb">~handle</spanx> and opens the
per-handle stream against it.</t>

<t><xref target="IDCOMMITS"></xref> supplies the tier-structured attribution grammar that
the <spanx style="verb">acted_by</spanx> / <spanx style="verb">drafted_with</spanx> pair of Section 3.2 carries at wire
time.  A frame's attribution pair and a commit's trailer block are
the same shape applied at two points in a workflow.</t>

<t><xref target="IDACCORD"></xref> supplies the peer-protocol ceremony that mediates the
<spanx style="verb">accord:</spanx> recipient scope of Section 6.  Cross-organisational
delivery is grant-bounded through that ceremony; no meta-federation
authority is introduced.</t>

<t><xref target="SUBSTRATE"></xref> supplies the coordination posture this memo
deliberately does not duplicate.  The present memo is a delivery
frame for messages a session chooses to send; it is not a
coordination protocol.  Where concurrent sessions of a principal
must deconflict conflicting action, they do so through the
substrate-observation cascade of <xref target="SUBSTRATE"></xref>.  The lock-shaped
kinds of Section 4.4 are announcements within the present memo's
delivery model and are explicitly not the enforcement mechanism;
<xref target="SUBSTRATE"></xref> specifies how conflicting action is reconciled.</t>

</section>
<section anchor="extensibility"><name>Extensibility</name>

<t>The agent-channel frame object does not admit extension fields.  An
implementation that receives a frame carrying a field outside the
set specified in Sections 3, 4, and 5 MUST reject it with the
<spanx style="verb">field-unknown</spanx> error of Section 10.  Closed-object validation is
deliberate: a frame is a small routing unit on a constrained
stream, and a silently-accepted unknown field is more likely a
sender bug than a forward-compatible extension.</t>

<t>Extension of the protocol proceeds by revision of this memo.  A new
frame kind, a new payload field, or a new scope or filter form is
introduced by a new <spanx style="verb">envelope_version</spanx>, and a receiver that does
not implement the new version rejects frames carrying it
(Section 3.1) rather than parsing them partially.  The fifteen-value
kind catalogue of Section 4 is, for <spanx style="verb">envelope_version</spanx> <spanx style="verb">"1.0"</spanx>,
exhaustive.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This memo requests no IANA action.</t>

<t>The frame format of this memo is an application-layer JSON object
<xref target="RFC8259"></xref> carried over the existing Server-Sent Events transport
<xref target="RFC8441">HTML-SSE</xref>; it introduces no new media type, no new URI
scheme, no new port, and no new DNS resource record.  The
per-handle stream is discovered and addressed by the mechanism of
<xref target="MCPDNS"></xref> and requires no separate allocation here.</t>

<t>The fifteen kind values of Section 4, the recipient-scope forms of
Section 6, the filter axes of Section 8, and the error codes of
Section 10 are protocol constants of this specification.  This memo
does not request an IANA registry for them.  Should a future
revision, or a companion specification, propose a registry for the
kind catalogue or the error codes (for example to permit
third-party kind allocation), that revision will request the
corresponding IANA action and specify the registration policy.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<section anchor="sender-spoofing"><name>Sender Spoofing</name>

<t>A frame asserts a <spanx style="verb">sender_handle</spanx> and an <spanx style="verb">acted_by</spanx> /
<spanx style="verb">drafted_with</spanx> attribution pair.  An unauthenticated submission
path would let any party assert any handle.  The delivery
substrate MUST authenticate the submitting session and MUST verify
that <spanx style="verb">sender_handle</spanx> matches the authenticated identity before the
frame enters scope expansion; a frame failing the check is rejected
with <spanx style="verb">sender-identity-mismatch</spanx> (Section 10).  The substrate
SHOULD additionally verify that the <spanx style="verb">acted_by</spanx> handle is the
Sovereign-tier handle the authenticated session is bound to, so
that an Instrument-tier session cannot assert a Sovereign-tier
<spanx style="verb">acted_by</spanx> other than its own principal's.</t>

</section>
<section anchor="scope-authorisation-bypass"><name>Scope-Authorisation Bypass</name>

<t>The recipient-scope grammar of Section 6 lets a sender address a
set rather than an endpoint.  A sender that could address an
arbitrary scope could deliver unsolicited frames to any handle or
any organisation's members.  The delivery substrate MUST refuse a
scope the submitting session is not authorised to address: a scope
naming a foreign handle, an <spanx style="verb">org:</spanx> scope of an organisation that
does not recognise the sender, or an <spanx style="verb">accord:</spanx> scope absent a
grant.  Authorisation is checked at submission time, before scope
expansion; a frame failing the check is rejected with
<spanx style="verb">scope-unauthorised</spanx> and reaches no subscriber.</t>

</section>
<section anchor="fan-out-amplification"><name>Fan-Out Amplification</name>

<t>A single submitted frame to a broad scope (<spanx style="verb">org:&lt;org-handle&gt;/members/*</spanx>)
expands to many emitted events.  An attacker in possession of a
member credential could submit frames at a high rate to amplify
load across an organisation's subscribers.  Delivery substrates
SHOULD rate-limit submissions per authenticated sender, SHOULD cap
the cardinality a single scope expansion may produce, and SHOULD
apply the per-frame size bounds of Section 5 so that an amplified
frame is at least small.  The convergence kinds of Section 4.7 are
themselves a load-reduction mechanism (they let a set of sessions
collapse many intended effects into one), and a substrate MAY
treat a high rate of <spanx style="verb">intent_declare</spanx> frames without corresponding
<spanx style="verb">flush_executed</spanx> frames as an abuse signal.</t>

</section>
<section anchor="lock-shaped-frames-are-not-authority"><name>Lock-Shaped Frames Are Not Authority</name>

<t>The <spanx style="verb">agent_lock_request</spanx>, <spanx style="verb">agent_lock_release</spanx>, and
<spanx style="verb">agent_lease_extend</spanx> kinds are advisory announcements (Section 4.4).
A reader, or an implementer, who treats them as an enforcement
mechanism introduces a security defect: a recipient that
<em>relies</em> on a received <spanx style="verb">agent_lock_request</spanx> to guarantee
exclusive access has trusted an unenforceable announcement, and an
attacker who suppresses or forges such a frame can induce a
recipient to act, or to refrain from acting, incorrectly.  Mutual
exclusion, where an implementation requires it, MUST be enforced by
a local mechanism (a filesystem advisory lock, an operating-system
lease) that does not depend on frame delivery.  The lease
identifier carried by these frames is a correlation value and MUST
NOT be treated by the delivery substrate as a key into a lock
table.</t>

</section>
<section anchor="replay-and-duplication"><name>Replay and Duplication</name>

<t>A frame carries a sender-generated <spanx style="verb">frame_id</spanx>.  An attacker
positioned on the transport could re-deliver an aged frame to
refresh a recipient's view of stale state, for example by replaying
an <spanx style="verb">agent_advisory</spanx> to make a long-departed session appear active.
The per-frame <spanx style="verb">ttl_ms</spanx> bounds the window in which a recipient
treats a frame's content as operative, and a recipient SHOULD
discard a frame whose <spanx style="verb">created_at</spanx> plus <spanx style="verb">ttl_ms</spanx> lies in the past.
A recipient SHOULD additionally de-duplicate by <spanx style="verb">frame_id</spanx> so a
duplicated delivery of the same frame is processed once.  Because
the lock-shaped frames are not authority (above), a replayed
lock-shaped frame cannot, by itself, grant or revoke access; its
worst effect is a stale advisory, bounded by <spanx style="verb">ttl_ms</spanx>.</t>

</section>
<section anchor="diagnostic-frame-information-disclosure"><name>Diagnostic-Frame Information Disclosure</name>

<t>A <spanx style="verb">peer_diagnostic_request</spanx> carries a symptom description and
observation references; a <spanx style="verb">peer_diagnostic_response</spanx> carries a
finding and a remediation.  These may disclose configuration,
file paths, or operational detail a sender did not intend to
expose beyond its own sessions.  A sender SHOULD scope diagnostic
frames no more broadly than the troubleshooting requires,
preferring point-to-point or its own sessions over an <spanx style="verb">org:</spanx>
scope, and SHOULD redact secret material from a symptom
description before submission.</t>

</section>
</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<section anchor="recipient-scope-membership-inference"><name>Recipient-Scope Membership Inference</name>

<t>The submission result of Section 7.1 reports the count of
subscriptions a frame was emitted to.  A sender that submits frames
to successively narrower scopes can, from the reported counts,
infer how many of a handle's sessions, or an organisation's
members' sessions, are currently online.  A delivery substrate
SHOULD consider whether to report an exact count or a coarsened
one, and SHOULD restrict the <spanx style="verb">agent_roster</spanx> operation of Section 9,
which enumerates a handle's live sessions, to the handle's own
sessions and to parties the handle has authorised.</t>

</section>
<section anchor="attribution-exposure"><name>Attribution Exposure</name>

<t>Every frame carries an <spanx style="verb">acted_by</spanx> Sovereign-tier handle and a
<spanx style="verb">drafted_with</spanx> Instrument-tier handle.  Within a fan-out, every
recipient of a frame learns the sending principal's identity and
the runtime that composed the frame.  This is intentional; the
attribution pair is the basis on which a recipient assesses a
frame.  A sender should be aware that an <spanx style="verb">org:</spanx> or <spanx style="verb">accord:</spanx>
scope discloses the attribution pair to every member of the
addressed set.  A sender that wishes to limit attribution exposure
SHOULD prefer the narrowest scope that reaches the intended
recipients.</t>

</section>
<section anchor="provenance-block-content"><name>Provenance-Block Content</name>

<t>The provenance block of Section 3.3 carries a compute-location, a
set of derivation-method tags, and a stream-basis tag.  These
describe how the frame's content was produced and may, in
aggregate across many frames, characterise a sender's working
pattern.  The block is carried for the recipient's benefit; a
sender SHOULD populate <spanx style="verb">provenance_method</spanx> and <spanx style="verb">provenance_basis</spanx>
with tags no more specific than a recipient needs to assess the
frame, and an implementation SHOULD NOT require the block to carry
identifying detail beyond the derivation method.</t>

</section>
<section anchor="ephemerality-as-a-privacy-property"><name>Ephemerality as a Privacy Property</name>

<t>This memo specifies delivery, not storage (Section 1, Section 7.3).
A frame delivered and not retained leaves no standing record on the
delivery substrate beyond the substrate's transient processing of
it.  Where an implementation chooses to retain delivered frames for
stream resumption, that retention is a privacy-relevant decision
the implementation makes outside this specification: a retained
frame is a record of who said what to whom, and the retention
horizon, access controls, and deletion behaviour of any such store
SHOULD be specified by the implementation and surfaced to the
principals whose frames it retains.  The convergence kinds of
Section 4.7 carry an explicit decay horizon (<spanx style="verb">ttl</spanx> on
<spanx style="verb">intent_declare</spanx>) precisely so that the announcement of an
intended effect is, by design, forgotten once the window for the
effect has closed.</t>

</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">

&RFC2119;
&RFC8174;
&RFC8259;
&RFC8441;
<reference anchor="MCPDNS" target="https://datatracker.ietf.org/doc/draft-morrison-mcp-dns-discovery/">
  <front>
    <title>Discovery of Model Context Protocol Servers via DNS TXT Records</title>
    <author fullname="Blake Morrison">
      <organization>Alter Meridian Pty Ltd</organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="IDPRONOUNS" target="https://datatracker.ietf.org/doc/draft-morrison-identity-pronouns/">
  <front>
    <title>Identity Pronouns: A Reference-Axis Extension to ~handle Identity Systems</title>
    <author fullname="Blake Morrison">
      <organization>Alter Meridian Pty Ltd</organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="IDACCORD" target="https://datatracker.ietf.org/doc/draft-morrison-identity-accord/">
  <front>
    <title>Identity Accord Protocol</title>
    <author fullname="Blake Morrison">
      <organization>Alter Meridian Pty Ltd</organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="IDCOMMITS" target="https://datatracker.ietf.org/doc/draft-morrison-identity-attributed-commits/">
  <front>
    <title>Identity-Attributed Git Commits via Tier-Structured Trailers</title>
    <author fullname="Blake Morrison">
      <organization>Alter Meridian Pty Ltd</organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="SUBSTRATE" target="https://datatracker.ietf.org/doc/draft-morrison-substrate-observation/">
  <front>
    <title>Substrate-Observation as an Alternative to Envelope Coordination for Concurrent Sessions</title>
    <author fullname="Blake Morrison">
      <organization>Alter Meridian Pty Ltd</organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="MCP" target="https://modelcontextprotocol.io">
  <front>
    <title>Model Context Protocol Specification</title>
    <author >
      <organization>Agentic AI Foundation</organization>
    </author>
    <date year="2026"/>
  </front>
</reference>


    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="HTML-SSE" target="https://html.spec.whatwg.org/multipage/server-sent-events.html">
  <front>
    <title>HTML Living Standard, Section 9.2: Server-Sent Events</title>
    <author >
      <organization>WHATWG</organization>
    </author>
    <date year="2026"/>
  </front>
</reference>


    </references>

</references>


<?line 1156?>

<section numbered="false" anchor="acknowledgements"><name>Acknowledgements</name>

<t>This memo grew out of internal architectural work on how the
several concurrent agentic sessions of a single principal, today
reduced to passing a file through a shared temporary directory,
should instead exchange short structured messages over an
identity-keyed delivery substrate.  The realisation that the
needed primitive is a fan-out <em>delivery</em> frame, and that
coordination, as distinct from delivery, is better left to
substrate observation than standardised as an envelope, is the
load-bearing insight behind this specification and its companion
memo <xref target="SUBSTRATE"></xref>.</t>

</section>


  </back>

<!-- ##markdown-source:
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
yf8DyaqPaTu5AAA=

-->

</rfc>

