<?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-identity-pronouns-03" category="info" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="Identity Pronouns">Identity Pronouns: A Reference-Axis Extension to ~handle Identity Systems</title>
    <seriesInfo name="Internet-Draft" value="draft-morrison-identity-pronouns-03"/>
    <author fullname="Blake Morrison">
      <organization>Alter Meridian Pty Ltd</organization>
      <address>
        <email>blake@truealter.com</email>
      </address>
    </author>
    <date year="2026" month="September" day="30"/>
    <abstract>
      

<t>This document defines an identity pronoun grammar as a reference axis
orthogonal to the <tt>~handle</tt> identity tier taxonomy defined in draft-morrison-mcp-dns-discovery and draft-morrison-identity-attributed-commits.  A pronoun is a session-scoped reference
that resolves client-side to a concrete handle using local session
state before any cryptographic, DNS, or federation operation.  The
entity-class taxonomy (Sovereign, Bot, Instrument) is unchanged; this
specification introduces Absolute vs Pronoun as an orthogonal axis.
A pronoun <bcp14>MUST NOT</bcp14> appear in a capability token, in a DNS record, in
an Accord signature, or in any inter-organisational protocol payload.
The reference implementation defines a single Wave-1 pronoun, <tt>~org</tt>,
that resolves to the concrete handle of the organisation bound to the
caller's current session.  An appendix defines a relative-path
pronoun grammar (e.g. <tt>~./architect</tt>, <tt>~../weaver</tt>) as a non-normative
design surface for future work.  The mechanism is provider-neutral,
introduces no new cryptographic primitive, and adds no load to DNS, capability-token issuers, or federated resolvers.</t>
    </abstract>
  </front>
  <middle>
    

<section anchor="introduction">
      <name>Introduction</name>
      <t>The <tt>~handle</tt> identity primitive defined in <xref target="MCPDNS"/> binds a textual
identifier to a cryptographic principal via DNS TXT records under an
<tt>_alter.</tt> prefix.  The tier taxonomy subsequently locked in
<xref target="IDCOMMITS"/> partitions handles into three parser-enforced entity
classes, Sovereign, Bot, and Instrument, each with distinct
capabilities and invariants.  The three-tier taxonomy classifies what a handle binds to.</t>
      <t>This document covers how a handle is referenced.  A reference may be absolute (a literal handle
transmitted on the wire) or pronominal (a session-scoped reference
resolved by the client before transmission).  Every pronoun resolves
to one of the three entity classes at evaluation time; the entity
taxonomy is unchanged.</t>
      <t>The motivating use case is multi-organisational identity.  A human
agent who is a member of two organisations requires a pronoun that
resolves to "the organisation bound to my current session" without
hard-coding either organisation's concrete handle into the agent's
command surface.  A shell user relies on the same pattern when <tt>~</tt>
        <xref target="POSIX-TILDE"/> resolves to <tt>$HOME</tt> for the invoking user rather than
any specific directory path.  Git <xref target="GIT-REVISIONS"/> relies on <tt>HEAD</tt>
and <tt>@{upstream}</tt> as first-class reflexive references.  CSS
<xref target="CSS-SELECTORS-4"/> relies on <tt>:root</tt> and <tt>:host</tt> as grammar-level
contextual references.  Kubernetes <xref target="K8S-SUBJECTACCESSREVIEW"/> relies
on <tt>:self</tt> as a protocol-level reflexive subject.</t>
      <t>Each of these precedents shares three properties.  The pronoun is
(1) first-class in the surface grammar, (2) resolved before the
underlying protocol sees it, and (3) absent from any payload that
crosses a trust boundary.  This specification adopts the same three
properties for the <tt>~handle</tt> system.</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="RFC2119"/> <xref target="RFC8174"/> 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:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Handle.</strong>  A textual identifier of the form <tt>~</tt> followed by a
label, as defined in <xref target="MCPDNS"/>.</t>
        </li>
        <li>
          <t><strong>Absolute handle.</strong>  A handle whose textual form is identical to
the handle it identifies (e.g. <tt>~alice</tt>, <tt>~example.com</tt>).</t>
        </li>
        <li>
          <t><strong>Pronoun.</strong>  A handle whose textual form is a reserved reference
expression that resolves to a concrete absolute handle via a
defined resolution algorithm (e.g. <tt>~org</tt>, <tt>~me</tt>).</t>
        </li>
        <li>
          <t><strong>Concrete handle.</strong>  The absolute handle produced by resolving a
pronoun; in contrast to the pronoun's surface form.</t>
        </li>
        <li>
          <t><strong>Resolution.</strong>  The operation of replacing a pronoun with its
