<?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.43 (Ruby 3.3.12) -->


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

]>


<rfc ipr="trust200902" docName="draft-clifford-testimony-record-01" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Testimony Record">The Testimony Record: An Interchange Format for What an Automated System Believed and Did</title>

    <author initials="T." surname="Clifford" fullname="Troy Clifford">
      <organization>Machine Testimony</organization>
      <address>
        <email>troy@machinetestimony.com</email>
        <uri>https://machinetestimony.org</uri>
      </address>
    </author>

    <date year="2026" month="September" day="05"/>

    <area>Applications and Real-Time</area>
    
    <keyword>accountability</keyword> <keyword>provenance</keyword> <keyword>audit</keyword> <keyword>autonomous agents</keyword>

    <abstract>


<?line 58?>

<t>This document specifies the Testimony Record, an append-only interchange format
for the account an automated system gives of its own operation: what it
believed, what evidence each belief rested on, which of its beliefs
contradicted one another, what actions it attempted, and who authorised the
consequential ones.</t>

<t>The format is defined so that a party who was not present, and who has no
access to the emitting system, can read a record and check specific properties
of it. Four conformance levels are defined, each stating a property that can be
verified mechanically rather than asserted.</t>

<t>This is not a logging format. Logs record what a program did. A Testimony
Record states what a system claimed to know, what disagreed with it, and what
it was permitted to do about it.</t>



    </abstract>



  </front>

  <middle>


<?line 75?>

<section anchor="introduction"><name>Introduction</name>

<t>Automated systems increasingly hold beliefs about people and take actions on
the strength of them. When such an action is later questioned, the questions
asked are consistent: what did the system believe at that moment, where did
that belief come from, was there anything contradicting it, and who allowed the
action to proceed.</t>

<t>Existing formats answer none of these. Structured logging records events.
Distributed tracing records calls. Neither retains what a system concluded, nor
whether two of its conclusions disagreed, nor whether a person with a name
permitted a consequential action or a process did so unattended.</t>

<t>The gap is not hypothetical. A survey of eight agent memory and agent framework
implementations <xref target="CENSUS"/> assessed six that take or gate actions, five of them
written by someone other than this document's author. Against the requirement
that an approval identify a person or a named role holder, four of those five
were assessed absent and the fifth could not be established either way. None
was assessed present. A run in which an engineer read the arguments and decided
produces a record indistinguishable from one in which a script approved
everything automatically.</t>

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

<t>This document specifies a serialisation and a set of conformance levels. It
does not specify how a system forms beliefs, how it should resolve
disagreements, what risk classification it should apply, or how it should
authenticate an approver. Those are properties of an implementation. This
document specifies what such a system must be able to write down about them.</t>

</section>
<section anchor="design-constraints"><name>Design Constraints</name>

<t>Three observations shape the format.</t>

<t>First, a record whose completeness cannot be checked is worth little regardless
of its accuracy. A conformance claim the reader cannot verify is an adjective.</t>

<t>Second, silently resolving a disagreement destroys the only evidence that the
system was ever uncertain. Both sides of a contradiction are therefore
retained, and resolution, if it occurs, is recorded as an event with an actor.</t>

<t>Third, an ungrounded belief must be expressible. A system that cannot state
"believed, and nothing supports this" will, under pressure to produce
well-formed output, produce support that does not exist.</t>

</section>
</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<dl>
  <dt>Record:</dt>
  <dd>
    <t>A sequence of entries describing one system over one period.</t>
  </dd>
  <dt>Entry:</dt>
  <dd>
    <t>A single JSON object; one element of the serialisation.</t>
  </dd>
  <dt>Emitter:</dt>
  <dd>
    <t>The system that produced the record.</t>
  </dd>
  <dt>Actor:</dt>
  <dd>
    <t>A JSON object carrying at least <spanx style="verb">id</spanx> and <spanx style="verb">kind</spanx>, where <spanx style="verb">kind</spanx> is one of
<spanx style="verb">agent</spanx>, <spanx style="verb">human</spanx>, <spanx style="verb">system</spanx> or <spanx style="verb">connector</spanx>. It <bcp14>MAY</bcp14> carry <spanx style="verb">name</spanx> and <spanx style="verb">role</spanx>.</t>
  </dd>
  <dt>Subject:</dt>
  <dd>
    <t>The thing a belief is about. Frequently a person.</t>
  </dd>
  <dt>Proposition:</dt>
  <dd>
    <t>A claim about a subject, expressed as a stable token or URI rather than as
prose, so that two entries can be compared.</t>
  </dd>
  <dt>Consequential action:</dt>
  <dd>
    <t>An action with an effect outside the emitter.</t>
  </dd>
</dl>

</section>
<section anchor="serialisation"><name>Serialisation</name>

<t>A record is a sequence of JSON texts <xref target="RFC8259"/> in the I-JSON <xref target="RFC7493"/>
profile, encoded in UTF-8. Two framings are defined and carry the same entries:</t>

<dl>
  <dt>Line-delimited:</dt>
  <dd>
    <t>One JSON text per line, separated by LF. This is the common on-disk form and
is used throughout this document for readability.</t>
  </dd>
  <dt>Sequence:</dt>
  <dd>
    <t>JSON Text Sequences <xref target="RFC7464"/>, each JSON text preceded by RS (0x1E). This
