cy0307 commited on
Commit
08a4bf0
·
verified ·
1 Parent(s): ae4f6df

Publish Ropedia Xperience-10M task baseline cards

Browse files
ARTIFACT_GUIDE.md CHANGED
@@ -2,9 +2,9 @@
2
 
3
  This guide is the human-readable map for the public Ropedia Xperience-10M task
4
  suite artifacts. It complements the machine-readable
5
- [`metrics/artifact_index.json`](metrics/artifact_index.json).
6
 
7
- The project intentionally separates four layers:
8
 
9
  1. **Proof boundary:** what is claimed, what is smoke-only, and what remains
10
  gated by data access.
@@ -22,40 +22,42 @@ The project intentionally separates four layers:
22
  | Artifact | Why to open it first |
23
  | --- | --- |
24
  | [`EVIDENCE_CONTRACT.md`](EVIDENCE_CONTRACT.md) | Defines which claims are verified and which are explicitly not claimed. |
 
25
  | [`REPRODUCIBILITY.md`](REPRODUCIBILITY.md) | Defines public reproduction commands, expected outputs, and unreproducible boundaries. |
26
- | [`metrics/artifact_index.json`](metrics/artifact_index.json) | Lists reviewer-critical files with existence, size, and stable hashes. |
27
- | [`metrics/mirror_parity.json`](metrics/mirror_parity.json) | Confirms prepared HF Space, artifact, and model mirrors match the repo for critical data, figures, website HTML, and validator scripts. |
28
- | [`metrics/publication_audit.json`](metrics/publication_audit.json) | Confirms public bundles exclude raw data, Python caches, heavy archives, token strings, and stale public-card figure references. |
29
- | [`metrics/scope_claims_audit.json`](metrics/scope_claims_audit.json) | Confirms historical `32ep` smoke-run identifiers are not presented as real 32-episode results. |
30
- | [`metrics/website_integrity.json`](metrics/website_integrity.json) | Confirms local site links, anchors, JSON bundles, and referenced images resolve. |
31
- | [`metrics/reviewer_packet.json`](metrics/reviewer_packet.json) | Gives the shortest machine-readable reviewer route. |
 
32
 
33
  ## Data Contract
34
 
35
  | Artifact | What it proves |
36
  | --- | --- |
37
- | [`artifacts/episode_task_suite/windows.csv`](artifacts/episode_task_suite/windows.csv) | The sample episode is converted into 1,161 aligned 20-frame windows. |
38
- | [`artifacts/episode_task_suite/feature_manifest.json`](artifacts/episode_task_suite/feature_manifest.json) | The current input vector has 8,378 dimensions with explicit feature-block boundaries. |
39
- | [`artifacts/episode_task_suite/available_modalities.json`](artifacts/episode_task_suite/available_modalities.json) | The sample modality coverage is recorded, including the current audio-featurization boundary. |
40
- | [`metrics/modality_atlas.json`](metrics/modality_atlas.json) | The responsive website modality cards and derived thumbnail assets are documented without redistributing raw data. |
41
- | [`assets/modalities/`](assets/modalities/) | Small public-sample thumbnails used by the readable modality atlas. |
42
 
43
  ## Task Evidence
44
 
45
  | Artifact | What it proves |
46
  | --- | --- |
47
- | [`artifacts/episode_task_suite/summary_report.json`](artifacts/episode_task_suite/summary_report.json) | The 12 task contracts, chronological split, and minimal/neural metrics. |
48
- | [`artifacts/episode_task_suite/neural_mlp/`](artifacts/episode_task_suite/neural_mlp/) | Matching PyTorch MLP heads for the same task contracts and feature windows. |
49
- | [`artifacts/episode_task_suite/research_directions/`](artifacts/episode_task_suite/research_directions/) | Mapping from the 12 tasks to the four Ropedia research directions. |
50
- | [`artifacts/episode_task_suite/research_direction_extensions/`](artifacts/episode_task_suite/research_direction_extensions/) | Four additional coded probes, one per research direction. |
51
- | [`artifacts/episode_task_suite/task_walkthroughs/`](artifacts/episode_task_suite/task_walkthroughs/) | Junior-friendly case studies explaining input, process modules, output, metric, and limitation. |
52
 
53
  ## Reproducibility
54
 
55
  | Artifact | What it proves |
56
  | --- | --- |
57
  | [`REPRODUCIBILITY.md`](REPRODUCIBILITY.md) | Public commands, expected outputs, and non-reproducible boundaries are explicit. |
58
- | [`metrics/reproducibility_matrix.json`](metrics/reproducibility_matrix.json) | Machine-readable command matrix for website and HF mirrors. |
59
  | [`notes/reproducibility_audit.md`](notes/reproducibility_audit.md) | The last exact metric audit rebuilt the public-sample metrics and matched committed artifacts. |
60
 
61
  ## Platform Mirrors
@@ -72,8 +74,8 @@ The project intentionally separates four layers:
72
 
73
  | Artifact | Current status |
74
  | --- | --- |
75
- | Companion GitHub repo: `results/omni_finetune/DATA_BLOCKER_REPORT.md` | Documents why no real 32-episode Qwen3-Omni result is claimed yet. |
76
- | Companion GitHub repo: `results/omni_finetune/A100_HF_RELAY_STATUS.md` | Documents the pending A100-to-H20 relay and selected 32-session pilot plan. |
77
  | [`scripts/omni/discover_xperience10m_sources.py`](scripts/omni/discover_xperience10m_sources.py) | Discovery gate for valid multi-episode Xperience-10M sources. |
78
  | [`scripts/omni/train_qwen3_omni_lora.py`](scripts/omni/train_qwen3_omni_lora.py) | Training entrypoint for the Qwen3-Omni LoRA pilot after the data gate passes. |
79
 
 
2
 
3
  This guide is the human-readable map for the public Ropedia Xperience-10M task
4
  suite artifacts. It complements the machine-readable
5
+ [`docs/data/artifact_index.json`](docs/data/artifact_index.json).
6
 
7
+ The project intentionally separates five layers:
8
 
9
  1. **Proof boundary:** what is claimed, what is smoke-only, and what remains
10
  gated by data access.
 
22
  | Artifact | Why to open it first |
23
  | --- | --- |
24
  | [`EVIDENCE_CONTRACT.md`](EVIDENCE_CONTRACT.md) | Defines which claims are verified and which are explicitly not claimed. |
25
+ | [`QUALITY_GATES.md`](QUALITY_GATES.md) | Lists the automated release gates and post-publish checks required before presenting a release as current. |
26
  | [`REPRODUCIBILITY.md`](REPRODUCIBILITY.md) | Defines public reproduction commands, expected outputs, and unreproducible boundaries. |
27
+ | [`docs/data/artifact_index.json`](docs/data/artifact_index.json) | Lists reviewer-critical files with existence, size, and stable hashes. |
28
+ | [`docs/data/quality_gates.json`](docs/data/quality_gates.json) | Machine-readable quality-gate summary for website and HF mirrors. |
29
+ | [`docs/data/mirror_parity.json`](docs/data/mirror_parity.json) | Confirms prepared HF Space, artifact, and model mirrors match the repo for critical data, figures, website HTML, and validator scripts. |
30
+ | [`docs/data/publication_audit.json`](docs/data/publication_audit.json) | Confirms public bundles exclude raw data, Python caches, heavy archives, token strings, and stale public-card figure references. |
31
+ | [`docs/data/scope_claims_audit.json`](docs/data/scope_claims_audit.json) | Confirms historical `32ep` smoke-run identifiers are not presented as real 32-episode results. |
32
+ | [`docs/data/website_integrity.json`](docs/data/website_integrity.json) | Confirms local site links, anchors, JSON bundles, and referenced images resolve. |
33
+ | [`docs/data/reviewer_packet.json`](docs/data/reviewer_packet.json) | Gives the shortest machine-readable reviewer route. |
34
 
35
  ## Data Contract
36
 
37
  | Artifact | What it proves |
38
  | --- | --- |
39
+ | [`results/episode_task_suite/windows.csv`](results/episode_task_suite/windows.csv) | The sample episode is converted into 1,161 aligned 20-frame windows. |
40
+ | [`results/episode_task_suite/feature_manifest.json`](results/episode_task_suite/feature_manifest.json) | The current input vector has 8,378 dimensions with explicit feature-block boundaries. |
41
+ | [`results/episode_task_suite/available_modalities.json`](results/episode_task_suite/available_modalities.json) | The sample modality coverage is recorded, including the current audio-featurization boundary. |
42
+ | [`docs/data/modality_atlas.json`](docs/data/modality_atlas.json) | The responsive website modality cards and derived thumbnail assets are documented without redistributing raw data. |
43
+ | [`docs/assets/modalities/`](docs/assets/modalities/) | Small public-sample thumbnails used by the readable modality atlas. |
44
 
45
  ## Task Evidence
46
 
47
  | Artifact | What it proves |
48
  | --- | --- |
49
+ | [`results/episode_task_suite/summary_report.json`](results/episode_task_suite/summary_report.json) | The 12 task contracts, chronological split, and minimal/neural metrics. |
50
+ | [`results/episode_task_suite/neural_mlp/`](results/episode_task_suite/neural_mlp/) | Matching PyTorch MLP heads for the same task contracts and feature windows. |
51
+ | [`results/episode_task_suite/research_directions/`](results/episode_task_suite/research_directions/) | Mapping from the 12 tasks to the four Ropedia research directions. |
52
+ | [`results/episode_task_suite/research_direction_extensions/`](results/episode_task_suite/research_direction_extensions/) | Four additional coded probes, one per research direction. |
53
+ | [`results/episode_task_suite/task_walkthroughs/`](results/episode_task_suite/task_walkthroughs/) | Junior-friendly case studies explaining input, process modules, output, metric, and limitation. |
54
 
55
  ## Reproducibility
56
 
57
  | Artifact | What it proves |
58
  | --- | --- |
59
  | [`REPRODUCIBILITY.md`](REPRODUCIBILITY.md) | Public commands, expected outputs, and non-reproducible boundaries are explicit. |
60
+ | [`docs/data/reproducibility_matrix.json`](docs/data/reproducibility_matrix.json) | Machine-readable command matrix for website and HF mirrors. |
61
  | [`notes/reproducibility_audit.md`](notes/reproducibility_audit.md) | The last exact metric audit rebuilt the public-sample metrics and matched committed artifacts. |
62
 
63
  ## Platform Mirrors
 
74
 
75
  | Artifact | Current status |
76
  | --- | --- |
77
+ | [`results/omni_finetune/DATA_BLOCKER_REPORT.md`](results/omni_finetune/DATA_BLOCKER_REPORT.md) | Documents why no real 32-episode Qwen3-Omni result is claimed yet. |
78
+ | [`results/omni_finetune/A100_HF_RELAY_STATUS.md`](results/omni_finetune/A100_HF_RELAY_STATUS.md) | Documents the pending A100-to-H20 relay and selected 32-session pilot plan. |
79
  | [`scripts/omni/discover_xperience10m_sources.py`](scripts/omni/discover_xperience10m_sources.py) | Discovery gate for valid multi-episode Xperience-10M sources. |
80
  | [`scripts/omni/train_qwen3_omni_lora.py`](scripts/omni/train_qwen3_omni_lora.py) | Training entrypoint for the Qwen3-Omni LoRA pilot after the data gate passes. |
81
 
EVIDENCE_CONTRACT.md CHANGED
@@ -5,51 +5,51 @@ local artifact that a reader can inspect before trusting the dashboard.
5
 
6
  | Claim | Current evidence | Status | Boundary |
7
  | --- | --- | --- | --- |
