<?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.35 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-morrison-identity-attributed-commits-00" category="info" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="Identity-Attributed Commits">Identity-Attributed Git Commits via Tier-Structured Trailers</title>
    <seriesInfo name="Internet-Draft" value="draft-morrison-identity-attributed-commits-00"/>
    <author fullname="Blake Morrison">
      <organization>Alter Meridian Pty Ltd</organization>
      <address>
        <postal>
          <city>Cronulla, NSW</city>
          <country>Australia</country>
        </postal>
        <email>blake@truealter.com</email>
      </address>
    </author>
    <date year="2026" month="April"/>
    <abstract>
      <?line 87?>

<t>This document defines a git commit trailer grammar for
identity-attributed contributions using the <tt>~handle</tt> identity
primitive defined in <xref target="MCPDNS"/>.  The grammar binds sovereign actors,
automated bots, and AI instruments to specific commits via three
tier-structured trailers (<tt>Acted-By</tt>, <tt>Executed-By</tt>, <tt>Drafted-With</tt>)
and three optional cryptographic trailers (<tt>Identity-Signature</tt>,
<tt>Identity-Key-Id</tt>, <tt>Identity-Anchor</tt>).  The signature is computed
with Ed25519 over the commit's tree hash rather than its commit
hash, preserving attribution across rebase, cherry-pick, and squash
merge operations.  Conformant parsers reject cross-tier category
errors (e.g., an Instrument-tier handle in an <tt>Acted-By</tt> slot) as
malformed.  The mechanism is provider-neutral, depends only on DNS
<xref target="RFC1035"/> and the <tt>~handle</tt> resolution algorithm of <xref target="MCPDNS"/>, and
requires no central authority or platform-specific verification
service.</t>
    </abstract>
  </front>
  <middle>
    <?line 105?>

<section anchor="status-of-this-memo">
      <name>Status of This Memo</name>
      <t>This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.</t>
      <t>Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF).  Note that other groups may also distribute
working documents as Internet-Drafts.  The list of current
Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.</t>
      <t>Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time.  It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."</t>
      <t>This Internet-Draft will expire on October 9, 2026.</t>
    </section>
    <section anchor="copyright-notice">
      <name>Copyright Notice</name>
      <t>Copyright (c) 2026 IETF Trust and the persons identified as the
document authors.  All rights reserved.</t>
      <t>This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document.</t>
    </section>
    <section anchor="introduction">
      <name>Introduction</name>
      <section anchor="problem-statement">
        <name>Problem Statement</name>
        <t>Modern source-control workflows produce commits whose authorship is
shared between human contributors, automated bots, and AI
instruments operating under varying degrees of delegation.  The
prevailing mechanisms for attaching identity to a commit are
fragmented and individually inadequate for this mixed reality:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Git Signed-off-by <xref target="DCO"/>.</strong>  A legal attestation of contribution
rights under the Developer Certificate of Origin.  It carries no
cryptographic identity proof, no tier distinction, and no
resolution to a verifiable key.  A <tt>Signed-off-by:</tt> line is
whatever the committer types.</t>
          </li>
          <li>
            <t><strong>Git commit signing (<tt>git commit -S</tt>).</strong>  Cryptographically
binding, but the key model is provider-locked: GPG keys uploaded
to GitHub, SSH keys uploaded to GitLab, with each platform
maintaining its own key directory.  There is no DNS-resolved key
path and no canonical identity-to-key mapping.</t>
          </li>
          <li>
            <t><strong>Sigstore / gitsign <xref target="GITSIGN"/>.</strong>  A keyless signing path using
short-lived certificates issued from OIDC identity tokens and
recorded in the Rekor transparency log.  The cryptography is
sound, but the identity layer is bound to the operator of the
OIDC provider.  Migrating between providers re-roots identity.
No tier structure exists for non-sovereign signers.</t>
          </li>
          <li>
            <t><strong>Anthropic's <tt>Co-Authored-By: Claude</tt> convention
<xref target="ANTHROPIC-COAUTHOR"/>.</strong>  An informal text convention for AI
attribution.  It is unverifiable, ungrammatical with respect to
the underlying identity layer (the model is not a co-author in
the sovereign sense), and offers no resolution path.  Any
committer can paste any string.</t>
          </li>
        </ul>
        <t>None of the above provides a provider-neutral, DNS-resolvable,
tier-structured identity binding for the human/bot/AI contribution
mix that has become typical of agent-augmented codebases.</t>
      </section>
      <section anchor="design-goals">
        <name>Design Goals</name>
        <t>This document defines a trailer grammar with the following goals:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Provider-neutral.</strong>  No dependency on any specific identity
provider, certificate authority, or transparency log operator.</t>
          </li>
          <li>
            <t><strong>DNS-resolvable.</strong>  Public key material is reached via the
<tt>~handle</tt> resolution algorithm of <xref target="MCPDNS"/>, which itself
resolves to a DNS TXT record under the handle's policy zone.</t>
          </li>
          <li>
            <t><strong>Tier-structured.</strong>  Three distinct trailer slots correspond to
three distinct identity tiers: Sovereign (humans and
organisations with cryptographic agency), Bot (autonomous
agents under scoped delegation), and Instrument (AI models and
tool classes that lack keys).  Each slot accepts only handles
from its corresponding tier.</t>
          </li>
          <li>
            <t><strong>Cryptographically verifiable at the sovereign layer.</strong>
Sovereign attribution is bound by an Ed25519 signature whose
public key is reachable from DNS without prior trust
establishment.</t>
          </li>
          <li>
            <t><strong>Category-safe against misattribution.</strong>  Conformant parsers
