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


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

<!ENTITY RFC1035 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml">
<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC4034 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4034.xml">
<!ENTITY RFC4648 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4648.xml">
<!ENTITY RFC5234 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5234.xml">
<!ENTITY RFC8032 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8032.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8552 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8552.xml">
<!ENTITY RFC8785 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8785.xml">
<!ENTITY RFC7942 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7942.xml">
]>


<rfc ipr="trust200902" docName="draft-morrison-identity-attributed-commits-01" category="info">
  <front>
    <title abbrev="Identity-Attributed Commits">Identity-Attributed Git Commits via Tier-Structured Trailers</title>

    <author fullname="Blake Morrison">
      <organization>Alter Meridian Pty Ltd</organization>
      <address>
        <email>blake@truealter.com</email>
      </address>
    </author>

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

    
    
    

    <abstract>


<?line 64?>

<t>This document defines a git commit trailer grammar for
identity-attributed contributions using the <spanx style="verb">~handle</spanx> identity
primitive defined in <xref target="MCPDNS"></xref>.  The grammar binds sovereign actors,
automated bots, and AI instruments to specific commits via three
tier-structured trailers (<spanx style="verb">Acted-By</spanx>, <spanx style="verb">Executed-By</spanx>, <spanx style="verb">Drafted-With</spanx>)
and three optional cryptographic trailers (<spanx style="verb">Identity-Signature</spanx>,
<spanx style="verb">Identity-Key-Id</spanx>, <spanx style="verb">Identity-Anchor</spanx>).  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 <spanx style="verb">Acted-By</spanx> slot) as
malformed.  The mechanism is provider-neutral, depends only on DNS
<xref target="RFC1035"></xref> and the <spanx style="verb">~handle</spanx> resolution algorithm of <xref target="MCPDNS"></xref>, and
requires no central authority or platform-specific verification
service.</t>



    </abstract>



  </front>

  <middle>


<?line 82?>

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

<t><list style="symbols">
  <t><strong>Git Signed-off-by <xref target="DCO"></xref>.</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 <spanx style="verb">Signed-off-by:</spanx> line is
whatever the committer types.</t>
  <t><strong>Git commit signing (<spanx style="verb">git commit -S</spanx>).</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>
  <t><strong>Sigstore / gitsign <xref target="GITSIGN"></xref>.</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>
  <t><strong>Anthropic's <spanx style="verb">Co-Authored-By: Claude</spanx> convention
<xref target="ANTHROPIC-COAUTHOR"></xref>.</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>
</list></t>

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

<t><list style="numbers" type="1">
  <t><strong>Provider-neutral.</strong>  No dependency on any specific identity
provider, certificate authority, or transparency log operator.</t>
  <t><strong>DNS-resolvable.</strong>  Public key material is reached via the
<spanx style="verb">~handle</spanx> resolution algorithm of <xref target="MCPDNS"></xref>, which itself
resolves to a DNS TXT record under the handle's policy zone.</t>
  <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>
  <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>
  <t><strong>Category-safe against misattribution.</strong>  Conformant parsers
reject cross-tier handle placement (e.g., an Instrument handle
in an <spanx style="verb">Acted-By</spanx> slot) as a structural grammar violation, not a
policy decision.  Misattribution is detected at parse time.</t>
</list></t>

</section>
<section anchor="scope"><name>Scope</name>

<t>This document specifies:</t>

<t><list style="symbols">
  <t>The trailer grammar in ABNF <xref target="RFC5234"></xref>.</t>
  <t>Multiplicity, placement, and ordering rules.</t>
  <t>The Ed25519 signature algorithm over the commit's tree hash.</t>
  <t>Verifier behaviour for accepting, rejecting, and surfacing
attribution states.</t>
  <t>Security considerations specific to the trailer mechanism.</t>
</list></t>

<t>This document does NOT specify:</t>

<t><list style="symbols">
  <t>The <spanx style="verb">~handle</spanx> identity primitive itself.  This is defined by
<xref target="MCPDNS"></xref> and incorporated here by reference.</t>
  <t>The full doctrinal background of the tier taxonomy.  Section 3
of this document restates the taxonomy in sufficient detail for
the spec to be standalone-readable.</t>
  <t>Sovereign key custody, derivation, and recovery.  These are out
of scope for this document; implementations are expected to
apply standard hardware-backed-key custody practice as
summarised in Section 8.</t>
  <t>The IdentityLog transparency-log mechanism backing the optional
<spanx style="verb">Identity-Anchor</spanx> trailer.  A future document will define it.</t>
</list></t>

</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 <spanx style="verb">~</spanx>-prefixed identifier per <xref target="MCPDNS"></xref>.  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 <spanx style="verb">_alter</spanx> 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: <spanx style="verb">~alice</spanx>, <spanx style="verb">~example.com</spanx>, <spanx style="verb">~example-co.net</spanx>.</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:
<spanx style="verb">~example-deps.bot</spanx>, <spanx style="verb">~example-merge.bot</spanx>.</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:
<spanx style="verb">~example-model-1</spanx>, <spanx style="verb">~example-model-2</spanx>, <spanx style="verb">~example-model-3</spanx>.</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 <spanx style="verb">git write-tree</spanx> against the
staged index, or equivalently by <spanx style="verb">git cat-file -p &lt;commit&gt;^{tree}</spanx>
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.  This section defines the taxonomy normatively for the
purposes of this specification.  Downstream attribution grammars
that reuse the taxonomy reference this document.</t>