8
- | The public Xperience-10M sample has been converted into aligned model windows. | `artifacts/episode_task_suite/windows.csv`, `artifacts/episode_task_suite/shared_windows.npz`, `artifacts/episode_task_suite/summary_report.json` | Verified for 5,821 frames and 1,161 windows | One public sample episode only |
9
- | The current feature contract is explicit and reviewable. | `artifacts/episode_task_suite/feature_manifest.json`, `artifacts/episode_task_suite/available_modalities.json` | Verified for an 8,378-d feature vector | Audio is present in MP4 streams but not yet a feature block |
10
- | The public sample modalities are inspectable without raw data redistribution. | `metrics/modality_atlas.json`, `assets/modalities/`, website modality atlas | Verified derived thumbnail atlas | Thumbnails are presentation/review assets, not a replacement for official raw data access |
11
- | The 12 task heads are real scripts and artifacts, not presentation placeholders. | `scripts/episode_task_suite.py`, `artifacts/episode_task_suite/*/metrics.json`, `artifacts/episode_task_suite/*/predictions.*` | Verified for all 12 task definitions | Chronological single-episode split, not cross-episode generalization |
12
- | Minimal and neural heads use the same task contracts. | `scripts/neural_task_models.py`, `artifacts/episode_task_suite/neural_mlp/`, `assets/task_architectures.png` | Verified for 12 minimal heads and 12 neural MLP heads | Small heads only; not a foundation model |
13
- | Four Ropedia research directions are mapped honestly as direct, proxy, or diagnostic evidence. | `artifacts/episode_task_suite/research_directions/research_direction_taxonomy.json`, `metrics/research_directions.json` | Verified taxonomy | Some directions remain proxy-only |
14
- | Four extra direction probes are coded and evaluated. | `artifacts/episode_task_suite/research_direction_extensions/research_direction_extension_results.json`, `metrics/research_direction_extensions.json` | Verified single-episode probes | Not full human modeling, neural rendering, intent modeling, or world modeling solutions |
15
- | Qwen3-Omni infrastructure has passed technical smoke checks. | Companion GitHub repo: `results/omni_finetune/RUN_REPORT.md`, `results/omni_finetune/dataset_manifest.json`, `results/omni_finetune/metrics_eval.json` | Smoke-only evidence | One episode, 128 train windows; not a 32-episode pilot |
16
- | The real 32-episode LoRA pilot is blocked on gated data access, not on repo presentation. | Companion GitHub repo: `results/omni_finetune/DATA_BLOCKER_REPORT.md`, `results/omni_finetune/A100_HF_RELAY_STATUS.md`, `results/omni_finetune/source_discovery.json` | Blocker documented | No 32-episode metric should be claimed until the gate passes |
17
- | Historical `32ep` path strings are not treated as 32-episode results. | `scripts/validate_scope_claims.py`, `metrics/scope_claims_audit.json` | Verified pass | Classifies old run/path identifiers and fails if public presentation claims real 32-episode metrics |
18
- | Prepared GitHub/Hugging Face mirrors carry matching critical files. | `scripts/validate_mirror_parity.py`, `metrics/mirror_parity.json` | Verified pass | Compares prepared data files, visual assets, website HTML, and validator scripts before upload; live URLs are checked after publishing |
19
- | The public GitHub and Hugging Face bundles are publication-clean. | `scripts/validate_publication_package.py`, `metrics/publication_audit.json` | Verified pass | Checks public files, HF bundles, and public-card freshness; ignored local scratch outputs are excluded |
20
- | The public website has checked local references. | `scripts/validate_website_integrity.py`, `metrics/website_integrity.json` | Verified pass | Checks local links, anchors, JSON data, and referenced images; external URLs are not fetched |
21
- | The core proof artifacts are indexed and grouped for fast review. | `ARTIFACT_GUIDE.md`, `scripts/build_artifact_index.py`, `metrics/artifact_index.json` | Verified guide and index | Selective source-of-truth catalog, not a complete inventory of every output file |
22
- | The public reproduction path is documented. | `REPRODUCIBILITY.md`, `metrics/reproducibility_matrix.json`, `notes/reproducibility_audit.md` | Verified documentation and prior exact-match audit | Publicly reproduces the single-episode pipeline, not the gated 32-episode Qwen3-Omni pilot |
23
- | The project is externally citable and machine-readable. | `CITATION.cff`, `codemeta.json`, `metrics/project_manifest.json`, `LICENSE` | Verified metadata files | Code license does not override original Xperience-10M dataset terms |
24
- | A first-time reviewer has an explicit audit path. | `metrics/reviewer_packet.json`, website reviewer section, README reviewer path | Verified reviewer packet | It guides inspection; it does not add new experimental claims |
 
25
 
26
  ## Review Order
27
 
28
- 1. Read `metrics/reviewer_packet.json` for the shortest audit path and proof
29
  boundary.
30
- 2. Read `ARTIFACT_GUIDE.md` and `metrics/artifact_index.json` to see grouped
31
  reviewer artifacts, indexed proof artifacts,
32
  sizes, and stable-file hashes.
33
- 3. Read `assets/task_suite_infographic.png` and
34
- `metrics/modality_atlas.json` for the high-level map and modality atlas.
35
- 4. Read `REPRODUCIBILITY.md` and `metrics/reproducibility_matrix.json` before
36
  rerunning the public pipeline.
37
- 5. Inspect `artifacts/episode_task_suite/summary_report.json` for the task and
38
  metric source of truth.
39
- 6. Inspect `artifacts/episode_task_suite/feature_manifest.json` to see which
40
  modalities enter the current feature vector.
41
- 7. Inspect `artifacts/episode_task_suite/neural_mlp/` to compare minimal and
42
  neural heads under the same splits.
43
- 8. Inspect `metrics/scope_claims_audit.json` before interpreting historical
44
  `32ep` strings in Qwen3-Omni smoke artifacts.
45
- 9. Inspect `metrics/mirror_parity.json` before assuming the GitHub and
46
  Hugging Face mirrors contain the same critical data, visual, HTML, and
47
  validator files.
48
- 10. Inspect the companion GitHub repo's
49
- `results/omni_finetune/DATA_BLOCKER_REPORT.md` before interpreting any
50
- Qwen3-Omni artifact.
51
- 11. Inspect `metrics/publication_audit.json` and
52
- `metrics/website_integrity.json` before publishing or sharing the project
53
- externally.
54
  12. Inspect `CITATION.cff`, `codemeta.json`, and `LICENSE` before reusing or
55
  citing the project.
 
5
 
6
  | Claim | Current evidence | Status | Boundary |
7
  | --- | --- | --- | --- |
8
+ | The public Xperience-10M sample has been converted into aligned model windows. | `results/episode_task_suite/windows.csv`, `results/episode_task_suite/shared_windows.npz`, `results/episode_task_suite/summary_report.json` | Verified for 5,821 frames and 1,161 windows | One public sample episode only |
9
+ | The current feature contract is explicit and reviewable. | `results/episode_task_suite/feature_manifest.json`, `results/episode_task_suite/available_modalities.json` | Verified for an 8,378-d feature vector | Audio is present in MP4 streams but not yet a feature block |
10
+ | The public sample modalities are inspectable without raw data redistribution. | `docs/data/modality_atlas.json`, `docs/assets/modalities/`, website modality atlas | Verified derived thumbnail atlas | Thumbnails are presentation/review assets, not a replacement for official raw data access |
11
+ | The 12 task heads are real scripts and artifacts, not presentation placeholders. | `scripts/episode_task_suite.py`, `results/episode_task_suite/*/metrics.json`, `results/episode_task_suite/*/predictions.*` | Verified for all 12 task definitions | Chronological single-episode split, not cross-episode generalization |
12
+ | Minimal and neural heads use the same task contracts. | `scripts/neural_task_models.py`, `results/episode_task_suite/neural_mlp/`, `docs/assets/task_architectures.png` | Verified for 12 minimal heads and 12 neural MLP heads | Small heads only; not a foundation model |
13
+ | Four Ropedia research directions are mapped honestly as direct, proxy, or diagnostic evidence. | `results/episode_task_suite/research_directions/research_direction_taxonomy.json`, `docs/data/research_directions.json` | Verified taxonomy | Some directions remain proxy-only |
14
+ | Four extra direction probes are coded and evaluated. | `results/episode_task_suite/research_direction_extensions/research_direction_extension_results.json`, `docs/data/research_direction_extensions.json` | Verified single-episode probes | Not full human modeling, neural rendering, intent modeling, or world modeling solutions |
15
+ | Qwen3-Omni infrastructure has passed technical smoke checks. | `results/omni_finetune/RUN_REPORT.md`, `results/omni_finetune/dataset_manifest.json`, `results/omni_finetune/metrics_eval.json` | Smoke-only evidence | One episode, 128 train windows; not a 32-episode pilot |
16
+ | The real 32-episode LoRA pilot is blocked on gated data access, not on repo presentation. | `results/omni_finetune/DATA_BLOCKER_REPORT.md`, `results/omni_finetune/A100_HF_RELAY_STATUS.md`, `results/omni_finetune/source_discovery.json` | Blocker documented | No 32-episode metric should be claimed until the gate passes |
17
+ | Historical `32ep` path strings are not treated as 32-episode results. | `scripts/validate_scope_claims.py`, `docs/data/scope_claims_audit.json` | Verified pass | Classifies old run/path identifiers and fails if public presentation claims real 32-episode metrics |
18
+ | Prepared GitHub/Hugging Face mirrors carry matching critical files. | `scripts/validate_mirror_parity.py`, `docs/data/mirror_parity.json` | Verified pass | Compares prepared data files, visual assets, website HTML, and validator scripts before upload; live URLs are checked after publishing |
19
+ | The public GitHub and Hugging Face bundles are publication-clean. | `scripts/validate_publication_package.py`, `docs/data/publication_audit.json` | Verified pass | Checks public files, HF bundles, and public-card freshness; ignored local scratch outputs are excluded |
20
+ | The public website has checked local references. | `scripts/validate_website_integrity.py`, `docs/data/website_integrity.json` | Verified pass | Checks local links, anchors, JSON data, and referenced images; external URLs are not fetched |
21
+ | The release gate is explicit and reviewable. | `QUALITY_GATES.md`, `scripts/build_quality_gates.py`, `docs/data/quality_gates.json` | Verified pass | Summarizes packaging and live-mirror checks; it does not prove cross-episode model quality |
22
+ | The core proof artifacts are indexed and grouped for fast review. | `ARTIFACT_GUIDE.md`, `scripts/build_artifact_index.py`, `docs/data/artifact_index.json` | Verified guide and index | Selective source-of-truth catalog, not a complete inventory of every output file |
23
+ | The public reproduction path is documented. | `REPRODUCIBILITY.md`, `docs/data/reproducibility_matrix.json`, `notes/reproducibility_audit.md` | Verified documentation and prior exact-match audit | Publicly reproduces the single-episode pipeline, not the gated 32-episode Qwen3-Omni pilot |
24
+ | The project is externally citable and machine-readable. | `CITATION.cff`, `codemeta.json`, `docs/data/project_manifest.json`, `LICENSE` | Verified metadata files | Code license does not override original Xperience-10M dataset terms |
25
+ | A first-time reviewer has an explicit audit path. | `docs/data/reviewer_packet.json`, website reviewer section, README reviewer path | Verified reviewer packet | It guides inspection; it does not add new experimental claims |
26
 
27
  ## Review Order
28
 
29
+ 1. Read `docs/data/reviewer_packet.json` for the shortest audit path and proof
30
  boundary.
31
+ 2. Read `ARTIFACT_GUIDE.md` and `docs/data/artifact_index.json` to see grouped
32
  reviewer artifacts, indexed proof artifacts,
33
  sizes, and stable-file hashes.
