Put your policy on the leaderboard yourself.
Run the same attack suite we ran, check the report with the script our CI uses, and open a pull request. Your row then sits on the public leaderboard under your name. No account, no NDA and no permission needed: the tool is Apache-2.0 and the validation runs on a CPU.
Nobody outside this project has submitted a result yet. Every row on the board today was produced by the maintainer, and the published board file labels each one maintainer-run in its provenance field. Yours would be the first labelled third-party-submission.
The path below has been tested: it was exercised end to end on 12 August 2026 against a dummy submission, which was then deleted. Step 4 of that test correctly refused to promote a stub run to the real board.
Before you start
What do I need?
What exactly do you run against it?
How long does it take?
What do I get back?
Who sees the result?
Can I see it before it is published?
Yes. Publication is a separate, later and entirely voluntary act. You run the suite, you read the complete result, and then you decide whether to open a pull request. If the number is bad, do not open it: nothing has been transmitted, nothing is pending, and nobody is waiting on you.
A submitted row is also withdrawable: an open pull request can be closed, and a merged row can be removed by another one. Your row carries provenance: third-party-submission with your name on it, so it reads as yours rather than ours. We will not publish a result you did not choose to publish, or keep a copy of one you decided against.
The four steps
Run the suite against your policy
Provael needs an adapter for your policy. Eight are registered: SmolVLA, pi0, pi05 and pi0fast are runnable today; GR00T, OpenVLA and openpi are registered scaffolding that has never had a checkpoint run through it here; plus a deterministic stub. If yours is not one of them, open an issue before you start rather than after. The command below runs on a laptop CPU in under a second, so you can walk the whole route before deciding whether your own policy is worth the GPU time. Swap
--policy stub --suite stubfor your own once it works.pip install 'provael[attest]' provael attack --policy stub --suite stub \ --attacks none,instruction --episodes 10 --seed 0 --out results/my-runValidate the report locally
The same script CI runs. It checks that report.json parses as a RunReport and that its aggregate rates and success counts are internally consistent. It needs no GPU, so a failure here is one you fix in seconds rather than in review. Note the
nonearm in step 1: a result without a benign control is refused, because an attack rate with no floor cannot tell a policy the attack broke from one that was failing anyway. Our own rows meet the same bar.python scripts/validate_submission.py results/my-runBuild the board row with your provenance
Two flags matter.
--submitted-byis you, and--provenance third-party-submissionis what separates your row from ours. Every row on the board today carriesprovenance: maintainer-run; yours will carrythird-party-submission, on the row.provael leaderboard build --runs results/my-run \ --submitted-by your-name --provenance third-party-submissionOpen a pull request that adds results/
CI picks up any pull request touching
results/**, revalidates every report and rebuilds the board. Nothing is taken on trust: a stub run is refused from the real board by design, so a submission that never met a real model cannot become a public number.
What gets checked, and what does not
| Checked | Not checked |
|---|---|
The report parses as a valid RunReport | That you ran what you say you ran. Provenance is declared, not proven |
| Aggregate rates agree with the underlying success counts | That your policy is safe. An ASR is a measurement, not a verdict |
| The leaderboard still builds with your row in it | That your result transfers to hardware. Nothing here has run on a robot |
| Stub runs are refused from the real board | Statistical power. Few seeds means a wide interval, and it will show |
A submitted row is evidence you produced, published under your name, with its provenance on the row. It is not certification, not a conformity assessment, and not an endorsement by this project. If you would rather someone else ran it, that is what an assessment is for.
Ready to submit?
The submission guide walks the pull request. The validation script, the adapters and the recipe behind our own published row are in the same repository.
Stuck on an adapter, or is your policy not one of the registered ones? Email hello@provael.com and say what you are running. An adapter that does not exist is a gap worth knowing about.