<texttable>
      <ttcol align='left'>Tier</ttcol>
      <ttcol align='left'>Cryptographic Agency</ttcol>
      <ttcol align='left'>Trailer Slot</ttcol>
      <ttcol align='left'>Examples</ttcol>
      <c>Sovereign</c>
      <c>Holds own key, signs</c>
      <c><spanx style="verb">Acted-By:</spanx></c>
      <c><spanx style="verb">~alice</spanx>, <spanx style="verb">~example.com</spanx>, <spanx style="verb">~example-co.net</spanx></c>
      <c>Bot</c>
      <c>Scoped delegated key</c>
      <c><spanx style="verb">Executed-By:</spanx></c>
      <c><spanx style="verb">~example-deps.bot</spanx>, <spanx style="verb">~example-merge.bot</spanx></c>
      <c>Instrument</c>
      <c>No key, no signature</c>
      <c><spanx style="verb">Drafted-With:</spanx></c>
      <c><spanx style="verb">~example-model-1</spanx>, <spanx style="verb">~example-model-2</spanx>, <spanx style="verb">~example-model-3</spanx></c>
</texttable>

<t>The tier of a given handle is determined by DNS metadata published
under its <spanx style="verb">_alter</spanx> TXT record per <xref target="MCPDNS"></xref>.  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 <spanx style="verb">Drafted-With:</spanx> 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"></xref> 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"></xref></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 <spanx style="verb">ALPHA</spanx>, <spanx style="verb">DIGIT</spanx>, <spanx style="verb">HEXDIG</spanx>, <spanx style="verb">SP</spanx>, and <spanx style="verb">CRLF</spanx> are
imported from <xref target="RFC5234"></xref>.</t>

<t>The <spanx style="verb">bot-handle</spanx> rule requires the <spanx style="verb">.bot</spanx> 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"></xref> 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"></xref>.  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
<spanx style="verb">Key: Value</spanx>.</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>

<t><list style="numbers" type="1">
  <t><spanx style="verb">Acted-By:</spanx></t>
  <t><spanx style="verb">Executed-By:</spanx></t>
  <t><spanx style="verb">Drafted-With:</spanx></t>
  <t><spanx style="verb">Identity-Signature:</spanx></t>
  <t><spanx style="verb">Identity-Key-Id:</spanx></t>
  <t><spanx style="verb">Identity-Anchor:</spanx></t>
</list></t>

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

<t><list style="symbols">
  <t><strong><spanx style="verb">Acted-By:</spanx></strong> - Exactly one trailer per signed commit.  A
squash-merged commit MAY contain multiple <spanx style="verb">Acted-By:</spanx> trailers
aggregating the contributor handles of the squashed commits;
this is the only case in which multiple <spanx style="verb">Acted-By:</spanx> trailers
are permitted.  Verifiers MUST treat each aggregated <spanx style="verb">Acted-By:</spanx>
as a separate sovereign attribution that requires its own
signature pair if cryptographic verification is desired.</t>
  <t><strong><spanx style="verb">Executed-By:</spanx></strong> - At most one trailer per commit.  A commit
is executed by at most one bot in a single delegation context.</t>
  <t><strong><spanx style="verb">Drafted-With:</spanx></strong> - Zero or more trailers per commit.
Multi-instrument drafting (e.g., a commit drafted partly with
<spanx style="verb">~example-model-1</spanx> and partly with <spanx style="verb">~example-model-2</spanx>) is
permitted and expected.  Multiple <spanx style="verb">Drafted-With:</spanx> 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>
  <t><strong><spanx style="verb">Identity-Signature:</spanx> and <spanx style="verb">Identity-Key-Id:</spanx></strong> - These two
trailers MUST appear together or not at all.  An
<spanx style="verb">Identity-Signature:</spanx> without an <spanx style="verb">Identity-Key-Id:</spanx> is malformed,
and vice versa.  When present, they bind to the most recent
preceding <spanx style="verb">Acted-By:</spanx> trailer in the trailer block.</t>
  <t><strong><spanx style="verb">Identity-Anchor:</spanx></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>
</list></t>

</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"></xref>, 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>

<t><list style="symbols">
  <t>For repositories using SHA-1 git objects, the payload is the
20-byte SHA-1 tree hash.</t>
  <t>For repositories using SHA-256 git objects, the payload is the
32-byte SHA-256 tree hash.</t>
</list></t>

<t>The tree hash is obtained by <spanx style="verb">git write-tree</spanx> at signing time
(operating on the staged index) or equivalently by
<spanx style="verb">git cat-file -p &lt;commit&gt;^{tree}</spanx> 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
<spanx style="verb">Identity-Anchor:</spanx> 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><spanx style="verb">
ed25519:&lt;base64url-signature&gt;
</spanx></t>

<t>The base64url encoding follows <xref target="RFC4648"></xref> Section 5 (URL- and
filename-safe alphabet) without line breaks.  A 64-byte Ed25519
signature encodes to 86 base64url characters plus two <spanx style="verb">=</spanx> padding
characters, for a total of 88 characters in the trailer value
following the <spanx style="verb">ed25519:</spanx> 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 <spanx style="verb">_alter</spanx> DNS record per
<xref target="MCPDNS"></xref>.  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 <spanx style="verb">Identity-Key-Id:</spanx> trailer, which
identifies which key was used to sign a given commit.  A
sovereign's DNS record MAY publish multiple historical keys
indexed by <spanx style="verb">key-id</spanx>, 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"></xref>
<spanx style="verb">_alter.&lt;zone&gt;</spanx> DNS record mechanism.  Verifiers MUST use the
resolution algorithm specified in <xref target="MCPDNS"></xref> to obtain the public
key corresponding to the <spanx style="verb">key-id</spanx> named in the <spanx style="verb">Identity-Key-Id:</spanx>
trailer.</t>