concrete handle in a given context.</t>
        </li>
        <li>
          <t><strong>Session state.</strong>  The set of bindings available to a client at
the time of resolution, including but not limited to the caller's
sovereign handle, the caller's currently-bound organisation, and
any pronoun lexicon loaded by the caller's client.</t>
        </li>
        <li>
          <t><strong>Wire.</strong>  Any transport boundary crossed by an identity-bearing
payload, including capability tokens, DNS records, MCP tool
invocations, HTTP requests to federated peers, and signatures
attached to Accord documents.</t>
        </li>
      </ul>
    </section>
    <section anchor="the-reference-axis">
      <name>The Reference Axis</name>
      <section anchor="two-orthogonal-axes">
        <name>Two Orthogonal Axes</name>
        <t>The <tt>~handle</tt> identity system has two orthogonal axes.  The first
axis is <strong>entity class</strong>, defined in <xref target="IDCOMMITS"/>:</t>
        <t><tt>
Sovereign | Bot | Instrument
</tt></t>
        <t>The second axis, defined by this document, is <strong>reference type</strong>:</t>
        <t><tt>
Absolute | Pronoun
</tt></t>
        <t>Every handle is a point in the two-dimensional space defined by
these axes.  An Absolute Sovereign is a concrete handle such as
<tt>~alice</tt>.  A Pronoun Sovereign is a reference such as <tt>~org</tt> that
resolves to a concrete Sovereign handle at evaluation time.  An
Absolute Bot is <tt>~example-deps.bot</tt>.  A Pronoun Bot is a reference
such as <tt>~my-runtime.bot</tt> (non-normative example) that resolves to
the concrete Bot handle of the caller's currently-active runtime
daemon.</t>
        <t>A pronoun's entity class is a property
of the concrete handle produced by resolution, not of the pronoun
itself.</t>
      </section>
      <section anchor="wire-invariant">
        <name>Wire Invariant</name>
        <t>A pronoun <bcp14>MUST NOT</bcp14> appear in a typed handle field of any structured
payload that crosses a protocol trust boundary.  Before any of the
following operations, a pronoun appearing in a handle field <bcp14>MUST</bcp14> be
resolved to its concrete handle:</t>
        <ol spacing="normal" type="1"><li>
            <t>Any DNS query or DNS record publication under the <tt>_alter.</tt>
prefix or any other DNS label used for <tt>~handle</tt> resolution.</t>
          </li>
          <li>
            <t>Issuance or verification of any capability token whose subject,
audience, or resource identifier references a handle.</t>
          </li>
          <li>
            <t>Any cryptographic signing or verification operation over an
identity-bearing payload, including but not limited to Accord
documents <xref target="IDACCORD"/>, Identity-Attributed commit trailers
<xref target="IDCOMMITS"/>, attestation statements, and IdentityRank claims.</t>
          </li>
          <li>
            <t>Any MCP tool invocation, HTTP request to a federated peer's
<tt>.well-known/alter</tt> endpoint, or other protocol payload in which
a handle appears as a typed field.</t>
          </li>
          <li>
            <t>Any write to an append-only identity log, continuous
identity-field record, or Signed Tree Head anchor.</t>
          </li>
          <li>
            <t>Any on-chain reference, smart-contract call, or blockchain
anchoring operation (e.g. x402 micropayment routing) that
encodes a handle as a contract parameter.</t>
          </li>
        </ol>
        <t>This enumeration is non-exhaustive.  The governing principle is
that a pronoun is a property of the caller's session context and
<bcp14>MUST NOT</bcp14> be transmitted to any principal who does not share that
session context.</t>
        <t>The Wire Invariant applies to handle fields in structured payloads.
A handle field is a field typed as "handle" in a payload schema or
a positional argument documented as carrying a handle.  The
invariant does NOT apply to natural-language content that
incidentally contains a pronoun token, such as the body of an
alter-to-alter message, a user prompt, or a documentation string.  A client <bcp14>MUST NOT</bcp14> rewrite pronoun tokens appearing inside
free-text content; such content is conveyed verbatim and a remote
reader is responsible for recognising that a pronoun in free text
is scoped to the author's session, not the reader's.  A client <bcp14>MAY</bcp14>
surface a usability warning when free-text content contains pronoun
tokens, but <bcp14>MUST NOT</bcp14> transform the content.</t>
        <t>This invariant is the architectural rationale for defining pronouns
in this document rather than extending the entity-class taxonomy.
Pronouns belong to the client's presentation layer and concrete handles to the protocol.</t>
        <t>A conformant implementation <bcp14>MUST</bcp14> reject any payload received over
