<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc [
  <!ENTITY nbsp "&#160;">
  <!ENTITY zwsp "&#8203;">
  <!ENTITY nbhy "&#8209;">
  <!ENTITY wj "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     version="3"
     category="info"
     submissionType="IETF"
     ipr="trust200902"
     docName="draft-zhang-audit-record-limits-00"
     tocInclude="true"
     sortRefs="true"
     symRefs="true">

  <front>
    <title abbrev="Audit Record Limits">What an Agent Audit Record Can and Cannot Establish</title>
    <seriesInfo name="Internet-Draft" value="draft-zhang-audit-record-limits-00"/>
    <author fullname="Kevin Zhang" initials="K." surname="Zhang">
      <organization>Tersign</organization>
      <address>
        <email>kevin@tersign.ai</email>
      </address>
    </author>
    <area>Security</area>
    <workgroup>Network Working Group</workgroup>
    <keyword>audit</keyword>
    <keyword>agents</keyword>
    <keyword>completeness</keyword>
    <keyword>independence</keyword>
    <keyword>verification</keyword>

    <abstract>
      <t>Agent audit records are signed, chained, counter-signed, timestamped, and
      registered with transparency services. Each mechanism establishes a narrower
      fact than it is often taken to establish. This document states, for any
      record format, protocol, or payment method, what a check of an agent audit
      record can and cannot establish about four properties: the independence of
      the entities that signed or observed it, the completeness of a set of
      records, the time at which a record or an action existed, and the result that
      a verifier reports. It defines independence by control rather than by key or
      process separation, separates the independence of a signer from the
      independence of an observation, states which commitments cannot support a
      report that a set of records is complete, and requires a verifier to report
      unauthenticated content as unauthenticated. It defines no record format,
      role, log, or service.</t>
    </abstract>

    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Comments on this document are welcome by email to the author. The
      proposed AUDIT working group charter is discussed on the audit@ietf.org
      mailing list, archived at
      <eref target="https://mailarchive.ietf.org/arch/browse/audit/"/>.</t>
    </note>
  </front>

  <middle>

    <section anchor="intro">
      <name>Introduction</name>
      <t>Software agents act for users and organizations across administrative
      domains. They call tools, delegate tasks to other agents, read and share data,
      and make payments. The proposed AUDIT working group charter <xref target="AUDIT-CHARTER"/>
      says that audit information "must be verifiable by a party that trusts neither
      the agent nor its operator". Discussion of that text on the AUDIT list
      <xref target="MSG-STEELE"/> <xref target="MSG-WONG-1"/> <xref target="MSG-SAHU"/>
      <xref target="MSG-KROEHL-1"/> <xref target="MSG-WONG-2"/>, and an issue on the
      architecture draft <xref target="ARCH-ISSUE-32"/>, asked one question in
      several forms: for each verification mechanism, what does a successful check
      establish, under what assumptions, and would an omitted record be detectable,
      and by whom?</t>
      <t>Several individual drafts define formats for agent audit records
      <xref target="I-D.sharif-agent-audit-trail"/>
      <xref target="I-D.gilda-audit-agent-audit-record"/>
      <xref target="I-D.bradleyb-audit-decision-records"/>
      <xref target="I-D.sparysh-pala-audit"/>, and an architecture draft describes
      the roles that produce, store, and audit them
      <xref target="I-D.kuehlewind-audit-architecture"/>. Others state requirements
      or limits without a format
      <xref target="I-D.wadkins-agentproto-action-determinability"/>
      <xref target="I-D.abak-agent-control-delivery-evidence"/>
      <xref target="I-D.sergeev-claim-boundaries"/>
      <xref target="I-D.sergeev-audit-task-requirements"/>
      <xref target="I-D.he-agentproto-verifier-evidence"/>; several of these overlap
      with this document, as <xref target="related"/> describes. This document
      collects limits that hold for every format, so that a format, profile, or
      verifier can say which of them it meets, and so that a reader can keep three
      questions apart: whether records verify, whether a set of them is complete,
      and whether what they say is true.</t>
      <t>The limits fall into four areas: who is independent of the recorded
      actions, and in what sense (<xref target="independence"/>); which commitments
      cannot support a report that a set of records has no omissions
      (<xref target="completeness"/>); what a time in a record, and an anchor over
      it, show (<xref target="time"/>); and how a verifier reports what it checked,
      so that its output is never stronger than its checks
      (<xref target="results"/>).</t>
      <t>Payment protocols appear only as examples; the limits apply to records of
      any agent action. This document defines no record format, protocol, role,
      log, registry, or service. It does not require any deployment to involve an
      independent entity, and it states what a check cannot establish whether or
      not one is involved.</t>

      <section anchor="req-lang">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
        "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
        NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
        "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
        "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to
        be interpreted as described in BCP&nbsp;14 <xref target="RFC2119"/>
        <xref target="RFC8174"/> when, and only when, they appear in all capitals,
        as shown here.</t>
        <t>The requirements in this document apply to verifiers that claim to
        follow it, and to specifications and profiles that claim one of the
        properties defined here. They do not apply to a deployment that makes no
        such claim.</t>
      </section>
    </section>

    <section anchor="terms">
      <name>Terminology</name>
      <dl newline="true" spacing="normal">
        <dt>Action:</dt>
        <dd>An operation that an agent performs or initiates, for example a tool
        invocation, a delegation, an access to data, or a payment.</dd>
        <dt>Party (to an action):</dt>
        <dd>An entity that requests, authorizes, performs, or receives an action, or
        on whose behalf it is performed. The operator of an agent is a party to the
        actions of that agent.</dd>
        <dt>Acting for a party:</dt>
        <dd>Carrying out any part of an action on behalf of a party, for example by
        hosting the agent, relaying or executing its requests, or processing a
        payment.</dd>
        <dt>Common control:</dt>
        <dd>A relationship in which one entity can direct the operation or the key
        use of another, or a third entity can direct both, whether through
        ownership, a contract that gives such direction, or operational
        access.</dd>
        <dt>Independent:</dt>
        <dd>An entity is independent of a set of actions when it is not a party to
        any of them, does not act for any party in carrying them out, and is not
        under common control with any such party or with any entity that acts for
        one. Independence is a property of an entity, relative to particular
        actions, at a particular time. It is not a property of a key, a process, a
        host, or a signature.</dd>
        <dt>Record:</dt>
        <dd>A data item that asserts facts about one or more actions.</dd>
        <dt>Signer:</dt>
        <dd>The entity that controls a key that produced a signature over a record.
        A counter-signer is a signer other than the entity that wrote the
        record.</dd>
        <dt>Observation:</dt>
        <dd>An entity's own perception of an action at the point where the action
        takes effect or crosses that entity's boundary, as distinct from a report of
        the action made by another entity.</dd>
        <dt>Sequence:</dt>
        <dd>An ordered list of records in which each record has a position.</dd>
        <dt>Scope:</dt>
        <dd>A rule, fixed before the records it covers were written, that determines
        which records belong to a set, for example every record that a named writer
        submitted during a stated period that has ended.</dd>
        <dt>Commitment:</dt>
        <dd>A value computed over a sequence and identifying the scope it covers,
        including the position or time at which the scope ends, such that it is
        computationally infeasible to find a different sequence for the same scope
        that yields the same value; for example the head of a hash chain or the
        root of a Merkle tree, signed by the committing entity together with the
        scope it covers.</dd>
        <dt>Anchor:</dt>
        <dd>Evidence, produced by an entity other than the one that presents it,
        that a value existed no later than a stated time, for example a timestamp
        token <xref target="RFC3161"/>, a receipt from a transparency service
        <xref target="RFC9942"/>, or the inclusion of the value in a public
        ledger.</dd>
        <dt>Presenter:</dt>
        <dd>The entity that assembles a set of records and gives it to a relying
        party.</dd>
        <dt>Verifier:</dt>
        <dd>Software, or a person, that checks records and reports results to a
        relying party.</dd>
      </dl>
    </section>

    <section anchor="independence">
      <name>Independence</name>
      <t>This section defines what makes an entity independent of the actions a
      record describes, and separates two things that can be independent: the
      signature on a record, and the observation behind it.</t>

      <section anchor="control">
        <name>Independence Is a Matter of Control</name>
        <t>A signature shows that whoever controlled a key signed particular bytes.
        Separate keys show two keys. Separate processes, hosts, or attested
        platforms show separate execution environments. None of these shows two
        independent entities: an operator can hold several keys, run a recording
        component as a separate process on separate hardware, and still control
        what that component records. Some formats use key or process separation as
        an indicator of independent recording
        <xref target="I-D.sharif-agent-audit-trail"/>
        <xref target="I-D.gilda-audit-agent-audit-record"/>, and one of them states
        that a producer holding two keys can satisfy every clause of its format
        <xref target="I-D.gilda-audit-agent-audit-record"/>. Key separation can be
        checked from the bytes of a record; control cannot. One requirements draft
        already forbids inferring independence from a different process name,
        service label, or signing key alone
        <xref target="I-D.abak-agent-control-delivery-evidence"/>, and another
        states that components over which one party has the relevant capability do
        not count separately against that party
        <xref target="I-D.sergeev-claim-boundaries"/>. Platform attestation
        <xref target="RFC9334"/> lets a verifier appraise claims about the state of
        the platform that produced a record, to the extent that it trusts the
        attester's root of trust and the endorsements it relies on. It does not
        establish who controls that platform, or that the content of the record is
        true (see also Section 5.4.1 of
        <xref target="I-D.sharif-agent-audit-trail"/>).</t>
        <t>Whether an entity is independent is therefore a fact about the world
        that a relying party establishes outside the record, for example by
        identifying the entity that controls a key and that entity's relationships
        to the parties. A record can carry a claim of independence. It cannot prove
        one.</t>
        <ul spacing="normal">
          <li>A verifier <bcp14>MUST NOT</bcp14> report an entity as independent on
          the basis of key separation, process separation, or platform attestation
          alone.</li>
          <li>A verifier that reports an entity as independent <bcp14>MUST</bcp14>
          state the basis on which it identified that entity and the entity's
          relationship to the parties, and <bcp14>MUST</bcp14> state whether that
          basis came from outside the presented material.</li>
          <li>A verifier that counts sources, for example to require agreement
          between two of them, <bcp14>MUST</bcp14> count entities under common
          control as one source, and <bcp14>MUST</bcp14> count as one source any
          entities whose control it has not established from outside the presented
          material. Agreement between records from such entities shows that the
          records correspond. It does not show that they are independent, or that
          one preceded the other
          <xref target="I-D.bradleyb-audit-decision-records"/>.</li>
        </ul>
      </section>

      <section anchor="signer-vs-observer">
        <name>Signer Independence and Observation Independence</name>
        <t>Two different things can be independent of the parties to an
        action:</t>
        <dl newline="false" spacing="normal">
          <dt>Signer independence:</dt>
          <dd>An independent entity signed or counter-signed the record. This
          establishes that the key of that entity signed those bytes, so a party
          cannot later alter the record without invalidating that signature. It
          does not by itself make the removal of a record detectable;
          <xref target="who-commits"/> states which commitments cannot support a
          report that nothing was removed.</dd>
          <dt>Observation independence:</dt>
          <dd>An independent entity observed the action itself.</dd>
        </dl>
        <t>A counter-signature by an independent entity over a record that a party
        reported establishes signer independence, not observation independence.
        The content of the record still rests on the party that reported it. The
        counter-signer shows who signed what. It does not show that the reported
        action happened, that it happened as described, that it was authorized, or
        that it had its intended effect. Those are separate facts
        <xref target="I-D.wadkins-agentproto-action-determinability"/>. Two drafts
        draw the same line for an entity that verifies rather than signs: an
        independent party's ability to verify a party's own account does not make
        that account an independent observation
        <xref target="I-D.sergeev-claim-boundaries"/>
        <xref target="I-D.sergeev-audit-task-requirements"/>.</t>
        <t>An entity can stand in one of three positions relative to an
        action:</t>
        <ol spacing="normal">
          <li>It receives a report from a party and signs or sequences it. At most,
          it provides signer independence.</li>
          <li>It takes part in carrying out the action, for example as a gateway,
          relay, executor, or payment processor. It observes what crossed its
          boundary, but it acts for a party and is therefore not independent of
          the action.</li>
          <li>It observes the action where the action takes effect, without being a
          party and without acting for one. Only this position provides observation
          independence, and only for what the entity observed.</li>
        </ol>
        <t>An observation by an entity in the second position can be stronger
        evidence than a party's own report of what crossed that boundary; the
        architecture draft makes this point for records produced at a service
        boundary <xref target="I-D.kuehlewind-audit-architecture"/>. It is still not
        independent.</t>
        <ul spacing="normal">
          <li>A specification, profile, or verifier result that claims independence
          <bcp14>MUST</bcp14> state whether it claims signer independence,
          observation independence, or both.</li>
          <li>A verifier <bcp14>MUST NOT</bcp14> report observation independence
          on the basis of a signature or a counter-signature.</li>
          <li>A specification that claims observation independence
          <bcp14>MUST</bcp14> state where the observation occurs, which bytes or
          effects the observer perceived, and which entity operates the point of
          observation.</li>
          <li>A claim of either kind of independence covers only what the
          independent entity signed or observed. A verifier <bcp14>MUST NOT</bcp14>
          report it as covering facts to which the signed or observed content does
          not commit.</li>
        </ul>
      </section>
    </section>

    <section anchor="completeness">
      <name>Completeness</name>

      <section anchor="two-questions">
        <name>Two Different Questions</name>
        <t>"Complete" is used for two questions that have different answers:</t>
        <dl newline="false" spacing="normal">
          <dt>Set completeness:</dt>
          <dd>Is any record within a declared scope missing from the presented set?
          <xref target="who-commits"/> states which commitments cannot support an
          answer.</dd>
          <dt>Recording completeness:</dt>
          <dd>Did every relevant action produce a record that entered the scope at
          all? No check of records can answer this. A record that was never
          written, or never submitted, leaves no gap in any sequence (see
          Section 9.3 of <xref target="RFC9943"/>, and
          <xref target="MSG-WONG-1"/> <xref target="MSG-KROEHL-1"/>).</dd>
        </dl>
        <t>Formats can make some absences visible, for example by emitting a record
        on entry into each state <xref target="I-D.bradleyb-audit-decision-records"/>,
        or by fixing the expected population of records before evidence is
        evaluated <xref target="I-D.abak-agent-control-delivery-evidence"/>. These
        narrow the second question. They do not answer it from records alone. An
        omission of an action from every record can be detected only with evidence
        that the omitting party did not control.</t>
        <ul spacing="normal">
          <li>A verifier that reports set completeness <bcp14>MUST</bcp14> state
          that the result does not cover actions for which no record entered the
          scope.</li>
        </ul>
      </section>

      <section anchor="who-commits">
        <name>Commitments That Cannot Support Completeness</name>
        <t>A sequence kept, or a scope committed, by a party to the actions in it,
        by anyone acting for such a party in carrying them out, or by anyone under
        common control with one, cannot establish that nothing was omitted, whatever
        format records it. Neither can a scope chosen by the presenter, a commitment
        that did not exist before the set was presented, or a commitment whose later
        change would not be detectable.</t>
        <t>The reason is as follows. A sequence number, hash chain, or Merkle tree
        kept by a party detects a gap relative to itself, and an anchor over its
        head detects later truncation relative to that head
        <xref target="I-D.sparysh-pala-audit"/>. Both remain under the control of
        the keeper in two ways. First, the keeper chooses the scope. It can present
        a set that ends at an earlier anchored head, and that set will check.
        Second, the keeper can maintain more than one sequence. An anchor shows that
        a head existed, not that it was the only head, so a keeper can anchor a full
        sequence and a reduced one and present whichever it prefers. Fixing the
        expected population in advance
        <xref target="I-D.abak-agent-control-delivery-evidence"/> does not remove
        the first choice when the keeper fixes the population. The first choice is
        not limited to keepers: a presenter that selects which commitment to
        present can present an earlier commitment, and a set that ends there will
        check against it.</t>
        <t>A requirements draft states a related rule for verifier
        results: an evaluator is not to report a completeness claim as verified
        when the mechanism that would reveal an omission is operated by a material
        party (one whose conduct or assertion is at issue in the claim), or its
        inputs are selected by one, unless an
        independent basis has been appraised for that result (Section 9 of
        <xref target="I-D.he-agentproto-verifier-evidence"/>). That draft counts
        among such bases an append-only log whose inclusion is witnessed by parties
        not material to the claim; the disqualifications below do not depend on
        whether a sequence kept by a party is witnessed.</t>
        <t>A completeness result still rests on two assumptions that no single
        presented set can check:</t>
        <ol spacing="normal">
          <li>The committing entity committed only one sequence for the scope. An
          anchor shows that a commitment existed. It does not show that no
          conflicting commitment exists. Detecting a conflicting commitment requires
          that relying parties can compare the commitments they have been shown.
          Mechanisms for that comparison are outside this document;
          <xref target="RFC9943"/> describes one based on consistency
          proofs.</li>
          <li>Actions for which no record entered the scope are outside it
          (<xref target="two-questions"/>).</li>
        </ol>
        <t>A selection made by the presenter after the fact, such as "every record
        relevant to this dispute", is not a scope in the sense of this document,
        and neither is a rule that the relying party cannot itself apply to the
        committed sequence.</t>
        <ul spacing="normal">
          <li>A verifier <bcp14>MUST NOT</bcp14> report a set as complete when the
          entity that committed the scope or the sequence is a party, acts for a
          party, is under common control with one, or has not been identified
          (<xref target="control"/>); when no anchor shows that the commitment
          existed before the set was presented; when the commitment does not
          identify the scope, including its end; or when any record that the
          commitment places within the scope is missing from the set or
          altered.</li>
          <li>A verifier that reports a set as complete <bcp14>MUST</bcp14> report
          the scope, the committing entity, the anchor relied on, and the two
          assumptions above.</li>
          <li>A verifier <bcp14>MAY</bcp14> report that a sequence kept by a party
          is internally consistent, or that it is consistent with an anchored head.
          It <bcp14>MUST NOT</bcp14> describe either result as completeness.</li>
          <li>A receipt or proof that a record was included in a log shows that the
          record was registered. A verifier <bcp14>MUST NOT</bcp14> report the
          inclusion of each presented record as completeness of the set.</li>
          <li>When any disqualification above applies, or the verifier has not
          checked whether it applies, the verifier <bcp14>MUST</bcp14> report
          completeness as not established, and <bcp14>MUST NOT</bcp14> report it as
          passed.</li>
        </ul>
        <t>The disqualifications above are not exhaustive: that none of them applies
        does not by itself establish that a set is complete.</t>
      </section>
    </section>

    <section anchor="time">
      <name>Time</name>

      <section anchor="asserted-time">
        <name>Asserted Time</name>
        <t>A time written into a record is an assertion by the entity that wrote
        it. A signature binds that assertion to the key of the signer. It does not
        show that the clock of the signer was right, or that the signer reported its
        clock honestly. A counter-signature shows that the key of the counter-signer
        signed. It does not show when it signed; a time that the counter-signer
        writes into what it signs is that entity's assertion, in the same way.</t>
      </section>

      <section anchor="anchored-time">
        <name>Anchored Time</name>
        <t>An anchor shows that a value existed no later than the time of the
        anchor, to the extent that the issuer of the anchor is trusted: for a
        timestamp token, the timestamping authority <xref target="RFC3161"/>; for
        a public ledger, the rules by which that ledger accepts entries. An anchor
        over a commitment bounds every record that the commitment covers. An anchor
        does not show:</t>
        <ul spacing="normal">
          <li>when the recorded action occurred;</li>
          <li>when a record was written, except that it was written no later than
          the anchor;</li>
          <li>that a time written inside the record is true; or</li>
          <li>that no other value was anchored for the same scope
          (<xref target="who-commits"/>).</li>
        </ul>
        <t>An anchored time is an upper bound on existence. Rule 8 in Section 6 of
        <xref target="I-D.sergeev-claim-boundaries"/> bounds time and sequence
        evidence by the party and mechanism that produced it in the same way. A
        lower bound requires
        the record to depend on a value that could not have been known earlier, for
        example a value issued by an independent entity at a known time; an issue on
        the architecture draft proposes the same for records registered with a
        transparency service <xref target="ARCH-ISSUE-37"/>. In the same way, that a
        decision preceded the action it authorized is established by the action
        depending on the decision, not by comparing times
        <xref target="I-D.bradleyb-audit-decision-records"/>
        <xref target="MSG-KROEHL-3"/>.</t>
      </section>

      <section anchor="trust-root">
        <name>Where the Trust Root Comes From</name>
        <t>An anchor is checked against the trust root of its issuer, such as the
        certificate of a timestamping authority. A trust root carried in the
        presented material bounds nothing, because the presenter can replace the
        anchor and the trust root together.</t>
        <ul spacing="normal">
          <li>A verifier <bcp14>MUST</bcp14> report a time read from a record as
          asserted by the entity that wrote it, and <bcp14>MUST NOT</bcp14> report
          it as checked.</li>
          <li>A verifier that reports a time bound from an anchor
          <bcp14>MUST</bcp14> report it as an upper bound on when the anchored
          value existed, <bcp14>MUST</bcp14> name the issuer of the anchor, and
          <bcp14>MUST NOT</bcp14> report it as the time of the action.</li>
          <li>A verifier <bcp14>MUST</bcp14> obtain the trust root for an anchor
          from a source other than the presented material, or report the time
          bound as unverified.</li>
        </ul>
      </section>
    </section>

    <section anchor="results">
      <name>Verifier Results</name>
      <t>This section addresses a verifier output that is stronger than its
      checks: a single "verified" that a reader takes to mean authentic,
      independent, complete, and true, when the verifier checked only that the
      bytes had not changed since they were signed
      <xref target="MSG-SAHU"/> <xref target="MSG-SCHROCK"/>.</t>
      <t>This document addresses the following properties of a verifier result. A
      result can cover others, such as the validity of a delegation or an
      authorization, which this document does not address:</t>
      <ul spacing="normal">
        <li>Integrity: the presented bytes are the bytes that were signed or
        committed.</li>
        <li>Authorship: which key signed, and whether information obtained outside
        the presented material binds that key to an identified entity.</li>
        <li>Signer independence and observation independence
        (<xref target="independence"/>).</li>
        <li>Set completeness within a scope (<xref target="completeness"/>).</li>
        <li>Time bounds (<xref target="time"/>).</li>
      </ul>
      <t>A check of the records themselves does not establish that their content
      is true.</t>
      <t>Section 11 of <xref target="I-D.sergeev-claim-boundaries"/> separates
      whether an evaluation was made from what it found, and Section 6 of
      <xref target="I-D.he-agentproto-verifier-evidence"/> requires a result to
      keep a check that could not reach an answer apart from one that held or
      failed; items 1 and 4 below make the same separation for the properties of
      this document.</t>
      <ol spacing="normal">
        <li>A verifier <bcp14>MUST</bcp14> report each property that it checked
        separately. A verifier that also produces a summary verdict
        <bcp14>MUST</bcp14> state which properties the verdict covers and which it
        does not.</li>
        <li>A verifier <bcp14>MUST</bcp14> report every field that no checked
        signature or commitment binds as unauthenticated, <bcp14>MUST</bcp14> list
        those fields, and <bcp14>MUST NOT</bcp14> use them to support any reported
        property.</li>
        <li>When the key or identity of a signer is read from the presented
        material itself, the verifier <bcp14>MUST</bcp14> report authorship as
        self-asserted, unless it matched that key against a binding obtained from
        another source.</li>
        <li>A check that was not performed, for example because an input was
        missing, external state was unavailable, or an algorithm is not supported,
        <bcp14>MUST</bcp14> be reported as not performed. It <bcp14>MUST
        NOT</bcp14> be reported as passed, and the property it would have checked
        <bcp14>MUST NOT</bcp14> be reported as established.</li>
        <li>A verifier result <bcp14>SHOULD</bcp14> identify the external state
        that each check depended on, such as the status of a key or a delegation,
        and when that state was read <xref target="MSG-SIRKKAVAARA"/>
        <xref target="MSG-KROEHL-2"/>.</li>
        <li>A verifier <bcp14>MUST NOT</bcp14> report a check of records as
        establishing that the recorded content is true. A comparison of content
        with state that the verifier read itself from a source the writer does not
        control <bcp14>MAY</bcp14> be reported as such, naming that source and when
        it was read.</li>
      </ol>
      <t>A record that only one implementation can check is checkable only by
      trusting that implementation. Specifications that claim the properties in
      this document can avoid this with verification procedures that independent
      implementations can reproduce from published inputs, and with test vectors in
      which every requirement has at least one input that must be rejected and a
      near-identical input that must be accepted, so that an implementation that
      accepts everything and one that rejects everything both fail (Section 5 of
      <xref target="I-D.he-agentproto-verifier-evidence"/> requires a
      discriminating pair for each declared exercise path of a check). A verifier
      distributed inside the presented material is under the control of the
      presenter; a relying party obtains its verifier from another source.</t>
    </section>

    <section anchor="related">
      <name>Relationship to Other Work</name>
      <t>The architecture draft <xref target="I-D.kuehlewind-audit-architecture"/>
      describes an Auditing Service, an Audit Store, and a Recorder, and uses
      "independent" for each. Its Security Considerations section names cases it
      does not solve, including an adversarial service that does not record what
      happened at its boundary, and collusion across all roles.
      <xref target="independence"/> of this document offers a definition for those
      uses. <xref target="completeness"/> states which commitments cannot support a
      completeness reading of an Audit Store.</t>
      <t>The SCITT architecture <xref target="RFC9943"/> states that registering a
      statement proves only that an issuer produced it (Section 9.2), and that
      issuers can submit some of their statements and not others (Section 9.3).
      This document applies those two limits to agent audit records generally and
      states which commitments cannot support a report that a set of registered or
      committed records is complete.</t>
      <t>Several record formats state some of these limits for their own
      mechanisms. <xref target="I-D.sparysh-pala-audit"/> separates checks of a
      sequence against itself, against an anchored head, and against a witness.
      <xref target="I-D.bradleyb-audit-decision-records"/> separates correspondence
      from precedence. <xref target="I-D.gilda-audit-agent-audit-record"/> carries a
      member listing what a record does not claim, and states that a claim about the
      vantage of an observer is not self-proving.
      <xref target="I-D.sharif-agent-audit-trail"/> separates platform attestation
      from the truth of recorded content. This document does not evaluate those
      formats. It gives a statement, independent of format, that each could
      reference.</t>
      <t><xref target="I-D.wadkins-agentproto-action-determinability"/> separates
      authorization, execution, and effect, and requires a specification that
      depends on completeness to define how omission is detected or to return an
      explicit result that completeness cannot be established.
      <xref target="I-D.abak-agent-control-delivery-evidence"/> requires the
      population of a completeness claim to be fixed before evidence is evaluated,
      defines an independent observer by who controls its authority and write
      path, and forbids inferring independence from a different process name,
      service label, or signing key alone.</t>
      <t><xref target="I-D.sergeev-claim-boundaries"/> bounds what an
      execution-related claim can rest on by what the evidence observed and by who
      controls the boundary that produced it; it states that signature validity and
      registration do not create observation or independence, and that presence of
      records is not completeness of coverage.
      <xref target="I-D.sergeev-audit-task-requirements"/> separates verification of
      evidence from evaluation of an audit task, and missing evidence from a
      negative observation. <xref target="I-D.he-agentproto-verifier-evidence"/>
      requires a result that claims completeness to name the set it covers and the
      mechanism by which an omission would be revealed. Sections
      <xref target="control" format="counter"/>,
      <xref target="signer-vs-observer" format="counter"/>,
      <xref target="who-commits" format="counter"/>,
      <xref target="anchored-time" format="counter"/>, and
      <xref target="results" format="counter"/> cite the statements in these
      drafts that overlap with this document.</t>
      <t>This document states the limits as requirements on what a verifier
      reports, independent of format, across the four areas listed in
      <xref target="intro"/>. It also states two cases: a presenter that selects an
      earlier commitment (<xref target="who-commits"/>), and a trust root carried
      in the presented material (<xref target="trust-root"/>).</t>
    </section>

    <section anchor="impl-status" removeInRFC="true">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations of the
      requirements defined by this specification at the time of posting of this
      Internet-Draft, and is based on a proposal described in
      <xref target="RFC7942"/>. The description of implementations in this section
      is intended to assist the IETF in its decision processes in progressing
      drafts to RFCs. Please note that the listing of any individual implementation
      here does not imply endorsement by the IETF. Furthermore, no effort has been
      spent to verify the information presented here that was supplied by IETF
      contributors. This is not intended as, and must not be construed to be, a
      catalog of available implementations or their features. Readers are advised
      to note that other implementations may exist.</t>
      <t>All three entries below are maintained by the organization of the author.
      None of them is a reference implementation, and nothing in this document
      depends on any of them. Each diverges from this document in ways its entry
      states.</t>

      <section anchor="impl-vectors">
        <name>Evidence-Record Conformance Vectors</name>
        <dl newline="false" spacing="compact">
          <dt>Organization:</dt>
          <dd>Tersign</dd>
          <dt>Description:</dt>
          <dd>Test vectors, each with an expected verdict, and a checker that
          depends only on the Python standard library. The vectors are structural:
          no vector identifies the entity that controls a key or that committed a
          head, and an attestation in a vector is an unsigned statement naming an
          identifier. An accepting verdict of the suite is therefore not a report of
          independence or of completeness in the terms of
          <xref target="independence"/> and <xref target="completeness"/>.
          Rejecting vectors include a set that is missing a record below the
          sequence number of a presented head (n4) or hides the omission by
          renumbering (n17), an independence claim whose only attestors are parties
          (n7), and an independence claim that reaches past what the record commits
          to (n20).</dd>
          <dt>Maturity:</dt>
          <dd>Release v0.6.1 of 16 October 2026. Its core set has 239 vectors, 67
          accepting and 172 rejecting, over 11 vector kinds and 11 reject reasons.
          The checker exits with success only if every vector produces its expected
          verdict and every kind produces both verdicts. A cryptographic profile was
          contributed by an outside author. The repository lists reproductions of
          the suite by parties other than its maintainers.</dd>
          <dt>Coverage:</dt>
          <dd>Two disqualifications from <xref target="independence"/> (a claim of
          independence whose only attestors are parties, compared by identifier
          rather than by control, and a claim that reaches past what the record
          commits to), part of <xref target="who-commits"/> (a record missing below
          a presented head is detected), and part of <xref target="results"/> (a
          claim the checker cannot evaluate is never passed). Common
          control, observation independence, the identity of a committing entity,
          and the truth of content cannot be tested from the bytes of a record; no
          vector tests them, and the accepting vectors do not establish them.</dd>
          <dt>Divergences:</dt>
          <dd>Some accepting vectors use "independent" and "complete" in a sense
          that this document does not allow a verifier to report: p23 accepts a
          claim of independence covering delivery when the only attestor outside
          the parties is a counter-signing ledger, and nothing in the vector shows
          that the ledger observed the delivery; and p6 describes as complete a set
          that is consistent with a head whose committer the vector does not
          identify. The descriptions of some vectors, and of the suite, also state
          conditions for independence and for completeness that this document does
          not state. A claim the checker cannot evaluate is rejected, not reported
          as not performed (<xref target="results"/>, item 4).</dd>
          <dt>Licensing:</dt>
          <dd>Apache-2.0</dd>
          <dt>URL:</dt>
          <dd><eref target="https://github.com/tersignhq/evidence-record-conformance"/></dd>
          <dt>Contact:</dt>
          <dd>kevin@tersign.ai</dd>
        </dl>
      </section>

      <section anchor="impl-drill">
        <name>Claim-File Drill</name>
        <dl newline="false" spacing="compact">
          <dt>Organization:</dt>
          <dd>Tersign</dd>
          <dt>Description:</dt>
          <dd>A synthetic evidence archive in three states: intact, with one record
          omitted, and with one record back-dated, where in each altered state the
          holder rewrote every file it controls. The repository includes the script
          that makes the edits and the checker described in
          <xref target="impl-verifier"/>. The omission and the back-dating are
          detected because the edit script, which plays a holder without the
          counter-signer's key, cannot make new counter-signatures or a new anchor.
          The intact archive passes with a verdict that states it is
          integrity-only. The documentation lists what a pass does not show, in the
          terms of <xref target="completeness"/> to <xref target="results"/>: that
          every event was recorded, that the archive is the whole history of the
          holder, that its file list is the one the archive was made with, when each
          record was counter-signed, and that the counter-signer kept one history
          per holder. The checker does not check the time bound, and says so; the
          documentation gives the commands that check it against a timestamp token
          <xref target="RFC3161"/> from an outside timestamping authority, using the
          certificate obtained from that authority rather than the copy in the
          archive.</dd>
          <dt>Divergences:</dt>
          <dd>Those of the checker (<xref target="impl-verifier"/>). The
          documentation also says that a pass shows that none of the archive's
          records is missing up to the commitment it carries; a verifier following
          <xref target="who-commits"/> would report completeness as not established
          for this archive, whose committing key is a published test key and whose
          timestamp token the checker does not open.</dd>
          <dt>Maturity:</dt>
          <dd>Synthetic test material. All keys are published test keys.</dd>
          <dt>Licensing:</dt>
          <dd>Apache-2.0</dd>
          <dt>URL:</dt>
          <dd><eref target="https://github.com/tersignhq/claim-file-drill"/></dd>
        </dl>
      </section>

      <section anchor="impl-verifier">
        <name>Offline Verifier</name>
        <dl newline="false" spacing="compact">
          <dt>Organization:</dt>
          <dd>Tersign</dd>
          <dt>Description:</dt>
          <dd>A checker for evidence archives that depends only on the Python
          standard library, published at content addresses
          (https://tersign.ai/verify/sha256/&lt;digest&gt;/); this entry describes
          the release of 8 October 2026. Its verdict is integrity-only unless the
          address of the counter-signer is supplied from outside the archive and is
          not a published test key. It lists on a separate line fields that no
          signature binds, and states that it does not open timestamp proofs.</dd>
          <dt>Divergences:</dt>
          <dd>Its completeness line does not meet <xref target="who-commits"/>: it
          is printed on every pass, including when the counter-signer's address was
          read from the archive or is a published test key, although the checker
          never opens a timestamp proof; it covers records up to whichever
          commitment the archive includes; and it does not state the assumptions in
          <xref target="who-commits"/>. The commitment it checks names neither a
          writer nor a period, so on its own it does not identify a scope in the
          sense of <xref target="who-commits"/>. Its list of unauthenticated
          fields omits the archive's file list, which no signature binds and which
          the checker uses to report that the archive holds exactly the files
          listed (<xref target="results"/>).</dd>
          <dt>Licensing:</dt>
          <dd>The copy in the claim-file drill repository is distributed under
          Apache-2.0.</dd>
          <dt>URL:</dt>
          <dd><eref target="https://tersign.ai/verify/sha256/e6847fef96410110f52ebe6e21c8caab6b750a90bf6eca4a4abe4fe731d96f1f/"/></dd>
        </dl>
      </section>
    </section>

    <section anchor="security">
      <name>Security Considerations</name>
      <t>This document is about the evidential weight of records. Its main
      security concern is a claim that appears stronger than the mechanism behind
      it, and its requirements exist to prevent such claims from being made
      silently. The following considerations remain.</t>
      <dl newline="true" spacing="normal">
        <dt>Independence can be false or can change.</dt>
        <dd>Independence is a fact about control at a particular time. An entity
        can be acquired by a party, can collude with one, or can have its keys
        compromised. Nothing in a record makes independence checkable from its
        bytes. A relying party establishes it outside the record, and re-examines it
        when the relationships of the entity change. Independence as defined here
        is a matter of control. A relying party may also weigh relationships that
        give no such direction, for example an entity being paid by a party for its
        service; this document does not define when such a relationship impairs
        independence.</dd>
        <dt>Key compromise.</dt>
        <dd>If the key of an independent signer or committing entity is
        compromised, signatures and commitments made with it can be forged.
        Checking a past signature requires knowing which key was valid for that
        entity at the time, and whether it has since been revoked.</dd>
        <dt>Equivocation by the committing entity.</dt>
        <dd>A committing entity that shows different sequences for one scope to
        different relying parties defeats a completeness result unless relying
        parties compare what they have been shown (<xref target="who-commits"/>).
        An anchor does not detect this.</dd>
        <dt>Material supplied by the presenter.</dt>
        <dd>A trust root, a signer key, or a verifier supplied inside the presented
        material is under the control of the presenter. Each of these needs to be
        obtained from another source (<xref target="trust-root"/> and
        <xref target="results"/>).</dd>
        <dt>Choice of scope.</dt>
        <dd>A presenter that chooses the scope after the fact, including by
        presenting an earlier commitment by the same committing entity, can make a
        selected or truncated set appear complete
        (<xref target="who-commits"/>).</dd>
        <dt>Divergent canonicalization.</dt>
        <dd>Two implementations that serialize the same content differently
        compute different digests and report disagreement about the content
        itself <xref target="MSG-KROEHL-2"/>. Specifications that rely on digests
        need to fix the serialization and to publish vectors for its known failure
        cases.</dd>
        <dt>Withholding.</dt>
        <dd>A party can stop submitting records, and a committing entity can refuse
        to commit them. The absence of a record is not evidence that the action did
        not occur.</dd>
      </dl>
    </section>

    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>The considerations in <xref target="RFC6973"/> apply. In addition:</t>
      <ul spacing="normal">
        <li>A commitment over a sequence reveals the existence, number, and timing
        of records even when their content is hidden. A published commitment that
        covers the records of many writers can allow an observer to enumerate the
        writers and to estimate their activity.</li>
        <li>An independent entity that signs, sequences, or commits records learns
        at least their metadata, and possibly their content. Submitting digests
        instead of content limits this, but a digest of content with little entropy
        can be reversed by guessing; salting the content before hashing prevents
        that.</li>
        <li>Erasing a record, for example to meet a legal obligation, looks the same
        as omitting it. A format that supports erasure and also supports
        completeness needs to leave an attributable marker in place of the erased
        record, so that a relying party can distinguish erasure from omission.</li>
        <li>Showing a relying party that a disclosed subset is complete within a
        scope reveals at least the number and positions of the records that were not
        disclosed.</li>
        <li>Identifiers that correlate records across domains, which several of the
        cited formats carry, allow the activity of a user to be tracked across those
        domains (see the Privacy Considerations section of
        <xref target="I-D.kuehlewind-audit-architecture"/>).</li>
      </ul>
    </section>

    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>

  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>

        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>

        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>

      <references>
        <name>Informative References</name>

        <reference anchor="RFC3161" target="https://www.rfc-editor.org/info/rfc3161">
          <front>
            <title>Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)</title>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <author fullname="P. Cain" initials="P." surname="Cain"/>
            <author fullname="D. Pinkas" initials="D." surname="Pinkas"/>
            <author fullname="R. Zuccherato" initials="R." surname="Zuccherato"/>
            <date month="August" year="2001"/>
          </front>
          <seriesInfo name="RFC" value="3161"/>
          <seriesInfo name="DOI" value="10.17487/RFC3161"/>
        </reference>

        <reference anchor="RFC6973" target="https://www.rfc-editor.org/info/rfc6973">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="M. Hansen" initials="M." surname="Hansen"/>
            <author fullname="R. Smith" initials="R." surname="Smith"/>
            <date month="July" year="2013"/>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </reference>

        <reference anchor="RFC7942" target="https://www.rfc-editor.org/info/rfc7942">
          <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"/>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>

        <reference anchor="RFC9334" target="https://www.rfc-editor.org/info/rfc9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>

        <reference anchor="RFC9942" target="https://www.rfc-editor.org/info/rfc9942">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Receipts</title>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <date month="June" year="2026"/>
          </front>
          <seriesInfo name="RFC" value="9942"/>
          <seriesInfo name="DOI" value="10.17487/RFC9942"/>
        </reference>

        <reference anchor="RFC9943" target="https://www.rfc-editor.org/info/rfc9943">
          <front>
            <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <author fullname="Y. Deshpande" initials="Y." surname="Deshpande"/>
            <author fullname="S. Lasker" initials="S." surname="Lasker"/>
            <date month="June" year="2026"/>
          </front>
          <seriesInfo name="RFC" value="9943"/>
          <seriesInfo name="DOI" value="10.17487/RFC9943"/>
        </reference>

        <reference anchor="I-D.kuehlewind-audit-architecture" target="https://datatracker.ietf.org/doc/html/draft-kuehlewind-audit-architecture-01">
          <front>
            <title>An Architecture for Auditing Agent Delegation and Interactions</title>
            <author fullname="Mirja Kuehlewind" initials="M." surname="Kuehlewind"/>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz"/>
            <date day="7" month="September" year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-kuehlewind-audit-architecture-01"/>
        </reference>

        <reference anchor="I-D.sharif-agent-audit-trail" target="https://datatracker.ietf.org/doc/html/draft-sharif-agent-audit-trail-09">
          <front>
            <title>Agent Audit Trail: A Standard Logging Format for Autonomous AI Systems</title>
            <author fullname="Raza Sharif" initials="R." surname="Sharif"/>
            <date day="26" month="October" year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-sharif-agent-audit-trail-09"/>
        </reference>

        <reference anchor="I-D.gilda-audit-agent-audit-record" target="https://datatracker.ietf.org/doc/html/draft-gilda-audit-agent-audit-record-01">
          <front>
            <title>An Audit Record Format for AI Agent Authorization Decisions</title>
            <author fullname="Sankalp Gilda" initials="S." surname="Gilda"/>
            <date day="27" month="October" year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-gilda-audit-agent-audit-record-01"/>
        </reference>

        <reference anchor="I-D.bradleyb-audit-decision-records" target="https://datatracker.ietf.org/doc/html/draft-bradleyb-audit-decision-records-00">
          <front>
            <title>Signed Decision Records for Agent Authorization: Disclosures, Entry Emission, and Ordering Evidence</title>
            <author fullname="Bradley B" initials="B." surname="B"/>
            <date day="13" month="August" year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bradleyb-audit-decision-records-00"/>
        </reference>

        <reference anchor="I-D.sparysh-pala-audit" target="https://datatracker.ietf.org/doc/html/draft-sparysh-pala-audit-02">
          <front>
            <title>PALA-1: A Tamper-Evident Audit Record Format for Constrained and Disconnected Deployments</title>
            <author fullname="A. Sparysh" initials="A." surname="Sparysh"/>
            <author fullname="O. Verteletskyi" initials="O." surname="Verteletskyi"/>
            <date day="22" month="October" year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-sparysh-pala-audit-02"/>
        </reference>

        <reference anchor="I-D.wadkins-agentproto-action-determinability" target="https://datatracker.ietf.org/doc/html/draft-wadkins-agentproto-action-determinability-00">
          <front>
            <title>Independent Determinability of Agent Actions</title>
            <author fullname="D. Wadkins" initials="D." surname="Wadkins"/>
            <date day="10" month="September" year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-wadkins-agentproto-action-determinability-00"/>
        </reference>

        <reference anchor="I-D.abak-agent-control-delivery-evidence" target="https://datatracker.ietf.org/doc/html/draft-abak-agent-control-delivery-evidence-02">
          <front>
            <title>Evidence Requirements for Agent Control Delivery and Outcome Reconciliation</title>
            <author fullname="A. T. Abak" initials="A. T." surname="Abak"/>
            <date day="11" month="October" year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-abak-agent-control-delivery-evidence-02"/>
        </reference>

        <reference anchor="I-D.sergeev-claim-boundaries" target="https://datatracker.ietf.org/doc/html/draft-sergeev-claim-boundaries-02">
          <front>
            <title>Claim Boundaries for Execution Evidence</title>
            <author fullname="M. Sergeev" initials="M." surname="Sergeev"/>
            <date day="15" month="October" year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-sergeev-claim-boundaries-02"/>
        </reference>

        <reference anchor="I-D.sergeev-audit-task-requirements" target="https://datatracker.ietf.org/doc/html/draft-sergeev-audit-task-requirements-00">
          <front>
            <title>Task-Relative Evidence Requirements for Agent Auditing</title>
            <author fullname="M. Sergeev" initials="M." surname="Sergeev"/>
            <date day="15" month="October" year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-sergeev-audit-task-requirements-00"/>
        </reference>

        <reference anchor="I-D.he-agentproto-verifier-evidence" target="https://datatracker.ietf.org/doc/html/draft-he-agentproto-verifier-evidence-01">
          <front>
            <title>Exercise and Completeness Evidence for Agent Protocol Verifier Results</title>
            <author fullname="J. S. He" initials="J. S." surname="He"/>
            <date day="18" month="October" year="2026"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-he-agentproto-verifier-evidence-01"/>
        </reference>

        <reference anchor="AUDIT-CHARTER" target="https://github.com/mirjak/audit-bof-preparation/blob/main/audit-charter.md">
          <front>
            <title>Agent Use of Delegation and Interaction Traceability (AUDIT) Working Group Charter (proposed)</title>
            <author/>
            <date day="19" month="October" year="2026"/>
          </front>
        </reference>

        <reference anchor="ARCH-ISSUE-32" target="https://github.com/mirjak/draft-audit-architecture/issues/32">
          <front>
            <title>Interpretation and verification limits of audit information</title>
            <author/>
            <date day="17" month="September" year="2026"/>
          </front>
          <refcontent>Issue 32 in the issue tracker of the AUDIT architecture draft</refcontent>
        </reference>

        <reference anchor="ARCH-ISSUE-37" target="https://github.com/mirjak/draft-audit-architecture/issues/37">
          <front>
            <title>Time evidence and split-view detection for the Transparency Log (no central trust anchor)</title>
            <author/>
            <date day="20" month="October" year="2026"/>
          </front>
          <refcontent>Issue 37 in the issue tracker of the AUDIT architecture draft</refcontent>
        </reference>

        <reference anchor="MSG-STEELE" target="https://mailarchive.ietf.org/arch/msg/audit/FyqoZlmVup_u8DHU1xbYvGBOZq8/">
          <front>
            <title>Audit Charter Comments</title>
            <author fullname="Orie Steele" initials="O." surname="Steele"/>
            <date day="16" month="September" year="2026"/>
          </front>
          <refcontent>message to the audit@ietf.org mailing list</refcontent>
        </reference>

        <reference anchor="MSG-SCHROCK" target="https://mailarchive.ietf.org/arch/msg/audit/-RRM-vJFbO1KYetqKiLO3zBW1Lc/">
          <front>
            <title>Re: Verification [was: Re: Next Wave of Updates for the Proposed Audit Charter - please review and comment]</title>
            <author fullname="Iman Schrock" initials="I." surname="Schrock"/>
            <date day="23" month="September" year="2026"/>
          </front>
          <refcontent>message to the audit@ietf.org mailing list</refcontent>
        </reference>

        <reference anchor="MSG-SIRKKAVAARA" target="https://mailarchive.ietf.org/arch/msg/audit/asX1kULJlX4TmIMpq8YP1XhsCZs/">
          <front>
            <title>Re: Verification [was: Re: Next Wave of Updates for the Proposed Audit Charter - please review and comment]</title>
            <author fullname="Henri Sirkkavaara" initials="H." surname="Sirkkavaara"/>
            <date day="24" month="September" year="2026"/>
          </front>
          <refcontent>message to the audit@ietf.org mailing list</refcontent>
        </reference>

        <reference anchor="MSG-KROEHL-2" target="https://mailarchive.ietf.org/arch/msg/audit/zVIAGehP60aLDYjHQO8q4IL7F4o/">
          <front>
            <title>Re: Verification [was: Re: Next Wave of Updates for the Proposed Audit Charter - please review and comment]</title>
            <author fullname="Lars Kersten Kroehl" initials="L. K." surname="Kroehl"/>
            <date day="24" month="September" year="2026"/>
          </front>
          <refcontent>message to the audit@ietf.org mailing list</refcontent>
        </reference>

        <reference anchor="MSG-WONG-1" target="https://mailarchive.ietf.org/arch/msg/audit/6VAeBMl4BVgEDPrdvu2yw6yHQZU/">
          <front>
            <title>Re: Verification [was: Re: Next Wave of Updates for the Proposed Audit Charter - please review and comment]</title>
            <author fullname="Gareth Wong" initials="G." surname="Wong"/>
            <date day="28" month="September" year="2026"/>
          </front>
          <refcontent>message to the audit@ietf.org mailing list</refcontent>
        </reference>

        <reference anchor="MSG-SAHU" target="https://mailarchive.ietf.org/arch/msg/audit/SqszkP0gJJreYGc5VrVb5qP0iCU/">
          <front>
            <title>Re: Verification [was: Re: Next Wave of Updates for the Proposed Audit Charter - please review and comment]</title>
            <author fullname="Nancy Sahu" initials="N." surname="Sahu"/>
            <date day="28" month="September" year="2026"/>
          </front>
          <refcontent>message to the audit@ietf.org mailing list</refcontent>
        </reference>

        <reference anchor="MSG-KROEHL-1" target="https://mailarchive.ietf.org/arch/msg/audit/5jVN4_gHGVpMYWDJ72pjsJdAQ-8/">
          <front>
            <title>Re: Verification [was: Re: Next Wave of Updates for the Proposed Audit Charter - please review and comment]</title>
            <author fullname="Lars Kersten Kroehl" initials="L. K." surname="Kroehl"/>
            <date day="28" month="September" year="2026"/>
          </front>
          <refcontent>message to the audit@ietf.org mailing list</refcontent>
        </reference>

        <reference anchor="MSG-WONG-2" target="https://mailarchive.ietf.org/arch/msg/audit/zB_nbmJN9edbuV9zcSG6rikelag/">
          <front>
            <title>Re: Verification [was: Re: Next Wave of Updates for the Proposed Audit Charter - please review and comment]</title>
            <author fullname="Gareth Wong" initials="G." surname="Wong"/>
            <date day="5" month="October" year="2026"/>
          </front>
          <refcontent>message to the audit@ietf.org mailing list</refcontent>
        </reference>

        <reference anchor="MSG-KROEHL-3" target="https://mailarchive.ietf.org/arch/msg/audit/xcCN02MG4mnkvwJ1Pt34BZ546Z4/">
          <front>
            <title>Re: Charter Comments -- more specific on the scope?</title>
            <author fullname="Lars Kersten Kroehl" initials="L. K." surname="Kroehl"/>
            <date day="14" month="October" year="2026"/>
          </front>
          <refcontent>message to the audit@ietf.org mailing list</refcontent>
        </reference>
      </references>
    </references>

    <section anchor="acknowledgments" numbered="false">
      <name>Acknowledgments</name>
      <t>This document responds to questions raised in the discussion of the
      proposed AUDIT charter; the messages it draws on are cited in the
      references. The author is affiliated with Tersign, which maintains the
      implementations listed in <xref target="impl-status"/>. This document was
      drafted with AI tools working for the author, who is responsible for its
      content.</t>
    </section>
  </back>
</rfc>
