multi-criteria playground

Score one piece of content against many atomic criteria at once. Each criterion gets an independent calibrated probability in [0, 1] from the Probe (the production output — one content prefill + K seed-pops via FlashInfer, so cost grows slowly with K). With two or more atoms, the compound view derives ALL / ANY / NONE / EXACTLY-ONE algebraically — the recommended pattern for multi-label, since the probe is broken on non-monotonic compounds scored directly.

pinging upstream…
How does the Probe work?

The Probe (production output) uses the KV-pop primitive — prefill the content once, then pop K criterion seeds against the cached content KV — reading the hidden state to score each criterion against the content. Cost grows slowly with K because the content forward pass is amortized across all criteria. It's isotonic-calibrated. This is what the API serves.

Bands: ≥0.85 ≥0.5 ≥0.15 <0.15. Full picture in predicate/STATE.md.

Known limitation — fiction/roleplay: the Probe over-fires on benign roleplay/fiction (a fictional character's suicidal/distressed content reads as a real user in crisis). This is a frame-discrimination floor of the KV-pop bi-encoder family, not a calibration bug. Treat fiction-heavy content with extra caution.
Load a multi-criterion example:
criteria (5 active)
internal — Granite-4.0-micro + domain LoRA + MLP head · KV-pop (FlashInfer) · gex44-experimental