{
  "schema": "varexis-public-evidence-record/0.3",
  "generated_at_utc": "2026-10-24T21:56:24.175Z",
  "record_id": "VXI-EXT-PROCUREMENT-TUF-ROOT-ROTATION-DUAL-THRESHOLD-01-v1",
  "record_kind": "external_reference",
  "title": "TUF root-rotation continuity",
  "system": "The Update Framework Working Group",
  "evidence_family": "vendor_evidence_review",
  "index_status": "PUBLIC_SAFE_SOURCE_REVIEW",
  "evidence_state": "PRIMARY_DOCUMENTATION_REVIEW_ONLY",
  "canonical_question": "Is a new TUF root trusted when only the new root keys signed it?",
  "near_questions": [
    "Must a rotated TUF root satisfy old and new signing thresholds?",
    "Does a self-signed TUF root prove publisher continuity?",
    "What connects a replacement tool-signing root to the previous one?",
    "What should happen when TUF root rotation signatures fail?"
  ],
  "supported_claims": [
    {
      "claim": "The pinned TUF root-update procedure requires the next root to satisfy signature thresholds from both the previously trusted root and the new root itself. A self-signed replacement alone does not establish continuity. Failed verification must abort that update cycle and retain the previous starting point for the next attempt.",
      "reliance": "DOCUMENTED_CAPABILITY_ONLY"
    }
  ],
  "not_demonstrated_claims": [
    "Actual signature verification and key compromise status are unobserved.",
    "TUF metadata trust does not establish software safety, required permissions, business approval or licence entitlement.",
    "Buyer deployment testing, live runtime enforcement, certification or permission to act",
    "Expanded capabilities or licences for existing INDEX executables"
  ],
  "public_summary": "The pinned TUF root-update procedure requires the next root to satisfy signature thresholds from both the previously trusted root and the new root itself. A self-signed replacement alone does not establish continuity. Failed verification must abort that update cycle and retain the previous starting point for the next attempt.",
  "related_record_ids": [],
  "source_review": {
    "source_type": "official_external_documentation",
    "source_title": "The Update Framework Specification (2026-10-08, pinned revision)",
    "source_url": "https://raw.githubusercontent.com/theupdateframework/specification/e2bc7d83d0740aaae8dd7133dd4f237ce3d86b16/tuf-spec.md",
    "checked_on": "2026-10-24",
    "candidate_record_id": "VXI-EXT-PROCUREMENT-TUF-ROOT-ROTATION-DUAL-THRESHOLD-01-v1",
    "candidate_record_sha256": "5184cec427e5da5fa327e471f2622eef40642faf8d7c5849c37a7fa19205b130",
    "method": "Primary documentation reviewed for the published bounded statement.",
    "deployment_tested_by_varexis": false,
    "revalidation": "The delivered snapshot preserves the review date shown. Recheck current primary documentation and deployment context before relying on present applicability; payment does not trigger fresh research."
  },
  "answer_policy": {
    "classification": "DOCUMENTED_WITH_DEPLOYMENT_BOUNDARY",
    "bounded_answer": "The pinned TUF root-update procedure requires the next root to satisfy signature thresholds from both the previously trusted root and the new root itself. A self-signed replacement alone does not establish continuity. Failed verification must abort that update cycle and retain the previous starting point for the next attempt.",
    "required_buyer_context": "Previous and proposed root metadata; Distinct verified signatures against both key sets; Persisted accepted root state after the rotation attempt. Buyer deployment not inspected.",
    "missing_evidence": "A broader claim needs evidence matching the intended use. Payment does not upgrade the evidence state."
  },
  "private_boundary": "Raw logs, thresholds, private paths, source code, protected mechanisms and reconstruction-level details are excluded from public and paid delivery.",
  "decision_profile": {
    "schema": "varexis-vendor-evidence-review/1",
    "review_status": "documentation_review_only",
    "checked_on": "2026-10-24",
    "claim_to_check": "Is a new TUF root trusted when only the new root keys signed it?",
    "documented_statement": {
      "status": "documented",
      "statement": "The pinned TUF root-update procedure requires the next root to satisfy signature thresholds from both the previously trusted root and the new root itself. A self-signed replacement alone does not establish continuity. Failed verification must abort that update cycle and retain the previous starting point for the next attempt.",
      "source_ids": [
        "tuf-spec"
      ]
    },
    "review_inference": {
      "status": "review_inference",
      "statement": "Verify that a publisher key change continues the approved update authority. This review does not inspect an updater or authorize software execution.",
      "source_ids": [
        "tuf-spec"
      ]
    },
    "buyer_evidence_required": [
      "Previous and proposed root metadata",
      "Distinct verified signatures against both key sets",
      "Persisted accepted root state after the rotation attempt"
    ],
    "review_condition": {
      "status": "varexis_review_policy",
      "statement": "Do not accept a root replacement solely under its newly declared keys."
    },
    "unknowns": "Actual signature verification and key compromise status are unobserved.",
    "unknown_finding": {
      "status": "unknown",
      "statement": "Actual signature verification and key compromise status are unobserved."
    },
    "evidence_sources": [
      {
        "source_id": "tuf-spec",
        "url": "https://raw.githubusercontent.com/theupdateframework/specification/e2bc7d83d0740aaae8dd7133dd4f237ce3d86b16/tuf-spec.md",
        "final_url": "https://raw.githubusercontent.com/theupdateframework/specification/e2bc7d83d0740aaae8dd7133dd4f237ce3d86b16/tuf-spec.md",
        "status": 200,
        "captured_at_utc": "2026-10-24T21:45:03.569Z",
        "sha256": "87c7136231b8cb3355736d8e7cfe88380d030cb2994ea283a19e78e03fb171ff",
        "bytes": 76283,
        "title": "The Update Framework Specification (2026-10-08, pinned revision)",
        "hash_basis": "Decoded HTTP response body bytes",
        "rights_review": "Original bounded paraphrase with attribution to The Update Framework Working Group, specification date 2026-10-08 and pinned source revision/URL, under Community Specification License 1.0; captures are private and not redistributed.",
        "checked_on": "2026-10-24",
        "capture_status": 200,
        "claim_review_completed": true,
        "reviewed_sections": [
          "Load trusted root metadata",
          "Root role",
          "Update the root role",
          "Key management and migration",
          "Update the timestamp role",
          "Record fixed update start time",
          "Update the snapshot role",
          "Update the targets role",
          "File formats: targets.json and delegated target roles",
          "Targets role"
        ],
        "version_context": "Pinned theupdateframework/specification revision e2bc7d83d0740aaae8dd7133dd4f237ce3d86b16 captured 2026-10-24. Living specification dated 2026-10-08. Documentation review, not evidence that a buyer implementation conforms."
      }
    ],
    "observed_deployment": false,
    "commercial_reliance_boundary": "Documentation review only; the buyer must establish applicability and actual outcomes. INDEX does not inspect or control the deployment.",
    "paid_value": {
      "decision_context": "Verify that a publisher key change continues the approved update authority.",
      "free": "Complete review, sources, practical questions and limitations; may be saved locally.",
      "single_request": "Existing server-saved version-bound route snapshot for later authenticated retrieval.",
      "evidence_receipt": "The same snapshot plus the existing unsigned delivery receipt.",
      "excluded": [
        "Fresh vendor research",
        "Continuous monitoring or change alerts",
        "Testing the buyer configuration",
        "Private evidence or vendor certification"
      ],
      "integrity": "Hashes identify content versions; they do not prove truth or provide a signature."
    },
    "revalidation": {
      "trigger": "A saved purchase does not recheck the source or buyer configuration.",
      "specific_watch": "Recheck the pinned source, actual implementation version, policy inputs and retained decision evidence before relying on a current outcome."
    },
    "buyer_relevance": "Verify that a publisher key change continues the approved update authority.",
    "refusal_conditions": [
      "Do not accept a root replacement solely under its newly declared keys."
    ]
  },
  "niche": {
    "niche_id": "agent-authority-action-evidence",
    "label": "Agent Authority & Action Evidence",
    "classification_id": "dependency",
    "classification_label": "Dependency/Advisory Reliance Boundaries",
    "topic_id": "dependency",
    "buyer_intent": "Verify that a publisher key change continues the approved update authority.",
    "comparison_role": "supplementary_discovery"
  },
  "paid_access_note": "The full published answer and boundaries are free. Paid access saves the selected route and source versions, with an unsigned receipt when purchased. Preview coverage before paying. Fresh research, bespoke assessment and protected evidence are excluded.",
  "service_route": {
    "request_guide": "/varexis-index/request.html",
    "request_workflow": "/varexis-index/request-workflow.json",
    "service_id": "single_request",
    "service_routes_url": "/varexis-index/service-routes.json",
    "payment_required": true,
    "availability_endpoint": "/api/index/capabilities",
    "operational_status": "AUTOMATIC_SERVICE_CAPABILITIES_GATED",
    "checkout_url": "/index-access"
  },
  "authority_boundary": "VAREXIS-INDEX informs evidence reliance. It does not provide advice, certification, deployment authority, security assurance, production approval, or guarantee.",
  "human_page": "/varexis-index/catalog.html#tuf-root-rotation-dual-threshold",
  "machine_readable_record": "/varexis-index/records/tuf-root-rotation-dual-threshold.json"
}
