Ruleset 2026.10.1, generated 2026-10-21T21:40:39.613Z by npm run benchmark (scripts/benchmark.js). Re-run it yourself: the script downloads every dataset from its public source (nothing is vendored) and caches it in .bench-cache/.
| Set | License | What it measures |
|---|---|---|
| deepset/prompt-injections | Apache-2.0 | Precision/recall. English + German. Many "injections" are subtle task switches ("Now write a poem about...") |
| jackhhao/jailbreak-classification | Apache-2.0 | Precision/recall. Long DAN-style jailbreaks vs benign role-play prompts |
| Lakera/gandalf_ignore_instructions | MIT | Recall only (every row is an attack): real attempts to override Gandalf's instructions |
300 random English Wikipedia articles (bench/benign-wikipedia.json) |
CC BY-SA (read at run time, not redistributed) | False-positive rate on ordinary web pages |
150 GitHub READMEs pinned to a commit (bench/benign-readmes.json, 144 fetched) |
Each repo's own license (read at run time) | False-positive rate on technical docs: install scripts, badges, API keys, security notes |
BIPIA (Microsoft) was not used: its license metadata is not clear (NOASSERTION).
The rules were written while looking at the deepset and jackhhao train splits and at a different sample of Wikipedia articles and READMEs. Those rows are marked dev and are optimistic. The test splits, the Lakera set and the two benign corpora above were not used for tuning: they are the held-out rows, and the honest numbers.
flagged means verdict suspicious or malicious (risk ≥ 35). malicious means risk ≥ 70.
| Dataset | Split | Role | Threshold | n | TP | FP | TN | FN | Precision | Recall | F1 | FPR |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| deepset/prompt-injections | train | dev | flagged | 546 | 120 | 0 | 343 | 83 | 1 | 0.591 | 0.743 | 0 |
| deepset/prompt-injections | train | dev | malicious | 546 | 49 | 0 | 343 | 154 | 1 | 0.241 | 0.389 | 0 |
| deepset/prompt-injections | test | held-out | flagged | 116 | 16 | 0 | 56 | 44 | 1 | 0.267 | 0.421 | 0 |
| deepset/prompt-injections | test | held-out | malicious | 116 | 10 | 0 | 56 | 50 | 1 | 0.167 | 0.286 | 0 |
| jackhhao/jailbreak-classification | train | dev | flagged | 1044 | 407 | 0 | 517 | 120 | 1 | 0.772 | 0.872 | 0 |
| jackhhao/jailbreak-classification | train | dev | malicious | 1044 | 271 | 0 | 517 | 256 | 1 | 0.514 | 0.679 | 0 |
| jackhhao/jailbreak-classification | test | held-out | flagged | 262 | 112 | 1 | 122 | 27 | 0.991 | 0.806 | 0.889 | 0.008 |
| jackhhao/jailbreak-classification | test | held-out | malicious | 262 | 81 | 0 | 123 | 58 | 1 | 0.583 | 0.736 | 0 |
| Lakera/gandalf_ignore_instructions | test | held-out | flagged | 112 | 74 | 0 | 0 | 38 | – | 0.661 | – | – |
| Lakera/gandalf_ignore_instructions | test | held-out | malicious | 112 | 68 | 0 | 0 | 44 | – | 0.607 | – | – |
| benign: Wikipedia (300 random) | - | held-out | flagged | 300 | 0 | 4 | 296 | 0 | – | – | – | 0.013 |
| benign: Wikipedia (300 random) | - | held-out | malicious | 300 | 0 | 0 | 300 | 0 | – | – | – | 0 |
| benign: GitHub READMEs (150) | - | held-out | flagged | 144 | 0 | 8 | 136 | 0 | – | – | – | 0.056 |
| benign: GitHub READMEs (150) | - | held-out | malicious | 144 | 0 | 4 | 140 | 0 | – | – | – | 0.028 |
curl | sh-style commands. If you scan technical documentation, consider acting only on malicious.agentgate-source: code mirror on Cloudflare Pages. All repos