Reproduce everything

The pipeline is deterministic given the frozen contract: named seeds derive with SHA-256 from (root_seed, bundle_id, component), training uses deterministic kernels, and repeated runs reproduce model state digests bit-for-bit on the pinned device. ; pins: Python 3.11, torch 2.13.0, minigrid 3.1.0, gymnasium 1.3.0.

The confirmatory study

uv sync --frozen
uv run gr smoke          --config configs/pilot.yaml
uv run gr make-manifests --config configs/pilot.yaml
uv run gr preflight      --config configs/pilot.yaml
uv run gr freeze         --config configs/pilot.yaml
for b in B00 B01 B02 B03 B04 B05; do
  uv run gr run-bundle --contract configs/experiment_contract.yaml --bundle $b
done
uv run gr integrity      --contract configs/experiment_contract.yaml --phase preopen
uv run gr evaluate-final --contract configs/experiment_contract.yaml
uv run gr analyze        --contract configs/experiment_contract.yaml
uv run gr audit          --contract configs/experiment_contract.yaml
uv run grf study-extras
uv run gr integrity      --contract configs/experiment_contract.yaml --phase release
uv run gr media          --contract configs/experiment_contract.yaml
uv run gr publish-result --contract configs/experiment_contract.yaml
uv run gr export-typst   --contract configs/experiment_contract.yaml
typst compile report/main.typ build/recovery-policy-learning-report.pdf

Prerequisites: uv, Typst 0.15.1, and a system ffmpeg for the rollout animations. The report must be compiled before staging, which requires the PDF.

The Journey chapters (foundations labs)

uv run grf run all        # seven labs; figures, tables, mini-reports
uv run grf media          # rollout videos + scrubber trajectories
uv run grf network-trace  # real weights/activations for the network view
uv run pytest -m "not slow"

This site

uv run grf stage-site     # copies evidence into site/public, writes hashes
uv run grf verify-staging # re-hash everything staged
cd site && npm ci && npm test && npm run build -- --base "/recovery-policy-learning/"

site/public is written only by the staging command; staging-manifest.json records a SHA-256 and source for every staged file. The one exception is site/public/illustrations/, which holds hand-drawn figures and is never touched by staging.

Provenance notes

The code fingerprint recorded in configs/freeze_record.json identifies the source tree that produced the confirmatory result. Everything added after the test opening is non-scientific: the rollout-media generator, the foundations package, the descriptive audits, the two exploratory panels, and this site. No frozen protocol value, manifest, checkpoint, or result artifact was modified. The shipped tree therefore does not reproduce the freeze-time fingerprint, and what verifies the result is not a fingerprint match but the release-phase integrity command re-deriving the published summary from the raw evaluation rows. Full details in the report's reproduction chapter.