Build checks

Config

Every key, its default, and its authority effect.

evalglass.yaml is host-owned and authority-safe by construction: an under-specified metric stays informational + proposed. The final column below says how each key moves a metric toward or away from gating. The loader turns this YAML into typed run config — no key it omits ever grants authority by default.

Configuration is a declaration of intent, not a grant of trust. You can ask for a gate in YAML, but the run only honours it when host-owned authority records back it; otherwise the loader forces the metric back to a non-gating state. That is why a fresh config still produces an informational Scorecard.

Top level

KeyTypeDefaultNotes / authority effect
run.idstringRun identifier; recorded in provenance.
datasets[].pathstringJSONL gold; status defaults to proposed → keeps metrics informational until validated.
traces[].pathstringRecorded behavior (JSONL).
traces[].formatenumlocalTraceFormat: local / opentelemetry / openinference. Imported from exported files — no SDK, no network.
traces[].unitenumcallUnitKind: call / step / trajectory / session. A richer kind grades the whole run (next); absent is byte-identical to call. Stays informational — trace data cannot gate.
taskobjectOptional subprocess replay config.
judgeobjectOptional judge model config; cannot self-declare calibration.
baselineobjectOptional baseline reference for comparison.
output.dirstringWhere artifacts are written (overridable by --out).

Per metric (metrics[])

KeyTypeDefaultAuthority effect
namestringDeclared metric name (must be unique).
evaluator_refstringBuilt-in name@version or host path.py:function.
lensenumreference / non_reference.
score_typeenumbinary / continuous.
score_range[min,max]Required for continuous metrics.
directionenumhigher_is_betterWhich side of the threshold passes.
paramsobjectEvaluator parameters (e.g. required_fields).
datasetstringBinds a reference metric to a dataset.
metric_statusenuminformationalMust be gating to gate.
thresholdnumberThe gate boundary (rejected if out of range).
threshold_approvalenumproposedMust be approved (host record) to gate.
requires_baselineboolfalseIf true, a non-comparable baseline blocks.
rubric · calibrationstringFor judge metrics; an uncalibrated judge stays informational.
Intent is not approval Setting metric_status: gating or threshold_approval: approved is intent. It is honored only when backed by host-owned authority records; otherwise the loader forces the metric back to a non-gating state. See Promote a Gate.

How YAML becomes typed config

At load time the harness parses this file into typed run config, validates ranges and enums, and attaches authority-safe defaults. Generated or scaffolded data never enters as validated gold — anything the authoring tier writes lands proposed. The runtime contract behind these keys is documented in Run Config.

Next steps