What it checks
assess_input() and multivon-eval assess run four signals over your
input:
- Trace count — enough data to calibrate against. Below the shared
discover.CALIBRATION_MIN_TRACESthreshold, calibration falls back to uncalibrated defaults, and the gate says so out loud. - Per-field completeness — what fraction of traces carry the fields a suite needs. Zero-output traces are a common silent one; they make calibration early-return uncalibrated thresholds, and the gate now surfaces that instead of letting it pass quietly.
- Near-duplicate ratio — token-Jaccard overlap, reservoir-capped so a large dump can’t hang the check. A pile of near-identical traces inflates apparent coverage without adding any.
- PII / secret density — how much sensitive content is present, using the same detectors the redaction path uses.
WARN by default
The gate warns; it does not block.- PROCEED is silent as a preflight: when the input is fine, a
bootstrap/generaterun prints nothing extra. (The standalonemultivon-eval assesscommand still prints a one-line confirmation, since you asked it a direct question.) - WARN prints a determinacy headline whose denominator counts every
defined signal (
2 of 4 signals flagged), one line per flag, and a blind-spots footer naming what it did not check.
There is no hard REFUSE in this version, on purpose: a WARN can’t break a
CI. The standalone
assess command exits 1 on a WARN so a script can
detect it, but the inline preflight never changes the host command’s exit
code.As a standalone check
As a preflight
The gate runs automatically insidebootstrap and generate, on the
traces they’ve already loaded, before the first paid call. You don’t have
to wire anything up.
--skip-input-gate turns it off, but it still prints one line on stderr
when it does. Suppressing the gate is never truly silent.
