fail_under- the run’s average judge rating must be at or above the floor. Works from the very first run.no_regression- the average must not drop more thantolerance(default0.5) below the dataset’s previous completed run. The tolerance exists because judge scores are noisy: an exact comparison would flake builds on variance, not regressions. Requires run history, so point CI at a persistent self-host instance rather than an ephemeral one.
gate() prints a per-check verdict into the CI log and returns a GateResult (passed, exit_code, average_rating, baseline_average, checks). The same check is a plain HTTP call if you’d rather script it raw:
GitHub Actions
Pointing at a persistent self-host instance (recommended - run history enablesno_regression):
What to gate on
Every recorded gate lands in the dashboard’s CI Gates history - the same list is readable from the SDK for scripting (e.g. a weekly “how often did gates fire” report):fail_under (an absolute quality bar) with no_regression (this PR made nothing worse) - they catch different failure modes.
Gate history in the dashboard
Every gate the SDK runs is recorded by default (record=True, with a caller label like "github-actions"), and the dashboard’s CI Gates tab (in the sidebar under Automations) lists that history newest-first: verdict, dataset, average vs baseline, which checks ran, who called. The same page has a preview (“would the latest run pass these thresholds?”) that is never recorded - so exploring thresholds can’t pollute the history real CI jobs write - plus the copy-paste setup snippets. Pass record=False to gate_run() for an unrecorded check from code.
Datasets from Production
Grow the golden dataset the gate runs against
Hosted CI/CD API
The hosted platform’s equivalent pipeline