is the self-delimiting form, and the one the media type in
<xref target="iana-considerations"/> names.</t>
  </dd>
</dl>

<t>Converting between them is mechanical. A parser <bcp14>MAY</bcp14> accept both, and can
distinguish them by the leading octet.</t>

<t>Every entry <bcp14>MUST</bcp14> contain the following members.</t>

<dl>
  <dt>spec:</dt>
  <dd>
    <t>The specification version this entry conforms to. This document specifies
<spanx style="verb">testimony-record/0.2</spanx>. All entries in one record <bcp14>MUST</bcp14> name the same version.</t>
  </dd>
  <dt>type:</dt>
  <dd>
    <t>One of <spanx style="verb">belief</spanx>, <spanx style="verb">evidence</spanx>, <spanx style="verb">conflict</spanx>, <spanx style="verb">decision</spanx>, <spanx style="verb">approval</spanx>, <spanx style="verb">integrity</spanx>,
<spanx style="verb">scope</spanx>.</t>
  </dd>
  <dt>id:</dt>
  <dd>
    <t>A string unique within the record. An identifier <bcp14>MUST NOT</bcp14> be reused, in this
record or in a later one from the same emitter.</t>
  </dd>
  <dt>at:</dt>
  <dd>
    <t>The time the entry was written, as an <xref target="RFC3339"/> timestamp. This is the
write time and not the time any described fact held. Entries <bcp14>MUST</bcp14> appear in
non-decreasing write-time order.</t>
  </dd>
</dl>

<t>An entry <bcp14>MAY</bcp14> carry members not defined here. A consumer <bcp14>MUST</bcp14> ignore members it
does not recognise.</t>

</section>
<section anchor="entry-types"><name>Entry Types</name>

<section anchor="scope-1"><name>scope</name>

<t>At most one per record, declaring what the emitting system does. Introduced in
<spanx style="verb">testimony-record/0.2</spanx>; a record naming <spanx style="verb">testimony-record/0.1</spanx> <bcp14>MUST NOT</bcp14> carry
one.</t>

<dl>
  <dt>acts:</dt>
  <dd>
    <t>Boolean. <bcp14>REQUIRED</bcp14>. Whether the emitter takes or gates consequential actions.</t>
  </dd>
  <dt>declared_by:</dt>
  <dd>
    <t>An Actor. <bcp14>OPTIONAL</bcp14>. What made the declaration.</t>
  </dd>
</dl>

<t>A record with no scope entry is read as <spanx style="verb">acts: true</spanx>, which is what every
<spanx style="verb">testimony-record/0.1</spanx> record means. A record declaring <spanx style="verb">acts: false</spanx> <bcp14>MUST NOT</bcp14>
contain a decision entry. A record that contradicts its own declaration is not
describing the system it claims to describe, and fails at the lowest
conformance level rather than at the level it would otherwise have skipped.</t>

</section>
<section anchor="belief"><name>belief</name>

<dl>
  <dt>subject, proposition:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. What the belief concerns, and what is claimed.</t>
  </dd>
  <dt>polarity:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. <spanx style="verb">affirm</spanx> or <spanx style="verb">deny</spanx>.</t>
  </dd>
  <dt>state:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. <spanx style="verb">believed_true</spanx>, <spanx style="verb">believed_false</spanx>, <spanx style="verb">contradicted</spanx> or <spanx style="verb">unknown</spanx>, as
at write time. A later entry may supersede it. This entry is never edited.</t>
  </dd>
  <dt>asserted_by:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. An Actor.</t>
  </dd>
  <dt>evidence:</dt>
  <dd>
    <t>An array of evidence entry identifiers. <bcp14>REQUIRED</bcp14> at TR-2 and above. An empty
array asserts that the belief is ungrounded, and <bcp14>MUST</bcp14> be representable.</t>
  </dd>
</dl>

</section>
<section anchor="evidence"><name>evidence</name>

<dl>
  <dt>kind:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. <spanx style="verb">document</spanx>, <spanx style="verb">message</spanx>, <spanx style="verb">event</spanx>, <spanx style="verb">api</spanx>, <spanx style="verb">human</spanx> or <spanx style="verb">derived</spanx>.</t>
  </dd>
  <dt>source:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. A stable identifier for where the material came from.</t>
  </dd>
  <dt>digest:</dt>
  <dd>
    <t><bcp14>OPTIONAL</bcp14>, <bcp14>RECOMMENDED</bcp14>. A content hash, so a cited source can be shown
unchanged without the record carrying its content.</t>
  </dd>
  <dt>excerpt:</dt>
  <dd>
    <t><bcp14>OPTIONAL</bcp14>. The quoted material itself.</t>
  </dd>
  <dt>redacted:</dt>
  <dd>
    <t><bcp14>OPTIONAL</bcp14> boolean. True where content was deliberately withheld. The citation
still stands, and a digest allows the holder of the source to show it
unchanged.</t>
  </dd>
</dl>

</section>
<section anchor="conflict"><name>conflict</name>

<dl>
  <dt>subject, proposition:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. What is disagreed about.</t>
  </dd>
  <dt>sides:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. Two or more belief identifiers. Every one of them <bcp14>MUST</bcp14> be present
