{
  "title": "Ropedia Xperience-10M Publication Quality Gates",
  "status": "pass",
  "generated_at_utc": "2026-06-01T18:53:35+00:00",
  "rule": "Do not present a release as current unless every automated gate passes, then verify live GitHub/HF mirrors after publishing.",
  "automated_gates": [
    {
      "id": "scope_claims",
      "title": "Scope claims guard",
      "command": "python scripts/validate_scope_claims.py",
      "report": "docs/data/scope_claims_audit.json",
      "blocks_if": "Historical 32ep readiness/provenance strings are presented as real 32-episode metrics.",
      "proves": "The public narrative does not overclaim the Qwen3-Omni readiness artifacts.",
      "current_report": {
        "exists": true,
        "status": "pass"
      }
    },
    {
      "id": "source_alignment",
      "title": "Source alignment",
      "command": "python scripts/validate_source_alignment.py",
      "report": "docs/data/source_alignment_audit.json",
      "blocks_if": "Official full-dataset facts, sample-card facts, API-listing caveats, or public-card boundary markers are missing or inconsistent.",
      "proves": "The repo, website, and Hugging Face cards preserve the Xperience-10M source facts and current project boundary.",
      "current_report": {
        "exists": true,
        "status": "pass"
      }
    },
    {
      "id": "website_integrity",
      "title": "Website integrity",
      "command": "python scripts/validate_website_integrity.py",
      "report": "docs/data/website_integrity.json",
      "blocks_if": "Local links, anchors, JSON bundles, or referenced image assets are missing or invalid.",
      "proves": "The GitHub Pages / HF static surface is internally coherent before upload.",
      "current_report": {
        "exists": true,
        "status": "pass"
      }
    },
    {
      "id": "task_surface_integrity",
      "title": "Task surface integrity",
      "command": "python scripts/validate_task_surface.py",
      "report": "docs/data/task_surface_integrity.json",
      "blocks_if": "Task cards expose raw artifact ids, human-readable task names drift, modality thumbnails are missing, or the interactive task player is not wired to the generated JSON.",
      "proves": "The public task cards and walkthrough/player stay aligned with generated 12-task metadata.",
      "current_report": {
        "exists": true,
        "status": "pass"
      }
    },
    {
      "id": "evaluation_protocol",
      "title": "Evaluation protocol",
      "command": "python scripts/build_evaluation_protocol.py",
      "report": "docs/data/evaluation_protocol.json",
      "blocks_if": "Windowing, split policy, leakage controls, task metrics, or unsupported interpretations are not explicit.",
      "proves": "The task evaluation protocol is generated from committed metric artifacts.",
      "current_report": {
        "exists": true,
        "status": "pass"
      }
    },
    {
      "id": "figure_index",
      "title": "Figure index",
      "command": "python scripts/build_figure_index.py",
      "report": "docs/data/figure_index.json",
      "blocks_if": "Public figures, charts, or modality thumbnails are missing, unreadable, or lack source-script provenance.",
      "proves": "Public visual assets have dimensions, SHA-256 hashes, source scripts, and presentation roles.",
      "current_report": {
        "exists": true,
        "status": "pass"
      }
    },
    {
      "id": "brand_assets",
      "title": "Brand assets",
      "command": "python scripts/build_brand_assets.py",
      "report": "docs/data/brand_assets.json",
      "blocks_if": "The generated logo system, favicon, social card, or app icons are missing or not reproducibly packaged.",
      "proves": "The same project logo is available for website header, favicon, README, Hugging Face cards, and social previews.",
      "current_report": {
        "exists": true,
        "status": "pass"
      }
    },
    {
      "id": "quality_gate_manifest",
      "title": "Quality-gate manifest",
      "command": "python scripts/build_quality_gates.py",
      "report": "docs/data/quality_gates.json",
      "blocks_if": "A public reader cannot see the current packaging gates in one place.",
      "proves": "The publication checklist is explicit, versioned, and mirrored with the repo.",
      "current_report": {
        "exists": true,
        "status": "pass"
      }
    },
    {
      "id": "artifact_index",
      "title": "Artifact index",
      "command": "python scripts/build_artifact_index.py",
      "report": "docs/data/artifact_index.json",
      "blocks_if": "Project-critical evidence files are missing from the indexed proof layer.",
      "proves": "Core proof artifacts exist and stable files have SHA-256 hashes.",
      "current_report": {
        "exists": true,
        "status": "pass"
      }
    },
    {
      "id": "publication_hygiene",
      "title": "Publication hygiene",
      "command": "python scripts/validate_publication_package.py",
      "report": "docs/data/publication_audit.json",
      "blocks_if": "Raw data, caches, heavy archives, token strings, missing required assets, or stale public-card figure references enter public bundles.",
      "proves": "The repo and prepared HF bundles are clean enough to publish.",
      "current_report": {
        "exists": true,
        "status": "pass"
      }
    },
    {
      "id": "mirror_parity",
      "title": "Prepared mirror parity",
      "command": "python scripts/validate_mirror_parity.py",
      "report": "docs/data/mirror_parity.json",
      "blocks_if": "Prepared HF Space, artifact dataset, or model bundle diverges from the repo for critical files.",
      "proves": "The files staged for GitHub and Hugging Face are synchronized before upload.",
      "current_report": {
        "exists": true,
        "status": "pass"
      }
    }
  ],
  "post_publish_checks": [
    {
      "id": "live_publication_verifier",
      "title": "Live publication verifier",
      "evidence": "python scripts/verify_live_publication.py",
      "required_result": "live GitHub Pages, GitHub raw, HF Space, artifact dataset, and model mirrors match the current release assets"
    },
    {
      "id": "github_pages_deploy",
      "title": "GitHub Pages deployment",
      "evidence": "gh run list --repo ChaoYue0307/ropedia-xperience-10m-task-suite --limit 5",
      "required_result": "latest pages-build-deployment run succeeds"
    },
    {
      "id": "rendered_browser_check",
      "title": "Rendered browser check",
      "evidence": "Browser/Playwright page identity, nonblank render, console health, and one local interaction",
      "required_result": "no relevant console warnings/errors and target links work"
    }
  ],
  "scope_boundary": "These gates validate public packaging, claim boundaries, mirror parity, and website integrity. They do not prove cross-episode model quality."
}
