<?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-00" 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="04"/>

    <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 widely used agent memory and
agent framework implementations <xref target="CENSUS"/> found that several pause a
consequential action to wait for human approval, and none records the identity
of the person who approved. 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. A risk class originating in
the output of the model proposing the action is not a gate. The values
<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> and <spanx style="verb">agent</spanx> therefore do
not satisfy this requirement, and neither does omitting the member. A
conforming value names something the proposing model cannot write: a policy
registry, an action-type table, an operator's configuration.</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. It <bcp14>MUST NOT</bcp14> be content
the proposing model can write, and the same values excluded for <spanx style="verb">risk_source</spanx>
are excluded here. An authenticated session, a signed assertion or a
directory lookup satisfies this. A name the model produced does not.</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>. The value under which alteration would be detected.</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>. Identifiers of the entries the digest is computed over, each of
which <bcp14>MUST</bcp14> be present in the record.</t>
  </dd>
</dl>

</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, a replay scheme names the engine and its version, and anything an
integrity entry claims to cover is present in the record.</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>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>



    </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://infrastructure.omem-cloud.com/spec/testimony-record/">
  <front>
    <title>The Testimony Record</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 526?>

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

<t>At the time of writing, this format has a reference validator and a reference
emitter, and a second independent validator implementation in TypeScript that
is checked against the first on a corpus of records covering each level and
each failure mode.</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="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:
H4sIAAAAAAAAA61cXXfjyHF9x6/oaB9sJ6RmRjte78iOE61GaytnPjYjTXx8
cnKWINEkYYEAjQakpefMf8lvyS/LvVXVDYDSePOQh52lQKDRXV1169ZHcz6f
Z13ZVf7cndxuvbv1oSt3TX1wH/yqaYtzd1G767rz7Wqb1xvvvm/aXd65ddO6
P23xIa/dRd81uOYLd3MInd+573xV+nv8ndeFe10WJ1m+XLb+nu84Gv8kK5pV
ne/w/qLN1918VZVrDF7Mu3jnvJU758+fZyu8ZdO0h3NX1usmK/ftuevaPnRn
z5+/en6WhX65K0Mom/r2sPe8q/B7j3/qLstbn2MCF/t9VWIc3BNkfh98Xs1v
y50/ye784YFrzpybu3y1avq6y5dlVXYHubRvm3tf5/XK6x19UXb2qWvqZtf0
GHKDl4UsdBj7x7xqakzj4EO2L8/df3bNauZC03atXwd8Ouz44b+yDANsm1Ze
jP8cJh7O3e2puzRpyEUV023bHKbXm3aT1+XfZE3n7m2+2pb1aCflHr/Ly4rC
ag7/utM7koBPV81ObupbTHLbdftw/uzZo7vwmiz7yn34/tKdvXjxSoWHP759
8ZuXDtJ1BbZ96VvsUXVw+TJAEG7rW8y5g2YtV/sXL/H8sikr3+4r3OaWvmoe
8NyqwvOBt+1c2QVfrWcyPFZc1hu7XuPRbuvw5Ary/Mrt8js8c9fmu6J5qN1D
3ta4EyrJt0GueDN2ypUBj1aUCEcsa/l66/PCt6dZLdpc3nuKHov59uzXr+zj
b16++to+fv3118PVb16eZxnVb/rkqxffnPHj9fz1aem79Tysyq6b57CbsvOr
rm/lztsP85sfri7PRd5/z/BO5I5BL76oFV/WiwIiPndnz8++0bfl7cZ3wwZj
DW0eYD4yudNm53ewvqYvqA/Pwt6vnh3b4DMMdHn17ubjzc8vwF02KiRuwqWv
Q4/JC2RclZtt5y5oKIYYIT5zsWz6Tu/CmAcFj/9HQcyfv5IrwbelD9zFOOTr
99fn7sXz01+fffvi2d983RTN6dnZ2avnr87OcMvVx/nF9fzi8na68A9+01di
eO6XVx9/xXe8fPbim29fuSo/UHVFNbd5C8GUAYjY9hWUFrfnbVeuy1WZV1gN
LKYqN1TXp1YLwzt3V33b7D3Q9oe8rUostO5EoS8BUquycs1aFDvd9rHGpKar
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
mfqnj9yKUKkAp9n/AodIR1mBTQAA

-->

</rfc>