<t>Verifiers MUST require DNSSEC <xref target="RFC4034"></xref> validation on the
<spanx style="verb">_alter.&lt;zone&gt;</spanx> lookup when DNSSEC is available for the zone.
For zones lacking DNSSEC deployment, verifiers MAY accept the
HTTPS <spanx style="verb">.well-known</spanx> fallback resolution path defined in <xref target="MCPDNS"></xref>,
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 <spanx style="verb">_alter</spanx>
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>

<t><list style="numbers" type="1">
  <t><strong>Parse all trailers from the footer block.</strong>  Trailers
appearing outside the footer block MUST be ignored.</t>
  <t><strong>Reject cross-slot category errors.</strong>  For each trailer,
resolve the handle's tier per <xref target="MCPDNS"></xref> (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 <spanx style="verb">Acted-By:</spanx> slot, or a Sovereign-tier handle in
a <spanx style="verb">Drafted-With:</spanx> 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>
  <t><strong>Verify signatures, if present.</strong>  If <spanx style="verb">Identity-Signature:</spanx>
and <spanx style="verb">Identity-Key-Id:</spanx> are present, the verifier MUST:  <vspace blankLines='1'/>
a. Extract the <spanx style="verb">key-id</spanx> from the <spanx style="verb">Identity-Key-Id:</spanx> trailer.
b. Resolve the corresponding public key by querying the
   <spanx style="verb">Acted-By:</spanx> handle's <spanx style="verb">_alter</spanx> record per Section 6.1.
c. Compute the commit's tree hash via <spanx style="verb">git cat-file</spanx> or an
   equivalent.
d. Verify the Ed25519 signature against the tree hash using
   the resolved public key.  <vspace blankLines='1'/>
If signature verification fails, the verifier MUST mark the
commit as <spanx style="verb">unverified</spanx> and MUST NOT report it as having a valid
sovereign attribution.</t>
  <t><strong>Verify the transparency anchor, if present.</strong>  If
<spanx style="verb">Identity-Anchor:</spanx> 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>
</list></t>

<t>A conformant verifier SHOULD additionally:</t>

<t><list style="numbers" type="1">
  <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>
  <t><strong>Distinguish attribution states in user-facing output.</strong>
Verifiers SHOULD present three distinct states to users:  <list style="symbols">
      <t><spanx style="verb">verified</spanx> - <spanx style="verb">Acted-By:</spanx> present with a valid
<spanx style="verb">Identity-Signature:</spanx> resolving to the published key.</t>
      <t><spanx style="verb">claimed</spanx> - <spanx style="verb">Acted-By:</spanx> present without a signature, or
with a signature whose key cannot be resolved.</t>
      <t><spanx style="verb">anonymous</spanx> - no <spanx style="verb">Acted-By:</spanx> present.</t>
    </list>
Conflating these states is a security defect.</t>
</list></t>

</section>
<section anchor="rung-2-extension-mode-attributed-commits"><name>Rung 2 Extension - Mode-Attributed Commits</name>

<section anchor="motivation"><name>Motivation</name>

<t>The trailer grammar of Section 4 attributes each commit to individual
identities: one or more Sovereign actors, at most one Bot, zero or
more Instruments.  A class of contributions falls outside this model.
Joint manifestations produced by a mode - a bounded, DNS-addressable
composition of Sovereigns operating under declared threshold consent
- are not authored by any single <spanx style="verb">~handle</spanx>.  Examples include
pair-programming commits where two Sovereigns contributed
indistinguishably, working-group decisions ratified by a quorum,
AI-majority outputs produced by a mode whose signing authority is
defined at the mode level rather than at any member's level, and
cross-organisation commits ratified jointly by two or more modes.</t>

<t>Rung 1 of this specification has no surface for such attributions.
A committer must either pick one member arbitrarily as <spanx style="verb">Acted-By:</spanx>,
which misattributes, or omit <spanx style="verb">Acted-By:</spanx> entirely, which drops the
commit to the <spanx style="verb">claimed</spanx> state.  Rung 2 closes this gap by adding a
new trailer class, <spanx style="verb">Acted-By-Mode:</spanx>, whose value is a mode handle and
whose semantics are threshold-attestational rather than
individual-attestational.</t>

</section>
<section anchor="trailer-acted-by-mode"><name>Trailer: <spanx style="verb">Acted-By-Mode</spanx></name>

<t>The following ABNF extends Section 4.1:</t>

<t><spanx style="verb">
acted-by-mode-trailer = "Acted-By-Mode:" SP mode-handle CRLF
mode-handle           = "~" org-label "." handle-label
org-label             = 1*63( ALPHA / DIGIT / "-" / "_" )
</spanx></t>

<t>The <spanx style="verb">mode-handle</spanx> production is syntactically distinct from the
Sovereign, Bot, and Instrument handles of Section 4.1 by the required
two-label form <spanx style="verb">~&lt;org&gt;.&lt;handle&gt;</spanx>.  The organisational prefix names
the hosting zone of the mode; the inner label names the mode within
that zone.  A mode handle MUST NOT bear the <spanx style="verb">.bot</spanx> suffix, and MUST
NOT be a bare single-label Sovereign handle.</t>

