<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" docName="draft-watts-veriflow-evidence-envelope-00" category="exp" submissionType="IETF">
<front>
<title abbrev="Veriflow Evidence Envelope">Veriflow Evidence Envelope for Source-Grounded Computational Claims</title>
<seriesInfo name="Internet-Draft" value="draft-watts-veriflow-evidence-envelope-00"/>
<author fullname="Deonté O'dell Watts" initials="D. O." surname="Watts"><organization>GoodShyt Group Inc.</organization><address><email>deonte@goodshyt.fun</email><uri>https://orcid.org/0009-0005-8586-3650</uri></address></author>
<date year="2026" month="10" day="14"/>
<area>General</area><workgroup>Internet Engineering Task Force</workgroup>
<abstract><t>This document specifies an experimental, JSON-based evidence envelope for exchanging source-grounded computational assertions, including provenance, reproducible operation identifiers, evidence sufficiency, and explicit abstention when an answer is not supported. The envelope separates syntactic validity, source integrity, mathematical correctness, and empirical truth. This document does not standardize a general scientific inference engine or claim experimental superiority.</t></abstract>
</front>
<middle>
<section numbered="true" anchor="intro"><name>Introduction</name><t>Computational agents can return plausible numerical claims even when the requested value cannot be derived from available observations. An interoperable evidence envelope allows recipients to distinguish a value computed from cited records from an unsupported estimate or a refusal. This specification defines a minimal, deterministic interchange format; its evidence claims are not self-authenticating.</t><t>The motivating pilot used historical open-high-low-close-volume (OHLCV) records and demonstrated no accuracy advantage over an independent safe calculator. That finding motivates careful separation of auditability from predictive performance.</t></section>
<section numbered="true" anchor="conventions"><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 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals.</t><t>Claim: an asserted result of a named operation. Evidence: identified input records or artifacts. Unknown: evidence is insufficient to establish either truth or falsity. Refusal: a deliberate decision not to assert an unsupported value. Source locator: a stable identifier for a record within a referenced artifact.</t></section>
<section numbered="true" anchor="model"><name>Evidence Model</name><t>An envelope carries a version, request identifier, status, operation identifier, optional typed result, a list of evidence references, and a decision reason. Its decision status is one of ANSWER, ABSTAIN, or ERROR. These describe response behavior, not external truth.</t><t>Every evidence reference MUST contain an artifact identifier, a digest algorithm, a digest value, and one or more locators. For this version, the digest algorithm MUST be sha-256 and its value MUST consist of 64 lowercase hexadecimal characters. Implementations MUST verify digest matches against the exact input bytes before claiming integrity_verified.</t><t>An ANSWER response MUST include an operation identifier, result type, result value, unit, and at least one evidence reference. An ABSTAIN response MUST NOT include a result value, and MUST include a machine-readable reason. An ERROR response MUST NOT include a result value. A recipient MUST NOT treat an unknown evidence condition as verified.</t><t>Evidence completeness does not imply correctness: a signed or hashed artifact can contain inaccurate observations. This specification does not define independent experimental validation.</t></section>
<section numbered="true" anchor="json"><name>JSON Representation</name><t>The media representation is a UTF-8 JSON object. Producers MUST reject duplicate object member names. Numeric answers SHOULD be encoded as decimal strings where exact decimal arithmetic is required. Unknown members MAY be ignored, but MUST NOT override defined status semantics.</t><figure><name>Example answer envelope (illustrative, not a measurement)</name><artwork><![CDATA[{
  "version": "0.1",
  "request_id": "example-001",
  "status": "ANSWER",
  "operation_id": "intraday_range",
  "result": {"type": "decimal", "value": "4.25", "unit": "CNY"},
  "evidence": [{
    "artifact_id": "dataset-example",
    "digest_alg": "sha-256",
    "digest": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "locators": ["row:12"],
    "integrity_verified": false
  }],
  "reason": "derived_from_high_minus_low"
}]]></artwork></figure><t>The example digest is illustrative, not a hash of a provided artifact. The value MUST NOT be interpreted as a financial observation.</t><figure><name>Example abstention</name><artwork><![CDATA[{
  "version": "0.1",
  "request_id": "example-002",
  "status": "ABSTAIN",
  "operation_id": "vwap",
  "evidence": [],
  "reason": "INSUFFICIENT_INPUT_DATA"
}]]></artwork></figure></section>
<section numbered="true" anchor="processing"><name>Processing and Verification</name><ol><li>Parse UTF-8 JSON and validate required members and status.</li><li>Resolve input artifacts only through explicitly authorized sources.</li><li>Verify byte-level digests before setting integrity_verified to true.</li><li>Validate operation identifiers, record locators, units, and domain constraints.</li><li>Compute results using a documented deterministic procedure, or abstain if required inputs are missing.</li><li>Record independent mathematical and empirical checks separately; do not promote an unknown state to verified.</li></ol><t>Recipients SHOULD retain an immutable audit log that includes the received envelope, verification outcome, and implementation version. Implementations SHOULD avoid logging credentials or sensitive source content.</t></section>
<section numbered="true" anchor="errors"><name>Decision Reasons</name><t>The following reason strings are defined for ABSTAIN or ERROR: INSUFFICIENT_INPUT_DATA, UNKNOWN_OPERATION, SOURCE_UNAVAILABLE, SOURCE_DIGEST_MISMATCH, INVALID_UNIT, INVALID_LOCATOR, and INTERNAL_ERROR. Future versions MAY define additional reason strings. A recipient MUST treat an unrecognized reason as non-successful unless the status is ANSWER and all required checks pass.</t></section>
<section numbered="true" anchor="interop"><name>Interoperability and Versioning</name><t>The version field MUST be "0.1" for this specification. Producers MUST NOT silently alter the meaning of existing fields. A receiver encountering an unsupported major version MUST reject the envelope or abstain. This document does not register a media type or protocol endpoint; applications can carry envelopes in existing authenticated transport protocols.</t></section>
<section numbered="true" anchor="security"><name>Security Considerations</name><t>Untrusted JSON and artifact locators can cause parser abuse, path traversal, server-side request forgery, and resource exhaustion. Implementations MUST impose input-size and nesting limits, MUST validate locators, MUST NOT fetch arbitrary network locations from an untrusted envelope without an explicit allowlist, and MUST keep credentials outside serialized evidence. Hash integrity does not authenticate the submitter or prove factual truth. Transport authentication and authorization are deployment responsibilities. An attacker can selectively omit evidence or supply internally consistent fabricated inputs; independent provenance checks remain necessary. Implementations MUST NOT translate ABSTAIN, ERROR, or unknown validation into authorization to act.</t></section>
<section numbered="true" anchor="privacy"><name>Privacy Considerations</name><t>Record locators, hashes, and request identifiers can expose dataset membership or enable cross-context correlation. Producers SHOULD minimize unnecessary identifiers, avoid personal data, and apply retention limits appropriate to the deployment. Publication of an envelope does not confer rights to redistribute referenced artifacts.</t></section>
<section numbered="true" anchor="iana"><name>IANA Considerations</name><t>This document has no IANA actions.</t></section>
<section numbered="true" anchor="limits"><name>Experimental Status and Limitations</name><t>The motivating Veriflow-inspired pilot reported 72 correct answers out of 72 answerable table tasks and zero unsupported claims on 72 negative controls; an independent safe calculator matched both figures. These are repeated, deterministic tasks over an unauthenticated, user-provided dataset, not independent populations or evidence of superiority. This draft specifies exchange semantics only. Scientific novelty, external preregistration, and deployed interoperability have not been established.</t></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 fullname="Scott Bradner" initials="S." surname="Bradner"/><date year="1997" month="March"/></front><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 fullname="Barry Leiba" initials="B." surname="Leiba"/><date year="2017" month="May"/></front><seriesInfo name="RFC" value="8174"/></reference></references></back>
</rfc>