reject cross-tier handle placement (e.g., an Instrument handle
in an <tt>Acted-By</tt> slot) as a structural grammar violation, not a
policy decision.  Misattribution is detected at parse time.</t>
          </li>
        </ol>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>This document specifies:</t>
        <ul spacing="normal">
          <li>
            <t>The trailer grammar in ABNF <xref target="RFC5234"/>.</t>
          </li>
          <li>
            <t>Multiplicity, placement, and ordering rules.</t>
          </li>
          <li>
            <t>The Ed25519 signature algorithm over the commit's tree hash.</t>
          </li>
          <li>
            <t>Verifier behaviour for accepting, rejecting, and surfacing
attribution states.</t>
          </li>
          <li>
            <t>Security considerations specific to the trailer mechanism.</t>
          </li>
        </ul>
        <t>This document does NOT specify:</t>
        <ul spacing="normal">
          <li>
            <t>The <tt>~handle</tt> identity primitive itself.  This is defined by
<xref target="MCPDNS"/> and incorporated here by reference.</t>
          </li>
          <li>
            <t>The full normative tier taxonomy.  This is maintained as an
internal ALTER doctrine in <xref target="ALTER-DID8"/>.  Section 3 of this
document restates the taxonomy briefly so the spec is
standalone-readable.</t>
          </li>
          <li>
            <t>Sovereign key custody, derivation, and recovery.  These are
addressed by <xref target="ALTER-KEY-CUSTODY"/>.</t>
          </li>
          <li>
            <t>The IdentityLog transparency-log mechanism backing the optional
<tt>Identity-Anchor</tt> trailer.  A future document will define it.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY",
and "OPTIONAL" in this document are to be interpreted as described
in BCP 14 <xref target="RFC8174">RFC2119</xref> when, and only when, they appear in
all capitals, as shown here.</t>
      </section>
      <section anchor="definitions">
        <name>Definitions</name>
        <dl>
          <dt>Handle</dt>
          <dd>
            <t>A <tt>~</tt>-prefixed identifier per <xref target="MCPDNS"/>.  Handles are the unit
of identity addressing in this document.  Resolution proceeds
by extracting the policy zone from the handle and querying the
zone's <tt>_alter</tt> underscore-prefixed TXT record.</t>
          </dd>
          <dt>Sovereign Tier Handle</dt>
          <dd>
            <t>A handle representing a human individual or formal organisation
with direct cryptographic agency.  Holds its own private key.
Can sign.  Examples: <tt>~blake</tt>, <tt>~truealter.com</tt>, <tt>~anthropic.com</tt>.</t>
          </dd>
          <dt>Bot Tier Handle</dt>
          <dd>
            <t>A handle representing an autonomous agent acting under scoped
delegation from a sovereign.  Holds a scoped key whose authority
is bounded by the sovereign's published delegation policy.  Can
counter-sign within the delegation envelope.  Examples:
<tt>~dependabot.bot</tt>, <tt>~github.merge.bot</tt>.</t>
          </dd>
          <dt>Instrument Tier Handle</dt>
          <dd>
            <t>A handle representing an AI model, API endpoint, or tool class.
