{
  "version": "2026-06-02",
  "title": "QUAD main-domain public release provenance",
  "owner": "uquad.org main website",
  "source_class": "static public release provenance contract",
  "freshness": "Static fallback. Verify the current live URL separately before treating any local package, manifest, zip, or receipt as deployed public state.",
  "boundary": "This file describes public release meaning, artifact classes, checks, handoff labels, rollback labels, and non-inference boundaries. It does not prove live upload, DNS propagation, current chain state, current subdomain state, custody, admission, settlement, liquidity, launch status, sale access, reward eligibility, allocation, or economic activation.",
  "global_rules": [
    "Local package proof is not deployed proof.",
    "A release artifact is not chain state.",
    "A manifest proves file inventory, not economic activation.",
    "A smoke check proves rendered static pages under the tested root, not live URL propagation.",
    "Subdomains are owned by their own VPS release paths.",
    "If the live URL cannot be read, say deployment state cannot be verified."
  ],
  "artifact_classes": [
    {
      "class": "source_working_copy",
      "public_meaning": "Editable main-domain website source before export.",
      "claim_boundary": "Not the public upload artifact and not proof of deployed state."
    },
    {
      "class": "launch_current_export",
      "public_meaning": "Clean static main-domain export prepared from the public allowlist.",
      "claim_boundary": "Local export proof only until a live upload and live smoke check exist."
    },
    {
      "class": "launch_zip",
      "public_meaning": "Optional compressed upload archive generated from the current export.",
      "claim_boundary": "The zip proves its own local contents, not live upload or route availability."
    },
    {
      "class": "manifest",
      "public_meaning": "File inventory and hash record for the prepared export.",
      "claim_boundary": "A manifest does not prove chain state, subdomain state, or economic activation."
    },
    {
      "class": "release_receipt",
      "public_meaning": "Dated record of source changes, checks, artifact refresh, and boundaries.",
      "claim_boundary": "Receipt language cannot upgrade local proof into deployed proof."
    }
  ],
  "main_domain_release_path": [
    {
      "step": "source_edit",
      "expected_check": "Public pages and static data are edited in the main-domain website source.",
      "must_not_infer": "Do not infer public deployment from source edits."
    },
    {
      "step": "source_check",
      "expected_check": "Public-site checker parses required JSON, metadata, crawler files, and required public pages.",
      "must_not_infer": "Do not infer live URL freshness from local source checks."
    },
    {
      "step": "export_build",
      "expected_check": "Clean public export is built from the allowlist.",
      "must_not_infer": "Do not infer live upload, chain state, subdomain state, or route availability."
    },
    {
      "step": "strict_release_check",
      "expected_check": "Export contains only allowed public files and required assets.",
      "must_not_infer": "Do not infer economic activation or production value movement."
    },
    {
      "step": "browser_smoke",
      "expected_check": "Static export renders under local browser smoke across desktop and mobile pages.",
      "must_not_infer": "Do not infer Hostinger upload, DNS propagation, PHP live feed state, or subdomain deployment."
    },
    {
      "step": "zip_and_manifest",
      "expected_check": "Optional archive and manifest are refreshed from the current export.",
      "must_not_infer": "Do not infer live upload or immutable hosting."
    },
    {
      "step": "manual_upload_boundary",
      "expected_check": "Main-domain live upload is a separate step and needs separate live verification.",
      "must_not_infer": "Do not infer that local package hashes are visible on uquad.org."
    }
  ],
  "surface_boundaries": [
    {
      "surface": "Main website",
      "release_owner": "uquad.org main website release process",
      "public_role": "Orientation, docs, summary files, crawler guidance, static proof contracts, and release packaging.",
      "does_not_control": [
        "Core chain state",
        "Infra product state",
        "Bridge passage state",
        "Liquid motion state",
        "subdomain VPS deployment",
        "wallet registry propagation",
        "external indexer state"
      ]
    },
    {
      "surface": "Core, Infra, Bridge, and Liquid subdomains",
      "release_owner": "Owning chain subdomain release process",
      "public_role": "Owner-published current route, chain, product, receipt, proof, status, or observability state.",
      "does_not_control": [
        "main-domain release hash",
        "main-domain upload status",
        "sibling-chain authority",
        "sale access",
        "allocation",
        "reward eligibility"
      ]
    }
  ],
  "release_labels": [
    "candidate",
    "staged",
    "promoted",
    "superseded",
    "rolled_back",
    "restored",
    "retired",
    "cannot_verify"
  ],
  "required_public_checks": [
    "source public-site check",
    "strict export check",
    "public wording scan",
    "browser smoke on prepared export",
    "archive generation",
    "manifest generation",
    "artifact parity check",
    "dated receipt"
  ],
  "rollback_shape": {
    "public_meaning": "A rollback means the public release returns to a previous artifact or route because the newer one should not carry the claim.",
    "required_public_evidence": [
      "surface",
      "rolled-back label",
      "previous artifact or route reference where public",
      "reason class",
      "current boundary",
      "next proof needed"
    ],
    "must_not_infer": [
      "chain rollback",
      "funds lost",
      "governance action",
      "economic activation",
      "private recovery detail"
    ]
  }
}