in the record as a belief entry.</t>
  </dd>
  <dt>resolution:</dt>
  <dd>
    <t>An object or null. Null is valid, and frequently the honest value: a
disagreement that nothing resolved is a fact about the system. A non-null
resolution <bcp14>MUST</bcp14> carry <spanx style="verb">method</spanx>, <spanx style="verb">by</spanx>, <spanx style="verb">at</spanx> and <spanx style="verb">kept</spanx>, and <spanx style="verb">kept</spanx> <bcp14>MUST</bcp14> be one
of the identifiers in <spanx style="verb">sides</spanx>.</t>
  </dd>
</dl>

<t>Where a belief has <spanx style="verb">state</spanx> of <spanx style="verb">contradicted</spanx>, a conflict entry naming that
subject and proposition <bcp14>MUST</bcp14> be present.</t>

</section>
<section anchor="decision"><name>decision</name>

<dl>
  <dt>action_type:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. What was proposed.</t>
  </dd>
  <dt>risk_class:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. <spanx style="verb">low</spanx>, <spanx style="verb">medium</spanx> or <spanx style="verb">high</spanx>.</t>
  </dd>
  <dt>risk_source:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14> at TR-3. Where the risk class came from, named from this list:
<spanx style="verb">registry</spanx>, <spanx style="verb">policy</spanx>, <spanx style="verb">catalogue</spanx>, <spanx style="verb">catalog</spanx>, <spanx style="verb">configuration</spanx>, <spanx style="verb">config</spanx>,
<spanx style="verb">regulation</spanx>, <spanx style="verb">operator</spanx> or <spanx style="verb">human</spanx>. A deployment whose source is none of
these writes it with an <spanx style="verb">x-</spanx> prefix, as in <spanx style="verb">x-inhouse-registry</spanx>, so that a
reader sees an extension rather than a value they might mistake for a defined
one. Omitting the member does not satisfy the requirement, and neither do
<spanx style="verb">model</spanx>, <spanx style="verb">plan</spanx>, <spanx style="verb">prompt</spanx>, <spanx style="verb">request</spanx>, <spanx style="verb">request-body</spanx> or <spanx style="verb">agent</spanx>, a risk class
originating in the proposing model's own output being no gate at all.</t>
  </dd>
  <dt/>
  <dd>
    <t>What this member establishes is bounded, and the bound should be stated
rather than discovered. It is an assertion by the emitter. No reader can
confirm from the record that a registry exists or that the class in the entry
came from it. Requiring a named value rather than free text makes the
assertion specific and comparable across systems; it does not make it
evidence.</t>
  </dd>
  <dt>proposed_by:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. An Actor.</t>
  </dd>
  <dt>verdict:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. <spanx style="verb">permitted</spanx> or <spanx style="verb">refused</spanx>.</t>
  </dd>
  <dt>executed:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. Boolean. A decision with <spanx style="verb">verdict</spanx> of <spanx style="verb">refused</spanx> <bcp14>MUST NOT</bcp14> record
<spanx style="verb">executed</spanx> as true.</t>
  </dd>
  <dt>reason:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14> where the verdict is <spanx style="verb">refused</spanx>.</t>
  </dd>
  <dt>inputs:</dt>
  <dd>
    <t><bcp14>OPTIONAL</bcp14>. Identifiers of the beliefs the decision rested on.</t>
  </dd>
  <dt>approval:</dt>
  <dd>
    <t>The identifier of an approval entry. <bcp14>REQUIRED</bcp14> where <spanx style="verb">risk_class</spanx> is <spanx style="verb">high</spanx>
and <spanx style="verb">executed</spanx> is true.</t>
  </dd>
</dl>

</section>
<section anchor="approval"><name>approval</name>

<dl>
  <dt>decision:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. The identifier of the decision this approval permits, which <bcp14>MUST</bcp14> be
present in the record.</t>
  </dd>
  <dt>approver:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. An Actor whose <spanx style="verb">kind</spanx> is <spanx style="verb">human</spanx>.</t>
  </dd>
  <dt>identity_source:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. Where the approver's identity was obtained, named from this list:
<spanx style="verb">auth-session</spanx>, <spanx style="verb">session</spanx>, <spanx style="verb">api-key</spanx>, <spanx style="verb">jwt</spanx>, <spanx style="verb">oidc</spanx>, <spanx style="verb">oauth</spanx>, <spanx style="verb">saml</spanx>, <spanx style="verb">mtls</spanx>,
<spanx style="verb">webauthn</spanx>, <spanx style="verb">passkey</spanx>, <spanx style="verb">signed-token</spanx>, <spanx style="verb">directory</spanx>, <spanx style="verb">sso</spanx>, <spanx style="verb">ldap</spanx> or
<spanx style="verb">kerberos</spanx>. Anything else is written with an <spanx style="verb">x-</spanx> prefix. The values excluded for <spanx style="verb">risk_source</spanx> are excluded here, and a
name the proposing model produced does not satisfy the requirement.</t>
  </dd>
  <dt/>
  <dd>
    <t>Like <spanx style="verb">risk_source</spanx>, this is an assertion. A record cannot show that the name