the wire in which a pronoun appears in a typed handle field.  This
rejection is a category error analogous to the cross-tier rejection
defined in <xref target="IDCOMMITS"/>.</t>
      </section>
      <section anchor="resolution-algorithm">
        <name>Resolution Algorithm</name>
        <t>Resolution is performed by the client immediately prior to the first
operation listed in the Wire Invariant above.  The resolution
algorithm proceeds in three phases.</t>
        <t>Phase 1 is lexicon lookup.  The client maintains a pronoun lexicon
mapping reserved textual forms to resolver functions.  If the
handle's textual form does not match any entry in the loaded
lexicon, the handle is treated as absolute and no further
resolution is performed.</t>
        <t>Phase 2 is context binding.  The resolver function is invoked with
the current session state.  Session state <bcp14>MUST</bcp14> include at minimum
the caller's sovereign handle; it <bcp14>MAY</bcp14> include the caller's
currently-bound organisation, the caller's currently-held seats,
the current thread identifier, and any other context the pronoun's
resolver requires.</t>
        <t>Phase 3 is substitution.  The resolver returns a concrete handle or
an error.  On success, the pronoun is replaced with the concrete
handle in the payload about to be transmitted.  On error, the
operation that triggered resolution <bcp14>MUST</bcp14> be aborted; the pronoun
<bcp14>MUST NOT</bcp14> be transmitted unresolved as a fallback.</t>
        <t>A conformant resolver <bcp14>MUST</bcp14> be deterministic within a single session:
two successive resolutions of the same pronoun within the same
session state <bcp14>MUST</bcp14> yield the same concrete handle.</t>
      </section>
    </section>
    <section anchor="the-org-pronoun-wave-1">
      <name>The <tt>~org</tt> Pronoun (Wave 1)</name>
      <section anchor="definition">
        <name>Definition</name>
        <t><tt>~org</tt> is a Sovereign-class pronoun that resolves to the concrete
sovereign handle of the organisation currently bound to the caller's
session.</t>
      </section>
      <section anchor="session-binding">
        <name>Session Binding</name>
        <t>The session state that binds <tt>~org</tt> is established at authentication
time (typically by a command of the form <tt>alter login &lt;handle&gt;</tt> or
equivalent).  The binding is recorded in a session-state artefact
local to the caller's environment, and <bcp14>MUST</bcp14> contain at least the
field <tt>current_org</tt> whose value is the concrete sovereign handle of
the bound organisation.  On reference implementations, a file at the
path $HOME/.config/alter/session.json is <bcp14>RECOMMENDED</bcp14>.</t>
        <t>A client <bcp14>MAY</bcp14> provide a <tt>switch</tt> command (e.g. <tt>alter switch &lt;handle&gt;</tt>)
that rewrites <tt>current_org</tt> without requiring re-authentication,
provided the caller is already a verified member of the target
organisation.</t>
      </section>
      <section anchor="resolution-failures">
        <name>Resolution Failures</name>
        <t><tt>~org</tt> resolution <bcp14>MUST</bcp14> fail, and the triggering operation <bcp14>MUST</bcp14> be
aborted, if any of the following hold:</t>
        <ul spacing="normal">
          <li>
            <t>The session-state artefact is absent or unreadable.</t>
          </li>
          <li>
            <t>The <tt>current_org</tt> field is absent, empty, or malformed.</t>
          </li>
          <li>
            <t>The caller is no longer a verified member of the bound
organisation (e.g. revocation has occurred since session start).</t>
          </li>
        </ul>
        <t>A resolution failure is distinct from an absolute handle referencing
a non-existent organisation.  The latter fails at protocol layer;
the former fails at client layer before any wire operation.</t>
      </section>
      <section anchor="example-non-normative">
        <name>Example (non-normative)</name>
        <t>A member bound to <tt>~alter</tt> via <tt>alter login ~alter</tt> invokes a
messaging command:</t>
        <t><tt>
alter message send --to ~org --body "what is due this week?"
</tt></t>
        <t>The client resolves <tt>~org</tt> to <tt>~alter</tt> by reading <tt>current_org</tt> from
session state.  The outbound capability-token subject field carries
<tt>~alter</tt>; the pronoun <tt>~org</tt> does not appear on the wire.</t>
        <t>The same member subsequently invokes <tt>alter switch ~example-co</tt> (an
organisation they are a member of via a separate invitation).  The
next invocation of the same command resolves <tt>~org</tt> to <tt>~example-co</tt>
instead.  Neither invocation requires the member to retype the
concrete handle.</t>
      </section>
    </section>
    <section anchor="pronoun-lexicon-extensibility">
      <name>Pronoun Lexicon Extensibility</name>
      <section anchor="per-client-lexicon">
        <name>Per-Client Lexicon</name>
        <t>An implementation <bcp14>MAY</bcp14> load a pronoun lexicon from any source trusted