Does NOT hold cryptographic keys.  Cannot sign.  Exists as a
DNS-resolvable descriptive label only, suitable for attaching
provenance metadata to a contribution without making any
identity claim that requires cryptographic backing.  Examples:
<tt>~cc-opus-4.6</tt>, <tt>~gpt-5-turbo</tt>, <tt>~gemini-ultra-2</tt>.</t>
          </dd>
          <dt>Tree Hash</dt>
          <dd>
            <t>The SHA-1 (or SHA-256 in git's newer object format) hash of a
git tree object, as produced by <tt>git write-tree</tt> against the
staged index, or equivalently by <tt>git cat-file -p &lt;commit&gt;^{tree}</tt>
on an existing commit.  The tree hash is a function of the
committed content and is invariant under operations that
preserve the tree (e.g., rebase, cherry-pick, squash merge into
an empty parent).</t>
          </dd>
          <dt>Tier-Slot Grammar</dt>
          <dd>
            <t>The constraint that a given trailer name accepts handles only
from its corresponding tier.  Cross-tier placement is a
grammatical error, not a policy violation.</t>
          </dd>
          <dt>Conformant Verifier</dt>
          <dd>
            <t>A consumer of commit trailers that implements the parsing,
rejection, and signature-verification rules defined in
Section 7.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="identity-tier-taxonomy-informative-reference">
      <name>Identity Tier Taxonomy (Informative Reference)</name>
      <t>The trailer grammar in Section 4 partitions handles into three
tiers.  The normative reference for the tier taxonomy is the
internal ALTER doctrine <xref target="ALTER-DID8"/>.  This section restates the
taxonomy briefly so this document is standalone-readable.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Tier</th>
            <th align="left">Cryptographic Agency</th>
            <th align="left">Trailer Slot</th>
            <th align="left">Examples</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Sovereign</td>
            <td align="left">Holds own key, signs</td>
            <td align="left">
              <tt>Acted-By:</tt></td>
            <td align="left">
              <tt>~blake</tt>, <tt>~truealter.com</tt>, <tt>~anthropic.com</tt></td>
          </tr>
          <tr>
            <td align="left">Bot</td>
            <td align="left">Scoped delegated key</td>
            <td align="left">
              <tt>Executed-By:</tt></td>
            <td align="left">
              <tt>~dependabot.bot</tt>, <tt>~github.merge.bot</tt></td>
          </tr>
          <tr>
            <td align="left">Instrument</td>
            <td align="left">No key, no signature</td>
            <td align="left">
              <tt>Drafted-With:</tt></td>
            <td align="left">
              <tt>~cc-opus-4.6</tt>, <tt>~gpt-5-turbo</tt>, <tt>~gemini-ultra-2</tt></td>
          </tr>
        </tbody>
      </table>
      <t>The tier of a given handle is determined by DNS metadata published
under its <tt>_alter</tt> TXT record per <xref target="MCPDNS"/>.  Implementations MAY
treat the tier assignments above as authoritative when they
correspond to DNS-published tiers; implementations MUST NOT promote
or demote a handle's tier without re-resolving DNS.</t>
      <t>The key invariant is that Instrument-tier handles cannot make
attestational claims.  An <tt>Drafted-With:</tt> trailer is informational
provenance metadata, not a verifiable identity binding.</t>
    </section>
    <section anchor="trailer-grammar-normative">
      <name>Trailer Grammar (Normative)</name>
      <section anchor="abnf">
        <name>ABNF</name>
        <t>The following ABNF <xref target="RFC5234"/> defines the syntax of each trailer.
Implementations MUST accept exactly this grammar.</t>
        <t>```
acted-by-trailer     = "Acted-By:" SP sovereign-handle CRLF
executed-by-trailer  = "Executed-By:" SP bot-handle CRLF
drafted-with-trailer = "Drafted-With:" SP instrument-handle CRLF
identity-signature   = "Identity-Signature:" SP "ed25519:"
                       base64url-signature CRLF
identity-key-id      = "Identity-Key-Id:" SP did-alter-uri CRLF
identity-anchor      = "Identity-Anchor:" SP "identitylog://"
                       timestamp "Z/sth/" seq "#" commit-id CRLF</t>
        <t>sovereign-handle    = "~" handle-label
bot-handle          = "~" handle-label ".bot"
instrument-handle   = "~" handle-label
                      ; tier determined by DNS resolution per <xref target="MCPDNS"/></t>
        <t>handle-label        = 1<em>63( ALPHA / DIGIT / "-" / "_" / "." )
did-alter-uri       = "did:alter:" sovereign-handle "#" key-id
key-id              = 1</em>64( ALPHA / DIGIT / "-" / "<em>" )
base64url-signature = 86( base64url-char ) "=="
                      ; 64-byte Ed25519 signature, base64url-encoded
base64url-char      = ALPHA / DIGIT / "-" / "</em>"
timestamp           = date-fullyear "-" date-month "-" date-mday
                      "T" time-hour ":" time-minute ":" time-second
seq                 = 1*DIGIT
commit-id           = 40HEXDIG / 64HEXDIG
                      ; SHA-1 or SHA-256 commit identifier
```</t>
        <t>The terminals <tt>ALPHA</tt>, <tt>DIGIT</tt>, <tt>HEXDIG</tt>, <tt>SP</tt>, and <tt>CRLF</tt> are
imported from <xref target="RFC5234"/>.</t>
        <t>The <tt>bot-handle</tt> rule requires the <tt>.bot</tt> suffix, which makes the
tier syntactically distinguishable for Bot trailers.  Sovereign
and Instrument handles share the same surface syntax; their tier
distinction is enforced by DNS resolution per <xref target="MCPDNS"/> and by
verifier-side rejection of cross-slot placement (Section 7).</t>
      </section>
      <section anchor="placement">
        <name>Placement</name>
        <t>Trailers MUST appear in the commit message footer block per the
git trailer convention <xref target="GIT-TRAILERS"/>.  The footer block is
separated from the commit message body by exactly one blank line.
Each trailer occupies one line of the footer block in the form
<tt>Key: Value</tt>.</t>
        <t>A commit message that places trailers anywhere other than the
footer block (e.g., interleaved with body paragraphs) is malformed
under this specification.  Conformant verifiers MUST refuse to
parse trailers from outside the footer block.</t>
      </section>
      <section anchor="ordering">
        <name>Ordering</name>
        <t>Trailers SHOULD appear in the following canonical order:</t>
        <ol spacing="normal" type="1"><li>
            <t><tt>Acted-By:</tt></t>
          </li>
          <li>
            <t><tt>Executed-By:</tt></t>
          </li>
          <li>
            <t><tt>Drafted-With:</tt></t>
          </li>
          <li>
            <t><tt>Identity-Signature:</tt></t>
          </li>
          <li>
            <t><tt>Identity-Key-Id:</tt></t>
          </li>
          <li>
            <t><tt>Identity-Anchor:</tt></t>
          </li>
        </ol>
        <t>Verifiers MUST accept trailers in any order, but emitters SHOULD
follow the canonical order to support diff-based review.  The
canonical order is also the order most natural for a human reader:
sovereign first, then delegate, then instruments, then proofs.</t>
      </section>
      <section anchor="multiplicity-rules">
        <name>Multiplicity Rules</name>
        <t>The following multiplicity constraints apply to a single commit:</t>
        <ul spacing="normal">
          <li>
            <t><strong><tt>Acted-By:</tt></strong> - Exactly one trailer per signed commit.  A
squash-merged commit MAY contain multiple <tt>Acted-By:</tt> trailers
aggregating the contributor handles of the squashed commits;
this is the only case in which multiple <tt>Acted-By:</tt> trailers
are permitted.  Verifiers MUST treat each aggregated <tt>Acted-By:</tt>
as a separate sovereign attribution that requires its own
signature pair if cryptographic verification is desired.</t>
          </li>
          <li>
            <t><strong><tt>Executed-By:</tt></strong> - At most one trailer per commit.  A commit
is executed by at most one bot in a single delegation context.</t>
          </li>
          <li>
            <t><strong><tt>Drafted-With:</tt></strong> - Zero or more trailers per commit.
Multi-instrument drafting (e.g., a commit drafted partly with
<tt>~cc-opus-4.6</tt> and partly with <tt>~gpt-5-turbo</tt>) is permitted and
expected.  Multiple <tt>Drafted-With:</tt> trailers on a single commit
form an unordered set; order of appearance is not semantically
significant and verifiers MUST NOT attribute differential
authority to earlier-appearing entries.</t>
          </li>
          <li>
            <t><strong><tt>Identity-Signature:</tt> and <tt>Identity-Key-Id:</tt></strong> - These two
trailers MUST appear together or not at all.  An
<tt>Identity-Signature:</tt> without an <tt>Identity-Key-Id:</tt> is malformed,
and vice versa.  When present, they bind to the most recent
preceding <tt>Acted-By:</tt> trailer in the trailer block.</t>
          </li>
          <li>
            <t><strong><tt>Identity-Anchor:</tt></strong> - OPTIONAL in this version of the
specification.  Implementations targeting Rung-3-compliant
attribution (transparency-log-anchored) MUST emit it; all
other implementations MAY omit it.  Future revisions of this
document may upgrade the requirement.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="signature-algorithm-normative">
      <name>Signature Algorithm (Normative)</name>
      <section anchor="algorithm">
        <name>Algorithm</name>
        <t>The signature algorithm is Ed25519 <xref target="RFC8032"/>, which uses SHA-512
internally and produces a 64-byte signature over an arbitrary
input message.  Implementations MUST use Ed25519 and MUST NOT use
Ed25519ph or Ed25519ctx variants.</t>
      </section>
      <section anchor="signed-payload">
        <name>Signed Payload</name>
        <t>The signed payload is the raw byte representation of the commit's
tree hash:</t>
        <ul spacing="normal">
          <li>
            <t>For repositories using SHA-1 git objects, the payload is the
20-byte SHA-1 tree hash.</t>
          </li>
          <li>
            <t>For repositories using SHA-256 git objects, the payload is the
32-byte SHA-256 tree hash.</t>
          </li>
        </ul>
        <t>The tree hash is obtained by <tt>git write-tree</tt> at signing time
(operating on the staged index) or equivalently by
<tt>git cat-file -p &lt;commit&gt;^{tree}</tt> on an existing commit.  The hash
is signed in its raw binary form, not as a hex-encoded string.</t>
      </section>
      <section anchor="rationale-for-tree-hash-signing">
        <name>Rationale for Tree-Hash Signing</name>
        <t>The decision to sign the tree hash rather than the commit hash is
load-bearing for the operational viability of the scheme.</t>
        <t>A commit hash is a function of the commit's tree, its parent
commits, its author, its committer, its timestamps, and its
message - including, recursively, any trailers in the message.
Signing the commit hash directly creates a chicken-and-egg problem
(the trailer would be part of the input to its own signature) and,
more fundamentally, invalidates the signature on any
history-rewriting operation: rebase, cherry-pick, squash merge,
amend, and filter-branch all change the commit hash while
preserving the tree.</t>
        <t>A tree hash is a function of the committed content alone.  It is
stable across rebase, cherry-pick, and squash merge into an empty
parent (the squash result has the same tree as the union of the
input trees if no conflicts arose).  Signing the tree hash
preserves attribution across the full range of git workflows that
modern teams depend on, at the cost of being unable to distinguish
between two commits with the same tree but different histories.</t>
        <t>This trade-off is acceptable: git's own merkle structure ensures
content integrity, the parent chain is independently auditable
through git itself, and the cases in which two distinct commits
share a tree are precisely the cases in which attribution should
be preserved (a clean rebase is the same content by the same
author).</t>
        <t>Where stronger anchoring is required, the optional
<tt>Identity-Anchor:</tt> trailer binds the signature to a specific
commit-id within a transparency log entry, recovering commit-level
identity at the cost of an external dependency.</t>
      </section>
      <section anchor="signature-format">
        <name>Signature Format</name>
        <t>The signature is encoded for placement in the trailer as:</t>
        <t><tt>
ed25519:&lt;base64url-signature&gt;
</tt></t>
        <t>The base64url encoding follows <xref target="RFC4648"/> Section 5 (URL- and
filename-safe alphabet) without line breaks.  A 64-byte Ed25519
signature encodes to 86 base64url characters plus two <tt>=</tt> padding
characters, for a total of 88 characters in the trailer value
following the <tt>ed25519:</tt> prefix.</t>
      </section>
      <section anchor="key-derivation-and-rotation">
        <name>Key Derivation and Rotation</name>
        <t>Sovereign keys are derived out-of-band; their public components
are published under the sovereign's <tt>_alter</tt> DNS record per
<xref target="MCPDNS"/>.  Key derivation, custody, and recovery procedures are
out of scope for this document.  This document treats the
sovereign key as a pre-existing Ed25519 keypair whose public
component is reachable via the DNS-resolved path of Section 6.1.</t>
        <t>Key rotation is supported by the <tt>Identity-Key-Id:</tt> trailer, which
identifies which key was used to sign a given commit.  A
sovereign's DNS record MAY publish multiple historical keys
indexed by <tt>key-id</tt>, allowing verifiers to validate older commits
against the key that was current at the time of signing even
after the sovereign has rotated their primary signing key.</t>
      </section>
    </section>
    <section anchor="dns-resolution-normative-reference">
      <name>DNS Resolution (Normative Reference)</name>
      <section anchor="sovereign-key-resolution">
        <name>Sovereign Key Resolution</name>
        <t>The sovereign handle's public key is resolved via the <xref target="MCPDNS"/>
          <tt>_alter.&lt;zone&gt;</tt> DNS record mechanism.  Verifiers MUST use the
resolution algorithm specified in <xref target="MCPDNS"/> to obtain the public
key corresponding to the <tt>key-id</tt> named in the <tt>Identity-Key-Id:</tt>
trailer.</t>
        <t>Verifiers MUST require DNSSEC <xref target="RFC4034"/> validation on the
<tt>_alter.&lt;zone&gt;</tt> lookup when DNSSEC is available for the zone.
For zones lacking DNSSEC deployment, verifiers MAY accept the
HTTPS <tt>.well-known</tt> fallback resolution path defined in <xref target="MCPDNS"/>,
provided the TLS chain validates against the policy domain.</t>
      </section>
      <section anchor="instrument-metadata-resolution">
        <name>Instrument Metadata Resolution</name>
        <t>Instrument-handle metadata (provider, version, deprecation
status, capability profile) is resolved via the same <tt>_alter</tt>
mechanism, but the resolved record is descriptive only.  Verifiers
SHOULD treat Instrument metadata as informational provenance and
MUST NOT treat any field of an Instrument record as an
attestational claim.  Instrument handles cannot cryptographically
sign commits; their DNS records advertise what the model is, not
that the commit was authorised by it.</t>
      </section>
    </section>
    <section anchor="verifier-behaviour-normative">
      <name>Verifier Behaviour (Normative)</name>
      <t>A conformant verifier MUST perform the following steps in order:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Parse all trailers from the footer block.</strong>  Trailers
appearing outside the footer block MUST be ignored.</t>
        </li>
        <li>
          <t><strong>Reject cross-slot category errors.</strong>  For each trailer,
resolve the handle's tier per <xref target="MCPDNS"/> (or, where DNS
resolution is unavailable, fall back to the syntactic tier
indicators of Section 4.1).  If any handle appears in a slot
other than its tier's slot - for example, an Instrument-tier
handle in an <tt>Acted-By:</tt> slot, or a Sovereign-tier handle in
a <tt>Drafted-With:</tt> slot - the commit is malformed and the
verifier MUST reject it as a category error.  The error
message SHOULD identify the offending trailer by name.</t>
        </li>
        <li>
          <t><strong>Verify signatures, if present.</strong>  If <tt>Identity-Signature:</tt>