<t>The semantics of <spanx style="verb">Acted-By-Mode:</spanx> are threshold-attestational: the
trailer asserts that the commit was authored under the compositional
consent standing of the named mode, not under the signing authority
of any single member.  A commit MAY carry both an individual
<spanx style="verb">Acted-By:</spanx> trailer (naming the Sovereign who physically performed
the commit operation) and an <spanx style="verb">Acted-By-Mode:</spanx> trailer (naming the
mode under whose standing the work was performed); the combination
attests "member M committed on behalf of mode O under compositional
consent".  A commit MUST be permitted to carry <spanx style="verb">Acted-By-Mode:</spanx> as
its sole <spanx style="verb">Acted-By-*</spanx> trailer class when the work is purely
mode-coupled and no single Sovereign claims primary authorship.</t>

</section>
<section anchor="tier-resolution"><name>Tier Resolution</name>

<t>Rung 1 uses the syntactic tier heuristics of Section 4.1 (the <spanx style="verb">.bot</spanx>
suffix; the provider-prefix convention for Instrument handles) for
verifier dispatch.  Rung 2 replaces these heuristics with DNS-based
tier resolution against the handle's <spanx style="verb">_alter.&lt;zone&gt;</spanx> TXT record per
<xref target="MCPDNS"></xref>.</t>

<t>A mode handle MUST resolve to an <spanx style="verb">_alter</spanx> record whose capability
declaration includes <spanx style="verb">cap=mode</spanx> (or an equivalent capability token
established in a future revision of <xref target="MCPDNS"></xref>).  The mode record
carries, at minimum:</t>

<t><list style="symbols">
  <t><spanx style="verb">type=mode</spanx> - asserts mode-tier classification.</t>
  <t><spanx style="verb">threshold=&lt;num&gt;/&lt;den&gt;</spanx> - declares the signing threshold required
for the mode to attest to a commit (for example, <spanx style="verb">threshold=2/3</spanx>
requires two of three member signatures).</t>
  <t><spanx style="verb">members=&lt;uri&gt;</spanx> - a reference to the mode's member attestation
keylist, itself a DNS-published or HTTPS-resolved JSON document
listing member Sovereign handles and their currently-valid
signing-key identifiers.</t>
</list></t>

<t>Verifiers MUST resolve the mode record via DNSSEC where available
and MUST fall back to the HTTPS <spanx style="verb">.well-known</spanx> path of <xref target="MCPDNS"></xref> only
under the same conditions that apply to Sovereign key resolution in
Section 6.1.</t>

</section>
<section anchor="verification"><name>Verification</name>

<t>Section 7 is extended for Rung 2 as follows.  For each
<spanx style="verb">Acted-By-Mode:</spanx> trailer on a commit, a conformant Rung 2 verifier
MUST:</t>

<t><list style="numbers" type="1">
  <t>Resolve the mode handle per Section N.3 above.</t>
  <t>Fetch the threshold-attestation metadata (<spanx style="verb">threshold</spanx>, <spanx style="verb">members</spanx>).</t>
  <t>Enumerate the member signatures present on the commit - that is,
the set of <spanx style="verb">Identity-Signature:</spanx> trailers whose corresponding
<spanx style="verb">Identity-Key-Id:</spanx> binds to a Sovereign handle listed in the
mode's member keylist.</t>
  <t>Verify that the count of valid member signatures satisfies the
declared threshold.</t>
</list></t>

<t>Under the Rung 2 hard-gate profile, a commit bearing
<spanx style="verb">Acted-By-Mode:</spanx> whose member signature set does not satisfy the
declared threshold MUST be marked <spanx style="verb">unverified</spanx>.  Under the Rung 2
warn-only profile (the rollout default), verification is limited to
parse-only and slot-category correctness; threshold satisfaction is
surfaced as informational but does not downgrade the commit's
verified status.</t>

</section>
<section anchor="slot-exclusivity"><name>Slot Exclusivity</name>

<t><spanx style="verb">Acted-By-Mode:</spanx> accepts mode-tier handles ONLY.  Verifiers MUST
reject Sovereign, Bot, and Instrument handles appearing in this slot
as cross-slot category errors per the rules of Section 7, Step 2.
The existing <spanx style="verb">Acted-By:</spanx> slot continues to accept Sovereign handles
ONLY, regardless of whether an <spanx style="verb">Acted-By-Mode:</spanx> is also present.</t>

</section>
<section anchor="interaction-with-co-authored-by"><name>Interaction with Co-Authored-By</name>

<t>The <spanx style="verb">Co-Authored-By:</spanx> convention of <xref target="ANTHROPIC-COAUTHOR"></xref> and the
equivalent GitHub commits-UI trailer remain unchanged by this
extension.  Commits bearing <spanx style="verb">Acted-By-Mode:</spanx> SHOULD include a
<spanx style="verb">Co-Authored-By:</spanx> line rendering the mode handle in human-readable
form, so that the authoring mode is visible in commit-UI surfaces
that do not parse the identity trailer grammar natively.</t>

</section>
<section anchor="rung-2-rollout"><name>Rung 2 Rollout</name>

<t>Rung 2 MUST be deployed in two sub-phases.  In the parse-only
sub-phase, conformant hooks and verifiers accept and recognise the
<spanx style="verb">Acted-By-Mode:</spanx> trailer, enforce slot-exclusivity per Section N.5,
and surface member signature counts informationally.  They do NOT
enforce the threshold.  The parse-only sub-phase is permitted before
the <spanx style="verb">_alter.</spanx> resolver has shipped in the referenced backend
implementation.</t>

<t>In the signature-verification sub-phase, verifiers additionally
enforce that the member signature set satisfies the mode's declared
threshold.  The signature-verification sub-phase MUST NOT be enabled
before the <spanx style="verb">_alter.</spanx> resolver is in production and the mode record
schema of Section N.3 is stable.</t>