by the operator.  The reference implementation ships a minimal
lexicon containing <tt>~org</tt> only.  Additional pronouns <bcp14>MAY</bcp14> be added by
the client without coordination with any other party, provided the
Wire Invariant is preserved.</t>
      </section>
      <section anchor="per-org-lexicon-future-work">
        <name>Per-Org Lexicon (Future Work)</name>
        <t>A future revision of this document is expected to define a DNS-based
mechanism by which an organisation <bcp14>MAY</bcp14> publish a pronoun lexicon as
part of its <tt>_alter.&lt;domain&gt;</tt> record, enabling members of that
organisation to load org-specific pronouns (e.g. <tt>~weaver</tt> resolving
to the current holder of the Weaver seat within that org).  Such
pronouns <bcp14>MUST</bcp14> obey the Wire Invariant: the DNS record carries the
lexicon metadata, not resolved values, and resolution remains a
client-side operation.</t>
        <t>This extension is out of scope for the present document.  The
protocol-version constant defined by <xref target="MCPDNS"/> is not incremented.</t>
      </section>
    </section>
    <section anchor="relative-path-pronoun-grammar-appendix-non-normative">
      <name>Relative-Path Pronoun Grammar (Appendix, Non-Normative)</name>
      <t>This appendix describes a relative-path pronoun grammar as a design
surface for future work.  The grammar is non-normative in the
present document; implementations <bcp14>SHOULD NOT</bcp14> emit these forms in
Wave 1.</t>
      <t>The grammar borrows from POSIX path semantics <xref target="POSIX-TILDE"/>:</t>
      <ul spacing="normal">
        <li>
          <t><tt>~./&lt;label&gt;</tt> selects <tt>&lt;label&gt;</tt> within the scope of the caller's
current organisation (e.g. <tt>~./architect</tt> resolves to the current
holder of the Architect seat within <tt>current_org</tt>).</t>
        </li>
        <li>
          <t><tt>~../&lt;label&gt;</tt> selects <tt>&lt;label&gt;</tt> within the scope of the parent
organisation in the caller's current Accord chain (e.g.
<tt>~../compliance</tt> resolves to the compliance role of the Accord
counter-party).</t>
        </li>
        <li>
          <t><tt>~/&lt;label&gt;</tt> is reserved and <bcp14>MUST NOT</bcp14> be used; the syntax would be
ambiguous with respect to absolute handle forms.</t>
        </li>
      </ul>
      <t>Relative-path pronouns, if standardised in a future revision, obey
the Wire Invariant identically to <tt>~org</tt>: resolution happens
client-side and the concrete handle is what crosses any wire.</t>
      <t>The grammar is filed as a design surface rather than a Wave-1 normative construct because its purpose is
<strong>scope-disambiguation across multiple loaded lexicons</strong>, not mere
capability.  A per-org lexicon (Section 5.2) addressing a pronoun
such as <tt>~architect</tt> is sufficient when a member is bound to a
single organisation.  In a multi-organisational scenario, however,
a member whose client loads the lexicons of two organisations both
defining <tt>~architect</tt> faces a collision: which organisation's
architect does the bare pronoun resolve to?  A relative-path form
(<tt>~./architect</tt> = architect of current organisation; <tt>~../architect</tt>
= architect of the Accord counter-party) makes the scope explicit
at the call site, eliminating the ambiguity without requiring the
client to adopt a precedence rule that may not match caller intent.</t>
      <t>The grammar is deferred to a future revision for three reasons.
First, no implementation deployment has yet exercised the
multi-lexicon scenario that motivates the grammar.  Second, the
parent-organisation scope-chain semantics (<tt>~../</tt>) require
coordination with the Accord Protocol <xref target="IDACCORD"/> that has not yet
been specified in sufficient detail.  Third, filing the grammar
early without implementation evidence risks committing to
path-traversal semantics that a future implementation may reveal
to be incorrect.  Filing the grammar as a non-normative appendix
records the design space without committing any implementation to it.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document introduces no new IANA registry.  Pronoun lexicons
are client-local artefacts; they are not enumerated by any registry.</t>
      <t>A future revision of this document that defines a DNS-based per-org
lexicon mechanism (see Section 5.2) will require a <tt>lexicon</tt> TXT
record sub-field to be registered in the <tt>_alter.</tt> record schema
defined by <xref target="MCPDNS"/>.  That registration is out of scope for the
present document.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="pronoun-spoofing">
        <name>Pronoun Spoofing</name>
        <t>An attacker capable of writing to the caller's session-state
