Skip to main content
Everything the Pest expectation does is also an artisan command — same engine, same tables, same dashboard.

evals:run

Terminal
Unlike Pest, the CLI never promotes a baseline on its own. The first run of a suite has nothing to compare against until you pass --baseline (or promote a run afterwards with evals:baseline) — see Baselines & Regressions.
Exit codes — the CI contract: The terminal output is a per-row table — pass counts, score ± spread, cost — plus totals; with --compare, regressed/improved tables with before → after scores.

evals:baseline

Terminal
Promotes any completed run to its suite’s baseline (transactionally demoting the previous one). See Baselines & Regressions.

evals:calibrate

Terminal
Judge-vs-human agreement measurement — see Judge Calibration.

make:eval

Terminal
Scaffolds a class-based evaluation in app/Evals plus a starter JSONL dataset in evals/data/.

JSON output

--output=json emits a stable, versioned document: run metadata (git sha/branch, config), aggregate summary, every row with its samples and assertion results, the comparison diff, and the gate verdict. Pipe it to artifacts storage, parse it in CI annotations, chart it — the schema is designed to be depended on.
CI one-liner