</section>
</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 <spanx style="verb">key-id</spanx> in their
<spanx style="verb">_alter</spanx> 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 <spanx style="verb">Drafted-With:</spanx>
trailer is an unverified provenance claim.  A malicious committer
can always paste <spanx style="verb">Drafted-With: ~example-model-1</spanx> 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
<spanx style="verb">Acted-By:</spanx>, 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 <spanx style="verb">_alter.&lt;zone&gt;</spanx>
zone could redirect verifiers to a substitute public key under
the attacker's control.  This risk is mitigated by:</t>

<t><list style="symbols">
  <t>DNSSEC validation when available.  Verifiers SHOULD require
DNSSEC on the policy zone and MAY refuse to verify against an
unsigned zone.</t>
  <t>The HTTPS <spanx style="verb">.well-known</spanx> fallback path defined in <xref target="MCPDNS"></xref>,
which terminates the trust chain at the TLS certificate of
the policy domain.</t>
  <t>Independent transparency-log anchoring via the optional
<spanx style="verb">Identity-Anchor:</spanx> trailer, which provides a second source of
truth that is unaffected by DNS poisoning.</t>
</list></t>

</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 <spanx style="verb">Acted-By:</spanx> 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 <spanx style="verb">Drafted-With:</spanx> 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>

<t><list style="symbols">
  <t><spanx style="verb">Acted-By</spanx></t>
  <t><spanx style="verb">Executed-By</spanx></t>
  <t><spanx style="verb">Drafted-With</spanx></t>
  <t><spanx style="verb">Identity-Signature</spanx></t>
  <t><spanx style="verb">Identity-Key-Id</spanx></t>
  <t><spanx style="verb">Identity-Anchor</spanx></t>
</list></t>

<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 <spanx style="verb">did:alter:</spanx> URI scheme via the
<spanx style="verb">Identity-Key-Id:</spanx> trailer.  The <spanx style="verb">alter:</spanx> URI scheme is the
subject of IANA considerations in <xref target="MCPDNS"></xref>; this document does
not separately register it.</t>

<t>The <spanx style="verb">identitylog://</spanx> URI scheme used by the optional
<spanx style="verb">Identity-Anchor:</spanx> trailer is reserved by this document for
future registration when a normative IdentityLog specification is
published.  Implementations encountering <spanx style="verb">identitylog://</spanx> 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>

<texttable>
      <ttcol align='left'>Mechanism</ttcol>
      <ttcol align='left'>Purpose</ttcol>
      <ttcol align='left'>Coexistence with this spec</ttcol>
      <c>Git <spanx style="verb">Signed-off-by</spanx> <xref target="DCO"></xref></c>
      <c>Legal attestation of contribution rights</c>
      <c>Orthogonal.  A commit MAY carry both a <spanx style="verb">Signed-off-by:</spanx> and an <spanx style="verb">Acted-By:</spanx> trailer.  They answer different questions.</c>
      <c>Git commit signing (<spanx style="verb">git commit -S</spanx>)</c>
      <c>Cryptographic identity via GPG/SSH key directories</c>
      <c>Orthogonal.  A commit MAY be both GPG-signed and <spanx style="verb">Acted-By</spanx>-signed.  Verifiers handle each path independently.</c>
      <c>Sigstore / gitsign <xref target="GITSIGN"></xref></c>
      <c>Keyless cryptographic identity via OIDC</c>
      <c>Architecturally adjacent.  Different identity provider model (OIDC + Rekor vs DNS-resolved DID + IdentityLog).  May coexist.</c>
      <c>Anthropic <spanx style="verb">Co-Authored-By: Claude</spanx> <xref target="ANTHROPIC-COAUTHOR"></xref></c>
      <c>Informal AI co-authorship convention</c>
      <c>Superseded for AI attribution by <spanx style="verb">Drafted-With:</spanx> (Instrument tier).  Implementations MAY emit both during a transition window.</c>
      <c>Linux kernel <spanx style="verb">Assisted-by</spanx> [LINUX-AI-ASSIST]</c>
      <c>Disclosure-only attribution of AI assistance in kernel contributions; legal liability remains with a human via DCO (<spanx style="verb">Signed-off-by</spanx>)</c>
      <c>Architecturally adjacent and complementary.  <spanx style="verb">Assisted-by:</spanx> discloses AI involvement in prose-readable form; <spanx style="verb">Drafted-With:</spanx> binds the same involvement to a DNS-resolvable Instrument <spanx style="verb">~handle</spanx> with machine-verifiable metadata.  Both MAY appear on the same commit.  Bidirectional mapping and a canonical emission pattern are defined in Appendix A.</c>
</texttable>

<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 colleagues at Alter Meridian Pty Ltd for the
framing of identity tiers, and external adversarial reviewers for
pressure-testing the tier-slot grammar and the cross-tier rejection
rules.  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"></xref>  Mockapetris, P., "Domain names - implementation and
           specification", STD 13, RFC 1035, November 1987.</t>

<t><xref target="RFC2119"></xref>  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119, March 1997.</t>

<t><xref target="RFC4034"></xref>  Arends, R., et al., "Resource Records for the DNS
           Security Extensions", RFC 4034, March 2005.</t>

<t><xref target="RFC4648"></xref>  Josefsson, S., "The Base16, Base32, and Base64 Data
           Encodings", RFC 4648, October 2006.</t>

<t><xref target="RFC5234"></xref>  Crocker, D. and P. Overell, "Augmented BNF for Syntax
           Specifications: ABNF", STD 68, RFC 5234, January 2008.</t>