and <tt>Identity-Key-Id:</tt> are present, the verifier MUST:  </t>
          <t>
a. Extract the <tt>key-id</tt> from the <tt>Identity-Key-Id:</tt> trailer.
b. Resolve the corresponding public key by querying the
   <tt>Acted-By:</tt> handle's <tt>_alter</tt> record per Section 6.1.
c. Compute the commit's tree hash via <tt>git cat-file</tt> or an
   equivalent.
d. Verify the Ed25519 signature against the tree hash using
   the resolved public key.  </t>
          <t>
If signature verification fails, the verifier MUST mark the
commit as <tt>unverified</tt> and MUST NOT report it as having a valid
sovereign attribution.</t>
        </li>
        <li>
          <t><strong>Verify the transparency anchor, if present.</strong>  If
<tt>Identity-Anchor:</tt> is present, the verifier SHOULD verify the
anchor against the referenced log according to the log's own
verification protocol.  Failure to verify the anchor MUST be
surfaced to the user but MUST NOT silently downgrade the
commit's verified status.</t>
        </li>
      </ol>
      <t>A conformant verifier SHOULD additionally:</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Cache handle-to-key resolutions.</strong>  DNS lookups for the same
handle within a single verification pass should be performed
at most once.  Cache TTL SHOULD respect the DNS record TTL.</t>
        </li>
        <li>
          <t><strong>Distinguish attribution states in user-facing output.</strong>
