<?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.4.10) -->


<!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-01" 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="August" day="09"/>





    <abstract>


<?line 71?>

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

<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 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"></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
core 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="RFC2119"></xref> <xref target="RFC8174"></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 9).</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 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><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 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 <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 9;</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 9.  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>An identity the frame asserts does not match the submitting
session's authenticated identity.  <spanx style="verb">field</spanx> names which one:
<spanx style="verb">sender_handle</spanx>, <spanx style="verb">acted_by</spanx>, or <spanx style="verb">drafted_with</spanx> at the envelope
(Section 3.1, Section 3.2), or an <spanx style="verb">intent_declare</spanx> payload's own
<spanx style="verb">acted_by</spanx> or <spanx style="verb">drafted_with</spanx> where it disagrees with the envelope
pair.  Section 14.1 states the verification each requires.</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>

<t>A verb name and a frame kind are separate namespaces.  Some verbs
carry the name of the frame they submit, as <spanx style="verb">agent_broadcast</spanx> does.
Others do not, either because the operation submits no frame at all,
as with <spanx style="verb">agent_subscribe</spanx> and <spanx style="verb">agent_roster</spanx>, or because the verb
names the act while the kind names the announcement, as with
<spanx style="verb">agent_advise</spanx> submitting an <spanx style="verb">agent_advisory</spanx> frame and
<spanx style="verb">agent_lock_acquire</spanx> submitting an <spanx style="verb">agent_lock_request</spanx> 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><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.3.</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.3 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 9.  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 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 <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 9).  The substrate MUST
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, and MUST verify that
<spanx style="verb">drafted_with</spanx> matches the authenticated session's own
Instrument-tier handle.  A frame failing either check is rejected
with <spanx style="verb">sender-identity-mismatch</spanx> (Section 9).</t>

<t>These checks bind the envelope-level pair of Section 3.2.  An
<spanx style="verb">intent_declare</spanx> payload (Section 5.13) carries its own <spanx style="verb">acted_by</spanx> and
<spanx style="verb">drafted_with</spanx> pair, and verifying the envelope says nothing about
the copy inside the payload.  The substrate MUST verify that an
<spanx style="verb">intent_declare</spanx> payload's <spanx style="verb">acted_by</spanx> and <spanx style="verb">drafted_with</spanx> are
identical to the envelope pair of the frame carrying it, and MUST
reject a frame whose two copies disagree with
<spanx style="verb">sender-identity-mismatch</spanx> (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 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.3).
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 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 <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 1169?>

<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
central insight behind this specification and its companion
memo <xref target="SUBSTRATE"></xref>.</t>

</section>


  </back>

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

-->

</rfc>