<t><xref target="RFC8032"></xref>  Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital
           Signature Algorithm (EdDSA)", RFC 8032, January 2017.</t>

<t><xref target="RFC8174"></xref>  Leiba, B., "Ambiguity of Uppercase vs Lowercase in
           RFC 2119 Key Words", BCP 14, RFC 8174, May 2017.</t>

<t><xref target="RFC8552"></xref>  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"></xref>  Rundgren, A., et al., "JSON Canonicalization Scheme
           (JCS)", RFC 8785, June 2020.</t>

<t><xref target="MCPDNS"></xref>   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"></xref>  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"></xref>              "Developer Certificate of Origin v1.1",
                   https://developercertificate.org/, 2004.</t>

<t><xref target="GIT-TRAILERS"></xref>     "git-interpret-trailers(1)",
                   https://git-scm.com/docs/git-interpret-trailers.</t>

<t><xref target="GITSIGN"></xref>          "gitsign: Keyless Git Signing",
                   https://docs.sigstore.dev/cosign/signing/gitsign/.</t>

<t><xref target="SIGSTORE"></xref>         "Sigstore: Software Signing for Everybody",
                   https://www.sigstore.dev/.</t>

<t><xref target="ANTHROPIC-COAUTHOR"></xref> Anthropic, "Co-Authored-By: Claude - convention
                     for AI-assisted commits".</t>

<t>[LINUX-AI-ASSIST]  The Linux Kernel Contributors, "AI Coding
                   Assistants", Linux kernel Documentation,
                   Documentation/process/coding-assistants.rst,
                   2024.</t>

<t><xref target="MORRISON-IFT"></xref>     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="appendix-a-interoperability-with-linux-kernel-assisted-by-policy"><name>Appendix A.  Interoperability with Linux Kernel <spanx style="verb">Assisted-by</spanx> Policy</name>

<section anchor="a1-scope"><name>A.1.  Scope</name>

<t>The Linux kernel project has adopted a formal policy for AI-assisted
contributions in <spanx style="verb">Documentation/process/coding-assistants.rst</spanx>
[LINUX-AI-ASSIST].  The policy reserves the DCO <spanx style="verb">Signed-off-by:</spanx>
trailer to human developers exclusively and introduces a disclosure
trailer, <spanx style="verb">Assisted-by:</spanx>, to document AI involvement.  Because the
kernel is the most widely deployed code review culture in the world,
its conventions set a de facto norm for AI-attribution in free and
open source contributions more broadly.</t>

<t>This Appendix defines how implementations of the present
specification SHOULD interoperate with the Linux kernel
<spanx style="verb">Assisted-by:</spanx> trailer.  Both mechanisms are disclosure mechanisms
for AI involvement and MAY coexist on the same commit.  They are
not substitutes.</t>

</section>
<section anchor="a2-format-comparison"><name>A.2.  Format Comparison</name>

<t>The Linux kernel <spanx style="verb">Assisted-by:</spanx> trailer has the shape:</t>

<t><spanx style="verb">
Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]
</spanx></t>

<t><spanx style="verb">AGENT_NAME</spanx> is a human-readable vendor or product label
(e.g. "Claude", "Copilot").  <spanx style="verb">MODEL_VERSION</spanx> is a human-readable
version string (e.g. "opus-4-6", "3.5-Sonnet").  The bracketed
tokens are zero or more specialised analysis utilities employed
during the AI-assisted authoring process (e.g. "coccinelle",
"sparse", "smatch", "clang-tidy").  Standard developer tools such
as <spanx style="verb">git</spanx>, <spanx style="verb">gcc</spanx>, and <spanx style="verb">make</spanx> are excluded by policy.</t>

<t>The trailer defined in Section 4 of this document has the shape:</t>

<t><spanx style="verb">
Drafted-With: ~&lt;instrument-handle&gt;
</spanx></t>

<t><spanx style="verb">~&lt;instrument-handle&gt;</spanx> is an Instrument-tier <spanx style="verb">~handle</spanx> (Section 3)
that resolves via DNS (Section 6.2) to machine-readable metadata
describing the AI instrument, including a structured vendor,
model, and tool manifest.</t>

</section>
<section anchor="a3-mapping-drafted-with-assisted-by"><name>A.3.  Mapping: <spanx style="verb">Drafted-With</spanx> -&gt; <spanx style="verb">Assisted-by</spanx></name>

<t>An implementation that emits both trailers MAY derive the
<spanx style="verb">Assisted-by:</spanx> value from <spanx style="verb">Drafted-With:</spanx> as follows.</t>

<t><list style="numbers" type="1">
  <t>Resolve <spanx style="verb">~&lt;instrument-handle&gt;</spanx> via the DNS TXT record at
<spanx style="verb">_instrument.&lt;domain&gt;</spanx> as defined in Section 6.2.  The record
SHOULD include at minimum the fields <spanx style="verb">vendor</spanx>, <spanx style="verb">model</spanx>, and
<spanx style="verb">tools</spanx> (an ordered list).</t>
  <t>Format the <spanx style="verb">Assisted-by:</spanx> value as:  <vspace blankLines='1'/>
    <figure><artwork><![CDATA[
Assisted-by: <vendor>:<model> [tool1] [tool2] ...
]]></artwork></figure>
  <vspace blankLines='1'/>
where <spanx style="verb">&lt;vendor&gt;</spanx> and <spanx style="verb">&lt;model&gt;</spanx> are taken verbatim from the
resolved DNS TXT record and each <spanx style="verb">[toolN]</spanx> is drawn from the
<spanx style="verb">tools</spanx> list.</t>
  <t>If the <spanx style="verb">tools</spanx> list is empty, the bracketed suffix is