in an approval came from the session it names, and a validator reading the
record cannot either. It is worth requiring because a system that records no
approver at all cannot be asked afterwards who decided, and one that records
a name and where it says the name came from can at least be contradicted by
its own logs.</t>
  </dd>
  <dt>method:</dt>
  <dd>
    <t><bcp14>OPTIONAL</bcp14>. How the approval was given.</t>
  </dd>
</dl>

<t>The approver <bcp14>MUST NOT</bcp14> be the principal named in the approved decision's
<spanx style="verb">proposed_by</spanx>. An implementation that lets an acting agent's own credential
sign off its own action does not meet the level, however the name in the entry
is spelled.</t>

</section>
<section anchor="integrity"><name>integrity</name>

<dl>
  <dt>scheme:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. <spanx style="verb">replay</spanx>, <spanx style="verb">hash-chain</spanx>, <spanx style="verb">signature</spanx> or <spanx style="verb">external-anchor</spanx>.</t>
  </dd>
  <dt>digest:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14>. <spanx style="verb">sha256:</spanx> followed by the lowercase hexadecimal SHA-256 of the
canonical form of the entries <spanx style="verb">covers</spanx> names, computed as in
<xref target="digest-computation"/>. A digest whose computation is not specified cannot be
recomputed by a reader, which is the only thing that makes it worth
recording.</t>
  </dd>
  <dt>engine, engine_version:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14> where the scheme is <spanx style="verb">replay</spanx>. A replay nobody else can reproduce is
not a verification.</t>
  </dd>
  <dt>covers:</dt>
  <dd>
    <t><bcp14>OPTIONAL</bcp14> in general, <bcp14>REQUIRED</bcp14> at TR-4. Identifiers of the entries the digest
is computed over, in the order they are hashed, each of which <bcp14>MUST</bcp14> be present
in the record. A digest that does not say what it is over cannot be
recomputed by anyone, so a record reaching the verifiable level cannot omit
this.</t>
  </dd>
  <dt>anchor:</dt>
  <dd>
    <t><bcp14>REQUIRED</bcp14> where the scheme is <spanx style="verb">external-anchor</spanx>. An object carrying <spanx style="verb">kind</spanx>,
<spanx style="verb">authority</spanx> and <spanx style="verb">token</spanx>. The point of an external anchor is that its evidence
is held by somebody other than the emitter, so a scheme naming no authority
and carrying no token is the claim without the thing, and is refused.</t>
  </dd>
</dl>

<t>An <spanx style="verb">external-anchor</spanx> of kind <spanx style="verb">rfc3161</spanx> carries, as <spanx style="verb">token</spanx>, the base64 of a
TimeStampResp <xref target="RFC3161"/> obtained from a Time Stamp Authority over the
entry's digest. The <spanx style="verb">messageImprint</spanx> of the TSTInfo in that token <bcp14>MUST</bcp14> be
the entry's digest: a token signed over anything else is a valid timestamp
for some other record and says nothing about this one.
Such a token is verifiable by any RFC 3161 implementation, without reference to
the emitter or to this document's tooling, which is the property that makes it
worth more than a digest the emitter computed. It fixes the bytes and the time
and nothing else: it does not establish that the record is accurate, that it is
complete, or that a different record was not also produced and discarded.</t>

</section>
<section anchor="digest-computation"><name>Computing a digest</name>

<t>An implementation computes the digest of an integrity entry as follows.</t>

<t><list style="numbers" type="1">
  <t>Take the entries <spanx style="verb">covers</spanx> names, in the order it names them.</t>
  <t>Serialise each as a JSON object with no insignificant whitespace, its
members ordered by name comparing names as sequences of Unicode code points,
and members whose names begin with U+005F LOW LINE omitted. Those are reader
annotations rather than record content, and a digest that varied with them
would change when a tool added a line number.</t>
  <t>Join the serialised entries with a single U+000A LINE FEED, with none after
the last.</t>
  <t>Encode the result as UTF-8 and take its SHA-256. The <spanx style="verb">digest</spanx> member is
<spanx style="verb">sha256:</spanx> followed by the lowercase hexadecimal.</t>
</list></t>

<t>Member names defined by this document are ASCII, so ordering by code point and
the UTF-16 code unit ordering of <xref target="RFC8785"/> cannot differ for them. An
extension using non-ASCII member names should expect that they can, and should
not.</t>

<t>Numbers are the one place where two implementations can serialise the same
value into different bytes. A number that is a whole number is written without
a fraction, as <xref target="RFC8785"/> requires: <spanx style="verb">1</spanx>, never <spanx style="verb">1.0</spanx>. Outside that,
implementations agree on the shortest representation that round-trips, but not
on where to switch to an exponent, so a covered entry <bcp14>MUST NOT</bcp14> contain a number
whose magnitude is below 0.0001 or at or above 1e21, nor an integer whose
magnitude exceeds 2^53. An implementation encountering one refuses the record
rather than emitting a digest another implementation would not reproduce.</t>

</section>
</section>
<section anchor="conformance-levels"><name>Conformance Levels</name>

<t>Each level states a property of the record. The level reached is the highest
for which nothing at that level or below is unmet.</t>

<section anchor="tr-1-recorded"><name>TR-1: Recorded</name>

