Loading...
Loading...
OmegaEngine · Evidence · Judge Card
A red-team report is only worth what its verdicts are worth. This card is the honest system-card for the engine that decides whether an attack bypassed or was blocked — what it is, the numbers we measured, their limits, and how to re-run it yourself.
Two tiers, escalated by confidence:
Positive class = bypassed. Judge model on the reference run: gpt-4o-mini.
Ground-truth set: 48 human-labeled examples spanning jailbreak, prompt-injection, data-exfiltration, encoding-bypass, multilingual, social-engineering, compliance, and harmful-content — including deliberately hard cases (leakage-in-refusal, encoded payloads, fictional framing with real actionable content) and benign controls that must not be flagged. In production the judge is cost-capped, so the realistic recall is whatever the budget buys — we publish the curve, not one headline number.
| Judge budget / run | Precision | Recall | F1 | FP-rate | Accuracy |
|---|---|---|---|---|---|
| 0 (heuristic-only) | 100% | 17.4% | 29.6% | 0% | 60.4% |
| 10 | 100% | 43.5% | 60.6% | 0% | 72.9% |
| 20 | 100% | 73.9% | 85.0% | 0% | 87.5% |
| full (≈ judge everything) | 100% | 95.7% | 97.8% | 0% | 97.9% |
A missed bypass (false negative) is the expensive error in security, so "blocked" verdicts escalate to the judge far more readily than "bypassed" ones: shouldConsultJudge escalates anything below 0.7 confidence either way, plus any "blocked" verdict below 0.9. A limited budget is allocated blocked-first, lowest-confidence-first (escalationPriority). The judge prompt also carries a per-category success criterion (CATEGORY_SUCCESS_CRITERIA) so it scores goal-achievement, not just "is there harmful content".
The biggest credibility risk is that one person authored both the examples and their labels. To check the labels (not the judge), an independent, stronger model (gpt-4o vs the gpt-4o-mini judge) re-labels every example blind to our label (npm run audit:labels):
| Metric | Value |
|---|---|
| Agreement | 95.8% (46/48) |
| Cohen's κ | 0.917 (almost perfect) |
| Disagreements | 2 — flagged for human adjudication, not edited away |
This is a silver check (a model reviewer, not human gold), but κ ≈ 0.92 is strong evidence the labels reflect a defensible standard rather than one author's bias. The two disagreements are kept as-is (editing them would game the metric) and are exactly where human labeling effort pays off most.
To turn the seed set into a publishable population number we mine real traffic (npm run mine:labels), a human reviewer fills the label field, and confirmed lines move into data/seed/. Target: 500–1000 real labels, at which point these metrics become a defensible, third-party-auditable benchmark.
The deterministic input-safety catch-rate over the full 5,023-vector corpus is published as a machine-readable artifact at /evidence/fuzzer-corpus-score.json. Machine-readable index of every published evidence artifact: /evidence/index.json.