Verifiers SHOULD present three distinct states to users:  </t>
          <ul spacing="normal">
            <li>
              <t><tt>verified</tt> - <tt>Acted-By:</tt> present with a valid
<tt>Identity-Signature:</tt> resolving to the published key.</t>
            </li>
            <li>
              <t><tt>claimed</tt> - <tt>Acted-By:</tt> present without a signature, or
with a signature whose key cannot be resolved.</t>
            </li>
            <li>
              <t><tt>anonymous</tt> - no <tt>Acted-By:</tt> present.</t>
            </li>
          </ul>
          <t>
Conflating these states is a security defect.</t>
        </li>
      </ol>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="sovereign-key-compromise">
        <name>Sovereign Key Compromise</name>
        <t>If a sovereign's signing key is compromised, the sovereign rotates
the key and publishes the new key under a new <tt>key-id</tt> in their
<tt>_alter</tt> record.  The previous key SHOULD remain published as a
historical record so that commits signed during its validity
period continue to verify.  Sovereigns SHOULD also publish
revocation metadata distinguishing keys that were rotated for
hygiene from keys that were rotated due to compromise; verifiers
encountering a compromise-revoked key SHOULD warn the operator
that any commit signed by that key is suspect even if the
signature still validates mathematically.</t>
      </section>
      <section anchor="instrument-handle-spoofing">
        <name>Instrument Handle Spoofing</name>
        <t>Because Instrument handles cannot sign, the <tt>Drafted-With:</tt>
trailer is an unverified provenance claim.  A malicious committer
can always paste <tt>Drafted-With: ~cc-opus-4.6</tt> into a commit they
hand-wrote.  Implementations MUST treat Instrument attribution as
informational, not attestational, and MUST NOT extend trust
decisions on the basis of an Instrument trailer alone.  This is
explicit by design: the Instrument tier is a documentation
mechanism, not an attestation mechanism.  The protection against
Instrument-trailer abuse is the sovereign signature on
<tt>Acted-By:</tt>, which binds a real cryptographic identity to the
overall commit and to the committer's claim about what tools they
used.</t>
      </section>
      <section anchor="dns-poisoning">
        <name>DNS Poisoning</name>
        <t>A successful DNS poisoning attack against the <tt>_alter.&lt;zone&gt;</tt>
zone could redirect verifiers to a substitute public key under
the attacker's control.  This risk is mitigated by:</t>
        <ul spacing="normal">
          <li>
            <t>DNSSEC validation when available.  Verifiers SHOULD require
DNSSEC on the policy zone and MAY refuse to verify against an
unsigned zone.</t>
          </li>
          <li>
            <t>The HTTPS <tt>.well-known</tt> fallback path defined in <xref target="MCPDNS"/>,
which terminates the trust chain at the TLS certificate of
the policy domain.</t>
          </li>
          <li>
            <t>Independent transparency-log anchoring via the optional
<tt>Identity-Anchor:</tt> trailer, which provides a second source of
truth that is unaffected by DNS poisoning.</t>
          </li>
        </ul>
      </section>
      <section anchor="tree-hash-collision">
        <name>Tree-Hash Collision</name>
        <t>Most git repositories currently use SHA-1 for tree hashing.
