<?xml version="1.0" encoding="UTF-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="info"
     docName="draft-watts-verification-defect-quarantine-00"
     ipr="trust200902"
     submissionType="IETF"
     version="3">
  <front>
    <title abbrev="Verification Defect Quarantine">Verification Defect Quarantine for Protocol Conformance Systems</title>
    <author fullname="Deonte O'dell Watts" initials="D. O." surname="Watts">
      <organization>GoodShyt Group Inc.</organization>
      <address>
        <postal><city>San Francisco</city><region>CA</region><country>US</country></postal>
        <email>deonte@goodshyt.fun</email>
        <uri>https://orcid.org/0009-0005-8586-3650</uri>
      </address>
    </author>
    <date year="2026" month="October" day="14"/>
    <keyword>conformance</keyword>
    <keyword>test vectors</keyword>
    <keyword>errata</keyword>
    <keyword>assurance</keyword>
    <keyword>agentic systems</keyword>
    <abstract>
      <t>Protocol conformance systems commonly treat a published test vector as an oracle. When the oracle itself is malformed, internally inconsistent, ambiguous, or arithmetically false, an implementation can be penalized for rejecting the defect or can be falsely promoted for reproducing it. This document defines Verification Defect Quarantine (VDQ), a transport-neutral receipt and fail-closed state model for separating the status of the tested subject from the demonstrated fault-detection behavior of the verifier. VDQ records reproducible counterexamples, quarantines affected normative vectors from assurance promotion, preserves INDETERMINATE when a defect cannot yet be reproduced, and supports append-only supersession when a specification is corrected. VDQ does not amend an Internet-Draft or RFC, does not replace the RFC Editor errata process, and does not by itself establish implementation security.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro"><name>Introduction</name>
      <t>Conformance testing normally assumes that the expected value, invariant, or state transition encoded by a test vector is correct. That assumption is operationally dangerous when the vector itself is defective. A verifier that correctly rejects an invalid vector can appear non-conformant, while an implementation that reproduces the defective value can appear conformant.</t>
      <t>This document defines a narrow profile for that failure mode. A VDQ implementation maintains separate state for the tested subject and for the verifier. A reproducible defect in a normative vector is negative evidence about use of that vector as a conformance oracle. The same event can be positive evidence that the verifier detected the specific defect. These two conclusions MUST NOT be collapsed into one another.</t>
      <t>VDQ is intended to compose with protocol-specific conformance suites, verification-promotion systems, transparency services, and release gates. It is especially useful where a conformance result can influence deployment, acquisition, authorization, or safety decisions.</t>
    </section>

    <section anchor="requirements"><name>Requirements Language</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>
    </section>

    <section anchor="terms"><name>Terminology</name>
      <dl>
        <dt>Subject</dt><dd><t>The specification, implementation, vector set, or release candidate being evaluated.</t></dd>
        <dt>Verifier</dt><dd><t>The implementation that executes the registered verification procedure.</t></dd>
        <dt>Normative Vector</dt><dd><t>A test vector whose result is required for a declared conformance profile.</t></dd>
        <dt>Counterexample Witness</dt><dd><t>A self-contained input and derivation sufficient to demonstrate that a claimed normative expectation cannot hold under the declared preconditions.</t></dd>
        <dt>Quarantine</dt><dd><t>A state that prevents an affected vector, section, profile, or release from being used to justify a stronger assurance claim until the defect is resolved, superseded, or explicitly scoped out by the relying party.</t></dd>
        <dt>Subject Status</dt><dd><t>The result concerning the tested subject: PASS, FAIL, INDETERMINATE, DEFECT_REPORTED, or DEFECT_REPRODUCED.</t></dd>
        <dt>Verifier Status</dt><dd><t>The result concerning the verifier's behavior: PASS, FAIL, INDETERMINATE, or DETECTION_PASS.</t></dd>
      </dl>
    </section>

    <section anchor="principles"><name>Non-Collapse Principles</name>
      <ol>
        <li><t>A failing normative vector does not by itself prove an implementation defect.</t></li>
        <li><t>Detecting a defective normative vector does not make the tested subject conformant.</t></li>
        <li><t>Detecting one defect does not certify the verifier as secure or complete.</t></li>
        <li><t>A local defect report does not equal independent reproduction.</t></li>
        <li><t>A VDQ receipt does not amend an Internet-Draft or RFC and does not constitute RFC errata verification.</t></li>
        <li><t>INDETERMINATE does not equal PASS.</t></li>
      </ol>
    </section>

    <section anchor="classes"><name>Defect Classes</name>
      <t>VDQ defines the following defect classes:</t>
      <dl>
        <dt>PRECONDITION_DEFECT</dt><dd><t>A published input violates a precondition required by the specification, such as an elliptic-curve point that is not on the declared curve.</t></dd>
        <dt>VECTOR_MISMATCH</dt><dd><t>The published expected value is inconsistent with the declared operation or invariant.</t></dd>
        <dt>AMBIGUOUS_SPECIFICATION</dt><dd><t>More than one materially different interpretation remains possible because required semantics are missing or ambiguous.</t></dd>
        <dt>UNSUPPORTED_EXPECTATION</dt><dd><t>The vector contains an expected value without a reproducible derivation or binding to the declared algorithm.</t></dd>
        <dt>IMPLEMENTATION_FAILURE</dt><dd><t>The specification and vector are usable, but the implementation under test fails the declared expectation.</t></dd>
        <dt>INDETERMINATE</dt><dd><t>Available evidence is insufficient to decide whether the defect lies in the subject, verifier, environment, or specification.</t></dd>
      </dl>
    </section>

    <section anchor="receipt"><name>Verification Defect Quarantine Receipt</name>
      <t>A VDQ receipt is a machine-readable, non-bearer evidence object. It MUST identify the subject artifact and digest, vector identifier, whether the vector is normative, defect class, subject status, verifier status, quarantine scope, promotion-block state, counterexample witness, evidence digest, and creation time.</t>
      <t>Interoperable JSON receipts SHOULD use the JSON Canonicalization Scheme <xref target="RFC8785"/> before computing receipt digests. A receipt MAY be registered in a transparency service such as the architecture described by <xref target="RFC9943"/>. Transparency proves inclusion of a statement; it does not prove that the statement is true.</t>
      <t>The receipt is evidence about a conformance dispute. Possession of the receipt MUST NOT confer authorization, deployment approval, standards status, or patent rights.</t>
    </section>

    <section anchor="algorithm"><name>Evaluation Algorithm</name>
      <ol>
        <li><t>Validate syntax, subject digest, vector identifier, and registered verification procedure.</t></li>
        <li><t>Determine whether the vector is normative for the requested conformance profile.</t></li>
        <li><t>Evaluate specification preconditions before comparing implementation output with the expected value.</t></li>
        <li><t>If a precondition or expected value is contradicted by a reproducible counterexample, set VerifierStatus to DETECTION_PASS and SubjectStatus to DEFECT_REPORTED or DEFECT_REPRODUCED according to the registered independence requirements.</t></li>
        <li><t>If the affected vector is normative, set QuarantineScope to at least VECTOR and set PromotionBlocked to true.</t></li>
        <li><t>If the vector is usable and the implementation fails it, set SubjectStatus to FAIL without quarantining the specification.</t></li>
        <li><t>If the defect cannot be reproduced or attribution is uncertain, preserve INDETERMINATE and block any assurance promotion that depends on the disputed vector.</t></li>
        <li><t>When a later revision corrects or supersedes the vector, issue a new receipt that references the predecessor. Historical receipts MUST NOT be silently rewritten.</t></li>
      </ol>
    </section>

    <section anchor="arith"><name>Arithmetic Counterexample Profile</name>
      <t>For finite-field and elliptic-curve vectors, a VDQ verifier MUST validate the declared field, curve discriminant, point-membership preconditions, and subgroup assumptions before executing higher-level group identities. Fundamental elliptic-curve arithmetic and validation are established by <xref target="RFC6090"/>; VDQ does not define new elliptic-curve cryptography.</t>
      <t>A point (x,y) claimed to lie on a short-Weierstrass curve y^2 = x^3 + ax + b modulo p is defective as a test input if the two sides are unequal modulo p. The resulting modular values form a compact counterexample witness.</t>
      <t>Passing arithmetic fixtures demonstrates only the registered arithmetic relation. It MUST NOT be treated as evidence of authorization, identity, security, empirical truth, or standards endorsement.</t>
    </section>

    <section anchor="promotion"><name>Relationship to Verification Promotion</name>
      <t>Verification Promotion Boundaries (VPB) <xref target="I-D.watts-vpb"/> separates specification validation, local conformance, independent reproduction, security testing, and release eligibility. VDQ supplies a narrower receipt for a specific VPB failure mode: the expected conformance oracle is itself defective.</t>
      <t>A VDQ quarantine state MUST block promotion through any stage that requires the affected normative vector. The verifier MAY record DETECTION_PASS for the specific fault, but that status MUST NOT satisfy a higher assurance stage by itself.</t>
    </section>

    <section anchor="errata"><name>Relationship to RFC Errata and Working Documents</name>
      <t>The RFC Editor maintains an errata process for published RFCs. Test-vector and technical errors have occurred in published RFCs, demonstrating that conformance oracles can themselves require correction. VDQ is not a replacement for that process. A VDQ receipt can accompany an errata report, implementation report, or Internet-Draft issue, but only the applicable document process can change or formally classify the specification.</t>
      <t>For Internet-Drafts, a VDQ finding is evidence for the author and community to evaluate in a later revision. It does not create IETF consensus or endorsement.</t>
    </section>

    <section anchor="high"><name>High-Assurance Deployment Considerations</name>
      <t>Organizations using conformance results for procurement, deployment, authorization, or release SHOULD require that normative-vector defects be quarantined rather than accepted as passing evidence. High-assurance profiles MAY require independent reproduction before DEFECT_REPORTED is elevated to DEFECT_REPRODUCED.</t>
      <t>The current NIST AI Agent Standards Initiative emphasizes secure and interoperable agent protocols and open standards development. VDQ can support such assurance programs by preventing a defective expected value from becoming a false positive in release or acquisition testing. This statement does not imply NIST or U.S. Government endorsement.</t>
    </section>

    <section anchor="conformance"><name>Conformance and Falsification</name>
      <t>A VDQ implementation claiming conformance MUST reproduce the companion positive and negative vectors. A conforming implementation MUST NOT report PASS for a normative vector whose declared preconditions are contradicted by a registered reproducible counterexample. It MUST NOT interpret a local defect report as independent reproduction. It MUST NOT clear a quarantine state merely because an implementation reproduces the defective expected value.</t>
      <t>The profile is directly falsifiable. A counterexample to VDQ itself is any case in which the reference algorithm promotes a subject despite a normative reproducible defect, silently converts INDETERMINATE to PASS, or changes historical defect evidence without an explicit superseding record.</t>
    </section>

    <section anchor="security"><name>Security Considerations</name>
      <t>Attackers can exploit conformance pipelines by substituting expected values, suppressing negative vectors, altering provenance, using the implementation under test to generate its own oracle, or treating a disputed vector as authoritative after a defect is known. Implementations SHOULD bind vector sets, procedures, source artifacts, and reports to cryptographic digests and SHOULD separate test generation from the implementation under test.</t>
      <t>Quarantine can also be abused to cause denial of service. A deployment SHOULD therefore distinguish local reports from independently reproduced defects and SHOULD scope quarantine to the smallest justified unit. High-impact decisions MAY require human review before release-wide quarantine.</t>
      <t>A DETECTION_PASS is narrow evidence of one demonstrated fault-detection capability. It is not a security certification.</t>
    </section>

    <section anchor="privacy"><name>Privacy Considerations</name>
      <t>Defect receipts can disclose internal build identifiers, source locations, implementation digests, or security weaknesses. Deployments SHOULD minimize unnecessary disclosure and MAY publish a redacted receipt that preserves the counterexample and artifact digest while withholding sensitive operational context.</t>
    </section>

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

  <back>
    <references><name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/rfc/rfc2119"><front><title>Key words for use in RFCs to Indicate Requirement Levels</title><author 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/rfc/rfc8174"><front><title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title><author initials="B." surname="Leiba"/><date year="2017" month="May"/></front><seriesInfo name="RFC" value="8174"/></reference>
      <reference anchor="RFC8785" target="https://www.rfc-editor.org/rfc/rfc8785"><front><title>JSON Canonicalization Scheme (JCS)</title><author initials="A." surname="Rundgren"/><author initials="B." surname="Jordan"/><author initials="S." surname="Erlandsson"/><date year="2020" month="June"/></front><seriesInfo name="RFC" value="8785"/></reference>
    </references>
    <references><name>Informative References</name>
      <reference anchor="RFC6090" target="https://www.rfc-editor.org/rfc/rfc6090"><front><title>Fundamental Elliptic Curve Cryptography Algorithms</title><author initials="D." surname="McGrew"/><author initials="K." surname="Igoe"/><author initials="M." surname="Salter"/><date year="2011" month="February"/></front><seriesInfo name="RFC" value="6090"/></reference>
      <reference anchor="RFC9943" target="https://www.rfc-editor.org/rfc/rfc9943"><front><title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title><author initials="H." surname="Birkholz"/><date year="2026" month="June"/></front><seriesInfo name="RFC" value="9943"/></reference>
      <reference anchor="I-D.watts-vpb" target="https://datatracker.ietf.org/doc/draft-watts-verification-promotion-boundaries/"><front><title>Verification Promotion Boundaries for Protocol Implementations</title><author initials="D. O." surname="Watts"/><date year="2026" month="October"/></front><seriesInfo name="Internet-Draft" value="draft-watts-verification-promotion-boundaries-00"/></reference>
      <reference anchor="RFCERRATA" target="https://www.rfc-editor.org/errata/"><front><title>RFC Errata</title><author><organization>RFC Editor</organization></author><date year="2026" month="October"/></front></reference>
      <reference anchor="NIST-AGENTS" target="https://www.nist.gov/artificial-intelligence/ai-agent-standards-initiative"><front><title>AI Agent Standards Initiative</title><author><organization>National Institute of Standards and Technology</organization></author><date year="2026" month="February"/></front></reference>
    </references>
  </back>
</rfc>