34
+ 3. Read `docs/assets/task_suite_infographic.png` and
35
+ `docs/data/modality_atlas.json` for the high-level map and modality atlas.
36
+ 4. Read `REPRODUCIBILITY.md` and `docs/data/reproducibility_matrix.json` before
37
  rerunning the public pipeline.
38
+ 5. Inspect `results/episode_task_suite/summary_report.json` for the task and
39
  metric source of truth.
40
+ 6. Inspect `results/episode_task_suite/feature_manifest.json` to see which
41
  modalities enter the current feature vector.
42
+ 7. Inspect `results/episode_task_suite/neural_mlp/` to compare minimal and
43
  neural heads under the same splits.
44
+ 8. Inspect `docs/data/scope_claims_audit.json` before interpreting historical
45
  `32ep` strings in Qwen3-Omni smoke artifacts.
46
+ 9. Inspect `docs/data/mirror_parity.json` before assuming the GitHub and
47
  Hugging Face mirrors contain the same critical data, visual, HTML, and
48
  validator files.
49
+ 10. Inspect `results/omni_finetune/DATA_BLOCKER_REPORT.md` before interpreting
50
+ any Qwen3-Omni artifact.
51
+ 11. Inspect `QUALITY_GATES.md`, `docs/data/quality_gates.json`,
52
+ `docs/data/publication_audit.json`, and `docs/data/website_integrity.json`
53
+ before publishing or sharing the project externally.
 
54
  12. Inspect `CITATION.cff`, `codemeta.json`, and `LICENSE` before reusing or
55
  citing the project.
QUALITY_GATES.md ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Publication Quality Gates
2
+
3
+ This file is the reviewer-facing release checklist for the Ropedia Xperience-10M Task Suite.
4
+
5
+ Current gate status: **pass**
6
+
7
+ Do not present a release as current unless every automated gate passes, then verify live GitHub/HF mirrors after publishing.
8
+
9
+ These gates validate public packaging, claim boundaries, mirror parity, and website integrity. They do not prove cross-episode model quality; the 32-episode Qwen3-Omni pilot remains gated on data access.
10
+
11
+ ## Automated Gates
12
+
13
+ | Gate | Command | Report | Current report status | Blocks publication if |
14
+ | --- | --- | --- | --- | --- |
15
+ | Scope claims guard | `python scripts/validate_scope_claims.py` | `docs/data/scope_claims_audit.json` | `pass` | Historical 32ep smoke/provenance strings are presented as real 32-episode metrics. |
16
+ | Website integrity | `python scripts/validate_website_integrity.py` | `docs/data/website_integrity.json` | `pass` | Local links, anchors, JSON bundles, or referenced image assets are missing or invalid. |
17
+ | Quality-gate manifest | `python scripts/build_quality_gates.py` | `docs/data/quality_gates.json` | `pass` | A public reviewer cannot see the current packaging gates in one place. |
18
+ | Artifact index | `python scripts/build_artifact_index.py` | `docs/data/artifact_index.json` | `pass` | Reviewer-critical evidence files are missing from the indexed proof layer. |
19
+ | Publication hygiene | `python scripts/validate_publication_package.py` | `docs/data/publication_audit.json` | `pass` | Raw data, caches, heavy archives, token strings, missing required assets, or stale public-card figure references enter public bundles. |
20
+ | Prepared mirror parity | `python scripts/validate_mirror_parity.py` | `docs/data/mirror_parity.json` | `pass` | Prepared HF Space, artifact dataset, or model bundle diverges from the repo for critical files. |
21
+
22
+ ## Post-Publish Checks
23
+
24
+ | Check | Evidence | Required result |
25
+ | --- | --- | --- |
26
+ | GitHub Pages deployment | `gh run list --repo ChaoYue0307/ropedia-xperience-10m-task-suite --limit 5` | latest pages-build-deployment run succeeds |
27
+ | Live figure hash parity | `download live GitHub/HF task_suite_infographic.png and compare SHA-256 to docs/assets/task_suite_infographic.png` | all live hashes match the repo asset |
28
+ | Rendered browser smoke | `Browser/Playwright page identity, nonblank render, console health, and one local interaction` | no relevant console warnings/errors and target links work |
29
+
30
+ ## Rerun Order
31
+
32
+ ```bash
33
+ python scripts/validate_scope_claims.py
34
+ python scripts/validate_website_integrity.py
35
+ python scripts/build_quality_gates.py
36
+ python scripts/build_artifact_index.py
37
+ python scripts/validate_publication_package.py
38
+ python scripts/validate_mirror_parity.py
39
+ ```
40
+
41
+ After Hugging Face bundle sync, rerun `validate_publication_package.py` and `validate_mirror_parity.py` once more before upload.
README.md CHANGED
@@ -91,13 +91,14 @@ Their purpose is to make every input/output contract auditable before scaling to
91
 
92
  | Step | Question | Primary artifacts |
93
  | --- | --- | --- |
94
- | 1 | What is actually claimed? | `EVIDENCE_CONTRACT.md`, `ARTIFACT_GUIDE.md`, `metrics/artifact_index.json`, `metrics/mirror_parity.json`, `metrics/scope_claims_audit.json`, `metrics/publication_audit.json`, `metrics/website_integrity.json`, `metrics/project_manifest.json` |
95
  | 2 | How do I reproduce it? | `REPRODUCIBILITY.md`, `metrics/reproducibility_matrix.json`, companion GitHub `notes/reproducibility_audit.md` |
96
  | 3 | What is one model input? | `artifacts/episode_task_suite/feature_manifest.json`, `artifacts/episode_task_suite/available_modalities.json`, companion artifact dataset `windows.csv` |
97
  | 4 | Are the task results backed by files? | `artifacts/episode_task_suite/summary_report.json`, `artifacts/episode_task_suite/neural_mlp/`, `metrics/summary_metrics.json` |
98
  | 5 | What is still pending? | companion GitHub `results/omni_finetune/DATA_BLOCKER_REPORT.md` and `A100_HF_RELAY_STATUS.md` |
99
 
100
  Human-readable artifact guide mirror: `ARTIFACT_GUIDE.md`.
 
101
  Machine-readable reviewer packet mirror: `metrics/reviewer_packet.json`.
102
  Source-of-truth artifact index mirror: `metrics/artifact_index.json`.
103
 
@@ -114,6 +115,7 @@ Source-of-truth artifact index mirror: `metrics/artifact_index.json`.
114
  | Mirror parity | `metrics/mirror_parity.json` and `scripts/validate_mirror_parity.py` | prepared repo/HF mirrors carry matching critical data, figures, website HTML, and validator files |
115
  | Publication hygiene | `metrics/publication_audit.json` and validator script mirror | public bundles contain no raw data, generated caches, heavy archives, token strings, or stale public-card figure references |
116
  | Website integrity | `metrics/website_integrity.json` and validator script mirror | local links, anchors, JSON bundles, and referenced images only |
 
117
  | Artifact index | `metrics/artifact_index.json` and `scripts/build_artifact_index.py` | compact catalog of the reviewer-critical proof artifacts |
118
  | Artifact guide | `ARTIFACT_GUIDE.md` | human-readable map of proof boundary, task evidence, mirrors, and scale-up status |
119
  | Reproducibility | `REPRODUCIBILITY.md`, `metrics/reproducibility_matrix.json` | public commands, expected outputs, exact-match audit evidence, and non-reproducible boundaries |
@@ -148,6 +150,7 @@ transfers them to H20 for manifest building, training, and evaluation.
148
  | `metrics/artifact_index.json` | indexes proof artifacts with existence, size, and stable-file hashes |
149
  | `metrics/mirror_parity.json` | verifies prepared repo/HF mirrors have matching critical data, figures, website HTML, and validator files before upload |
150
  | `metrics/scope_claims_audit.json` | verifies historical `32ep` smoke-run identifiers are not presented as real 32-episode results |
 
151
  | `metrics/publication_audit.json` | records the latest public-bundle hygiene and public-card freshness check |
152
  | `metrics/website_integrity.json` | records the latest local website link, anchor, JSON, and image integrity check |
153
  | `metrics/project_manifest.json` | mirrors the public URL and citation metadata bundle |
 
91
 
92
  | Step | Question | Primary artifacts |
93
  | --- | --- | --- |
94
+ | 1 | What is actually claimed? | `EVIDENCE_CONTRACT.md`, `ARTIFACT_GUIDE.md`, `QUALITY_GATES.md`, `metrics/artifact_index.json`, `metrics/quality_gates.json`, `metrics/mirror_parity.json`, `metrics/scope_claims_audit.json`, `metrics/publication_audit.json`, `metrics/website_integrity.json`, `metrics/project_manifest.json` |
95
  | 2 | How do I reproduce it? | `REPRODUCIBILITY.md`, `metrics/reproducibility_matrix.json`, companion GitHub `notes/reproducibility_audit.md` |
96
  | 3 | What is one model input? | `artifacts/episode_task_suite/feature_manifest.json`, `artifacts/episode_task_suite/available_modalities.json`, companion artifact dataset `windows.csv` |
97
  | 4 | Are the task results backed by files? | `artifacts/episode_task_suite/summary_report.json`, `artifacts/episode_task_suite/neural_mlp/`, `metrics/summary_metrics.json` |
98
  | 5 | What is still pending? | companion GitHub `results/omni_finetune/DATA_BLOCKER_REPORT.md` and `A100_HF_RELAY_STATUS.md` |
99
 
100
  Human-readable artifact guide mirror: `ARTIFACT_GUIDE.md`.
101
+ Publication quality gates mirror: `QUALITY_GATES.md` and `metrics/quality_gates.json`.
102
  Machine-readable reviewer packet mirror: `metrics/reviewer_packet.json`.
103
  Source-of-truth artifact index mirror: `metrics/artifact_index.json`.
104
 
 
115
  | Mirror parity | `metrics/mirror_parity.json` and `scripts/validate_mirror_parity.py` | prepared repo/HF mirrors carry matching critical data, figures, website HTML, and validator files |
116
  | Publication hygiene | `metrics/publication_audit.json` and validator script mirror | public bundles contain no raw data, generated caches, heavy archives, token strings, or stale public-card figure references |
117
  | Website integrity | `metrics/website_integrity.json` and validator script mirror | local links, anchors, JSON bundles, and referenced images only |
118
+ | Quality gates | `QUALITY_GATES.md`, `metrics/quality_gates.json`, and `scripts/build_quality_gates.py` | automated release gates plus live post-publish checks |
119
  | Artifact index | `metrics/artifact_index.json` and `scripts/build_artifact_index.py` | compact catalog of the reviewer-critical proof artifacts |
120
  | Artifact guide | `ARTIFACT_GUIDE.md` | human-readable map of proof boundary, task evidence, mirrors, and scale-up status |
121
  | Reproducibility | `REPRODUCIBILITY.md`, `metrics/reproducibility_matrix.json` | public commands, expected outputs, exact-match audit evidence, and non-reproducible boundaries |
 
150
  | `metrics/artifact_index.json` | indexes proof artifacts with existence, size, and stable-file hashes |
151
  | `metrics/mirror_parity.json` | verifies prepared repo/HF mirrors have matching critical data, figures, website HTML, and validator files before upload |
152
  | `metrics/scope_claims_audit.json` | verifies historical `32ep` smoke-run identifiers are not presented as real 32-episode results |
153
+ | `QUALITY_GATES.md`, `metrics/quality_gates.json` | summarizes the automated and post-publish release checks |
154
  | `metrics/publication_audit.json` | records the latest public-bundle hygiene and public-card freshness check |
155
  | `metrics/website_integrity.json` | records the latest local website link, anchor, JSON, and image integrity check |
156
  | `metrics/project_manifest.json` | mirrors the public URL and citation metadata bundle |