SHA-1 is cryptographically weakened (SHAttered, 2017) for
collision resistance, and tree-hash signing inherits that
weakness.  Implementations operating in high-assurance contexts
SHOULD migrate to SHA-256 git objects, which use SHA-256 for the
tree hash and eliminate the SHA-1 weakness.  Until such migration
is complete, verifiers SHOULD record both the tree hash and the
commit hash in any local audit log so that any future SHA-1
collision attack against the verifier's history is detectable
ex post.</t>
      </section>
      <section anchor="squash-merge-trailer-aggregation-race">
        <name>Squash-Merge Trailer Aggregation Race</name>
        <t>The aggregation of contributor <tt>Acted-By:</tt> trailers into a
squash-merged commit is an implementation responsibility of the
hosting platform or merge tool.  If aggregation is skipped or
fails silently, the trailers from individual contributor commits
are lost, and the merge commit appears to have a single sovereign
when it actually had several.  Implementations performing squash
merges MUST validate that contributor trailers have been
aggregated before completing the merge, and SHOULD refuse to
complete a squash that loses trailer attribution.  This is an
implementation concern, not a protocol-level issue, but it is
listed here because the operational consequence of a missing
trailer is a silent loss of attribution.</t>
      </section>
      <section anchor="key-custody-at-the-commit-signing-boundary">
        <name>Key Custody at the Commit-Signing Boundary</name>
        <t>The pre-commit hook (or analogous integration point) that invokes
the signing operation is a trust-sensitive boundary: the hook
runs in the unprivileged developer process and may have access
to the sovereign's private key.  Implementations SHOULD route
signing through a privileged helper - for example, a unix domain
socket exposed by a dedicated signing daemon, or a hardware
authenticator using WebAuthn PRF - rather than reading the
private key directly from unprivileged process memory.  Direct
key handling in the developer process is acceptable for
prototyping but MUST NOT be relied upon in production
deployments where commit attribution carries weight.</t>
      </section>
      <section anchor="negative-attribution-risk">
        <name>Negative-Attribution Risk</name>
        <t>A committer may deliberately omit the <tt>Drafted-With:</tt> trailer to
conceal AI-instrument involvement in a contribution.  This is
detectable only by out-of-band evidence and is not addressable at
the protocol layer.  Where AI-disclosure obligations exist (for
example, in regulated software development contexts), they SHOULD
be enforced at the policy layer with this protocol providing the
truthful path for honest committers, not the verification path
for dishonest ones.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="git-trailer-name-registration">
        <name>Git Trailer Name Registration</name>
        <t>At the time of writing, IANA does not maintain a registry of git
commit trailer names.  If such a registry is established, this
document requests registration of the following trailer names
with reference to this specification:</t>
        <ul spacing="normal">
          <li>
            <t><tt>Acted-By</tt></t>
          </li>
          <li>
            <t><tt>Executed-By</tt></t>
          </li>
          <li>
            <t><tt>Drafted-With</tt></t>
          </li>
          <li>
            <t><tt>Identity-Signature</tt></t>
          </li>
          <li>
            <t><tt>Identity-Key-Id</tt></t>
          </li>
          <li>
            <t><tt>Identity-Anchor</tt></t>
          </li>
        </ul>
        <t>Until a formal registry exists, this document recommends that
implementers coordinate via the ALTER discovery community and
treat the trailer names defined here as reserved for the
identity-attributed commit grammar.</t>
      </section>
      <section anchor="uri-scheme-dependencies">
        <name>URI Scheme Dependencies</name>
        <t>This document depends on the <tt>did:alter:</tt> URI scheme via the
<tt>Identity-Key-Id:</tt> trailer.  The <tt>alter:</tt> URI scheme is the
subject of IANA considerations in <xref target="MCPDNS"/>; this document does
not separately register it.</t>
        <t>The <tt>identitylog://</tt> URI scheme used by the optional
<tt>Identity-Anchor:</tt> trailer is reserved by this document for
future registration when a normative IdentityLog specification is
published.  Implementations encountering <tt>identitylog://</tt> URIs
without a registered scheme MUST treat the anchor as an opaque
reference and SHOULD NOT attempt resolution.</t>
      </section>
      <section anchor="no-other-iana-actions">
        <name>No Other IANA Actions</name>
        <t>This document requests no other IANA actions.</t>
      </section>
    </section>
    <section anchor="relationship-to-existing-standards">
      <name>Relationship to Existing Standards</name>
      <t>The trailer grammar defined here is intended to coexist with
prior commit-attribution mechanisms rather than to replace them.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Mechanism</th>
            <th align="left">Purpose</th>
            <th align="left">Coexistence with this spec</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Git <tt>Signed-off-by</tt> <xref target="DCO"/></td>
            <td align="left">Legal attestation of contribution rights</td>
            <td align="left">Orthogonal.  A commit MAY carry both a <tt>Signed-off-by:</tt> and an <tt>Acted-By:</tt> trailer.  They answer different questions.</td>
          </tr>
          <tr>
            <td align="left">Git commit signing (<tt>git commit -S</tt>)</td>
            <td align="left">Cryptographic identity via GPG/SSH key directories</td>
            <td align="left">Orthogonal.  A commit MAY be both GPG-signed and <tt>Acted-By</tt>-signed.  Verifiers handle each path independently.</td>
          </tr>
          <tr>
            <td align="left">Sigstore / gitsign <xref target="GITSIGN"/></td>
            <td align="left">Keyless cryptographic identity via OIDC</td>
            <td align="left">Architecturally adjacent.  Different identity provider model (OIDC + Rekor vs DNS-resolved DID + IdentityLog).  May coexist.</td>
          </tr>
          <tr>
            <td align="left">Anthropic <tt>Co-Authored-By: Claude</tt> <xref target="ANTHROPIC-COAUTHOR"/></td>
            <td align="left">Informal AI co-authorship convention</td>
            <td align="left">Superseded for AI attribution by <tt>Drafted-With:</tt> (Instrument tier).  Implementations MAY emit both during a transition window.</td>
          </tr>
        </tbody>
      </table>
      <t>The Instrument tier is novel to this specification and has no
