Seeds. Each run’s model initialisation and data order come from its seed; strategies and distillation draw from generators derived from the seed, so a run’s result does not depend on which other seeds share its ensemble.
Equivalence tests. A vmapped member equals the same seed trained alone, and compiled equals eager (within atol=1e-5 in fp32). bf16 and multi-threaded CPU kernels are not bit-exact across machines.
Recorded environment.env.json stores Python, PyTorch and platform versions, the CPU capability, the thread count, the git commit, and the compile and precision decisions with their reasons.
Resolved configuration.config.yaml stores every value used; run_id is a hash of it.
Caches. Preprocessed datasets and trained experts are cached by configuration hash under $CONTILAB_CACHE.
Resume. Checkpoints include generator states, so a resumed run matches an uninterrupted one (tested).
Statistics. Report at least 5 seeds when you need significance tests; with 3 seeds the exact permutation test cannot reach p < 0.25 and the report says so.