<t>The record parses, is not empty, and names one known specification version
throughout. Every entry has a known type, its required members, allowed values
for enumerated members, a unique identifier and a well-formed write time.
Entries are in non-decreasing write-time order, which is what append-only looks
like from outside. At most one scope entry is present, and a record declaring
that it does not act contains no decisions.</t>

</section>
<section anchor="tr-2-explained"><name>TR-2: Explained</name>

<t>Every belief states its evidence, including by stating that there is none, and
every cited evidence entry is present. Every conflict names at least two sides,
and every side is retained as a belief in the record. A belief marked
contradicted has a conflict entry naming it. A resolved conflict records the
method, the actor, the time, and which side was kept.</t>

</section>
<section anchor="tr-3-gated"><name>TR-3: Gated</name>

<t>The record contains at least one decision, unless the emitter has declared that
it does not act. Every decision's risk class comes from outside the proposing
model's control. A refused action did not execute, and records its reason. An
executed high-risk action has an approval entry. Every approval names a human,
sourced from authentication rather than from model output, and that human is
not the proposer.</t>

<t>An emitter declaring <spanx style="verb">acts: false</spanx> satisfies this level by having no actions to
gate. This is satisfaction rather than exemption: such a system may reach TR-4.</t>

</section>
<section anchor="tr-4-verifiable"><name>TR-4: Verifiable</name>

<t>The record publishes an integrity scheme; every integrity entry carries a
digest and says which entries that digest is over; everything an integrity
entry claims to cover is present in the record; and, for each entry, the digest
is the digest of exactly those entries, computed as in <xref target="digest-computation"/>.
Where the scheme is <spanx style="verb">external-anchor</spanx>, the token names an authority and the
message imprint that authority signed is the digest in the entry.</t>

<t>The name of this level is a claim about what a reader can do, so the checks
behind it are arithmetic over bytes already in the record rather than
statements about the emitter. The exception is <spanx style="verb">replay</spanx>, which names an engine
whose behaviour no reader can confirm from the record. It is reported as an
attestation, and a record whose only integrity is a replay claim reaches this
level on the emitter's word.</t>

</section>
<section anchor="what-a-level-rests-on"><name>What a Level Rests On</name>

<t>The checks behind these levels are not all of one kind, and a level reported
without saying so is a number standing on an unknown mixture.</t>

<t>A <strong>verified</strong> check is one a reader can settle from the record alone. That the
evidence a belief cites is present, that both sides of a conflict are retained,
that a refused action is not also recorded as executed, that a digest is the
digest of the entries it covers, that the authority named in an anchor signed
that digest and not a different one. A reader who disagrees with a validator
about any of these can settle it without asking anybody.</t>

<t>An <strong>attested</strong> check is one the record asserts and no reader can confirm from
it. That a risk class came from a registry. That an approver's name came from
an authenticated session. That a replay engine reproduces what it claims to.
These are worth requiring, because a system that records nothing cannot be
contradicted and one that records a specific claim can be. They are not
evidence, and a conformance report that presents them as though they were is
making the error this format exists to make visible.</t>

<t>An implementation reporting a level <bcp14>SHOULD</bcp14> report, for each level, how many of
its checks were of each kind. The reference validator does. A level cited
without that distinction is a weaker statement than it appears.</t>

</section>
<section anchor="on-the-ordering"><name>On the Ordering</name>

<t>The levels are cumulative, which conflates two independent properties: whether
a system gates its actions, and whether its record can be shown unaltered. A
system may hold a genuine hash chain and gate nothing, and before the scope
entry existed such a system reported TR-2 however good its integrity was.</t>

<t>The scope entry resolves the case where the system does not act. It does not
resolve the general case. Implementations reporting conformance <bcp14>SHOULD</bcp14> report
each level's own result alongside the level reached, so that a satisfied level
sitting behind an unmet one below remains visible, and <bcp14>SHOULD</bcp14> report the
declared scope with the level, because "TR-4, record only" is a different
sentence from "TR-4".</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>A record is evidence about a system, and frequently about people.</t>

<t>A record is not a secure log below TR-4. Nothing in the format prevents an
entry being altered after the fact. Non-decreasing write times demonstrate that
a record is consistent with having been appended to, not that it was. Consumers
<bcp14>MUST NOT</bcp14> treat conformance at TR-1 through TR-3 as tamper evidence.</t>

<t>Not every integrity scheme is worth the same. A digest computed by the emitter
detects alteration by a third party and establishes nothing about the emitter,
who can recompute it over whatever they please. Only <spanx style="verb">signature</spanx> and
<spanx style="verb">external-anchor</spanx> place evidence outside the emitter's control, and only those
support a claim made against the emitter rather than on the emitter's behalf. A
consumer evaluating a TR-4 record <bcp14>SHOULD</bcp14> read the scheme rather than the
level.</t>

<t>A self-declared scope is believed by the validator. An emitter that acts and
declares otherwise skips the gate requirements. Two things limit the damage: a
record contradicting its own declaration fails at TR-1, and the declaration is
reported with the level rather than hidden inside it. Neither is a substitute
for external attestation. Consumers requiring assurance beyond self-assertion
should look to the SCITT architecture <xref target="I-D.ietf-scitt-architecture"/> and to
transparency logs <xref target="RFC9162"/>.</t>

