whestbench.
Participant GuideGetting started

Tutorial — the 5-stage ladder

Sourced from whest-starterkit @ 96e308c.

Tutorial — the 5-stage ladder

← Documentation

Each stage is a single command on the same estimator.py, with the harness adding one more level of formality at each step. Read top-to-bottom. Stage 4 runs your estimator the way the grader does, through a pipe in a separate process, so it surfaces packaging and import bugs Stage 3 cannot.

StageCommandWhat it addsDoc
1uv run python estimator.pyThe math. Iterate locally with flopscope and local_engine.py; no whest CLI required.stage-1-standalone.md
2uv run whest validate --estimator estimator.pyContract correctness: class resolved, optional setup() runs, shape, finite values.stage-2-validate.md
3uv run whest run --estimator estimator.py --dataset hf://aicrowd/arc-whestbench-public-2026@v2-phase2 --split mini --runner localReal scoring against the public Mini split (100 MLPs), in-process (so pdb works).stage-3-run-local.md
4uv run whest run --estimator estimator.py --dataset hf://aicrowd/arc-whestbench-public-2026@v2-phase2 --split mini --runner subprocessProcess isolation — the grader's transport. Catches dirty imports, stdout writes, and (on Linux) runaway memory. State does not reset between MLPs: one worker serves the suite.stage-4-run-subprocess.md
5uv run whest package --estimator estimator.py --output submission.tar.gzPackage the submission tarball for AIcrowd.stage-5-package.md

Each stage doc carries an "Expected outcome" callout that states what a successful run produces, and a "Ladder" strip at the top that marks which stage you are on.

➡️ Where to look next

On this page