<?xml version="1.0" encoding="UTF-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="info"
     consensus="false"
     docName="draft-watts-scientific-admissibility-evidence-00"
     ipr="trust200902"
     submissionType="IETF"
     version="3">
  <front>
    <title abbrev="Scientific Admissibility Evidence Records">Scientific Admissibility Evidence Records for Verifiable Research Provenance</title>
    <seriesInfo name="Internet-Draft" value="draft-watts-scientific-admissibility-evidence-00"/>
    <author fullname="Deonte Watts" initials="D." surname="Watts">
      <organization>Independent Researcher</organization>
      <address>
        <email>deonte@goodshyt.fun</email>
      </address>
    </author>
    <date year="2026" month="September" day="1"/>
    <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>provenance</keyword>
    <keyword>conformance</keyword>
    <keyword>scientific-admissibility</keyword>
    <keyword>JSON</keyword>
    <keyword>integrity</keyword>
    <abstract>
      <t>
        This document describes a portable JSON evidence-record format for
        representing bounded scientific claims, preregistered procedures,
        admissibility evaluations, provenance artifacts, lifecycle events,
        and cryptographic integrity metadata.  The format is intended to make
        research evidence exchangeable and mechanically checkable without
        treating cryptographic integrity, schema conformance, scientific
        admissibility, valuation, governance, or truth as equivalent concepts.
      </t>
      <t>
        This document is an individual informational proposal.  It does not
        define a network transport protocol, does not establish scientific
        truth, and does not assign decision authority to automated systems.
      </t>
    </abstract>
  </front>

  <middle>
    <section numbered="true" toc="include">
      <name>Introduction</name>
      <t>
        Research governance systems increasingly exchange machine-readable
        claims, executable analyses, provenance records, and integrity
        metadata.  Interoperability becomes difficult when a single boolean
        such as "valid" is used to collapse distinct questions: whether a
        document is structurally well formed, whether its bytes are intact,
        whether its declared scientific procedure satisfies registered
        admissibility gates, whether a result has practical value, whether a
        governance consequence is authorized, and whether a proposition is
        true.
      </t>
      <t>
        This document specifies a record model that keeps those layers
        separate.  A conforming implementation can validate record structure
        and integrity and can evaluate explicitly declared cross-field
        invariants.  It MUST NOT infer scientific truth merely from successful
        serialization, signature verification, or schema validation.
      </t>
    </section>

    <section numbered="true" toc="include">
      <name>Conventions and Terminology</name>
      <t>
        The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
        "OPTIONAL" in this document are to be interpreted as described in
        BCP 14 when, and only when, they appear in all capitals, as shown here
        <xref target="RFC2119"/> <xref target="RFC8174"/>.
      </t>
      <dl>
        <dt>Evidence Record</dt>
        <dd>A JSON object containing a claim, procedure, evaluation, artifacts,
        actors, lifecycle state, and ordered events.</dd>
        <dt>Admissibility</dt>
        <dd>A decision produced by declared scientific gates.  It is distinct
        from valuation, governance, and truth.</dd>
        <dt>Artifact</dt>
        <dd>A referenced file or byte sequence, such as analysis code,
        executable notebook, data product, or result object.</dd>
        <dt>Event Core</dt>
        <dd>The event fields covered by canonicalization and digest computation,
        excluding the integrity object itself.</dd>
      </dl>
    </section>

    <section numbered="true" toc="include">
      <name>Design Requirements</name>
      <t>A conforming profile SHOULD satisfy the following requirements:</t>
      <ul>
        <li>Structural validation and scientific consistency checks are separate operations.</li>
        <li>Cryptographic integrity proves consistency of recorded bytes and event history, not scientific correctness.</li>
        <li>Failed or underpowered designs remain representable without being converted into exclusions.</li>
        <li>Automated interpretation MAY assist review but MUST NOT silently become the authoritative research record.</li>
        <li>Normative consequences MUST be derived from explicit state transitions and registered predicates.</li>
      </ul>
    </section>

    <section numbered="true" toc="include">
      <name>Record Model</name>
      <t>
        An evidence record is encoded as a JSON object as defined by
        <xref target="RFC8259"/>.  Profiles of this specification SHOULD
        define a machine-readable structural schema.  The top-level record
        contains the following conceptual members:
      </t>
      <ul>
        <li><tt>schema_version</tt>: record-format version.</li>
        <li><tt>record_id</tt>: stable identifier for this record.</li>
        <li><tt>claim</tt>: bounded observable claim and lineage.</li>
        <li><tt>registered_model</tt>: model family, hypotheses, parameters, assumptions, and prediction fingerprint.</li>
        <li><tt>parameter_regions</tt>: search, power, and refutation regions.</li>
        <li><tt>registered_procedure</tt>: preregistered decision procedure and calibration declarations.</li>
        <li><tt>admissibility_evaluation</tt>: binding gate results and evidence references.</li>
        <li><tt>valuation</tt>: optional non-authoritative valuation information.</li>
        <li><tt>governance</tt>: optional consequence predicates and verification requirements.</li>
        <li><tt>current_state</tt>: state derived from the event sequence.</li>
        <li><tt>actors</tt>, <tt>artifacts</tt>, and <tt>events</tt>: provenance and lifecycle information.</li>
      </ul>
    </section>

    <section numbered="true" toc="include">
      <name>Scientific Consistency Invariants</name>
      <t>
        Structural validity alone is insufficient to claim profile
        conformance.  A profile MAY define additional deterministic
        cross-field checks.  Where the corresponding fields are present, an
        implementation conforming to the core profile defined here MUST enforce
        the following invariants:
      </t>
      <ol>
        <li>An admissibility evaluation refers to the exact registered procedure being evaluated.</li>
        <li>A record MUST NOT report admissibility as passing while a binding calibration or power gate is failing.</li>
        <li>An underpowered null result MUST NOT activate a scientific exclusion.</li>
        <li>Diagnostics that are declared non-authoritative MUST NOT become autonomous admissibility gates.</li>
        <li>A predictive revision MUST create a new claim version; a declared prediction-equivalent reparameterization SHOULD preserve claim identity when the profile's equivalence test passes.</li>
        <li>A terminal retirement state requiring independent verification MUST NOT be reached before the corresponding verification event.</li>
      </ol>
    </section>

    <section numbered="true" toc="include">
      <name>Canonicalization and Integrity</name>
      <t>
        When an event digest is used, the event core MUST be serialized using
        the JSON Canonicalization Scheme (JCS) defined by
        <xref target="RFC8785"/> before hashing.
      </t>
      <t>
        The event core consists of the sequence number, event identifier, event
        type, occurrence time, actor identifier, previous-event digest, and
        event payload.  The integrity object is excluded from its own digest to
        avoid circularity.
      </t>
      <t>
        Profiles using SHA-256 SHOULD represent digests using an algorithm
        identifier together with the lowercase hexadecimal digest.  Profiles
        using Ed25519 signatures SHOULD follow <xref target="RFC8032"/>.
        Implementations MUST reject a record when a required digest or
        signature fails verification.
      </t>
    </section>

    <section numbered="true" toc="include">
      <name>Append-Only Event Semantics</name>
      <t>
        Events are ordered by a monotonically increasing sequence number.
        Except for the initial event, each event MUST reference the digest of
        the immediately preceding event.  A conforming validator MUST reject a
        discontinuity, reordered event, or digest mismatch when the selected
        profile requires an append-only chain.
      </t>
      <t>
        Cryptographic linkage does not establish that the recorded event was
        scientifically justified or factually honest.  It establishes that the
        protected event sequence has not changed without detection under the
        assumed cryptographic model.
      </t>
    </section>

    <section numbered="true" toc="include">
      <name>Example</name>
      <sourcecode type="json"><![CDATA[
{
  "schema_version": "0.3",
  "record_id": "record-example-001",
  "claim": {
    "claim_version_id": "claim-example-001",
    "bounded_observable_claim": "A registered procedure controls the declared error rate.",
    "observational_domain": "Declared experimental domain"
  },
  "registered_procedure": {
    "procedure_id": "procedure-example-001",
    "alpha": 0.05,
    "beta": 0.10
  },
  "admissibility_evaluation": {
    "procedure_id": "procedure-example-001",
    "status": "pass"
  },
  "current_state": {
    "lifecycle": "reported"
  },
  "events": []
}
      ]]></sourcecode>
      <t>
        The example is intentionally incomplete and is not itself a complete
        profile-conforming registry record.  It illustrates the separation of
        claim identity, procedure identity, evaluation, and lifecycle state.
      </t>
    </section>

    <section numbered="true" toc="include">
      <name>Interoperability Considerations</name>
      <t>
        Producers SHOULD expose the exact profile identifier and version used
        to validate a record.  Consumers MUST NOT silently reinterpret an
        unknown profile as a known profile.  Extension fields SHOULD be
        namespace-qualified to reduce collisions.
      </t>
      <t>
        External standards references SHOULD identify the exact specification
        and revision on which an implementation depends.  A standards
        reference is evidence of the applicable interoperability contract; it
        is not evidence that a scientific claim is true.
      </t>
    </section>

    <section numbered="true" toc="include">
      <name>Security Considerations</name>
      <t>
        Implementations need to protect private signing keys, validate
        signatures before relying on integrity metadata, reject malformed or
        ambiguous JSON inputs, and avoid treating untrusted paths or artifact
        identifiers as local filesystem authorization.
      </t>
      <t>
        Signature verification does not establish correctness of the underlying
        experiment, honesty of the signer, validity of a statistical model, or
        authorization of a governance consequence.  Consumers MUST maintain
        those trust decisions separately.
      </t>
      <t>
        Canonicalization and hashing are sensitive to exact byte and character
        semantics.  Implementations using JCS MUST enforce its constraints,
        including rejection of input that cannot be represented by the JCS data
        model.
      </t>
    </section>

    <section numbered="true" toc="include">
      <name>Privacy Considerations</name>
      <t>
        Evidence records can contain author identifiers, timestamps, artifact
        locations, experimental metadata, or other information that becomes
        sensitive when correlated.  Profiles SHOULD support data minimization
        and SHOULD avoid embedding secrets, credentials, private keys, or
        unnecessary personal information.
      </t>
    </section>

    <section numbered="true" toc="include">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>

    <section numbered="true" toc="include">
      <name>Implementation Status</name>
      <t>
        An experimental implementation corresponding to version 0.3 of the
        record model includes a JSON Schema structural contract, deterministic
        semantic conformance checks, RFC 8785 canonicalization tests, SHA-256
        artifact verification, Ed25519 event-signature verification, passing
        and intentionally failing scientific fixtures, and append-only
        lifecycle checks.  These implementation artifacts are informative and
        are not incorporated by reference as normative IETF material.
      </t>
    </section>

    <section numbered="true" toc="include">
      <name>Open Issues</name>
      <ul>
        <li>Whether this work belongs in the IETF, an IRTF research group, or another standards/research venue.</li>
        <li>Whether a future revision should define a media type after interoperability experience exists.</li>
        <li>Whether cryptographic agility should be mandatory in a future profile.</li>
        <li>How profile registries should represent scientific-domain extensions without implying universal scientific semantics.</li>
      </ul>
    </section>
  </middle>

  <back>
    <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 initials="S." surname="Bradner" fullname="Scott Bradner"/>
          <date month="March" year="1997"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
      </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 initials="B." surname="Leiba" fullname="Barry Leiba"/>
          <date month="May" year="2017"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
      </reference>
      <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/rfc8259">
        <front>
          <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
          <author initials="T." surname="Bray" fullname="Tim Bray"/>
          <date month="December" year="2017"/>
        </front>
        <seriesInfo name="STD" value="90"/>
        <seriesInfo name="RFC" value="8259"/>
      </reference>
      <reference anchor="RFC8785" target="https://www.rfc-editor.org/info/rfc8785">
        <front>
          <title>JSON Canonicalization Scheme (JCS)</title>
          <author initials="A." surname="Rundgren" fullname="Anders Rundgren"/>
          <author initials="B." surname="Jordan" fullname="Bryan Jordan"/>
          <author initials="S." surname="Erdtman" fullname="Samuel Erdtman"/>
          <date month="June" year="2020"/>
        </front>
        <seriesInfo name="RFC" value="8785"/>
      </reference>
      <reference anchor="RFC8032" target="https://www.rfc-editor.org/info/rfc8032">
        <front>
          <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
          <author initials="S." surname="Josefsson" fullname="Simon Josefsson"/>
          <author initials="I." surname="Liusvaara" fullname="Ilari Liusvaara"/>
          <date month="January" year="2017"/>
        </front>
        <seriesInfo name="RFC" value="8032"/>
      </reference>
    </references>
  </back>
</rfc>