omitted.</t>
  <t>Implementations MUST NOT include standard developer tools
(such as <spanx style="verb">git</spanx>, <spanx style="verb">gcc</spanx>, or <spanx style="verb">make</spanx>) in the <spanx style="verb">tools</spanx> field of the
Instrument metadata record.  This exclusion is a policy
alignment with [LINUX-AI-ASSIST] and is enforced at the
metadata-publication boundary, not at the verifier.</t>
</list></t>

<t>Example.  Given an Instrument DNS TXT record for <spanx style="verb">~example-model-1</spanx>
that resolves to:</t>

<t><spanx style="verb">
vendor=ExampleVendor;model=example-model-1;tools=MCP
</spanx></t>

<t>the emitted trailer pair is:</t>

<t><spanx style="verb">
Drafted-With: ~example-model-1
Assisted-by: ExampleVendor:example-model-1 [MCP]
</spanx></t>

</section>
<section anchor="a4-mapping-assisted-by-drafted-with"><name>A.4.  Mapping: <spanx style="verb">Assisted-by</spanx> -&gt; <spanx style="verb">Drafted-With</spanx></name>

<t>The reverse mapping (from a <spanx style="verb">Assisted-by:</spanx> trailer to an
Instrument <spanx style="verb">~handle</spanx>) is NOT generally computable without
additional information, because the <spanx style="verb">Assisted-by:</spanx> format does
not carry a DNS-resolvable identifier.  Two degraded modes are
available.</t>

<t>Mode 1 (canonical registry).  A verifier MAY maintain a local
vendor-to-handle canonicalisation table (e.g. <spanx style="verb">Anthropic</spanx> -&gt;
namespace prefix <spanx style="verb">~cc-</spanx>, with model-string rules).  When the
<spanx style="verb">AGENT_NAME:MODEL_VERSION</spanx> tuple resolves under such a table, the
verifier MAY treat the canonicalised <spanx style="verb">~handle</spanx> as an inferred
Instrument binding.  No normative canonicalisation table is
specified here; a companion informational document may define one
if and when community practice converges.</t>

<t>Mode 2 (informational only).  When no canonical mapping exists,
the verifier MUST treat <spanx style="verb">Assisted-by:</spanx> as prose-level disclosure
only.  In particular, the verifier MUST NOT promote the commit to
any trust tier on the basis of <spanx style="verb">Assisted-by:</spanx> alone, and MUST
NOT treat the <spanx style="verb">AGENT_NAME:MODEL_VERSION</spanx> tuple as an authenticated
assertion.</t>

<t>Implementations of this specification SHOULD prefer emission of
both trailers at authoring time over reverse mapping at
verification time, because authoring-side emission preserves the
DNS-resolvable metadata that the reverse mapping loses.</t>

</section>
<section anchor="a5-dco-and-acted-by-liability-boundary"><name>A.5.  DCO and <spanx style="verb">Acted-By:</spanx> Liability Boundary</name>

<t>The Linux kernel policy reserves <spanx style="verb">Signed-off-by:</spanx> to human
developers on the grounds that only a human can legally certify
DCO compliance.  The present specification's <spanx style="verb">Acted-By:</spanx> trailer
is similarly reserved to Sovereign-tier <spanx style="verb">~handle</spanx> bindings
(Section 3), which are human-bound in the trust model this
specification is built on.</t>

<t><spanx style="verb">Signed-off-by:</spanx> and <spanx style="verb">Acted-By:</spanx> are therefore complementary, not
redundant:</t>

<t><list style="symbols">
  <t><spanx style="verb">Signed-off-by:</spanx> is a legal attestation bound to an email
identity.  It is evaluated by human reviewers against the DCO
text and is not cryptographically verifiable at commit time.</t>
  <t><spanx style="verb">Acted-By:</spanx> is a cryptographic identity binding rooted in DNS
and a sovereign key (Sections 5 and 6).  It is evaluated by
verifier software and produces a machine-verifiable result
independent of DCO evaluation.</t>
</list></t>

<t>Neither trailer supersedes the other.  Contributors to projects
that require DCO compliance (such as the Linux kernel) MUST
continue to provide <spanx style="verb">Signed-off-by:</spanx>.  Contributors who also
operate within the ALTER identity framework SHOULD additionally
provide <spanx style="verb">Acted-By:</spanx>.</t>

</section>
<section anchor="a6-recommended-emission-pattern"><name>A.6.  Recommended Emission Pattern</name>

<t>A contributor operating on both stacks is RECOMMENDED to emit the
following trailer block:</t>

<t><spanx style="verb">
Signed-off-by: &lt;Full Name&gt; &lt;email&gt;
Acted-By: ~&lt;sovereign-handle&gt;
Assisted-by: &lt;vendor&gt;:&lt;model&gt; [tool1] [tool2] ...
Drafted-With: ~&lt;instrument-handle&gt;
Identity-Signature: ed25519:&lt;base64url&gt;
Identity-Key-Id: did:alter:~&lt;sovereign-handle&gt;#key-&lt;yyyy-mm&gt;
</spanx></t>

<t>Verifiers of either specification handle each line independently.
A verifier that only understands the DCO model (such as a kernel
maintainer tree) will evaluate <spanx style="verb">Signed-off-by:</spanx> and <spanx style="verb">Assisted-by:</spanx>
and ignore the remaining trailers.  A verifier that implements the
present specification will evaluate <spanx style="verb">Acted-By:</spanx>, <spanx style="verb">Drafted-With:</spanx>,
and the <spanx style="verb">Identity-*</spanx> trailers and ignore the kernel-specific
trailers.  Neither verifier fails closed on the presence of the
other's trailers.</t>