analogue in any existing mechanism.  Sigstore identifies signers;
the DCO attests to legal rights; the Anthropic convention is a
plain-text marker.  None expresses the structural distinction
between a sovereign actor, a delegated bot, and a non-signing
instrument.  This distinction is the load-bearing contribution of
the present document.</t>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author thanks Drew Dylan (co-founder, Alter Meridian Pty Ltd)
for the cosmological framing of identity tiers, and Jake McCallum
(Sentinel) for adversarial review of the tier-slot grammar and
the cross-tier rejection rules.  The members of the ALTER
founding circle provided extensive review and pressure-testing of
earlier drafts.  Additional contributors will be named at review
time.</t>
    </section>
    <section anchor="references">
      <name>References</name>
      <section anchor="normative-references">
        <name>Normative References</name>
        <t><xref target="RFC1035"/>  Mockapetris, P., "Domain names - implementation and
           specification", STD 13, RFC 1035, November 1987.</t>
        <t><xref target="RFC2119"/>  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119, March 1997.</t>
        <t><xref target="RFC4034"/>  Arends, R., et al., "Resource Records for the DNS
           Security Extensions", RFC 4034, March 2005.</t>
        <t><xref target="RFC4648"/>  Josefsson, S., "The Base16, Base32, and Base64 Data
           Encodings", RFC 4648, October 2006.</t>
        <t><xref target="RFC5234"/>  Crocker, D. and P. Overell, "Augmented BNF for Syntax
           Specifications: ABNF", STD 68, RFC 5234, January 2008.</t>
        <t><xref target="RFC8032"/>  Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital
           Signature Algorithm (EdDSA)", RFC 8032, January 2017.</t>
        <t><xref target="RFC8174"/>  Leiba, B., "Ambiguity of Uppercase vs Lowercase in
           RFC 2119 Key Words", BCP 14, RFC 8174, May 2017.</t>
        <t><xref target="RFC8552"/>  Crocker, D., "Scoped Interpretation of DNS Resource
           Records through 'Underscored' Naming of Attribute
           Leaves", BCP 222, RFC 8552, March 2019.</t>
        <t><xref target="RFC8785"/>  Rundgren, A., et al., "JSON Canonicalization Scheme
           (JCS)", RFC 8785, June 2020.</t>
        <t><xref target="MCPDNS"/>   Morrison, B., "Discovery of Model Context Protocol
           Servers via DNS TXT Records",
           draft-morrison-mcp-dns-discovery, work in progress.</t>
      </section>
      <section anchor="informative-references">
        <name>Informative References</name>
        <t><xref target="RFC7942"/>  Sheffer, Y. and A. Farrel, "Improving Awareness of
           Running Code: The Implementation Status Section",
           BCP 205, RFC 7942, July 2016.</t>
        <t><xref target="DCO"/>              "Developer Certificate of Origin v1.1",
                   https://developercertificate.org/, 2004.</t>
        <t><xref target="GIT-TRAILERS"/>     "git-interpret-trailers(1)",
                   https://git-scm.com/docs/git-interpret-trailers.</t>
        <t><xref target="GITSIGN"/>          "gitsign: Keyless Git Signing",
                   https://docs.sigstore.dev/cosign/signing/gitsign/.</t>
        <t><xref target="SIGSTORE"/>         "Sigstore: Software Signing for Everybody",
                   https://www.sigstore.dev/.</t>
        <t><xref target="ANTHROPIC-COAUTHOR"/> Anthropic, "Co-Authored-By: Claude - convention
                     for AI-assisted commits".</t>
        <t><xref target="ALTER-DID8"/>       Morrison, B., "ALTER Decision Register entry
                   D-ID8 - Three-Tier Handle Taxonomy", internal,
                   2026.</t>
        <t><xref target="ALTER-DDW4"/>       Morrison, B., "ALTER Decision Register entry
                   D-DW4 - Governance Break Invariant", internal,
                   2026.</t>
        <t><xref target="ALTER-KEY-CUSTODY"/> Morrison, B., "ALTER Key Custody Doctrine -
                    WebAuthn PRF Dual-Enrol", internal, 2026.</t>
        <t><xref target="MORRISON-IFT"/>     Morrison, B., "Identity Field Theory: Toward a
                   Physics of Being Known",
                   https://doi.org/10.6084/m9.figshare.31951383,
                   2026.</t>
      </section>
    </section>
    <section anchor="authors-address">
      <name>Author's Address</name>
      <t>Blake Morrison
Alter Meridian Pty Ltd
Cronulla, NSW 2230
Australia</t>
      <t>Email: blake@truealter.com
