{
  "schema": "varexis-public-evidence-record/0.3",
  "generated_at_utc": "2026-10-16T14:13:51.913Z",
  "record_id": "VXI-EXT-PROCUREMENT-GITHUB-ARTIFACT-IDENTITY-01-v1",
  "record_kind": "external_reference",
  "title": "Build artifacts: Names, replacement and object identity",
  "system": "GitHub Actions artifacts",
  "evidence_family": "vendor_evidence_review",
  "index_status": "PUBLIC_SAFE_SOURCE_REVIEW",
  "evidence_state": "PRIMARY_DOCUMENTATION_REVIEW_ONLY",
  "canonical_question": "Does reusing an artifact name mean a later download contains the same approved build?",
  "near_questions": [
    "Which artifact ID was approved?",
    "Was overwrite enabled?",
    "Did replacement create a new ID?",
    "Does the downloaded digest match?",
    "Which run produced the object?",
    "Which source revision was built?",
    "Can a name be reused?",
    "Is the approved object still retained?",
    "Does retention prove immutability?",
    "Was the action version recorded?",
    "What binds deployment to the approved object?",
    "Can I save the artifact-identity review?"
  ],
  "supported_claims": [
    {
      "claim": "The upload-artifact documentation describes immutable artifacts and an overwrite option that deletes and replaces the named artifact with a new ID. A name alone is therefore not a durable identity. Bind acceptance to the artifact ID, digest and producing run, and distinguish retention availability from content identity.",
      "reliance": "DOCUMENTED_CAPABILITY_ONLY"
    }
  ],
  "not_demonstrated_claims": [
    "Verified buyer configuration or effective access rights",
    "Independent execution, completeness or security testing",
    "Vendor certification, legal compliance or guaranteed suitability"
  ],
  "public_summary": "The upload-artifact documentation describes immutable artifacts and an overwrite option that deletes and replaces the named artifact with a new ID. A name alone is therefore not a durable identity. Bind acceptance to the artifact ID, digest and producing run, and distinguish retention availability from content identity.",
  "related_record_ids": [],
  "source_review": {
    "source_type": "official_external_documentation",
    "source_title": "GitHub Actions: Upload artifact identity and replacement",
    "source_url": "https://raw.githubusercontent.com/actions/upload-artifact/main/README.md",
    "checked_on": "2026-10-16",
    "candidate_record_id": "VXI-EXT-PROCUREMENT-GITHUB-ARTIFACT-IDENTITY-01-v1",
    "candidate_record_sha256": "1747bbef6161aa4c8eec35812d2f74115f9ec4ab37130b4ced2d87f26f633d0d",
    "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 upload-artifact documentation describes immutable artifacts and an overwrite option that deletes and replaces the named artifact with a new ID. A name alone is therefore not a durable identity. Bind acceptance to the artifact ID, digest and producing run, and distinguish retention availability from content identity.",
    "required_buyer_context": "Action version, artifact ID, digest, producing run, revision and retention policy. Effective configuration and dated operational evidence have not been 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-16",
    "claim_to_check": "An unchanged artifact name proves unchanged build content.",
    "documented_statement": {
      "status": "documented",
      "statement": "The upload-artifact documentation describes immutable artifacts and an overwrite option that deletes and replaces the named artifact with a new ID. A name alone is therefore not a durable identity. Bind acceptance to the artifact ID, digest and producing run, and distinguish retention availability from content identity.",
      "source_ids": [
        "github-artifact"
      ]
    },
    "buyer_evidence_required": [
      "Artifact ID and digest at approval.",
      "Producing run and source revision.",
      "Replacement history, retention and retrieved digest."
    ],
    "review_condition": {
      "status": "varexis_review_policy",
      "statement": "Do not accept name-only matching as proof that the downloaded artifact was approved."
    },
    "unknowns": "The buyer configuration, contract, effective entitlement and operational evidence have not been inspected. Missing evidence does not establish absence or failure of the feature.",
    "evidence_sources": [
      {
        "source_id": "github-artifact",
        "url": "https://raw.githubusercontent.com/actions/upload-artifact/main/README.md",
        "final_url": "https://raw.githubusercontent.com/actions/upload-artifact/main/README.md",
        "title": "GitHub Actions: Upload artifact identity and replacement",
        "checked_on": "2026-10-16",
        "sha256": "82e3d7226dabea938b107b93e015aa816150d6894fff631064aa2884c26771f7",
        "bytes": 18601
      }
    ],
    "observed_deployment": false,
    "commercial_reliance_boundary": "Procurement evidence support only; no supplier clearance, legal conclusion, configuration audit or verification of the buyer's claim is supplied.",
    "paid_value": {
      "decision_context": "Preserve the artifact identity needed to compare approval with later retrieval.",
      "free": "Complete review, practical questions, sources 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": "Action version, artifact ID, digest, producing run, revision and retention policy."
    }
  },
  "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#github-upload-artifact-overwrite-new-object-identity",
  "machine_readable_record": "/varexis-index/records/github-upload-artifact-overwrite-new-object-identity.json"
}