<t>An approval is only as strong as its identity source. The format requires
identity to originate outside anything the proposing model can write, and
requires the approver not to be the proposer, but it cannot verify that an
implementation honoured either. These are the failures a reader cannot
otherwise detect, which is why they are stated as requirements rather than left
to implementations.</t>

<t>An identifier reused across records defeats them both. Identifier uniqueness is
checked within a record. An emitter that restarts its counter produces two
records that cannot be read together.</t>

</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>Belief entries frequently concern identifiable people, and evidence entries may
reference material about them.</t>

<t>Implementations <bcp14>SHOULD</bcp14> omit content and carry a digest instead. A citation with
a digest lets a holder of the source show it unchanged, without the record
becoming a second copy of the material. The <spanx style="verb">redacted</spanx> member exists so that a
withheld excerpt is visibly withheld rather than silently absent, which is the
difference between a record that can be audited and one that merely looks
complete.</t>

<t>Append-only recording is in tension with erasure obligations. This document
takes no position on how an implementation should resolve that tension, but
notes that the two obvious resolutions both fail: rewriting history destroys
the property that made the record worth keeping, and recording a deletion
alongside the deleted content erases nothing. An implementation <bcp14>SHOULD</bcp14> be able
to record that a destruction occurred without re-retaining what was destroyed.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>IANA is requested to register the following media type in the "Media Types"
registry.</t>

<dl>
  <dt>Type name:</dt>
  <dd>
    <t>application</t>
  </dd>
  <dt>Subtype name:</dt>
  <dd>
    <t>testimony-record+json-seq</t>
  </dd>
  <dt>Required parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Optional parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Encoding considerations:</dt>
  <dd>
    <t>binary; a JSON text sequence <xref target="RFC7464"/> of UTF-8 encoded JSON texts</t>
  </dd>
  <dt>Security considerations:</dt>
  <dd>
    <t>See <xref target="security-considerations"/> of this document.</t>
  </dd>
  <dt>Interoperability considerations:</dt>
  <dd>
    <t>All entries in one record name a single specification version. Consumers
ignore members they do not recognise.</t>
  </dd>
  <dt>Published specification:</dt>
  <dd>
    <t>This document</t>
  </dd>
  <dt>Applications that use this media type:</dt>
  <dd>
    <t>Systems recording and exchanging accounts of automated decision-making, and
tools that validate such accounts</t>
  </dd>
  <dt>Fragment identifier considerations:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Additional information:</dt>
  <dd>
    <t>Deprecated alias names for this type: N/A. Magic number(s): N/A. File
extension(s): .trseq for the sequence framing; .jsonl is in common use for
the line-delimited framing. Macintosh file type code(s): N/A.</t>
  </dd>
  <dt>Person and email address to contact for further information:</dt>
  <dd>
    <t>Troy Clifford <eref target="mailto:troy@machinetestimony.com">troy@machinetestimony.com</eref></t>
  </dd>
  <dt>Intended usage:</dt>
  <dd>
    <t>COMMON</t>
  </dd>
  <dt>Restrictions on usage:</dt>
  <dd>
    <t>None</t>
  </dd>
  <dt>Author:</dt>
  <dd>
    <t>Troy Clifford</t>
  </dd>
  <dt>Change controller:</dt>
  <dd>
    <t>The IESG</t>
  </dd>
</dl>

</section>
<section anchor="relationship-to-regulation"><name>Relationship to Regulation</name>

<t>The European Union Artificial Intelligence Act <xref target="EU-AI-ACT"/> requires
record-keeping over the lifetime of high-risk systems, and human oversight
capable of intervention. This document does not implement those obligations and
makes no claim of compliance with them. It is noted only that the levels
defined here were shaped by the same questions: TR-1 by automatic recording as
events occur, TR-2 and TR-3 by the identification of risk situations, and TR-3
by the attributability of oversight. Whether a given deployment satisfies a
legal obligation is a matter for the parties to that obligation and their
regulator.</t>

</section>


  </middle>

  <back>


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

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



<reference anchor="RFC8259">
  <front>
    <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
    <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
    <date month="December" year="2017"/>
    <abstract>
      <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
      <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="90"/>
  <seriesInfo name="RFC" value="8259"/>
  <seriesInfo name="DOI" value="10.17487/RFC8259"/>
</reference>
<reference anchor="RFC7493">
  <front>
    <title>The I-JSON Message Format</title>
    <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
    <date month="March" year="2015"/>
    <abstract>
      <t>I-JSON (short for "Internet JSON") is a restricted profile of JSON designed to maximize interoperability and increase confidence that software can process it successfully with predictable results.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7493"/>
  <seriesInfo name="DOI" value="10.17487/RFC7493"/>
</reference>
<reference anchor="RFC3339">
  <front>
    <title>Date and Time on the Internet: Timestamps</title>
    <author fullname="G. Klyne" initials="G." surname="Klyne"/>
    <author fullname="C. Newman" initials="C." surname="Newman"/>
    <date month="July" year="2002"/>
    <abstract>
      <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3339"/>
  <seriesInfo name="DOI" value="10.17487/RFC3339"/>