</section>
<section anchor="a7-roundtripping-concerns"><name>A.7.  Roundtripping Concerns</name>

<t>The <spanx style="verb">Assisted-by:</spanx> format does not preserve full Instrument DNS
metadata (notably the DID key identifier and any rotation
fingerprint).  Implementations performing archival or mirroring
MUST NOT attempt to reconstruct <spanx style="verb">Drafted-With:</spanx> from
<spanx style="verb">Assisted-by:</spanx> in a way that loses fidelity; the original
<spanx style="verb">Drafted-With:</spanx> trailer, if present, MUST be preserved verbatim.</t>

</section>
<section anchor="a8-open-items"><name>A.8.  Open Items</name>

<t>The following items are out of scope for the present document and
are candidates for a follow-up Informational draft:</t>

<t><list style="symbols">
  <t>A canonical vendor-to-<spanx style="verb">~handle</spanx> registry, with rules for
conflict resolution across competing canonicalisations.</t>
  <t>Normative handling of <spanx style="verb">Assisted-by:</spanx> trailers whose
<spanx style="verb">AGENT_NAME:MODEL_VERSION</spanx> tuple contains characters outside
the Instrument-tier handle grammar (Section 3).</t>
  <t>Extension of the Linux kernel exclusion rule (forbidding
<spanx style="verb">git</spanx>, <spanx style="verb">gcc</spanx>, <spanx style="verb">make</spanx> in <spanx style="verb">Assisted-by:</spanx>) to the Instrument
<spanx style="verb">tools</spanx> field as a normative requirement rather than a
metadata-publisher policy.</t>
</list></t>

</section>
</section>
<section anchor="authors-address"><name>Author's Address</name>

<t>Blake Morrison
Alter Meridian Pty Ltd</t>

<t>Email: blake@truealter.com
URI: https://truealter.com</t>

</section>


  </middle>

  <back>


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

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

&RFC1035;
&RFC2119;
&RFC4034;
&RFC4648;
&RFC5234;
&RFC8032;
&RFC8174;
&RFC8552;
&RFC8785;
<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 title='Informative References' anchor="sec-informative-references">

&RFC7942;
<reference anchor="SIGSTORE" target="https://www.sigstore.dev/">
  <front>
    <title>Sigstore: Software Signing for Everybody</title>
    <author >
      <organization></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></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></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></organization>
    </author>
    <date year="n.d."/>
  </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="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:
H4sIAAAAAAAAA71963PbVrLnd/wVp5QPkXIJypIfsWUndWVJTjRjW1pJmblz
U9khSEIUxiDAAUDJzM7mb9/+dfd5gZCTW7t3VZVYIoHz6NOn3480TZOu6Mr8
yOycz/OKft+kx13XFNN1l8/ND0VnTurlsuhac19k5qbIm/S6a9azbt3Q9zdN
VpR50+4k2XTa5PePDKND7CTzelZlS5pt3mS3Xbqsm6Zo6yot7EuZeymdyUvp
k4NknnX0zuGTwxfpk+fpwctkRh8s6mZzZIrqtk6KVXNkaFVtd/jkyasnh0mS
rbu7ujlKjEnpP2Nu12UpM78ts0+5+aAz85d1s8iq4tesK+rqyByXXd6YD3lT
zIusMpfdxrzv5vxgvqTtHpkphvh3mi/P8OyYVpokVd0saYT7HJNevTs5ePL0
uf56eHDwSn999uTpM/vri2cv9dfnh+7Tl0+eHtpfD751nz5/7j799iWP++Hk
8vTj9RGvyx7hadHO6vu82Zj6lrY4z0sCfdXlnztz2dRdPatLc5039IQcJw1g
bv7jxlzls7qZ0/lgMA+63wXcfwF0XdYs8u7I3HXdqj3a36cjzbomm30i+BV5
dzumkfYJPfZ7mLGcrdJ51aZzu7V9Hs5jRJIABWLYf/vqGYPr+vyH65uLq7MY
StfFou3qhn69rm+7h6zJDX1UFdXC0EDmDLNM6/lmZ3DhDw8P41ZHGM/z+956
DunPH85vaOaP8awLwmWa5cj8Od+Uedvy3dJ5h2ciaLTxVLMaQ+y38ta+Dtlb
wVP68/TkoocZ+X1e1is6nZO86YrbAjcIWHLRFIuiMvcH44NHVmHfnPkX+bCi
WZ88k32nN1fH5+/Prq63Np8WhIjNqsm7tFOqsXuwNzwnHm9nS1wshsL+8Pv0
7vHHmx+vLi7PT9KTi+Ofbn68uIonPqnTY8ZnIihviVyclNl6npvUzOrqHjSn
rvjQj8/TrG2LFtRqZqnV9m2gfROWV91dU6+K2eOnltlHeAsznlR2MqvTzC5o
ukn9MuJDfI4bfnF1dX598TE9f3cT78rSWPOuyEuiwnc508KbmpB5bjJzebdp
i1mL832bA6//XNUP1X/n9Q7u4zBQCsaZgyfjF09ePttfvhrfEmLf0d0bPz14
9fzg6cunSZKmqcmmLchClyQ3d0VrCGbrJW3WzPPbospb2hzhgh6RUUQwiyZb
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

-->

</rfc>

