<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-morrison-agent-channel-fan-out-02" category="info" submissionType="independent" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="Agent-Channel Fan-Out">An Agent-Channel Frame for Identity-Keyed Fan-Out Delivery to Concurrent Sessions</title>
    <seriesInfo name="Internet-Draft" value="draft-morrison-agent-channel-fan-out-02"/>
    <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="October" day="09"/>
    <abstract>
      

<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 can 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 and discovery surface of draft-morrison-mcp-dns-discovery
and the cross-organisational ceremony of
draft-morrison-identity-accord; no new transport and no new handle
category is introduced.</t>
    </abstract>
  </front>
  <middle>
    

<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 companion memo <xref target="SUBSTRATE"/> argues
that coordination (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 delivery frame for
messages a session has chosen 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 4.3 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"/>, not through this memo's frames.</t>
      <t>The frame is identity-keyed.  A sender names a recipient scope:
"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.  A sender addresses
a set, not an endpoint, and the delivery substrate resolves the set
from identity rather than 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 "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="BCP14"/> 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 companion memos cited here
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="MCPDNS"/>, in the
Sovereign and Instrument tiers of <xref target="IDCOMMITS"/>.  A Sovereign-tier handle is
human-controlled (e.g. <tt>~alice</tt>); an
Instrument-tier handle is agent-runtime-vendor-controlled and
conventionally prefixed <tt>~cc-</tt> (e.g. <tt>~cc-example-model</tt>).  A
<tt>~handle</tt> carried in a frame field or a recipient scope is the
handle of the <tt>alter:</tt> URI defined in <xref target="ALTER-URI"/>: <tt>~alice</tt>
corresponds to <tt>alter:~alice</tt>.  The fields and scopes of this memo
carry the handle without the scheme name.</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"/> 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 <bcp14>MUST</bcp14> 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"/>.</t>
        </dd>
        <dt>Per-handle stream</dt>
        <dd>
          <t>A single Server-Sent Events <xref target="HTML-SSE"/> stream
associated with one <tt>~handle</tt>, 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"/>.  Its
fields are specified below.  An implementation receiving a frame
<bcp14>MUST</bcp14> reject it if a <bcp14>REQUIRED</bcp14> 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><tt>envelope_version</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>The wire-contract version.  This memo specifies version <tt>"1.0"</tt>.
A receiver that does not implement the stated version <bcp14>MUST</bcp14> reject
the frame rather than attempt a partial parse.</t>
          </dd>
          <dt><tt>frame_id</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>A version-4 UUID generated by the sender, unique to this frame.
Receivers <bcp14>MAY</bcp14> use <tt>frame_id</tt> to discard a duplicate delivery of
the same frame.</t>
          </dd>
          <dt><tt>kind</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>One of the fifteen catalogue values of Section 4.  A <tt>kind</tt>
outside the catalogue <bcp14>MUST</bcp14> cause rejection (Section 9).</t>
          </dd>
          <dt><tt>sender_handle</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>The <tt>~handle</tt> of the sending principal, in the canonical handle
form of <xref target="IDPRONOUNS"/>.  The delivery substrate <bcp14>MUST</bcp14> verify that
<tt>sender_handle</tt> matches the authenticated identity of the
submitting session and <bcp14>MUST</bcp14> reject a frame whose <tt>sender_handle</tt>
does not.</t>
          </dd>
          <dt><tt>recipient_handle</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>The <tt>~handle</tt> of the target principal, in canonical handle form.
For a frame addressed to the sender's own sessions, <tt>sender_handle</tt>
and <tt>recipient_handle</tt> are identical.  The recipient <em>scope</em>
(Section 6) further qualifies which sessions of <tt>recipient_handle</tt>
receive the frame; <tt>recipient_handle</tt> alone identifies the target
principal.</t>
          </dd>
          <dt><tt>created_at</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>An RFC 3339 <xref target="RFC3339"/> timestamp, with time zone, at which the sender emitted
the frame.  The delivery substrate <bcp14>MAY</bcp14> reject a frame whose
<tt>created_at</tt> lies implausibly far in the future or the past
relative to substrate time.</t>
          </dd>
          <dt><tt>ttl_ms</tt> (integer, <bcp14>OPTIONAL</bcp14>)</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><tt>payload</tt> (object, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>The kind-specific body, with the shape specified for the frame's
<tt>kind</tt> in Section 5.</t>
          </dd>
        </dl>
      </section>
      <section anchor="attribution-fields">
        <name>Attribution Fields</name>
        <t>Every frame carries the tier-structured attribution pair that
<xref target="IDCOMMITS"/> defines for commit trailers.</t>
        <dl>
          <dt><tt>acted_by</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>The Sovereign-tier <tt>~handle</tt> of the human principal on whose
behalf the frame is sent.</t>
          </dd>
          <dt><tt>drafted_with</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>The Instrument-tier <tt>~handle</tt> 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 <tt>Acted-By:</tt> /
<tt>Drafted-With:</tt> 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><tt>provenance_compute_location</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>Where the inference behind the frame's content was computed.  One
of <tt>"server-active"</tt>, <tt>"server-aggregate"</tt>, or
<tt>"local-only"</tt>.  The value <tt>"local-only"</tt> asserts that the
frame's content derives from inference that did not leave the
principal's device.</t>
          </dd>
          <dt><tt>provenance_method</tt> (array of strings, <bcp14>REQUIRED</bcp14>, 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 <bcp14>REQUIRED</bcp14>.</t>
          </dd>
          <dt><tt>provenance_return_ref</tt> (string, <bcp14>OPTIONAL</bcp14>)</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><tt>provenance_context_check</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>One of <tt>"passed"</tt> or <tt>"skipped"</tt>.  The value <tt>"passed"</tt> asserts
that the sender confirmed the frame is not emitted in a context
in which the inference behind its content is categorically
prohibited.  The prohibition is categorical and not a matter of
sender policy: it applies regardless of any consent the principal
has given.  The value <tt>"skipped"</tt> asserts that the frame carries
no inference-derived content, so the prohibition cannot apply.</t>
          </dd>
          <dt><tt>provenance_basis</tt> (string, <bcp14>REQUIRED</bcp14>)</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 <bcp14>MAY</bcp14> 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 <tt>kind</tt> field takes one of exactly fifteen values defined by this
memo.  Within this memo the catalogue is closed: a sixteenth value
is an error (Section 9), 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><tt>agent_advisory</tt></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><tt>agent_broadcast</tt></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><tt>agent_handover</tt></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 advisory announcements.  They
announce a session's intent regarding a named resource.  They do
not, and cannot, compel a recipient.  A recipient that receives an
<tt>agent_lock_request</tt> 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><tt>agent_lock_request</tt></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><tt>agent_lock_release</tt></dt>
          <dd>
            <t>Announces that the sender has released an advisory lease,
carrying the lease identifier.</t>
          </dd>
          <dt><tt>agent_lease_extend</tt></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 <bcp14>MUST NOT</bcp14> treat it as a key into any lock table, <bcp14>MUST NOT</bcp14>
enforce uniqueness of an outstanding lease, and <bcp14>MUST NOT</bcp14> reject an
<tt>agent_lock_release</tt> whose lease identifier does not match a prior
<tt>agent_lock_request</tt>.  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><tt>agent_query</tt></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><tt>agent_response</tt></dt>
          <dd>
            <t>Answers an <tt>agent_query</tt>, carrying the query identifier it
answers and the responding session's identifier.</t>
          </dd>
          <dt><tt>agent_return_event</tt></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><tt>agent_binding_moment</tt></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><tt>peer_diagnostic_request</tt></dt>
          <dd>
            <t>Reports an observed symptom to a peer for troubleshooting,
carrying a diagnostic identifier and a coarse severity.</t>
          </dd>
          <dt><tt>peer_diagnostic_response</tt></dt>
          <dd>
            <t>Answers a <tt>peer_diagnostic_request</tt>, carrying the diagnostic
identifier and a finding.</t>
          </dd>
        </dl>
      </section>
      <section anchor="convergence-kinds">
        <name>Convergence Kinds</name>
        <dl>
          <dt><tt>intent_declare</tt></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><tt>intent_withdraw</tt></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><tt>flush_executed</tt></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
related 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 <tt>payload</tt>
does not satisfy the shape for its <tt>kind</tt> is malformed and <bcp14>MUST</bcp14> be
rejected.  The schemas below give the <bcp14>REQUIRED</bcp14> and <bcp14>OPTIONAL</bcp14> 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><tt>advisory_text</tt> (string, <bcp14>REQUIRED</bcp14>, 1 to 2048 octets)</dt>
          <dd>
            <t>What the sender is doing.</t>
          </dd>
          <dt><tt>file_refs</tt> (array of strings, <bcp14>OPTIONAL</bcp14>)</dt>
          <dd>
            <t>Files the advisory concerns.</t>
          </dd>
          <dt><tt>worktree</tt> (string, <bcp14>OPTIONAL</bcp14>, up to 512 octets)</dt>
          <dd>
            <t>The working-tree path the sender operates in.</t>
          </dd>
          <dt><tt>branch</tt> (string, <bcp14>OPTIONAL</bcp14>, 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><tt>broadcast_text</tt> (string, <bcp14>REQUIRED</bcp14>, 1 to 2048 octets)</dt>
          <dd>
            <t>The announcement body.</t>
          </dd>
          <dt><tt>event_class</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>One of <tt>"merged"</tt>, <tt>"stale"</tt>, <tt>"released"</tt>, <tt>"other"</tt>.  A coarse
class permitting subscriber-side filtering without body parsing.</t>
          </dd>
          <dt><tt>refs</tt> (array of strings, <bcp14>OPTIONAL</bcp14>)</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><tt>previous_session_id</tt> (string, <bcp14>REQUIRED</bcp14>, 1 to 128 octets)</dt>
          <dd>
            <t>An opaque identifier for the handing-over session.</t>
          </dd>
          <dt><tt>next_session_id</tt> (string, <bcp14>OPTIONAL</bcp14>, 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><tt>handover_body</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>The handover content.</t>
          </dd>
          <dt><tt>pointer_refs</tt> (array of strings, <bcp14>OPTIONAL</bcp14>)</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><tt>resource</tt> (string, <bcp14>REQUIRED</bcp14>, 1 to 512 octets)</dt>
          <dd>
            <t>The resource the sender claims an advisory lease over.</t>
          </dd>
          <dt><tt>lease_id</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>A version-4 UUID correlating this announcement with later
<tt>agent_lock_release</tt> and <tt>agent_lease_extend</tt> frames.</t>
          </dd>
          <dt><tt>ttl_ms</tt> (integer, <bcp14>REQUIRED</bcp14>, greater than 0, at most 3 600 000)</dt>
          <dd>
            <t>The advisory lease lifetime in milliseconds.</t>
          </dd>
          <dt><tt>intent</tt> (string, <bcp14>OPTIONAL</bcp14>, 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><tt>lease_id</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>The lease the announcement releases.</t>
          </dd>
          <dt><tt>resource</tt> (string, <bcp14>REQUIRED</bcp14>, 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><tt>lease_id</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>The lease whose lifetime is extended.</t>
          </dd>
          <dt><tt>additional_ttl_ms</tt> (integer, <bcp14>REQUIRED</bcp14>, 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><tt>query_text</tt> (string, <bcp14>REQUIRED</bcp14>, 1 to 2048 octets)</dt>
          <dd>
            <t>The question.</t>
          </dd>
          <dt><tt>query_id</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>A version-4 UUID correlating the query with its responses and
return event.</t>
          </dd>
          <dt><tt>response_scope</tt> (string, <bcp14>REQUIRED</bcp14>, 1 to 512 octets)</dt>
          <dd>
            <t>The recipient scope (Section 6) to which responses are to be
delivered.</t>
          </dd>
          <dt><tt>timeout_ms</tt> (integer, <bcp14>REQUIRED</bcp14>, 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><tt>query_id</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>The query this frame answers.</t>
          </dd>
          <dt><tt>response_text</tt> (string, <bcp14>REQUIRED</bcp14>, 1 to 2048 octets)</dt>
          <dd>
            <t>The answer.</t>
          </dd>
          <dt><tt>responder</tt> (string, <bcp14>REQUIRED</bcp14>, 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><tt>return_event_ref</tt> (string, <bcp14>REQUIRED</bcp14>, 1 to 256 octets)</dt>
          <dd>
            <t>A reference to a return record on the implementation's
return-accounting surface.</t>
          </dd>
          <dt><tt>query_id</tt> (string, <bcp14>OPTIONAL</bcp14>)</dt>
          <dd>
            <t>The query this return event closes, where the return is paired
with an <tt>agent_query</tt>.</t>
          </dd>
          <dt><tt>summary</tt> (string, <bcp14>REQUIRED</bcp14>, 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 <tt>agent_binding_moment</tt> payload carries an eight-slot decision
request.  The eight slots are: a one-sentence <tt>synopsis</tt>; an array
of <tt>findings</tt>; an array of <tt>recommendations</tt>; a one-line <tt>offer</tt>;
and a <tt>question</tt> object comprising a one-sentence <tt>stem</tt>, an array
of two to four <tt>options</tt> (each an object carrying a short <tt>label</tt>
and a one-line <tt>reasoning</tt>), a <tt>recommended_idx</tt> integer naming
exactly one option, and a <tt>hatches</tt> object carrying two booleans,
<tt>free_text</tt> and <tt>dialogue</tt>, each defaulting to true.</t>
        <t>The two hatches mark what the recipient may do besides choosing an
option: <tt>free_text</tt> indicates the recipient may answer outside the option
set, and <tt>dialogue</tt> indicates the recipient may revise the question
itself.  A decision-request frame in which both hatches are false
is malformed; a recipient <bcp14>MUST</bcp14> be left a path that is not one of
the enumerated options.</t>
      </section>
      <section anchor="peerdiagnosticrequest">
        <name>peer_diagnostic_request</name>
        <dl>
          <dt><tt>symptom</tt> (string, <bcp14>REQUIRED</bcp14>, 1 to 2048 octets)</dt>
          <dd>
            <t>A description of the observed symptom.</t>
          </dd>
          <dt><tt>diagnostic_id</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>A version-4 UUID correlating the request with its response.</t>
          </dd>
          <dt><tt>substrate_refs</tt> (array of strings, <bcp14>OPTIONAL</bcp14>)</dt>
          <dd>
            <t>Observation references supporting the report.</t>
          </dd>
          <dt><tt>severity</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>One of <tt>"info"</tt>, <tt>"degraded"</tt>, <tt>"blocked"</tt>.</t>
          </dd>
        </dl>
      </section>
      <section anchor="peerdiagnosticresponse">
        <name>peer_diagnostic_response</name>
        <dl>
          <dt><tt>diagnostic_id</tt> (string, <bcp14>REQUIRED</bcp14>)</dt>
          <dd>
            <t>The request this frame answers.</t>
          </dd>
          <dt><tt>finding</tt> (string, <bcp14>REQUIRED</bcp14>, 1 to 2048 octets)</dt>
          <dd>
            <t>The diagnostic finding.</t>
          </dd>
          <dt><tt>remediation</tt> (string, <bcp14>OPTIONAL</bcp14>, 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><tt>intent_declare</tt> carries a <tt>convergence_class</tt> namespaced
identifier, a <tt>payload_ref</tt> pointer to the intended effect, an
<tt>acted_by</tt> and <tt>drafted_with</tt> attribution pair, a <tt>declared_at</tt>
timestamp, a <tt>ttl</tt> decay horizon in milliseconds, a <tt>withdrawable</tt>
boolean, and an <bcp14>OPTIONAL</bcp14> <tt>urgency</tt> of <tt>"normal"</tt> or <tt>"urgent"</tt>.</t>
        <t><tt>intent_withdraw</tt> carries the <tt>convergence_class</tt>, an <tt>intent_ref</tt>
pointing at the declared intent, and a <tt>withdrawn_at</tt> timestamp.</t>
        <t><tt>flush_executed</tt> carries the <tt>convergence_class</tt>, a <tt>result_ref</tt>
pointing at the result of the executed effect, an <bcp14>OPTIONAL</bcp14>
          <tt>batch_refs</tt> array of the included intent pointers, and an
<tt>executed_at</tt> timestamp.</t>
        <t>The pointer fields (<tt>payload_ref</tt>, <tt>intent_ref</tt>, <tt>result_ref</tt>,
<tt>batch_refs</tt>) carry references (change-request identifiers,
ticket identifiers, build 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 <tt>recipient_handle</tt>.  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><tt>~handle</tt></dt>
        <dd>
          <t>Every session of the named handle.  Equivalent to <tt>~handle/*</tt>.</t>
        </dd>
        <dt><tt>~handle/*</tt></dt>
        <dd>
          <t>All sessions of the named handle.  When <tt>~handle</tt> is the
sender's own handle, this is the same-principal fan-out that
reaches all the sender's concurrent sessions.</t>
        </dd>
        <dt><tt>~handle/&lt;prefix&gt;*</tt></dt>
        <dd>
          <t>All sessions of the named handle whose instrument identifier
begins with <tt>&lt;prefix&gt;</tt>.  For example, <tt>~alice/cc-*</tt> reaches all
of <tt>~alice</tt>'s sessions whose instrument identifier begins
<tt>cc-</tt>.</t>
        </dd>
        <dt><tt>~handle/&lt;instrument&gt;@&lt;session-id&gt;</tt></dt>
        <dd>
          <t>A single named session, identified by instrument and session
identifier.</t>
        </dd>
        <dt><tt>org:&lt;org-handle&gt;/members/*</tt></dt>
        <dd>
          <t>All sessions of all recognised members of the named
organisational identity substrate.</t>
        </dd>
        <dt><tt>org:&lt;org-handle&gt;/members/&lt;role&gt;/*</tt></dt>
        <dd>
          <t>All sessions of recognised members holding the named role.</t>
        </dd>
        <dt><tt>accord:&lt;peer-org-handle&gt;/grant:&lt;grant-scope&gt;</tt></dt>
        <dd>
          <t>All sessions of the named peer organisation reachable under an
Identity Accord <xref target="IDACCORD"/> grant of the named grant scope.</t>
        </dd>
      </dl>
      <t>A delivery substrate <bcp14>MUST</bcp14> refuse a scope the submitting session is
not authorised to address.  In particular, a session <bcp14>MUST NOT</bcp14>
submit a frame to a scope naming a handle other than
<tt>recipient_handle</tt>, <bcp14>MUST NOT</bcp14> submit a frame to an <tt>org:</tt> scope of
an organisation that does not recognise the sender as a member,
and <bcp14>MUST NOT</bcp14> submit a frame to an <tt>accord:</tt> scope absent a
corresponding Accord grant.  Cross-organisational delivery is
always grant-mediated through the peer-protocol ceremony of
<xref target="IDACCORD"/>; it is never effected by an administrative assignment.</t>
      <t>A delivery substrate <bcp14>MAY</bcp14> decline to implement the <tt>org:</tt> and
<tt>accord:</tt> scope forms in an initial deployment, in which case it
<bcp14>MUST</bcp14> reject a frame carrying an unimplemented scope with the
<tt>scope-unimplemented</tt> error of Section 9 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 <tt>~handle</tt> is associated with one per-handle Server-Sent Events
stream <xref target="HTML-SSE"/>.  A session of the handle opens the
stream by an authenticated request to the delivery substrate
resolved per <xref target="MCPDNS"/>.  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>
        <ol spacing="normal" type="1"><li>
            <t>validates the frame against Sections 3, 4, and 5, rejecting a
malformed frame per Section 9;</t>
          </li>
          <li>
            <t>verifies that <tt>sender_handle</tt> matches the submitting session's
authenticated identity, and that the submitting session is
authorised to address the supplied recipient scope (Section 6);</t>
          </li>
          <li>
            <t>expands the recipient scope against the live subscriptions of
<tt>recipient_handle</tt>; and</t>
          </li>
          <li>
            <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>
          </li>
        </ol>
        <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 <bcp14>SHOULD</bcp14> emit a periodic keepalive comment so that
intermediaries do not close an idle stream, and a subscriber
<bcp14>SHOULD</bcp14> 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 <tt>id</tt> field.  A
subscriber that re-opens a dropped stream <bcp14>MAY</bcp14> supply the <tt>id</tt> of
the last event it received in the <tt>Last-Event-ID</tt> request header.
A delivery substrate <bcp14>MAY</bcp14> honour <tt>Last-Event-ID</tt> 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 <bcp14>MUST NOT</bcp14> 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 <tt>ttl_ms</tt> 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 <bcp14>MAY</bcp14> 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 <tt>filter</tt> for
the reference deployment, and an implementation <bcp14>MAY</bcp14> use any name
consistent with its addressing convention.</t>
      <t>A filter expression is a comma-separated list of <tt>key:value</tt>
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><tt>kind:&lt;kind&gt;</tt></dt>
        <dd>
          <t>Matches frames whose <tt>kind</tt> equals the named catalogue value.  A
value outside the catalogue <bcp14>MUST</bcp14> cause the stream-open request to
be rejected, so that a misspelled <tt>kind</tt> does not silently match
nothing.</t>
        </dd>
        <dt><tt>sender:&lt;~handle&gt;</tt></dt>
        <dd>
          <t>Matches frames whose <tt>sender_handle</tt> equals the named handle.
A value that is not a canonical handle <bcp14>MUST</bcp14> cause the
stream-open request to be rejected.</t>
        </dd>
        <dt><tt>content_type:&lt;value&gt;</tt></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 <tt>content_type</tt> clause; the
axis is an opt-in field filter, not a default-pass.</t>
        </dd>
        <dt><tt>tool:&lt;tool-class&gt;</tt></dt>
        <dd>
          <t>Matches frames emitted by a session of the named tool class.</t>
        </dd>
        <dt><tt>org:&lt;org-handle&gt;</tt></dt>
        <dd>
          <t>Matches frames scoped to the named organisation.</t>
        </dd>
      </dl>
      <t><tt>tool</tt> and <tt>org</tt> are forward-compatibility axes: a deployment that
has not yet implemented the <tt>org:</tt> recipient scope of Section 6
accepts and parses an <tt>org</tt> 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 <bcp14>MUST NOT</bcp14> widen
the stream; the subscriber asked for a narrowing and receives, at
worst, a valid no-op.</t>
      <t>An unrecognised filter axis <bcp14>MUST</bcp14> cause the stream-open request to
be rejected with the <tt>filter-axis-unknown</tt> error of Section 9.  A
filter is a narrowing instruction the subscriber relies on; a
typo that silently disabled the narrowing would be a privacy
failure.</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, <bcp14>MUST</bcp14> return a machine-readable error.  An
error is a JSON object carrying a stable <tt>code</tt> string, a
<tt>field</tt> naming the offending field where one applies, and a
human-readable <tt>message</tt>.  The following codes are specified.</t>
      <dl>
        <dt><tt>envelope-version-unsupported</tt></dt>
        <dd>
          <t>The frame's <tt>envelope_version</tt> is not implemented.</t>
        </dd>
        <dt><tt>kind-unknown</tt></dt>
        <dd>
          <t>The frame's <tt>kind</tt> is outside the fifteen-value catalogue.</t>
        </dd>
        <dt><tt>payload-kind-mismatch</tt></dt>
        <dd>
          <t>The frame's <tt>payload</tt> shape does not match its <tt>kind</tt>.</t>
        </dd>
        <dt><tt>field-missing</tt></dt>
        <dd>
          <t>A <bcp14>REQUIRED</bcp14> field is absent.  <tt>field</tt> names it.</t>
        </dd>
        <dt><tt>field-invalid</tt></dt>
        <dd>
          <t>A field carries a value outside the constraints of Section 3, 4,
or 5.  <tt>field</tt> names it.</t>
        </dd>
        <dt><tt>field-unknown</tt></dt>
        <dd>
          <t>The frame carries a field outside the specified set (Section 12).
<tt>field</tt> names it.</t>
        </dd>
        <dt><tt>sender-identity-mismatch</tt></dt>
        <dd>
          <t>An identity the frame asserts does not match the submitting
session's authenticated identity.  <tt>field</tt> names which one:
<tt>sender_handle</tt>, <tt>acted_by</tt>, or <tt>drafted_with</tt> at the envelope
(Section 3.1, Section 3.2), or an <tt>intent_declare</tt> payload's own
<tt>acted_by</tt> or <tt>drafted_with</tt> where it disagrees with the envelope
pair.  Section 14.1 states the verification each requires.</t>
        </dd>
        <dt><tt>scope-unauthorised</tt></dt>
        <dd>
          <t>The submitting session is not authorised to address the supplied
recipient scope.</t>
        </dd>
        <dt><tt>scope-unimplemented</tt></dt>
        <dd>
          <t>The supplied recipient scope is well-formed but the delivery
substrate does not implement that scope form.</t>
        </dd>
        <dt><tt>filter-axis-unknown</tt></dt>
        <dd>
          <t>A stream-open filter clause names an unrecognised axis.</t>
        </dd>
        <dt><tt>filter-value-invalid</tt></dt>
        <dd>
          <t>A stream-open filter clause carries a value invalid for its
axis.</t>
        </dd>
      </dl>
      <t>A rejection <bcp14>MUST NOT</bcp14> 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"/> tools; an implementation <bcp14>MAY</bcp14> 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>
      <t>A verb name and a frame kind are separate namespaces.  Some verbs
carry the name of the frame they submit, as <tt>agent_broadcast</tt> does.
Others do not, either because the operation submits no frame at all,
as with <tt>agent_subscribe</tt> and <tt>agent_roster</tt>, or because the verb
names the act while the kind names the announcement, as with
<tt>agent_advise</tt> submitting an <tt>agent_advisory</tt> frame and
<tt>agent_lock_acquire</tt> submitting an <tt>agent_lock_request</tt> frame.  A
name that appears in this section and nowhere else in this memo is
therefore a verb, not an undefined kind.</t>
      <dl>
        <dt><tt>agent_send</tt></dt>
        <dd>
          <t>Submits a single frame to a recipient scope.</t>
        </dd>
        <dt><tt>agent_advise</tt></dt>
        <dd>
          <t>Submits an <tt>agent_advisory</tt> frame; a distinct verb from
<tt>agent_send</tt> so a runtime hook can emit an advisory without
selecting a kind.</t>
        </dd>
        <dt><tt>agent_broadcast</tt></dt>
        <dd>
          <t>Submits an <tt>agent_broadcast</tt> frame to a fan-out scope.</t>
        </dd>
        <dt><tt>agent_handover</tt></dt>
        <dd>
          <t>Submits an <tt>agent_handover</tt> frame, retiring the temporary-file
fallback of Section 1.</t>
        </dd>
        <dt><tt>agent_lock_acquire</tt>, <tt>agent_lock_release</tt>, <tt>agent_lease_extend</tt></dt>
        <dd>
          <t>Submit the three advisory lock-shaped frames of Section 4.3.</t>
        </dd>
        <dt><tt>agent_query</tt></dt>
        <dd>
          <t>Submits an <tt>agent_query</tt> frame and returns the query identifier
for the caller to correlate responses against.</t>
        </dd>
        <dt><tt>agent_roster</tt></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><tt>agent_subscribe</tt></dt>
        <dd>
          <t>Opens the per-handle stream with an <bcp14>OPTIONAL</bcp14> 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 five companion Internet-Drafts and
does not introduce a transport, a handle category, or an
attribution slot beyond them.</t>
      <t><xref target="IDPRONOUNS"/> supplies the canonical handle form required of the
<tt>sender_handle</tt> and <tt>recipient_handle</tt> fields (Section 3.1).</t>
      <t><xref target="MCPDNS"/> supplies the <tt>~handle</tt> namespace used by the
<tt>sender_handle</tt>, <tt>recipient_handle</tt>, <tt>acted_by</tt>, and <tt>drafted_with</tt>
fields and by the scope grammar of Section 6, and the discovery
mechanism by which an agent runtime resolves the delivery substrate
for a <tt>~handle</tt> and opens the per-handle stream against it.</t>
      <t><xref target="IDCOMMITS"/> supplies the Sovereign/Instrument trust-tier taxonomy of
those fields, and the tier-structured attribution grammar that
the <tt>acted_by</tt> / <tt>drafted_with</tt> 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"/> supplies the peer-protocol ceremony that mediates the
<tt>accord:</tt> 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"/> describes the coordination approach this memo 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"/>.  The lock-shaped
kinds of Section 4.3 are announcements within the present memo's
delivery model and are not the enforcement mechanism;
<xref target="SUBSTRATE"/> 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 <bcp14>MUST</bcp14> reject it with the
<tt>field-unknown</tt> error of Section 9.  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 <tt>envelope_version</tt>, 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 exhaustive within this memo.  Deployed implementations may carry further frame kinds
and envelope fields that this memo does not define; a receiver that
implements only this memo rejects them.</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"/> carried over the existing Server-Sent Events transport
<xref target="HTML-SSE"/>; 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"/> 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 9 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 <tt>sender_handle</tt> and an <tt>acted_by</tt> /
<tt>drafted_with</tt> attribution pair.  An unauthenticated submission
path would let any party assert any handle.  The delivery
substrate <bcp14>MUST</bcp14> authenticate the submitting session and <bcp14>MUST</bcp14> verify
that <tt>sender_handle</tt> matches the authenticated identity before the
frame enters scope expansion; a frame failing the check is rejected
with <tt>sender-identity-mismatch</tt> (Section 9).  The substrate <bcp14>MUST</bcp14>
additionally verify that the <tt>acted_by</tt> handle is the
Sovereign-tier handle the authenticated session is bound to, so
that an Instrument-tier session cannot assert a Sovereign-tier
<tt>acted_by</tt> other than its own principal's, and <bcp14>MUST</bcp14> verify that
<tt>drafted_with</tt> matches the authenticated session's own
Instrument-tier handle.  A frame failing either check is rejected
with <tt>sender-identity-mismatch</tt> (Section 9).</t>
        <t>These checks bind the envelope-level pair of Section 3.2.  An
<tt>intent_declare</tt> payload (Section 5.13) carries its own <tt>acted_by</tt> and
<tt>drafted_with</tt> pair, and verifying the envelope says nothing about
the copy inside the payload.  The substrate <bcp14>MUST</bcp14> verify that an
<tt>intent_declare</tt> payload's <tt>acted_by</tt> and <tt>drafted_with</tt> are
identical to the envelope pair of the frame carrying it, and <bcp14>MUST</bcp14>
reject a frame whose two copies disagree with
<tt>sender-identity-mismatch</tt> (Section 9).  Without this a party who
correctly authenticates as itself at the envelope may still attribute
the declared intent to another principal, which is the same forgery
the envelope check closes, one field further in.</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 <bcp14>MUST</bcp14> refuse a
scope the submitting session is not authorised to address: a scope
naming a foreign handle, an <tt>org:</tt> scope of an organisation that
does not recognise the sender, or an <tt>accord:</tt> scope absent a
grant.  Authorisation is checked at submission time, before scope
expansion; a frame failing the check is rejected with
<tt>scope-unauthorised</tt> 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 (<tt>org:&lt;org-handle&gt;/members/*</tt>)
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
<bcp14>SHOULD</bcp14> rate-limit submissions per authenticated sender, <bcp14>SHOULD</bcp14> cap
the cardinality a single scope expansion may produce, and <bcp14>SHOULD</bcp14>
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 <bcp14>MAY</bcp14>
treat a high rate of <tt>intent_declare</tt> frames without corresponding
<tt>flush_executed</tt> 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 <tt>agent_lock_request</tt>, <tt>agent_lock_release</tt>, and
<tt>agent_lease_extend</tt> kinds are advisory announcements (Section 4.3).
A reader, or an implementer, who treats them as an enforcement
mechanism introduces a security defect: a recipient that
relies on a received <tt>agent_lock_request</tt> 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, <bcp14>MUST</bcp14> 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 <bcp14>MUST
NOT</bcp14> 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 <tt>frame_id</tt>.  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 <tt>agent_advisory</tt> to make a long-departed session appear active.
The per-frame <tt>ttl_ms</tt> bounds the window in which a recipient
treats a frame's content as operative, and a recipient <bcp14>SHOULD</bcp14>
discard a frame whose <tt>created_at</tt> plus <tt>ttl_ms</tt> lies in the past.
A recipient <bcp14>SHOULD</bcp14> additionally de-duplicate by <tt>frame_id</tt> 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 <tt>ttl_ms</tt>.</t>
      </section>
      <section anchor="diagnostic-frame-information-disclosure">
        <name>Diagnostic-Frame Information Disclosure</name>
        <t>A <tt>peer_diagnostic_request</tt> carries a symptom description and
observation references; a <tt>peer_diagnostic_response</tt> 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 <bcp14>SHOULD</bcp14> scope diagnostic
frames no more broadly than the troubleshooting requires,
preferring point-to-point or its own sessions over an <tt>org:</tt>
scope, and <bcp14>SHOULD</bcp14> 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
<bcp14>SHOULD</bcp14> consider whether to report an exact count or a coarsened
one, and <bcp14>SHOULD</bcp14> restrict the <tt>agent_roster</tt> operation of Section 10,
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 <tt>acted_by</tt> Sovereign-tier handle and a
<tt>drafted_with</tt> 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.  The attribution pair is the
basis on which a recipient assesses a
frame.  A sender should be aware that an <tt>org:</tt> or <tt>accord:</tt>
scope discloses the attribution pair to every member of the
addressed set.  A sender that wishes to limit attribution exposure
<bcp14>SHOULD</bcp14> 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 <bcp14>SHOULD</bcp14> populate <tt>provenance_method</tt> and <tt>provenance_basis</tt>
with tags no more specific than a recipient needs to assess the
frame, and an implementation <bcp14>SHOULD NOT</bcp14> 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
<bcp14>SHOULD</bcp14> be specified by the implementation and surfaced to the
principals whose frames it retains.  The convergence kinds of
Section 4.7 carry a decay horizon (<tt>ttl</tt> on <tt>intent_declare</tt>) so
that the announcement of an intended effect is forgotten once the
window for the effect has closed.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
        <name>Normative References</name>
        <referencegroup anchor="BCP14" target="https://www.rfc-editor.org/info/bcp14" xml:base="https://bib.ietf.org/public/rfc/bibxml-rfcsubseries/reference.BCP.0014.xml">
          <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
            <front>
              <title>Key words for use in RFCs to Indicate Requirement Levels</title>
              <author fullname="S. Bradner" initials="S." surname="Bradner"/>
              <date month="March" year="1997"/>
              <abstract>
                <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="14"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
          </reference>
          <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
            <front>
              <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
              <author fullname="B. Leiba" initials="B." surname="Leiba"/>
              <date month="May" year="2017"/>
              <abstract>
                <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="14"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC3339" target="https://www.rfc-editor.org/info/rfc3339" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3339.xml">
          <front>
            <title>Date and Time on the Internet: Timestamps</title>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <author fullname="C. Newman" initials="C." surname="Newman"/>
            <date month="July" year="2002"/>
            <abstract>
              <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3339"/>
          <seriesInfo name="DOI" value="10.17487/RFC3339"/>
        </reference>
        <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/rfc8259" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8259.xml">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <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: A Peer Ceremony for Bilateral Agreements Between Identity-Substrate-Bound Principals</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="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 anchor="sec-informative-references">
        <name>Informative References</name>
        <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>
        <reference anchor="ALTER-URI" target="https://datatracker.ietf.org/doc/draft-morrison-alter-uri-scheme/">
          <front>
            <title>The 'alter' URI Scheme for Dispatchable ~handle References</title>
            <author fullname="Blake Morrison">
              <organization>Alter Meridian Pty Ltd</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
    

<section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>draft-morrison-agent-channel-fan-out-02 (October 2026):</t>
      <t>Editorial, with one tightening.  No change to any field, kind,
scope form, filter axis, error code or procedure; the context
check of Section 3.3 is made categorical.</t>
      <ul spacing="normal">
        <li>
          <t>Cites BCP 14 as a single reference, replacing the separate
citations of RFC 2119 and RFC 8174.</t>
        </li>
        <li>
          <t>Replaces two examples, one in the convergence kinds and one in the
pointer-fields paragraph, with neutral ones.  The organisation-members scope form is unchanged.</t>
        </li>
        <li>
          <t>Rewords the Abstract so it carries no requirement keyword.</t>
        </li>
        <li>
          <t>Makes the context check of Section 3.3 categorical: the
prohibition no longer depends on sender policy.</t>
        </li>
        <li>
          <t>States that the fifteen-kind catalogue and the closed frame object
are closed within this memo, not a claim about every deployed
implementation (Section 4 and Section 12).</t>
        </li>
        <li>
          <t>Corrects the sources cited for the <tt>~handle</tt> namespace and the
Sovereign and Instrument tiers in Section 2 and Section 11.  They
are defined in <xref target="MCPDNS"/> and <xref target="IDCOMMITS"/>, not <xref target="IDPRONOUNS"/>.
Section 11 now counts five companion memos, not four.</t>
        </li>
        <li>
          <t>Replaces the citation of RFC 8441, which specifies WebSockets over
HTTP/2, with <xref target="HTML-SSE"/> for Server-Sent Events in Section 2,
Section 7 and Section 13, and makes <xref target="HTML-SSE"/> a normative
reference.</t>
        </li>
        <li>
          <t>Adds a reference for RFC 3339 in Section 3.1.  Moves <xref target="SUBSTRATE"/>
and <xref target="MCP"/> to the informative references, since neither is needed
to implement this memo.  Updates the title of <xref target="IDACCORD"/>.</t>
        </li>
        <li>
          <t>Removes the citations from the Abstract.</t>
        </li>
        <li>
          <t>Removes a sentence describing the memo's own scope from the
Introduction, and the Acknowledgements section, which restated
the Introduction.</t>
        </li>
        <li>
          <t>States in Section 2 how a <tt>~handle</tt> corresponds to an <tt>alter:</tt> URI
<xref target="ALTER-URI"/>, and removes self-description and padding from the
prose.  No field, kind, scope form or requirement changes.</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