metrics/artifact_index.json CHANGED
@@ -1,12 +1,13 @@
1
  {
2
  "title": "Ropedia Xperience-10M Task Suite Artifact Index",
3
- "generated_at_utc": "2026-06-01T05:58:15+00:00",
4
  "status": "pass",
5
- "artifact_count": 29,
6
  "missing": [],
7
  "by_kind": {
8
  "claim_boundary": 1,
9
  "review_path": 3,
 
10
  "reproducibility": 2,
11
  "hygiene_report": 1,
12
  "scope_guard": 1,
@@ -35,8 +36,8 @@
35
  "surface": "repo",
36
  "proves": "Defines what is verified, what is smoke-only, and what must not be inferred.",
37
  "exists": true,
38
- "bytes": 6520,
39
- "sha256": "d6b8d74a53b49778d38bff6f6857f79d481d451f938c6a4177a50374f541d219"
40
  },
41
  {
42
  "id": "reviewer_packet",
@@ -57,8 +58,30 @@
57
  "surface": "repo_hf",
58
  "proves": "Gives the human-readable map from proof boundary to data, tasks, platform mirrors, and scale-up status.",
59
  "exists": true,
60
- "bytes": 6520,
61
- "sha256": "0a8740e19d56c9c7e1c3964d3abf838a8e33af140128a4fb95a69bdca0b45173"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
  },
63
  {
64
  "id": "reproducibility_contract",
@@ -90,8 +113,8 @@
90
  "surface": "repo_hf",
91
  "proves": "Generates the selective proof-artifact catalog from local files.",
92
  "exists": true,
93
- "bytes": 11579,
94
- "sha256": "874a3813fb3a19d79be9ea4c0177f5922adf9e667760f927dd49163784eb6b48"
95
  },
96
  {
97
  "id": "publication_audit",
@@ -102,7 +125,7 @@
102
  "volatile": true,
103
  "proves": "Confirms public bundles pass raw-data, cache, archive, and token-string checks.",
104
  "exists": true,
105
- "bytes": 5292,
106
  "hash_policy": "existence_and_size_only"
107
  },
108
  {
@@ -126,7 +149,7 @@
126
  "volatile": true,
127
  "proves": "Confirms prepared GitHub/HF Space/artifact/model mirrors share the same critical data, figure, website HTML, and validator files.",
128
  "exists": true,
129
- "bytes": 42567,
130
  "hash_policy": "existence_and_size_only"
131
  },
132
  {
@@ -138,7 +161,7 @@
138
  "volatile": true,
139
  "proves": "Confirms local website links, anchors, JSON data files, and referenced images resolve.",
140
  "exists": true,
141
- "bytes": 5936,
142
  "hash_policy": "existence_and_size_only"
143
  },
144
  {
 
1
  {
2
  "title": "Ropedia Xperience-10M Task Suite Artifact Index",
3
+ "generated_at_utc": "2026-06-01T06:24:20+00:00",
4
  "status": "pass",
5
+ "artifact_count": 31,
6
  "missing": [],
7
  "by_kind": {
8
  "claim_boundary": 1,
9
  "review_path": 3,
10
+ "quality_gate": 2,
11
  "reproducibility": 2,
12
  "hygiene_report": 1,
13
  "scope_guard": 1,
 
36
  "surface": "repo",
37
  "proves": "Defines what is verified, what is smoke-only, and what must not be inferred.",
38
  "exists": true,
39
+ "bytes": 6818,
40
+ "sha256": "a6d184b6bab5c0bad50e85f9b899a3c9f90741660130c20843bbf53c17d44713"
41
  },
42
  {
43
  "id": "reviewer_packet",
 
58
  "surface": "repo_hf",
59
  "proves": "Gives the human-readable map from proof boundary to data, tasks, platform mirrors, and scale-up status.",
60
  "exists": true,
61
+ "bytes": 6807,
62
+ "sha256": "208a173c7805e6dc61c7c243c24fb69de93af4883de13fa51b451b02f374e847"
63
+ },
64
+ {
65
+ "id": "quality_gates",
66
+ "title": "Publication quality gates",
67
+ "path": "QUALITY_GATES.md",
68
+ "kind": "quality_gate",
69
+ "surface": "repo_hf",
70
+ "proves": "Lists the automated and post-publish gates required before presenting a release as current.",
71
+ "exists": true,
72
+ "bytes": 2865,
73
+ "sha256": "f3482dbc310d2ade60aa2b480211a9ee0cad1c814779a8b1d63d96432222897a"
74
+ },
75
+ {
76
+ "id": "quality_gate_manifest",
77
+ "title": "Quality-gate manifest",
78
+ "path": "docs/data/quality_gates.json",
79
+ "kind": "quality_gate",
80
+ "surface": "website_hf",
81
+ "proves": "Machine-readable release-gate summary for validators, mirrors, and reviewer surfaces.",
82
+ "exists": true,
83
+ "bytes": 4222,
84
+ "sha256": "274dd753853ea843b5413bbce68b371e4a664853924c9745a4163c1b68a54cf9"
85
  },
86
  {
87
  "id": "reproducibility_contract",
 
113
  "surface": "repo_hf",
114
  "proves": "Generates the selective proof-artifact catalog from local files.",
115
  "exists": true,
116
+ "bytes": 12194,
117
+ "sha256": "04083feaa7cd486e94fa4f313b54b5b04b588edcb1376234a7b279060e0b4058"
118
  },
119
  {
120
  "id": "publication_audit",
 
125
  "volatile": true,
126
  "proves": "Confirms public bundles pass raw-data, cache, archive, and token-string checks.",
127
  "exists": true,
128
+ "bytes": 5408,
129
  "hash_policy": "existence_and_size_only"
130
  },
131
  {
 
149
  "volatile": true,
150
  "proves": "Confirms prepared GitHub/HF Space/artifact/model mirrors share the same critical data, figure, website HTML, and validator files.",
151
  "exists": true,
152
+ "bytes": 46406,
153
  "hash_policy": "existence_and_size_only"
154
  },
155
  {
 
161
  "volatile": true,
162
  "proves": "Confirms local website links, anchors, JSON data files, and referenced images resolve.",
163
  "exists": true,
164
+ "bytes": 6042,
165
  "hash_policy": "existence_and_size_only"
166
  },
167
  {
metrics/evidence_contract.json CHANGED
@@ -138,6 +138,17 @@
138
  ],
139
  "boundary": "checks local links, anchors, JSON data, and referenced images; external URLs are not fetched"
140
  },
 
 
 
 
 
 
 
 
 
 
 
141
  {
142
  "id": "citation_metadata",
143
  "claim": "The project is externally citable and machine-readable.",
 
138
  ],
139
  "boundary": "checks local links, anchors, JSON data, and referenced images; external URLs are not fetched"
140
  },
141
+ {
142
+ "id": "quality_gates",
143
+ "claim": "The release gate is explicit and reviewable.",
144
+ "status": "verified",
145
+ "evidence": [
146
+ "QUALITY_GATES.md",
147
+ "scripts/build_quality_gates.py",
148
+ "docs/data/quality_gates.json"
149
+ ],
150
+ "boundary": "summarizes packaging and live-mirror checks; it does not prove cross-episode model quality"
151
+ },
152
  {
153
  "id": "citation_metadata",
154
  "claim": "The project is externally citable and machine-readable.",
metrics/mirror_parity.json CHANGED
@@ -1,9 +1,9 @@
1
  {
2
  "status": "pass",
3
- "generated_at_utc": "2026-06-01T05:59:09+00:00",
4
  "hf_root": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish",
5
  "summary": {
6
- "group_count": 29,
7
  "failure_count": 0,
8
  "failures_by_surface": {}
9
  },
@@ -23,6 +23,10 @@
23
  {
24
  "name": "repo_hf_website_html_parity",
25
  "status": "pass"
 
 
 
 
26
  }
27
  ],
28
  "groups": [
@@ -32,27 +36,27 @@
32
  "local": {
33
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs/data/artifact_index.json",
34
  "exists": true,
35
- "bytes": 12916,
36
- "sha256": "0d12a2e36db90b4c6ae4205aab074e6c6b00083fa6c4cc18ea51342f5f1a05df"
37
  },
38
  "mirrors": {
39
  "hf_space": {
40
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space/data/artifact_index.json",
41
  "exists": true,
42
- "bytes": 12916,
43
- "sha256": "0d12a2e36db90b4c6ae4205aab074e6c6b00083fa6c4cc18ea51342f5f1a05df"
44
  },
45
  "hf_artifacts": {
46
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/docs/data/artifact_index.json",
47
  "exists": true,
48
- "bytes": 12916,
49
- "sha256": "0d12a2e36db90b4c6ae4205aab074e6c6b00083fa6c4cc18ea51342f5f1a05df"
50
  },
51
  "hf_model": {
52
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/metrics/artifact_index.json",
53
  "exists": true,
54
- "bytes": 12916,
55
- "sha256": "0d12a2e36db90b4c6ae4205aab074e6c6b00083fa6c4cc18ea51342f5f1a05df"
56
  }
57
  },
58
  "failures": []
@@ -63,27 +67,27 @@
63
  "local": {
64
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs/data/evidence_contract.json",
65
  "exists": true,
66
- "bytes": 7205,
67
- "sha256": "78f2a0db49dc00f52f79dc4d3448d01a47bd28019458bd61000304e119a018e8"
68
  },
69
  "mirrors": {
70
  "hf_space": {
71
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space/data/evidence_contract.json",
72
  "exists": true,
73
- "bytes": 7205,
74
- "sha256": "78f2a0db49dc00f52f79dc4d3448d01a47bd28019458bd61000304e119a018e8"
75
  },
76
  "hf_artifacts": {
77
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/docs/data/evidence_contract.json",
78
  "exists": true,
79
- "bytes": 7205,
80
- "sha256": "78f2a0db49dc00f52f79dc4d3448d01a47bd28019458bd61000304e119a018e8"
81
  },
82
  "hf_model": {
83
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/metrics/evidence_contract.json",
84
  "exists": true,
85
- "bytes": 7205,
86
- "sha256": "78f2a0db49dc00f52f79dc4d3448d01a47bd28019458bd61000304e119a018e8"
87
  }
88
  },
89
  "failures": []
@@ -156,27 +160,58 @@
156
  "local": {
157
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs/data/publication_audit.json",
158
  "exists": true,
159
- "bytes": 5292,
160
- "sha256": "c273917a673c41fed0b1498ffef2d1e64ebd9691e7b870cbcd15b194785397ed"
161
  },
162
  "mirrors": {
163
  "hf_space": {
164
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space/data/publication_audit.json",
165
  "exists": true,
166
- "bytes": 5292,
167
- "sha256": "c273917a673c41fed0b1498ffef2d1e64ebd9691e7b870cbcd15b194785397ed"
168
  },
169
  "hf_artifacts": {
170
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/docs/data/publication_audit.json",
171
  "exists": true,
172
- "bytes": 5292,
173
- "sha256": "c273917a673c41fed0b1498ffef2d1e64ebd9691e7b870cbcd15b194785397ed"
174
  },
175
  "hf_model": {
176
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/metrics/publication_audit.json",
177
  "exists": true,
178
- "bytes": 5292,
179
- "sha256": "c273917a673c41fed0b1498ffef2d1e64ebd9691e7b870cbcd15b194785397ed"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
180
  }
181
  },
182
  "failures": []
@@ -312,26 +347,26 @@
312
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs/data/scope_claims_audit.json",
313
  "exists": true,
314
  "bytes": 19964,
315
- "sha256": "a74d89124ddbecd1af7a6054fcaa0d905c639dec56a9fd455140817220fd91a1"
316
  },
317
  "mirrors": {
318
  "hf_space": {
319
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space/data/scope_claims_audit.json",
320
  "exists": true,
321
  "bytes": 19964,
322
- "sha256": "a74d89124ddbecd1af7a6054fcaa0d905c639dec56a9fd455140817220fd91a1"
323
  },
324
  "hf_artifacts": {
325
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/docs/data/scope_claims_audit.json",
326
  "exists": true,
327
  "bytes": 19964,
328
- "sha256": "a74d89124ddbecd1af7a6054fcaa0d905c639dec56a9fd455140817220fd91a1"
329
  },
330
  "hf_model": {
331
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/metrics/scope_claims_audit.json",
332
  "exists": true,
333
  "bytes": 19964,
334
- "sha256": "a74d89124ddbecd1af7a6054fcaa0d905c639dec56a9fd455140817220fd91a1"
335
  }
336
  },
337
  "failures": []
@@ -404,27 +439,27 @@
404
  "local": {
405
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs/data/website_integrity.json",
406
  "exists": true,
407
- "bytes": 5936,
408
- "sha256": "0b9a1d8d3bbf953f86aed99fe22882dbee4ed2813f2cae91cbf15a2002752cc2"
409
  },
410
  "mirrors": {
411
  "hf_space": {
412
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space/data/website_integrity.json",
413
  "exists": true,
414
- "bytes": 5936,
415
- "sha256": "0b9a1d8d3bbf953f86aed99fe22882dbee4ed2813f2cae91cbf15a2002752cc2"
416
  },
417
  "hf_artifacts": {
418
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/docs/data/website_integrity.json",
419
  "exists": true,
420
- "bytes": 5936,
421
- "sha256": "0b9a1d8d3bbf953f86aed99fe22882dbee4ed2813f2cae91cbf15a2002752cc2"
422
  },
423
  "hf_model": {
424
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/metrics/website_integrity.json",
425
  "exists": true,
426
- "bytes": 5936,
427
- "sha256": "0b9a1d8d3bbf953f86aed99fe22882dbee4ed2813f2cae91cbf15a2002752cc2"
428
  }
429
  },
430
  "failures": []
@@ -805,21 +840,46 @@
805
  "local": {
806
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/scripts/build_artifact_index.py",
807
  "exists": true,
808
- "bytes": 11579,
809
- "sha256": "874a3813fb3a19d79be9ea4c0177f5922adf9e667760f927dd49163784eb6b48"
810
  },
811
  "mirrors": {
812
  "hf_artifacts": {
813
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/scripts/build_artifact_index.py",
814
  "exists": true,
815
- "bytes": 11579,
816
- "sha256": "874a3813fb3a19d79be9ea4c0177f5922adf9e667760f927dd49163784eb6b48"
817
  },
818
  "hf_model": {
819
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/scripts/build_artifact_index.py",
820
  "exists": true,
821
- "bytes": 11579,
822
- "sha256": "874a3813fb3a19d79be9ea4c0177f5922adf9e667760f927dd49163784eb6b48"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
823
  }
824
  },
825
  "failures": []
@@ -830,21 +890,21 @@
830
  "local": {
831
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/scripts/validate_mirror_parity.py",
832
  "exists": true,
833
- "bytes": 7617,
834
- "sha256": "0a74954e50fbf7bff661c9499244fc9be704764b701431fc2035ab4cc29d43d0"
835
  },
836
  "mirrors": {
837
  "hf_artifacts": {
838
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/scripts/validate_mirror_parity.py",
839
  "exists": true,
840
- "bytes": 7617,
841
- "sha256": "0a74954e50fbf7bff661c9499244fc9be704764b701431fc2035ab4cc29d43d0"
842
  },
843
  "hf_model": {
844
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/scripts/validate_mirror_parity.py",
845
  "exists": true,
846
- "bytes": 7617,
847
- "sha256": "0a74954e50fbf7bff661c9499244fc9be704764b701431fc2035ab4cc29d43d0"
848
  }
849
  },
850
  "failures": []
@@ -855,21 +915,21 @@
855
  "local": {
856
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/scripts/validate_publication_package.py",
857
  "exists": true,
858
- "bytes": 12444,
859
- "sha256": "f8fc86b66a1fde0755004897dd307eb5c80f84bdaf917158b43c423ff6e7e9e7"
860
  },
861
  "mirrors": {
862
  "hf_artifacts": {
863
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/scripts/validate_publication_package.py",
864
  "exists": true,
865
- "bytes": 12444,
866
- "sha256": "f8fc86b66a1fde0755004897dd307eb5c80f84bdaf917158b43c423ff6e7e9e7"
867
  },
868
  "hf_model": {
869
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/scripts/validate_publication_package.py",
870
  "exists": true,
871
- "bytes": 12444,
872
- "sha256": "f8fc86b66a1fde0755004897dd307eb5c80f84bdaf917158b43c423ff6e7e9e7"
873
  }
874
  },
875
  "failures": []
@@ -930,21 +990,52 @@
930
  "local": {
931
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs/index.html",
932
  "exists": true,
933
- "bytes": 89772,
934
- "sha256": "3544638ab8dc809e126f347d942b4f7303674edd79858cd039a5b18b95500fcb"
935
  },
936
  "mirrors": {
937
  "hf_space": {
938
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space/index.html",
939
  "exists": true,
940
- "bytes": 89772,
941
- "sha256": "3544638ab8dc809e126f347d942b4f7303674edd79858cd039a5b18b95500fcb"
942
  },
943
  "hf_artifacts_docs": {
944
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/docs/index.html",
945
  "exists": true,
946
- "bytes": 89772,
947
- "sha256": "3544638ab8dc809e126f347d942b4f7303674edd79858cd039a5b18b95500fcb"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
948
  }
949
  },
950
  "failures": []
 
1
  {
2
  "status": "pass",
3
+ "generated_at_utc": "2026-06-01T06:25:42+00:00",
4
  "hf_root": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish",
5
  "summary": {
6
+ "group_count": 32,
7
  "failure_count": 0,
8
  "failures_by_surface": {}
9
  },
 
23
  {
24
  "name": "repo_hf_website_html_parity",
25
  "status": "pass"
26
+ },
27
+ {
28
+ "name": "repo_hf_quality_doc_parity",
29
+ "status": "pass"
30
  }
31
  ],
32
  "groups": [
 
36
  "local": {
37
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs/data/artifact_index.json",
38
  "exists": true,
39
+ "bytes": 13782,
40
+ "sha256": "499a9373836244474fe0db51f38d9ecb2211ae36a22e76a0ae4c323b0d45e05a"
41
  },
42
  "mirrors": {
43
  "hf_space": {
44
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space/data/artifact_index.json",
45
  "exists": true,
46
+ "bytes": 13782,
47
+ "sha256": "499a9373836244474fe0db51f38d9ecb2211ae36a22e76a0ae4c323b0d45e05a"
48
  },
49
  "hf_artifacts": {
50
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/docs/data/artifact_index.json",
51
  "exists": true,
52
+ "bytes": 13782,
53
+ "sha256": "499a9373836244474fe0db51f38d9ecb2211ae36a22e76a0ae4c323b0d45e05a"
54
  },
55
  "hf_model": {
56
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/metrics/artifact_index.json",
57
  "exists": true,
58
+ "bytes": 13782,
59
+ "sha256": "499a9373836244474fe0db51f38d9ecb2211ae36a22e76a0ae4c323b0d45e05a"
60
  }
61
  },
62
  "failures": []
 
67
  "local": {
68
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs/data/evidence_contract.json",
69
  "exists": true,
70
+ "bytes": 7587,
71
+ "sha256": "bb9172140a526b78523cbc5507ed6340bd7b439a51fd68ad9f4728fee721a766"
72
  },
73
  "mirrors": {
74
  "hf_space": {
75
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space/data/evidence_contract.json",
76
  "exists": true,
77
+ "bytes": 7587,
78
+ "sha256": "bb9172140a526b78523cbc5507ed6340bd7b439a51fd68ad9f4728fee721a766"
79
  },
80
  "hf_artifacts": {
81
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/docs/data/evidence_contract.json",
82
  "exists": true,
83
+ "bytes": 7587,
84
+ "sha256": "bb9172140a526b78523cbc5507ed6340bd7b439a51fd68ad9f4728fee721a766"
85
  },
86
  "hf_model": {
87
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/metrics/evidence_contract.json",
88
  "exists": true,
89
+ "bytes": 7587,
90
+ "sha256": "bb9172140a526b78523cbc5507ed6340bd7b439a51fd68ad9f4728fee721a766"
91
  }
92
  },
93
  "failures": []
 
160
  "local": {
161
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs/data/publication_audit.json",
162
  "exists": true,
163
+ "bytes": 5408,
164
+ "sha256": "9d59186e18321215c55c8cddbf518b5d19fb19428f119a541c3b50ae54c4af4f"
165
  },
166
  "mirrors": {
167
  "hf_space": {
168
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space/data/publication_audit.json",
169
  "exists": true,
170
+ "bytes": 5408,
171
+ "sha256": "9d59186e18321215c55c8cddbf518b5d19fb19428f119a541c3b50ae54c4af4f"
172
  },
173
  "hf_artifacts": {
174
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/docs/data/publication_audit.json",
175
  "exists": true,
176
+ "bytes": 5408,
177
+ "sha256": "9d59186e18321215c55c8cddbf518b5d19fb19428f119a541c3b50ae54c4af4f"
178
  },
179
  "hf_model": {
180
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/metrics/publication_audit.json",
181
  "exists": true,
182
+ "bytes": 5408,
183
+ "sha256": "9d59186e18321215c55c8cddbf518b5d19fb19428f119a541c3b50ae54c4af4f"
184
+ }
185
+ },
186
+ "failures": []
187
+ },
188
+ {
189
+ "name": "data/quality_gates.json",
190
+ "status": "pass",
191
+ "local": {
192
+ "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs/data/quality_gates.json",
193
+ "exists": true,
194
+ "bytes": 4222,
195
+ "sha256": "274dd753853ea843b5413bbce68b371e4a664853924c9745a4163c1b68a54cf9"
196
+ },
197
+ "mirrors": {
198
+ "hf_space": {
199
+ "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space/data/quality_gates.json",
200
+ "exists": true,
201
+ "bytes": 4222,
202
+ "sha256": "274dd753853ea843b5413bbce68b371e4a664853924c9745a4163c1b68a54cf9"
203
+ },
204
+ "hf_artifacts": {
205
+ "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/docs/data/quality_gates.json",
206
+ "exists": true,
207
+ "bytes": 4222,
208
+ "sha256": "274dd753853ea843b5413bbce68b371e4a664853924c9745a4163c1b68a54cf9"
209
+ },
210
+ "hf_model": {
211
+ "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/metrics/quality_gates.json",
212
+ "exists": true,
213
+ "bytes": 4222,
214
+ "sha256": "274dd753853ea843b5413bbce68b371e4a664853924c9745a4163c1b68a54cf9"
215
  }
216
  },
217
  "failures": []
 
347
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs/data/scope_claims_audit.json",
348
  "exists": true,
349
  "bytes": 19964,
350
+ "sha256": "83ed49035d1ca96dc28351f9d76f9249319d59d9647f0c58cffe0243d5687f9c"
351
  },
352
  "mirrors": {
353
  "hf_space": {
354
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space/data/scope_claims_audit.json",
355
  "exists": true,
356
  "bytes": 19964,
357
+ "sha256": "83ed49035d1ca96dc28351f9d76f9249319d59d9647f0c58cffe0243d5687f9c"
358
  },
359
  "hf_artifacts": {
360
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/docs/data/scope_claims_audit.json",
361
  "exists": true,
362
  "bytes": 19964,
363
+ "sha256": "83ed49035d1ca96dc28351f9d76f9249319d59d9647f0c58cffe0243d5687f9c"
364
  },
365
  "hf_model": {
366
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/metrics/scope_claims_audit.json",
367
  "exists": true,
368
  "bytes": 19964,
369
+ "sha256": "83ed49035d1ca96dc28351f9d76f9249319d59d9647f0c58cffe0243d5687f9c"
370
  }
371
  },
372
  "failures": []
 
439
  "local": {
440
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs/data/website_integrity.json",
441
  "exists": true,
442
+ "bytes": 6042,
443
+ "sha256": "b4b98a25ca5095c92f84cd3d945ce4f89228fb4d4f7812922f86007a4095ba20"
444
  },
445
  "mirrors": {
446
  "hf_space": {
447
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space/data/website_integrity.json",
448
  "exists": true,
449
+ "bytes": 6042,
450
+ "sha256": "b4b98a25ca5095c92f84cd3d945ce4f89228fb4d4f7812922f86007a4095ba20"
451
  },
452
  "hf_artifacts": {
453
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/docs/data/website_integrity.json",
454
  "exists": true,
455
+ "bytes": 6042,
456
+ "sha256": "b4b98a25ca5095c92f84cd3d945ce4f89228fb4d4f7812922f86007a4095ba20"
457
  },
458
  "hf_model": {
459
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/metrics/website_integrity.json",
460
  "exists": true,
461
+ "bytes": 6042,
462
+ "sha256": "b4b98a25ca5095c92f84cd3d945ce4f89228fb4d4f7812922f86007a4095ba20"
463
  }
464
  },
465
  "failures": []
 
840
  "local": {
841
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/scripts/build_artifact_index.py",
842
  "exists": true,
843
+ "bytes": 12194,
844
+ "sha256": "04083feaa7cd486e94fa4f313b54b5b04b588edcb1376234a7b279060e0b4058"
845
  },
846
  "mirrors": {
847
  "hf_artifacts": {
848
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/scripts/build_artifact_index.py",
849
  "exists": true,
850
+ "bytes": 12194,
851
+ "sha256": "04083feaa7cd486e94fa4f313b54b5b04b588edcb1376234a7b279060e0b4058"
852
  },
853
  "hf_model": {
854
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/scripts/build_artifact_index.py",
855
  "exists": true,
856
+ "bytes": 12194,
857
+ "sha256": "04083feaa7cd486e94fa4f313b54b5b04b588edcb1376234a7b279060e0b4058"
858
+ }
859
+ },
860
+ "failures": []
861
+ },
862
+ {
863
+ "name": "scripts/build_quality_gates.py",
864
+ "status": "pass",
865
+ "local": {
866
+ "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/scripts/build_quality_gates.py",
867
+ "exists": true,
868
+ "bytes": 7757,
869
+ "sha256": "e38c9b27836d694a4cd6ff03de1b10d20347bc7f7bb176bdc7e7d5ba3cbe7fba"
870
+ },
871
+ "mirrors": {
872
+ "hf_artifacts": {
873
+ "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/scripts/build_quality_gates.py",
874
+ "exists": true,
875
+ "bytes": 7757,
876
+ "sha256": "e38c9b27836d694a4cd6ff03de1b10d20347bc7f7bb176bdc7e7d5ba3cbe7fba"
877
+ },
878
+ "hf_model": {
879
+ "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/scripts/build_quality_gates.py",
880
+ "exists": true,
881
+ "bytes": 7757,
882
+ "sha256": "e38c9b27836d694a4cd6ff03de1b10d20347bc7f7bb176bdc7e7d5ba3cbe7fba"
883
  }
884
  },
885
  "failures": []
 
890
  "local": {
891
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/scripts/validate_mirror_parity.py",
892
  "exists": true,
893
+ "bytes": 8353,
894
+ "sha256": "9673da079fdeb780b6d0767591ffb77d074f4958e511a4384fb9bd9a735af2ca"
895
  },
896
  "mirrors": {
897
  "hf_artifacts": {
898
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/scripts/validate_mirror_parity.py",
899
  "exists": true,
900
+ "bytes": 8353,
901
+ "sha256": "9673da079fdeb780b6d0767591ffb77d074f4958e511a4384fb9bd9a735af2ca"
902
  },
903
  "hf_model": {
904
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/scripts/validate_mirror_parity.py",
905
  "exists": true,
906
+ "bytes": 8353,
907
+ "sha256": "9673da079fdeb780b6d0767591ffb77d074f4958e511a4384fb9bd9a735af2ca"
908
  }
909
  },
910
  "failures": []
 
915
  "local": {
916
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/scripts/validate_publication_package.py",
917
  "exists": true,
918
+ "bytes": 12554,
919
+ "sha256": "0546124d5319fc5cc96881090049e5fcda301e6726f5e42b31141e599ab81711"
920
  },
921
  "mirrors": {
922
  "hf_artifacts": {
923
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/scripts/validate_publication_package.py",
924
  "exists": true,
925
+ "bytes": 12554,
926
+ "sha256": "0546124d5319fc5cc96881090049e5fcda301e6726f5e42b31141e599ab81711"
927
  },
928
  "hf_model": {
929
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/scripts/validate_publication_package.py",
930
  "exists": true,
931
+ "bytes": 12554,
932
+ "sha256": "0546124d5319fc5cc96881090049e5fcda301e6726f5e42b31141e599ab81711"
933
  }
934
  },
935
  "failures": []
 
990
  "local": {
991
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs/index.html",
992
  "exists": true,
993
+ "bytes": 90729,
994
+ "sha256": "d1f35486ca171b6b6fcd3b4fd43263a54e4ff8e43379a20b57f6b62896e51fe8"
995
  },
996
  "mirrors": {
997
  "hf_space": {
998
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space/index.html",
999
  "exists": true,
1000
+ "bytes": 90729,
1001
+ "sha256": "d1f35486ca171b6b6fcd3b4fd43263a54e4ff8e43379a20b57f6b62896e51fe8"
1002
  },
1003
  "hf_artifacts_docs": {
1004
  "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/docs/index.html",
1005
  "exists": true,
1006
+ "bytes": 90729,
1007
+ "sha256": "d1f35486ca171b6b6fcd3b4fd43263a54e4ff8e43379a20b57f6b62896e51fe8"
1008
+ }
1009
+ },
1010
+ "failures": []
1011
+ },
1012
+ {
1013
+ "name": "docs/QUALITY_GATES.md",
1014
+ "status": "pass",
1015
+ "local": {
1016
+ "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/QUALITY_GATES.md",
1017
+ "exists": true,
1018
+ "bytes": 2865,
1019
+ "sha256": "f3482dbc310d2ade60aa2b480211a9ee0cad1c814779a8b1d63d96432222897a"
1020
+ },
1021
+ "mirrors": {
1022
+ "hf_space": {
1023
+ "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space/QUALITY_GATES.md",
1024
+ "exists": true,
1025
+ "bytes": 2865,
1026
+ "sha256": "f3482dbc310d2ade60aa2b480211a9ee0cad1c814779a8b1d63d96432222897a"
1027
+ },
1028
+ "hf_artifacts": {
1029
+ "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts/QUALITY_GATES.md",
1030
+ "exists": true,
1031
+ "bytes": 2865,
1032
+ "sha256": "f3482dbc310d2ade60aa2b480211a9ee0cad1c814779a8b1d63d96432222897a"
1033
+ },
1034
+ "hf_model": {
1035
+ "path": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model/QUALITY_GATES.md",
1036
+ "exists": true,
1037
+ "bytes": 2865,
1038
+ "sha256": "f3482dbc310d2ade60aa2b480211a9ee0cad1c814779a8b1d63d96432222897a"
1039
  }
1040
  },
1041
  "failures": []
metrics/publication_audit.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "status": "pass",
3
- "generated_at_utc": "2026-06-01T05:58:39+00:00",
4
  "checks": [
5
  {
6
  "name": "required_publication_assets_present",
@@ -44,6 +44,7 @@
44
  "LICENSE": true,
45
  "codemeta.json": true,
46
  "ARTIFACT_GUIDE.md": true,
 
47
  "REPRODUCIBILITY.md": true,
48
  "EVIDENCE_CONTRACT.md": true,
49
  "DATA_NOTICE.md": true,
@@ -54,6 +55,7 @@
54
  "docs/sitemap.xml": true,
55
  "docs/data/evidence_contract.json": true,
56
  "docs/data/artifact_index.json": true,
 
57
  "docs/data/project_manifest.json": true,
58
  "docs/data/reviewer_packet.json": true,
59
  "docs/data/reproducibility_matrix.json": true,
@@ -80,6 +82,7 @@
80
  "scripts/episode_task_suite.py": true,
81
  "scripts/neural_task_models.py": true,
82
  "scripts/build_artifact_index.py": true,
 
83
  "scripts/validate_mirror_parity.py": true,
84
  "scripts/validate_scope_claims.py": true,
85
  "scripts/validate_website_integrity.py": true,
@@ -131,8 +134,8 @@
131
  "github_repo": {
132
  "root": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy",
133
  "exists": true,
134
- "file_count": 286,
135
- "text_file_count": 231,
136
  "largest_file": {
137
  "path": "results/episode_task_suite/modality_reconstruction/predictions.npz",
138
  "bytes": 52601010
@@ -142,8 +145,8 @@
142
  "hf_space_bundle": {
143
  "root": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space",
144
  "exists": true,
145
- "file_count": 51,
146
- "text_file_count": 38,
147
  "largest_file": {
148
  "path": "assets/task_suite_infographic.png",
149
  "bytes": 2322389
@@ -153,8 +156,8 @@
153
  "hf_artifact_bundle": {
154
  "root": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts",
155
  "exists": true,
156
- "file_count": 266,
157
- "text_file_count": 224,
158
  "largest_file": {
159
  "path": "results/episode_task_suite/neural_mlp/temporal_order/model.pt",
160
  "bytes": 13406129
@@ -164,8 +167,8 @@
164
  "hf_model_bundle": {
165
  "root": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model",
166
  "exists": true,
167
- "file_count": 198,
168
- "text_file_count": 155,
169
  "largest_file": {
170
  "path": "artifacts/episode_task_suite/cross_modal_retrieval/model.npz",
171
  "bytes": 41310574
 
1
  {
2
  "status": "pass",
3
+ "generated_at_utc": "2026-06-01T06:25:11+00:00",
4
  "checks": [
5
  {
6
  "name": "required_publication_assets_present",
 
44
  "LICENSE": true,
45
  "codemeta.json": true,
46
  "ARTIFACT_GUIDE.md": true,
47
+ "QUALITY_GATES.md": true,
48
  "REPRODUCIBILITY.md": true,
49
  "EVIDENCE_CONTRACT.md": true,
50
  "DATA_NOTICE.md": true,
 
55
  "docs/sitemap.xml": true,
56
  "docs/data/evidence_contract.json": true,
57
  "docs/data/artifact_index.json": true,
58
+ "docs/data/quality_gates.json": true,
59
  "docs/data/project_manifest.json": true,
60
  "docs/data/reviewer_packet.json": true,
61
  "docs/data/reproducibility_matrix.json": true,
 
82
  "scripts/episode_task_suite.py": true,
83
  "scripts/neural_task_models.py": true,
84
  "scripts/build_artifact_index.py": true,
85
+ "scripts/build_quality_gates.py": true,
86
  "scripts/validate_mirror_parity.py": true,
87
  "scripts/validate_scope_claims.py": true,
88
  "scripts/validate_website_integrity.py": true,
 
134
  "github_repo": {
135
  "root": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy",
136
  "exists": true,
137
+ "file_count": 289,
138
+ "text_file_count": 234,
139
  "largest_file": {
140
  "path": "results/episode_task_suite/modality_reconstruction/predictions.npz",
141
  "bytes": 52601010
 
145
  "hf_space_bundle": {
146
  "root": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/space",
147
  "exists": true,
148
+ "file_count": 53,
149
+ "text_file_count": 40,
150
  "largest_file": {
151
  "path": "assets/task_suite_infographic.png",
152
  "bytes": 2322389
 
156
  "hf_artifact_bundle": {
157
  "root": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/artifacts",
158
  "exists": true,
159
+ "file_count": 269,
160
+ "text_file_count": 227,
161
  "largest_file": {
162
  "path": "results/episode_task_suite/neural_mlp/temporal_order/model.pt",
163
  "bytes": 13406129
 
167
  "hf_model_bundle": {
168
  "root": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/hf_publish/model",
169
  "exists": true,
170
+ "file_count": 201,
171
+ "text_file_count": 158,
172
  "largest_file": {
173
  "path": "artifacts/episode_task_suite/cross_modal_retrieval/model.npz",
174
  "bytes": 41310574
metrics/quality_gates.json ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "title": "Ropedia Xperience-10M Publication Quality Gates",
3
+ "status": "pass",
4
+ "generated_at_utc": "2026-06-01T06:24:04+00:00",
5
+ "rule": "Do not present a release as current unless every automated gate passes, then verify live GitHub/HF mirrors after publishing.",
6
+ "automated_gates": [
7
+ {
8
+ "id": "scope_claims",
9
+ "title": "Scope claims guard",
10
+ "command": "python scripts/validate_scope_claims.py",
11
+ "report": "docs/data/scope_claims_audit.json",
12
+ "blocks_if": "Historical 32ep smoke/provenance strings are presented as real 32-episode metrics.",
13
+ "proves": "The public narrative does not overclaim the Qwen3-Omni smoke artifacts.",
14
+ "current_report": {
15
+ "exists": true,
16
+ "status": "pass"
17
+ }
18
+ },
19
+ {
20
+ "id": "website_integrity",
21
+ "title": "Website integrity",
22
+ "command": "python scripts/validate_website_integrity.py",
23
+ "report": "docs/data/website_integrity.json",
24
+ "blocks_if": "Local links, anchors, JSON bundles, or referenced image assets are missing or invalid.",
25
+ "proves": "The GitHub Pages / HF static surface is internally coherent before upload.",
26
+ "current_report": {
27
+ "exists": true,
28
+ "status": "pass"
29
+ }
30
+ },
31
+ {
32
+ "id": "quality_gate_manifest",
33
+ "title": "Quality-gate manifest",
34
+ "command": "python scripts/build_quality_gates.py",
35
+ "report": "docs/data/quality_gates.json",
36
+ "blocks_if": "A public reviewer cannot see the current packaging gates in one place.",
37
+ "proves": "The publication checklist is explicit, versioned, and mirrored with the repo.",
38
+ "current_report": {
39
+ "exists": true,
40
+ "status": "pass"
41
+ }
42
+ },
43
+ {
44
+ "id": "artifact_index",
45
+ "title": "Artifact index",
46
+ "command": "python scripts/build_artifact_index.py",
47
+ "report": "docs/data/artifact_index.json",
48
+ "blocks_if": "Reviewer-critical evidence files are missing from the indexed proof layer.",
49
+ "proves": "Core proof artifacts exist and stable files have SHA-256 hashes.",
50
+ "current_report": {
51
+ "exists": true,
52
+ "status": "pass"
53
+ }
54
+ },
55
+ {
56
+ "id": "publication_hygiene",
57
+ "title": "Publication hygiene",
58
+ "command": "python scripts/validate_publication_package.py",
59
+ "report": "docs/data/publication_audit.json",
60
+ "blocks_if": "Raw data, caches, heavy archives, token strings, missing required assets, or stale public-card figure references enter public bundles.",
61
+ "proves": "The repo and prepared HF bundles are clean enough to publish.",
62
+ "current_report": {
63
+ "exists": true,
64
+ "status": "pass"
65
+ }
66
+ },
67
+ {
68
+ "id": "mirror_parity",
69
+ "title": "Prepared mirror parity",
70
+ "command": "python scripts/validate_mirror_parity.py",
71
+ "report": "docs/data/mirror_parity.json",
72
+ "blocks_if": "Prepared HF Space, artifact dataset, or model bundle diverges from the repo for critical files.",
73
+ "proves": "The files staged for GitHub and Hugging Face are synchronized before upload.",
74
+ "current_report": {
75
+ "exists": true,
76
+ "status": "pass"
77
+ }
78
+ }
79
+ ],
80
+ "post_publish_checks": [
81
+ {
82
+ "id": "github_pages_deploy",
83
+ "title": "GitHub Pages deployment",
84
+ "evidence": "gh run list --repo ChaoYue0307/ropedia-xperience-10m-task-suite --limit 5",
85
+ "required_result": "latest pages-build-deployment run succeeds"
86
+ },
87
+ {
88
+ "id": "live_figure_hash_parity",
89
+ "title": "Live figure hash parity",
90
+ "evidence": "download live GitHub/HF task_suite_infographic.png and compare SHA-256 to docs/assets/task_suite_infographic.png",
91
+ "required_result": "all live hashes match the repo asset"
92
+ },
93
+ {
94
+ "id": "rendered_browser_smoke",
95
+ "title": "Rendered browser smoke",
96
+ "evidence": "Browser/Playwright page identity, nonblank render, console health, and one local interaction",
97
+ "required_result": "no relevant console warnings/errors and target links work"
98
+ }
99
+ ],
100
+ "scope_boundary": "These gates validate public packaging, claim boundaries, mirror parity, and website integrity. They do not prove cross-episode model quality."
101
+ }
metrics/scope_claims_audit.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "status": "pass",
3
- "generated_at_utc": "2026-06-01T05:46:47+00:00",
4
  "summary": {
5
  "qwen3_omni_32_episode_claim": false,
6
  "dataset_manifest_num_episodes": 1,
 
1
  {
2
  "status": "pass",
3
+ "generated_at_utc": "2026-06-01T06:18:18+00:00",
4
  "summary": {
5
  "qwen3_omni_32_episode_claim": false,
6
  "dataset_manifest_num_episodes": 1,
metrics/website_integrity.json CHANGED
@@ -1,13 +1,13 @@
1
  {
2
  "status": "pass",
3
- "generated_at_utc": "2026-06-01T05:57:48+00:00",
4
  "docs_root": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs",
5
  "site_base": "/ropedia-xperience-10m-task-suite/",
6
  "summary": {
7
  "html_pages": 2,
8
- "local_references": 57,
9
- "external_reference_count": 56,
10
- "json_files": 14,
11
  "image_assets_referenced": 18,
12
  "failure_count": 0
13
  },
@@ -44,7 +44,7 @@
44
  {
45
  "path": "index.html",
46
  "id_count": 31,
47
- "reference_count": 56,
48
  "image_count": 20
49
  }
50
  ],
@@ -56,7 +56,7 @@
56
  },
57
  {
58
  "path": "data/evidence_contract.json",
59
- "bytes": 7205,
60
  "top_level_type": "dict"
61
  },
62
  {
@@ -79,6 +79,11 @@
79
  "bytes": 5292,
80
  "top_level_type": "dict"
81
  },
 
 
 
 
 
82
  {
83
  "path": "data/reproducibility_matrix.json",
84
  "bytes": 4033,
 
1
  {
2
  "status": "pass",
3
+ "generated_at_utc": "2026-06-01T06:18:19+00:00",
4
  "docs_root": "/Users/chaoyue/Documents/Codex/2026-05-29/i-am-learning-this-dataset-https/working_repo_copy/docs",
5
  "site_base": "/ropedia-xperience-10m-task-suite/",
6
  "summary": {
7
  "html_pages": 2,
8
+ "local_references": 59,
9
+ "external_reference_count": 58,
10
+ "json_files": 15,
11
  "image_assets_referenced": 18,
12
  "failure_count": 0
13
  },
 
44
  {
45
  "path": "index.html",
46
  "id_count": 31,
47
+ "reference_count": 58,
48
  "image_count": 20
49
  }
50
  ],
 
56
  },
57
  {
58
  "path": "data/evidence_contract.json",
59
+ "bytes": 7587,
60
  "top_level_type": "dict"
61
  },
62
  {
 
79
  "bytes": 5292,
80
  "top_level_type": "dict"
81
  },
82
+ {
83
+ "path": "data/quality_gates.json",
84
+ "bytes": 4564,
85
+ "top_level_type": "dict"
86
+ },
87
  {
88
  "path": "data/reproducibility_matrix.json",
89
  "bytes": 4033,
scripts/build_artifact_index.py CHANGED
@@ -41,6 +41,22 @@ ARTIFACTS = [
41
  "surface": "repo_hf",
42
  "proves": "Gives the human-readable map from proof boundary to data, tasks, platform mirrors, and scale-up status.",
43
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  {
45
  "id": "reproducibility_contract",
46
  "title": "Reproducibility contract",
 
41
  "surface": "repo_hf",
42
  "proves": "Gives the human-readable map from proof boundary to data, tasks, platform mirrors, and scale-up status.",
43
  },
44
+ {
45
+ "id": "quality_gates",
46
+ "title": "Publication quality gates",
47
+ "path": "QUALITY_GATES.md",
48
+ "kind": "quality_gate",
49
+ "surface": "repo_hf",
50
+ "proves": "Lists the automated and post-publish gates required before presenting a release as current.",
51
+ },
52
+ {
53
+ "id": "quality_gate_manifest",
54
+ "title": "Quality-gate manifest",
55
+ "path": "docs/data/quality_gates.json",
56
+ "kind": "quality_gate",
57
+ "surface": "website_hf",
58
+ "proves": "Machine-readable release-gate summary for validators, mirrors, and reviewer surfaces.",
59
+ },
60
  {
61
  "id": "reproducibility_contract",
62
  "title": "Reproducibility contract",
scripts/build_quality_gates.py ADDED
@@ -0,0 +1,189 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """Build the public quality-gate summary.
3
+
4
+ This is a presentation artifact over the existing validators. It does not
5
+ replace the validators; it makes the release gate readable in one file and one
6
+ machine-readable JSON bundle.
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import json
12
+ from datetime import datetime, timezone
13
+ from pathlib import Path
14
+
15
+
16
+ ROOT = Path(__file__).resolve().parents[1]
17
+ OUTPUT_JSON = ROOT / "docs/data/quality_gates.json"
18
+ OUTPUT_MD = ROOT / "QUALITY_GATES.md"
19
+
20
+
21
+ GATES = [
22
+ {
23
+ "id": "scope_claims",
24
+ "title": "Scope claims guard",
25
+ "command": "python scripts/validate_scope_claims.py",
26
+ "report": "docs/data/scope_claims_audit.json",
27
+ "blocks_if": "Historical 32ep smoke/provenance strings are presented as real 32-episode metrics.",
28
+ "proves": "The public narrative does not overclaim the Qwen3-Omni smoke artifacts.",
29
+ },
30
+ {
31
+ "id": "website_integrity",
32
+ "title": "Website integrity",
33
+ "command": "python scripts/validate_website_integrity.py",
34
+ "report": "docs/data/website_integrity.json",
35
+ "blocks_if": "Local links, anchors, JSON bundles, or referenced image assets are missing or invalid.",
36
+ "proves": "The GitHub Pages / HF static surface is internally coherent before upload.",
37
+ },
38
+ {
39
+ "id": "quality_gate_manifest",
40
+ "title": "Quality-gate manifest",
41
+ "command": "python scripts/build_quality_gates.py",
42
+ "report": "docs/data/quality_gates.json",
43
+ "blocks_if": "A public reviewer cannot see the current packaging gates in one place.",
44
+ "proves": "The publication checklist is explicit, versioned, and mirrored with the repo.",
45
+ },
46
+ {
47
+ "id": "artifact_index",
48
+ "title": "Artifact index",
49
+ "command": "python scripts/build_artifact_index.py",
50
+ "report": "docs/data/artifact_index.json",
51
+ "blocks_if": "Reviewer-critical evidence files are missing from the indexed proof layer.",
52
+ "proves": "Core proof artifacts exist and stable files have SHA-256 hashes.",
53
+ },
54
+ {
55
+ "id": "publication_hygiene",
56
+ "title": "Publication hygiene",
57
+ "command": "python scripts/validate_publication_package.py",
58
+ "report": "docs/data/publication_audit.json",
59
+ "blocks_if": "Raw data, caches, heavy archives, token strings, missing required assets, or stale public-card figure references enter public bundles.",
60
+ "proves": "The repo and prepared HF bundles are clean enough to publish.",
61
+ },
62
+ {
63
+ "id": "mirror_parity",
64
+ "title": "Prepared mirror parity",
65
+ "command": "python scripts/validate_mirror_parity.py",
66
+ "report": "docs/data/mirror_parity.json",
67
+ "blocks_if": "Prepared HF Space, artifact dataset, or model bundle diverges from the repo for critical files.",
68
+ "proves": "The files staged for GitHub and Hugging Face are synchronized before upload.",
69
+ },
70
+ ]
71
+
72
+ POST_PUBLISH_CHECKS = [
73
+ {
74
+ "id": "github_pages_deploy",
75
+ "title": "GitHub Pages deployment",
76
+ "evidence": "gh run list --repo ChaoYue0307/ropedia-xperience-10m-task-suite --limit 5",
77
+ "required_result": "latest pages-build-deployment run succeeds",
78
+ },
79
+ {
80
+ "id": "live_figure_hash_parity",
81
+ "title": "Live figure hash parity",
82
+ "evidence": "download live GitHub/HF task_suite_infographic.png and compare SHA-256 to docs/assets/task_suite_infographic.png",
83
+ "required_result": "all live hashes match the repo asset",
84
+ },
85
+ {
86
+ "id": "rendered_browser_smoke",
87
+ "title": "Rendered browser smoke",
88
+ "evidence": "Browser/Playwright page identity, nonblank render, console health, and one local interaction",
89
+ "required_result": "no relevant console warnings/errors and target links work",
90
+ },
91
+ ]
92
+
93
+
94
+ def read_status(path: Path) -> dict:
95
+ if not path.exists():
96
+ return {"exists": False, "status": "missing"}
97
+ try:
98
+ payload = json.loads(path.read_text(encoding="utf-8"))
99
+ except json.JSONDecodeError as exc:
100
+ return {"exists": True, "status": "invalid_json", "error": str(exc)}
101
+ return {
102
+ "exists": True,
103
+ "status": str(payload.get("status", "unknown")),
104
+ }
105
+
106
+
107
+ def build_payload() -> dict:
108
+ gate_records = []
109
+ generated_at = datetime.now(timezone.utc).isoformat(timespec="seconds")
110
+ for gate in GATES:
111
+ if gate["id"] == "quality_gate_manifest":
112
+ status = {"exists": True, "status": "pass"}
113
+ else:
114
+ status = read_status(ROOT / gate["report"])
115
+ gate_records.append({**gate, "current_report": status})
116
+ overall_status = "pass" if all(item["current_report"]["status"] == "pass" for item in gate_records) else "fail"
117
+ return {
118
+ "title": "Ropedia Xperience-10M Publication Quality Gates",
119
+ "status": overall_status,
120
+ "generated_at_utc": generated_at,
121
+ "rule": "Do not present a release as current unless every automated gate passes, then verify live GitHub/HF mirrors after publishing.",
122
+ "automated_gates": gate_records,
123
+ "post_publish_checks": POST_PUBLISH_CHECKS,
124
+ "scope_boundary": "These gates validate public packaging, claim boundaries, mirror parity, and website integrity. They do not prove cross-episode model quality.",
125
+ }
126
+
127
+
128
+ def markdown(payload: dict) -> str:
129
+ lines = [
130
+ "# Publication Quality Gates",
131
+ "",
132
+ "This file is the reviewer-facing release checklist for the Ropedia Xperience-10M Task Suite.",
133
+ "",
134
+ f"Current gate status: **{payload['status']}**",
135
+ "",
136
+ payload["rule"],
137
+ "",
138
+ "These gates validate public packaging, claim boundaries, mirror parity, and website integrity. They do not prove cross-episode model quality; the 32-episode Qwen3-Omni pilot remains gated on data access.",
139
+ "",
140
+ "## Automated Gates",
141
+ "",
142
+ "| Gate | Command | Report | Current report status | Blocks publication if |",
143
+ "| --- | --- | --- | --- | --- |",
144
+ ]
145
+ for gate in payload["automated_gates"]:
146
+ report_status = gate["current_report"]["status"]
147
+ lines.append(
148
+ f"| {gate['title']} | `{gate['command']}` | `{gate['report']}` | `{report_status}` | {gate['blocks_if']} |"
149
+ )
150
+ lines.extend([
151
+ "",
152
+ "## Post-Publish Checks",
153
+ "",
154
+ "| Check | Evidence | Required result |",
155
+ "| --- | --- | --- |",
156
+ ])
157
+ for check in payload["post_publish_checks"]:
158
+ lines.append(f"| {check['title']} | `{check['evidence']}` | {check['required_result']} |")
159
+ lines.extend([
160
+ "",
161
+ "## Rerun Order",
162
+ "",
163
+ "```bash",
164
+ "python scripts/validate_scope_claims.py",
165
+ "python scripts/validate_website_integrity.py",
166
+ "python scripts/build_quality_gates.py",
167
+ "python scripts/build_artifact_index.py",
168
+ "python scripts/validate_publication_package.py",
169
+ "python scripts/validate_mirror_parity.py",
170
+ "```",
171
+ "",
172
+ "After Hugging Face bundle sync, rerun `validate_publication_package.py` and `validate_mirror_parity.py` once more before upload.",
173
+ "",
174
+ ])
175
+ return "\n".join(lines)
176
+
177
+
178
+ def main() -> int:
179
+ payload = build_payload()
180
+ OUTPUT_JSON.parent.mkdir(parents=True, exist_ok=True)
181
+ OUTPUT_JSON.write_text(json.dumps(payload, indent=2) + "\n", encoding="utf-8")
182
+ OUTPUT_MD.write_text(markdown(payload), encoding="utf-8")
183
+ print(f"{payload['status'].upper()}: wrote {OUTPUT_JSON}")
184
+ print(f"{payload['status'].upper()}: wrote {OUTPUT_MD}")
185
+ return 0 if payload["status"] == "pass" else 1
186
+
187
+
188
+ if __name__ == "__main__":
189
+ raise SystemExit(main())
scripts/validate_mirror_parity.py CHANGED
@@ -25,6 +25,7 @@ DATA_FILES = [
25
  "modality_atlas.json",
26
  "project_manifest.json",
27
  "publication_audit.json",
 
28
  "reproducibility_matrix.json",
29
  "research_direction_extensions.json",
30
  "research_directions.json",
@@ -50,6 +51,7 @@ ASSET_FILES = [
50
 
51
  SCRIPT_FILES = [
52
  "build_artifact_index.py",
 
53
  "validate_mirror_parity.py",
54
  "validate_publication_package.py",
55
  "validate_scope_claims.py",
@@ -60,6 +62,10 @@ WEBSITE_FILES = [
60
  "index.html",
61
  ]
62
 
 
 
 
 
63
 
64
  def sha256(path: Path) -> str:
65
  digest = hashlib.sha256()
@@ -166,6 +172,19 @@ def build_report(hf_root: Path) -> dict:
166
  )
167
  )
168
 
 
 
 
 
 
 
 
 
 
 
 
 
 
169
  failures = [
170
  {"group": group["name"], **failure}
171
  for group in groups
@@ -209,6 +228,12 @@ def build_report(hf_root: Path) -> dict:
209
  if not any(failure["group"].startswith("website/") for failure in failures)
210
  else "fail",
211
  },
 
 
 
 
 
 
212
  ],
213
  "groups": groups,
214
  "failures": failures,
 
25
  "modality_atlas.json",
26
  "project_manifest.json",
27
  "publication_audit.json",
28
+ "quality_gates.json",
29
  "reproducibility_matrix.json",
30
  "research_direction_extensions.json",
31
  "research_directions.json",
 
51
 
52
  SCRIPT_FILES = [
53
  "build_artifact_index.py",
54
+ "build_quality_gates.py",
55
  "validate_mirror_parity.py",
56
  "validate_publication_package.py",
57
  "validate_scope_claims.py",
 
62
  "index.html",
63
  ]
64
 
65
+ DOC_FILES = [
66
+ "QUALITY_GATES.md",
67
+ ]
68
+
69
 
70
  def sha256(path: Path) -> str:
71
  digest = hashlib.sha256()
 
172
  )
173
  )
174
 
175
+ for filename in DOC_FILES:
176
+ groups.append(
177
+ parity_group(
178
+ f"docs/{filename}",
179
+ ROOT / filename,
180
+ {
181
+ "hf_space": hf_root / "space" / filename,
182
+ "hf_artifacts": hf_root / "artifacts" / filename,
183
+ "hf_model": hf_root / "model" / filename,
184
+ },
185
+ )
186
+ )
187
+
188
  failures = [
189
  {"group": group["name"], **failure}
190
  for group in groups
 
228
  if not any(failure["group"].startswith("website/") for failure in failures)
229
  else "fail",
230
  },
231
+ {
232
+ "name": "repo_hf_quality_doc_parity",
233
+ "status": "pass"
234
+ if not any(failure["group"].startswith("docs/") for failure in failures)
235
+ else "fail",
236
+ },
237
  ],
238
  "groups": groups,
239
  "failures": failures,
scripts/validate_publication_package.py CHANGED
@@ -193,6 +193,7 @@ def required_assets(root: Path) -> dict[str, bool]:
193
  "LICENSE",
194
  "codemeta.json",
195
  "ARTIFACT_GUIDE.md",
 
196
  "REPRODUCIBILITY.md",
197
  "EVIDENCE_CONTRACT.md",
198
  "DATA_NOTICE.md",
@@ -203,6 +204,7 @@ def required_assets(root: Path) -> dict[str, bool]:
203
  "docs/sitemap.xml",
204
  "docs/data/evidence_contract.json",
205
  "docs/data/artifact_index.json",
 
206
  "docs/data/project_manifest.json",
207
  "docs/data/reviewer_packet.json",
208
  "docs/data/reproducibility_matrix.json",
@@ -229,6 +231,7 @@ def required_assets(root: Path) -> dict[str, bool]:
229
  "scripts/episode_task_suite.py",
230
  "scripts/neural_task_models.py",
231
  "scripts/build_artifact_index.py",
 
232
  "scripts/validate_mirror_parity.py",
233
  "scripts/validate_scope_claims.py",
234
  "scripts/validate_website_integrity.py",
 
193
  "LICENSE",
194
  "codemeta.json",
195
  "ARTIFACT_GUIDE.md",
196
+ "QUALITY_GATES.md",
197
  "REPRODUCIBILITY.md",
198
  "EVIDENCE_CONTRACT.md",
199
  "DATA_NOTICE.md",
 
204
  "docs/sitemap.xml",
205
  "docs/data/evidence_contract.json",
206
  "docs/data/artifact_index.json",
207
+ "docs/data/quality_gates.json",
208
  "docs/data/project_manifest.json",
209
  "docs/data/reviewer_packet.json",
210
  "docs/data/reproducibility_matrix.json",
 
231
  "scripts/episode_task_suite.py",
232
  "scripts/neural_task_models.py",
233
  "scripts/build_artifact_index.py",
234
+ "scripts/build_quality_gates.py",
235
  "scripts/validate_mirror_parity.py",
236
  "scripts/validate_scope_claims.py",
237
  "scripts/validate_website_integrity.py",