</reference>
<reference anchor="RFC7464">
  <front>
    <title>JavaScript Object Notation (JSON) Text Sequences</title>
    <author fullname="N. Williams" initials="N." surname="Williams"/>
    <date month="February" year="2015"/>
    <abstract>
      <t>This document describes the JavaScript Object Notation (JSON) text sequence format and associated media type "application/json-seq". A JSON text sequence consists of any number of JSON texts, all encoded in UTF-8, each prefixed by an ASCII Record Separator (0x1E), and each ending with an ASCII Line Feed character (0x0A).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7464"/>
  <seriesInfo name="DOI" value="10.17487/RFC7464"/>
</reference>
<reference anchor="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"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="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"/>
    <abstract>
      <t>This document describes the format of a request sent to a Time Stamping Authority (TSA) and of the response that is returned. It also establishes several security-relevant requirements for TSA operation, with regards to processing requests to generate responses. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3161"/>
  <seriesInfo name="DOI" value="10.17487/RFC3161"/>
</reference>
<reference anchor="RFC8785">
  <front>
    <title>JSON Canonicalization Scheme (JCS)</title>
    <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
    <author fullname="B. Jordan" initials="B." surname="Jordan"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <date month="June" year="2020"/>
    <abstract>
      <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
      <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8785"/>
  <seriesInfo name="DOI" value="10.17487/RFC8785"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC9162">
  <front>
    <title>Certificate Transparency Version 2.0</title>
    <author fullname="B. Laurie" initials="B." surname="Laurie"/>
    <author fullname="E. Messeri" initials="E." surname="Messeri"/>
    <author fullname="R. Stradling" initials="R." surname="Stradling"/>
    <date month="December" year="2021"/>
    <abstract>
      <t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
      <t>This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</t>
      <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9162"/>
  <seriesInfo name="DOI" value="10.17487/RFC9162"/>
</reference>

<reference anchor="I-D.ietf-scitt-architecture">
   <front>
      <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
      <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname="Antoine Delignat-Lavaud" initials="A." surname="Delignat-Lavaud">
         <organization>Microsoft Research</organization>
      </author>
      <author fullname="Cedric Fournet" initials="C." surname="Fournet">
         <organization>Microsoft Research</organization>
      </author>
      <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
         <organization>ARM</organization>
      </author>
      <author fullname="Steve Lasker" initials="S." surname="Lasker">
         </author>
      <date day="10" month="October" year="2025"/>
      <abstract>
	 <t>   Traceability in supply chains is a growing security concern.  While
   verifiable data structures have addressed specific issues, such as
   equivocation over digital certificates, they lack a universal
   architecture for all supply chains.  This document defines such an
   architecture for single-issuer signed statement transparency.  It
   ensures extensibility, interoperability between different
   transparency services, and compliance with various auditing
   procedures and regulatory requirements.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-architecture-22"/>
   
</reference>

<reference anchor="TR-SPEC" target="https://github.com/troybrandonc-bit/machine-testimony">
  <front>
    <title>The Testimony Record: specification source, reference validator and adapters</title>
    <author initials="T." surname="Clifford" fullname="Troy Clifford">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="CENSUS" >
  <front>
    <title>The Testimony Record Conformance Census: What Eight Agent Systems Record About What They Did</title>
    <author initials="T." surname="Clifford" fullname="Troy Clifford">
      <organization></organization>
    </author>
    <date year="2026" month="September"/>
  </front>
  <seriesInfo name="DOI" value="10.5281/zenodo.22290922"/>
</reference>
<reference anchor="EU-AI-ACT" >
  <front>
    <title>Regulation (EU) 2024/1689 laying down harmonised rules on artificial intelligence</title>
    <author >
      <organization>European Parliament and Council of the European Union</organization>
    </author>
    <date year="2024"/>
  </front>
</reference>


    </references>

</references>


<?line 643?>

<section anchor="implementation-status"><name>Implementation Status</name>

<t>At the time of writing, every implementation of this format is by this
document's author. There are two validators, one in Python and one in
TypeScript, written separately and checked against each other on a corpus of
records covering each level and each failure mode, which tests the
specification's clarity but is not independent implementation in the sense that
matters. There are two emitters: one for the author's own system, and one for
LangGraph, which depends on that framework and on nothing of the author's.</t>

<t>No implementation by another party is known. That is the honest state of it,
and it is the thing a reader deciding whether to implement this should weigh
most heavily.</t>

<t>The reference validator is a single standard-library file with no network
access, published under an MIT licence, so that a conformance claim can be
checked by the party hearing it rather than by the party making it <xref target="TR-SPEC"/>.</t>

<t>A survey of eight agent memory and agent framework implementations against
these requirements is published with a DOI <xref target="CENSUS"/>. It includes the
reference implementation, which the survey states carries no evidential weight,
and records two defects the survey found in it during preparation.</t>

<t>The <spanx style="verb">scope</spanx> entry, the conditional TR-3 requirement, and the recommendation to
report per-level results are new in <spanx style="verb">testimony-record/0.2</spanx> and have one
implementation each at the time of writing.</t>

</section>
<section numbered="false" anchor="changes-since-00"><name>Changes Since -00</name>

<t>This section is to be removed before publication as an RFC.</t>

