The pattern
Passfail_threshold to suite.run(). A completed quality failure raises
EvalGateFailure with exit code 1. Since 0.17.0, an active gate defaults to
zero tolerated errors and blocks empty or skipped coverage with exit code 2
(indeterminate). Set max_error_rate explicitly only if you intend to permit
an error budget. A high pass rate alone does not establish sufficient coverage.
GitHub Actions
Apply a saved release contract
eval_acceptance_report in
multivon-mcp 0.4.0. The corresponding eval-action v2 update is prepared but
pending publication; check its release notes before choosing an action version. The policy returns accept/reject/indeterminate
with exit codes 0/1/2; it does not require a baseline or a p-value.
Compare against a baseline
Speed up CI with parallel workers
Async runner for async model functions
Save and view results
Run a specific eval file
--html and --json inject environment variables that the suite picks up automatically — no changes to your eval script needed.
Tips
- Keep a golden dataset: a small set of cases (20-50) that cover your most critical behaviors, run on every PR.
- Use tags to split fast deterministic evals (every commit) from slower LLM-judge evals (nightly, or main only).
- Archive
results.jsonper run as a build artifact so you can track score trends over time.

