Ship
Promote a gate
Make a metric enforce CI — deliberately.
A metric gates only when four host-owned conditions all hold: a validated
dataset, an approved threshold, the metric set to gating, and
— for a judge metric — a calibrated judge. Promotion is an explicit act, never a
default — and it is a host YAML edit, not a command.
There is no promote / gate / approve / certify verb
Nothing under
/evalglass can turn a metric into a gate. Promoting a gate is a
host-owned YAML edit you make — setting metric_status: gating,
threshold_approval: approved, and the dataset to validated — done
after the host-owned preconditions are met. The promoting-a-gate skill only
guides this. An agent may type the edit at the host’s explicit direction, but no
verb and no agent can grant the authority — only the host can.
After First Run, every metric is informational. To make one enforce CI, you clear each reason that keeps it informational. Do them deliberately — each step is you, the host, taking responsibility for a claim.
The four conditions
| Step | Clears the reason | Owned in |
|---|---|---|
| 1 · Validate the dataset | dataset_proposed | The dataset’s host-owned status (proposed → validated). |
| 2 · Approve a threshold | threshold_proposed | A host ApprovedThreshold record. |
| 3 · Set the metric to gating | metric_status=informational | The metric’s status in evalglass.yaml / authority records. |
| 4 · Calibrate the judge (judge metrics only) | judge_uncalibrated | A host calibration record. |
The host YAML edit
Promotion is this edit, made by the host. The metric declares its intent, but the configuration cannot approve itself — an under-specified metric is forced back to proposed / informational. The approval lives in host-owned records the config references:
yaml
metrics:
- name: exact_match
evaluator_ref: exact_match@1
lens: reference
score_type: binary
dataset: datasets/arithmetic.jsonl # must be a validated dataset
metric_status: gating # intent — honored only with the records below
threshold: 0.95
threshold_approval: approved # backed by a host ApprovedThreshold record
direction: higher_is_better
Re-run, and the metric’s authority resolves to can_gate:
- value meets the approved threshold → pass (exit 0).
- value below it → fail (exit 1).
- could not be measured, or coverage incomplete → blocked (exit 1).
Promote one gate at a time
Each promoted gate is a promise that the dataset, threshold, and (if applicable) judge are sound.
Promote deliberately and review each record — a gate you cannot defend is exactly the false
confidence EvalGlass exists to prevent.