
Iterative agent harness that uses LLMs and Certora Prover to generate and refine smart-contract CVL specs, feeding verifier output back until success or max iterations.
Configurable agent harness for iterative smart-contract spec generation/refinement using:
openai/frontier-evals -> project/evmbench)Certora/CertoraProver)The harness loops over a challenge:
Run artifacts are persisted for every iteration.
src/evmbench_certora_harness/ core implementationconfigs/harness.example.yaml sample configscripts/fetch_evmbench.sh helper to pull benchmark tasksexamples/sample_challenge/ minimal local scaffold00_..05_*.md experiment notes (Obsidian-friendly)certoraRun or certoraRun.py)OPENAI_API_KEYOPENROUTER_API_KEYhttp://localhost:11434Certora upstream:
EVMBench upstream:
python -m venv .venv
source .venv/bin/activate
pip install -e .
Copy and edit config:
cp configs/harness.example.yaml configs/harness.yaml
Single challenge:
python -m evmbench_certora_harness.cli run \
--config configs/harness.yaml \
--challenge datasets/evmbench/audits/2023-07-pooltogether \
--max-iterations 4
First challenge from glob in config:
python -m evmbench_certora_harness.cli run --config configs/harness.yaml --limit 1
Dry run (no Certora execution):
python -m evmbench_certora_harness.cli run --config configs/harness.yaml --dry-run
certora.command_template challenge-aware.runs/ for post-mortem analysis.