artefact (e.g. the session.json file under $HOME/.config/alter/)
<bcp14>MAY</bcp14> cause <tt>~org</tt> to resolve to an attacker-controlled handle.  This attack is a local
privilege-escalation class and is outside the scope of this
specification; implementations <bcp14>SHOULD</bcp14> protect session-state
artefacts with the same filesystem permissions applied to other
credential artefacts.</t>
      </section>
      <section anchor="pronoun-leakage">
        <name>Pronoun Leakage</name>
        <t>An implementation that mistakenly transmits a pronoun on the wire
(e.g. by failing to resolve before token issuance) creates two
hazards: (1) the receiving peer rejects the payload as specified in
Section 3.2, exposing the caller's misconfiguration; (2) the
pronoun's textual form may leak information about the caller's
client topology.  Conformant implementations <bcp14>MUST</bcp14> resolve pronouns
before any wire operation; test suites <bcp14>SHOULD</bcp14> include explicit
coverage of Wire Invariant violations.</t>
      </section>
      <section anchor="binding-freshness">
        <name>Binding Freshness</name>
        <t><tt>~org</tt> resolution depends on session state that <bcp14>MAY</bcp14> have been
written arbitrarily long before the current invocation.  A client
<bcp14>MAY</bcp14> cache the membership proof; if the caller has been revoked from
the bound organisation since session start, a stale binding could
cause a resolution that the organisation's membership system would
reject at protocol layer.  Implementations <bcp14>SHOULD</bcp14> re-verify
membership freshness at resolution time when the resolved handle is
about to be used for a high-privilege operation (e.g. Accord
signature).</t>
      </section>
      <section anchor="cross-tenant-confusion">
        <name>Cross-Tenant Confusion</name>
        <t>A member of two organisations who invokes a command against <tt>~org</tt>
must be unambiguous about which organisation is bound.  Clients
<bcp14>SHOULD</bcp14> surface the currently-bound organisation in user-visible
status (a status line, prompt decoration, or equivalent) so that
the member cannot mistakenly send a message intended for one
organisation to the other.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section is to be removed before final publication.</t>
      <t>A reference implementation of this specification is planned in the
~alter open-source codebase; no implementation of the pronoun
resolver exists at the time of this -03 revision.  Implementation
is expected to be distributed across three surfaces:</t>
      <ol spacing="normal" type="1"><li>
          <t>The <tt>alter-cli</tt> command-line interface will maintain the
<tt>current_org</tt> field in a session.json file under
$HOME/.config/alter/ via <tt>alter login</tt> and <tt>alter switch</tt>.</t>
        </li>
        <li>
          <t>The personal alter MCP bridge (<tt>mcp-alter</tt>) will load the
minimal Wave-1 lexicon and perform resolution prior to any
outbound MCP call.</t>
        </li>
        <li>
          <t>Client-side slash-command wrappers will consume the resolver via the personal alter bridge
and <bcp14>MUST NOT</bcp14> implement their own pronoun grammar.</t>
        </li>
      </ol>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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>
        <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="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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="POSIX-TILDE" target="https://pubs.opengroup.org/onlinepubs/9699919799/">
          <front>
            <title>IEEE Std 1003.1-2017, Shell Command Language, Section 2.6.1 Tilde Expansion</title>
            <author>
              <organization/>
            </author>
            <date year="2017"/>
          </front>
        </reference>
        <reference anchor="GIT-REVISIONS" target="https://git-scm.com/docs/gitrevisions">
          <front>
            <title>gitrevisions(7) -- specifying revisions and ranges for Git</title>
            <author>
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="CSS-SELECTORS-4" target="https://www.w3.org/TR/selectors-4/">
          <front>
            <title>Selectors Level 4 (:root, :host)</title>
            <author>
              <organization/>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="K8S-SUBJECTACCESSREVIEW" target="https://kubernetes.io/docs/reference/access-authn-authz/authorization/">
          <front>
            <title>Kubernetes Authorization -- SelfSubjectAccessReview</title>
            <author>
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
      </references>
    
    

<section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This document grew out of a design conversation identifying that
the three-tier handle taxonomy of <xref target="IDCOMMITS"/> answered <em>what kind
of thing</em> a handle binds to but did not answer <em>how the handle is
referenced</em>.  The realisation that pronouns are a reference axis
orthogonal to entity class, rather than a fourth tier, is the basis of this specification.</t>
    </section>
  </back>
</rfc>
