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 in a single pass. The optional development comparison toggles add internal reference columns (L36 late-layer read; SP single-pass cross-encoder) that don't ship to customers — they're here purely for architectural comparison.

pinging upstream…
What are the dev reference paths (L36 / SP)?

All three paths run on the same Qwen-2.5-3B-Instruct + domain LoRA. The Probe (production output) uses the KV-pop primitive — prefill content once, pop K criteria against the cached KV — and reads the hidden state mid-stack (L25), where multiple independent axes of the content are simultaneously legible before the final layer commits to one output direction. It's isotonic-calibrated. This is what the API serves.

L36 late-layer reference (dev toggle): the same KV-pop primitive but reading the FINAL layer (L36) instead of mid-stack. Useful for visualising the readout-headroom effect across read-depth — turn it on alongside the layer-trajectory diagnostic to see how the same network represents non-dominant axes more strongly at mid-stack than at the output layer.

SP single-pass reference (dev toggle): a different architecture — criterion- first single-pass cross-encoder. No amortization across K; one forward per (criterion, content). Useful as an architectural sanity check — strongest on fiction/roleplay (where the KV-pop family over-fires on benign fictional distress).

Bands: ≥0.85 ≥0.5 ≥0.15 <0.15. Neither reference path is customer-facing. 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. For fiction-heavy content, turn on the SP reference toggle and trust it where it diverges from the Probe.
Load a multi-criterion example:
criteria (5 active)
dev reference toggles (internal only)
internal — Qwen-2.5-3B-Instruct + domain LoRA + MLP head · KV-pop (FlashInfer) + SP · gex44-experimental