<t>The Introduction of -00 stated that none of the eight surveyed systems records
the identity of the person who approved an action. The survey it cites does not
support that. Four of the eight were assessed absent on that requirement, a
fifth could not be established either way, and the three remaining include this
document's author's own system, which does record it. The claim was stronger
than the evidence behind it, and a document arguing that a system should not
assert more than it can show is the wrong place for one. Corrected.</t>

<t>The <xref target="TR-SPEC"/> reference pointed at a product's documentation site, which made
the format read as the manual for a piece of software. The specification
source, the reference validator and the adapters are now published in a
repository of their own, and the reference points there.</t>

<t>An Implementation Status section was added. It states that every implementation
of this format is by this document's author, and that no independent
implementation is known.</t>

<t>The <spanx style="verb">external-anchor</spanx> integrity scheme was named in -00 and not specified. The
<spanx style="verb">anchor</spanx> member is now defined, with an RFC 3161 profile, and the Security
Considerations distinguish the schemes that place evidence outside the
emitter's control from those that do not.</t>

<t>-00 did not say how a digest was computed. It said only that the digest was
the value under which alteration would be detected, which names no algorithm,
no serialisation and no ordering. Two conforming implementations would have
produced different digests for one record, and no reader could have recomputed
either, so the level called Verifiable was not reachable by anyone reading this
document alone. <xref target="digest-computation"/> specifies it, <spanx style="verb">covers</spanx> is required at
that level, and the reference validator recomputes rather than accepts. This
was found in the author's own implementations, which had two versions of the
rule that had never agreed, neither of them written down.</t>

<t>The values of <spanx style="verb">risk_source</spanx> and <spanx style="verb">identity_source</spanx> were specified as a list of
words that did not satisfy them, which meant any other word did. They are
specified as lists of words that do, with an <spanx style="verb">x-</spanx> prefix for anything else.</t>

<t>Nothing in -00 distinguished the checks a reader can settle from the record
from the ones the record merely asserts. <xref target="what-a-level-rests-on"/> does, and
implementations are asked to report the split alongside a level.</t>

</section>
<section numbered="false" anchor="acknowledgements"><name>Acknowledgements</name>

<t>Phill Clapham reported that the reference validator refused TR-3 to any record
containing no decision entries, a requirement that appears nowhere in the
specification text, with the effect that a system holding a genuine hash chain
and gating nothing could not reach TR-4 however good its integrity was. The
scope entry and the per-level reporting in this document are the result.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA61965LbRpbm/3wKbPmHuz1kWVWW3Xa5t2erJbm7JmTJoypt
x8TErAkSSRJdIMBGgkVxHHqXfZZ9sjnfuWQmSKrdE7E/bFWRQCJx8ly+c63p
dOqGemj8TXHxsPbFgw9DvenaQ/HOL7q+uilu2+KuHXy/WJftyhc/dP2mHIpl
1xd/WdMPZVvc7oaOPvNVcX8Ig98Uf/RN7Z/o97Ktipd1deHK+bz3T3jG0foX
ruoWbbmh51d9uRymi6Ze0uLVdLArpz1fOX125Rb0lFXXH26Kul12rt72N8XQ
78Jw/ezZd8+uXdjNN3UIddc+HLYeV1V+6+l/7eDK3pe0gdvttqlpHbom8P7e
+bKZPtQbf+Ee/WGPd3ZFMS3KxaLbtUM5r5t6OPBH27578m3ZLrxcsavqQX8a
urbbdDtackUPCy4MtPbPZdO1tI2DD25b3xT/PnSLSRG6fuj9MtBPhw1++A/n
aIF11/OD6b+CNh5uiofL4oVSgz8UMj303WH8edevyrb+T36nm+LHcrGu2+wk
+Rq/KesGxOoO/2sjV0QCXy66DV+062mT62HYhpsvvzy5ih7j3GfFux9eFNdX
V98J8eiXb69+97wg6hYVHfvc93RGzaEo54EIUax9T3seiLPmi+3Vc7p/3tWN
77cNXVbMfdPt6b5FQ/cHXLYp6iH4Zjnh5emN63aln7d067Au6M4F0fOzYlM+
0j2Pfbmpun1b7Mu+pSuJJfE0ois9mU6qqAPd2oAiWLFu+eu1LyvfX7qWubl+
8iA9vcy3119/pz/+7vl3X+mPX331Vfr0m+c3zoH9xnd+d/XNNX68m768rP2w
nIZFPQzTkuSmHvxi2PV85cO76f1Pr17cML3/vuCFrV/US+VV4ppdv/CT7MWe
yqauyoEEES9WVuWWpDRc8MqJnz7JTZ/mJ1qUPr9+dv2N7LLsV35IjLGqh/Vu
Dqb5Euw07+nxXbuYzuvBmCYJL63w4tWb+/f3v/7GxYtOqIqXe+HbsKNds455
Va/WQ3ELyVIVE+ye23m3G+QqWvMg2ub/IwWmz77jT4Lvax9w7Lbky7d3N8XV
s8uvr7+9+vI/fdtV3eX19fV3z767vqZLXr2f3t5Nb188jF/8nV/tGjnR37x6
/1s84/mXV998+13RlAfwOvPyuuyJMHUgFdrvGuJyurzsB3BDXTb0NiRiTb0C
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
CXwOza3a6fxfP1hb9+Wl+y/7/fhU33MAAA==

-->

</rfc>

