# Build, provenance and integrity

This archive is built from current allowlisted source, same-runtime fixed data
and public documents. No historical release, preview or experiment is copied.
`data/fixed-v0.2/` is generated by `scripts/export_fixed_data.py` from World
initialization; run it with `--check` to detect any field or file difference.
The data source files and each exported file carry SHA256 identities.

The `start/` page and its saved reports are generated by `scripts/build_first_use.py`
using this code and fixed data. Samples are synthetic deterministic scripts,
not live model results. Each presentation copy omits only `elapsed_seconds` and
adds `sample_metadata`; original state, actions, output and scoring are preserved.
The builder saves unprojected source reports in `source-runs/` beside the zip.
`build-summary.json` binds their hashes to the projected sample hashes by key.
Timing is not a benchmark measure here. Raw build reports are outside the archive
so the source archive can be byte-identically rebuilt.

`MANIFEST.json` lists every payload SHA256, length and generation/copy origin.
It excludes itself and `MANIFEST.sha256` to avoid circular hashes. Check the
manifest sidecar and each payload; a digest establishes consistency, not trust
in an unknown publisher. README entry pages are curated for portability and the
license-scope copy replaces only repository-status prose, retaining license terms.

```sh
python3 scripts/build_trial.py --output trial-rebuild
python3 scripts/check_trial.py --archive trial-rebuild/loyaltyops-bench-0.5.0.zip --output trial-check
python3 scripts/preview_trial.py --archive trial-rebuild/loyaltyops-bench-0.5.0.zip --output trial-preview
```

The checker uses a fresh no-pip virtual environment and clean extraction, without
workspace source or inherited PYTHONPATH. It blocks network attempts in runtime
subprocesses, checks both languages and tasks, expected refusal, data and links.
This is engineering verification, not hostile-code containment or real-model testing.
Build outputs must use a new directory. The optional `--engineering-only` mode
replaces unfinished public guides with explicit draft placeholders; it is never
a final user candidate and must not be used for acceptance.