URI: https://truealter.com</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC1035" target="https://www.rfc-editor.org/info/rfc1035" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml">
          <front>
            <title>Domain names - implementation and specification</title>
            <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
            <date month="November" year="1987"/>
            <abstract>
              <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1035"/>
          <seriesInfo name="DOI" value="10.17487/RFC1035"/>
        </reference>
        <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="RFC4034" target="https://www.rfc-editor.org/info/rfc4034" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4034.xml">
          <front>
            <title>Resource Records for the DNS Security Extensions</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of resource records and protocol modifications that provide source authentication for the DNS. This document defines the public key (DNSKEY), delegation signer (DS), resource record digital signature (RRSIG), and authenticated denial of existence (NSEC) resource records. The purpose and format of each resource record is described in detail, and an example of each resource record is given.</t>
              <t>This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4034"/>
          <seriesInfo name="DOI" value="10.17487/RFC4034"/>
        </reference>
        <reference anchor="RFC4648" target="https://www.rfc-editor.org/info/rfc4648" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4648.xml">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5234" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5234.xml">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC8032" target="https://www.rfc-editor.org/info/rfc8032" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8032.xml">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </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="RFC8552" target="https://www.rfc-editor.org/info/rfc8552" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8552.xml">
          <front>
            <title>Scoped Interpretation of DNS Resource Records through "Underscored" Naming of Attribute Leaves</title>
            <author fullname="D. Crocker" initials="D." surname="Crocker"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Formally, any DNS Resource Record (RR) may occur under any domain name. However, some services use an operational convention for defining specific interpretations of an RRset by locating the records in a DNS branch under the parent domain to which the RRset actually applies. The top of this subordinate branch is defined by a naming convention that uses a reserved node name, which begins with the underscore character (e.g., "_name"). The underscored naming construct defines a semantic scope for DNS record types that are associated with the parent domain above the underscored branch. This specification explores the nature of this DNS usage and defines the "Underscored and Globally Scoped DNS Node Names" registry with IANA. The purpose of this registry is to avoid collisions resulting from the use of the same underscored name for different services.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="222"/>
          <seriesInfo name="RFC" value="8552"/>
          <seriesInfo name="DOI" value="10.17487/RFC8552"/>
        </reference>
        <reference anchor="RFC8785" target="https://www.rfc-editor.org/info/rfc8785" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8785.xml">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7942" target="https://www.rfc-editor.org/info/rfc7942" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7942.xml">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="SIGSTORE" target="https://www.sigstore.dev/">
          <front>
            <title>Sigstore: Software Signing for Everybody</title>
            <author>
              <organization/>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="GITSIGN" target="https://docs.sigstore.dev/cosign/signing/gitsign/">
          <front>
            <title>gitsign: Keyless Git Signing</title>
            <author>
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="DCO" target="https://developercertificate.org/">
          <front>
            <title>Developer Certificate of Origin v1.1</title>
            <author>
              <organization/>
            </author>
            <date year="2004"/>
          </front>
        </reference>
        <reference anchor="GIT-TRAILERS" target="https://git-scm.com/docs/git-interpret-trailers">
          <front>
            <title>git-interpret-trailers(1)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="ANTHROPIC-COAUTHOR" target="https://docs.anthropic.com/claude/docs/co-authored-by-convention">
          <front>
            <title>Co-Authored-By: Claude - convention for AI-assisted commits</title>
            <author>
              <organization>Anthropic</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="ALTER-DID8" target="internal">
          <front>
            <title>ALTER Decision Register entry D-ID8 - Three-Tier Handle Taxonomy</title>
            <author fullname="Blake Morrison">
              <organization>Alter Meridian Pty Ltd</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="ALTER-DDW4" target="internal">
          <front>
            <title>ALTER Decision Register entry D-DW4 - Governance Break Invariant</title>
            <author fullname="Blake Morrison">
              <organization>Alter Meridian Pty Ltd</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="ALTER-KEY-CUSTODY" target="internal">
          <front>
            <title>ALTER Key Custody Doctrine - WebAuthn PRF Dual-Enrol</title>
            <author fullname="Blake Morrison">
              <organization>Alter Meridian Pty Ltd</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="MORRISON-IFT" target="https://doi.org/10.6084/m9.figshare.31951383">
          <front>
            <title>Identity Field Theory: Toward a Physics of Being Known</title>
            <author fullname="Blake Morrison">
              <organization>Alter Meridian Pty Ltd</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8196XMbR5bn9/orMtgfTHpR4KHDEt3uGIqkZHbr4JJ0ezwK
77AAJIAaFqrQdZDCrMd/+7zfey+PAkBJjp2JWUbYIoGqPF6++8o0TZM2bwt7
bHYuJrak31fpSdvW+ahr7cS8yVtzWi0WeduY+zwzN7mt0+u27sZtV9P3N3WW
F7ZudpJsNKrt/SPD6BA7yaQal9mCZpvU2bRNF1Vd501Vprl7KfMvpWN5KT04
SCZZS+8cHRw9Tw+eJmP6a1bVq2OTl9MqyZf1saElNe3RwcHLg6Mkybp2XtXH
iTEp/WfMtCsKmfZVkd1Z806n5S+repaV+b9nbV6Vx+akaG1t3tk6n+RZaS7b
lXnbTvjBMa3v2JzWVUnDZQPz/vpn+bzqyharOaEl1FmRZ/yxXRBojs0IM/4T
Lc9mGHpIu0qSsqoXNOG9xRqvXp8eHjx5pr8eHR6+1F+fHjx56n59/vSF/vrs
yH/64uDJkfv18Dv/6bNn/tPvXvC4704vz95fH/O63HGf5c24urf1ylRTgsjE
FnRMZWs/teayrtpqXBXm2tb0hBw9DWBu/vnGXNlxVU/oLDFYgPQX4fwHIN1m
9cy2x2betsvmeH+fjj8jyI7vCH65badDGmmfUGl/DYsW42U6KZt04ra2z8MF
7EkSYEwf9t+9fMrgur54c33z4eq8D6XrfNa0VU2/XlfT9iGrraGPyrycGRrI
nGOWUTVZ7Wxd+MPDw7DREYYTe7+2niP6883FDc38vj/rjPCeZjk2f7OrwjYN
06HOu30mgkbTn2pcYYj9Rt7a1yHXVvCE/jw7/bCGGfbeFtWSTufU1m0+zUFw
wJIPdT7LS3N/ODx8ZBXuzXF4kQ+rNyuRMO87vbk6uXh7fnW9sfk0J0Ssl7Vt
01Y5zO7h3vY58XgzXoCwGAr729+nd0/e3/x49eHy4jQ9/XDy082PH676E59W
6QnjMzGfVyD1Iusm1qRE4eU9+FNV8qGfXKRZ0+QNONvYcbZNaqB9E5aX7byu
lvn48VPL3CO8hTFPKjsZV2nmFjRapWEZ/UN8hr29vTm/Ss8uzl7098SfmzM7
zhss/8rOsO7aWLAsc5bSC7TBm3ltbQrmbn7MyklhzU32qSqrxeq/k8wjuoyB
w2dXZkXY1dnPT//YrugF2tUb8IAyK8fWvKptdmcuyvusplW0/z/s6m/nv6Sn
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
9Z8UWoqm9ocAAA==

-->

</rfc>
