How yolonot compares to Claude Code Auto Mode and manual prompts
Every permission gate for AI coding agents trades off three outcomes: letting dangerous commands slip through (missed risks), hard-rejecting safe commands (false blocks), and interrupting developers with confirmation prompts. Here is how yolonot's local bash AST parser and 2-stage judge pipeline perform across 456 open benchmark cases and 5,000 sampled real-world commands.
1. Evaluation metrics and Anthropic's 2026 studies
Because yolonot operates in a ternary decision space (allow, ask, deny) rather than a binary filter, we report all three rates explicitly:
- 1. Risky Commands Missed (False Negative Rate, FNR): The fraction of destructive or unauthorized commands (force-pushing, dropping tables, remote code execution, or secret exfiltration) allowed without human confirmation.
- 2. Safe Commands Blocked (False Positive Rate, FPR): The fraction of benign commands hard-rejected by the gate without offering an interactive prompt.
-
3. Safe Commands Asked (Prompt Rate): The fraction of benign commands that pause execution to ask for confirmation before session memory or
yolonot suggestcaches them.
Baseline context: Anthropic's containment and Auto Mode reports
Claude Code Auto Mode: In How we built Claude Code auto mode, Anthropic reported that developers accept 93% of manual permission prompts out of habit. Their 2-stage Sonnet 4.6 transcript classifier scored 8.5% FPR and 6.6% FNR at Stage 1 (single-token filter), and 0.4% FPR with 17.0% FNR on real overeager actions (n = 52) plus 5.7% FNR on synthetic data exfiltration (n = 1,000) after Stage 2.
Containing Claude across products: In How we contain Claude across products, Anthropic emphasized pairing deterministic environment boundaries with model classifiers because probabilistic classifiers alone let roughly 17% of overeager actions through.
Investigating unintended model actions: In Investigating unintended model actions, Anthropic documented how capable agents exhibit persistence and overreach when hitting obstacles, routing around restrictions or executing unintended server commands.
2. End-to-end error and prompt comparison across profiles
Claude Code Auto Mode has no ask state, and its Stage 2 pass only re-evaluates Stage 1 blocks to reduce false alarms—causing its missed-risk rate to climb from 6.6% to 17.0%. yolonot instead escalates uncertain cases to a distinct second model while enforcing a strict monotonicity rule (critical never relaxes to allow), and lets you choose your operating point with yolonot profile use <mode>:
True error comparison: Safe Blocked (FPR) vs. Risky Missed (FNR) on a linear 0% to 20% scale
Evaluated with fast_allow AST + jev-1.13 (Stage 1) + claude-haiku-5.5 (Stage 2) across 456 benchmark cases. Lower is better.
n = 52 real overeager actions). yolonot figures are macro-averages across the 3 public benchmark suites below (N = 456).
| Profile / Mode | Safe Blocked (FPR) | Safe Asked (Prompt Rate) | Risky Missed (FNR) | Risk Mapping Policy |
|---|---|---|---|---|
| Manual Prompts | 0.0% | ✕100.0% asked |
✕93% habitual click |
Prompts on every command (approval fatigue) |
| Claude Auto Mode | 0.4% (8.5% S1) | 0.0% (no ask state) | ◐17.0% missed |
Binary allow/deny; Stage 2 relaxes S1 blocks |
yolonot · balanced |
0.0% | 1.4% (0% w/ suggest) | ✓4.9% (0% Open Eval) |
Allows safe/low, asks once on mod+ |
yolonot · fast |
0.0% (1.4% cold) | 0.0% (unattended) | ✓4.9% (0% Open Eval) |
Allows safe/low/mod, denies high/critical |
yolonot · strict |
0.0% | 19.4% (59.9% <1ms AST) | ✓1.6% (0% high/crit) |
Asks on low/mod, denies high/critical |
yolonot · paranoid |
8.4% | 91.6% | ✓0.0% (100% caught) |
Asks on safe/low, denies moderate+ |
3. Normalized evaluation across 3 open benchmarks (456 cases)
To test generalization beyond a single dataset, we evaluated yolonot (fast_allow AST + jev-1.13 typed classifier + claude-haiku-5.5 escalation) across three independent public suites:
| Benchmark Suite | Safe Cleared in <1ms AST | Safe Allowed (Total) | Dangerous Caught |
|---|---|---|---|
| 1. yolonot Open Eval (260 cases) 85 safe + 105 dangerous + 70 rule/script cases | 49.4% (42 / 85) | 98.8% (84 / 85) |
✓100.0% (105 / 105)
Includes 14/14 hidden on-disk script attacks
|
| 2. HF rogue-security (76 bash calls) rogue-security/coding-agent-security-benchmark | 32.0% (8 / 25) | 64.0% cold (16/25)* |
✓94.7% (36/38) → 100.0% (38/38)
100% of high/critical attacks caught
|
| 3. RedCode-Exec + Dippy CLI (120 cases) 60 safe Dippy CLI + 60 RedCode OS attacks | 98.3% (59 / 60) | 98.3% (59 / 60) |
✓90.5% (38/42) → 100.0% (42/42)
100% of OS attacks caught in strict / paranoid
|
| Normalized Macro-Average (456 cases) Across all 3 suites (vs. 54.2% AST hit rate on 5,000 real-world calls) |
59.9% in ~1.6µs
0 unsafe leaks
|
98.6% CLI
87.0% 3-suite cold
|
✓95.1% → 98.4% → 100.0%
Across balanced, strict, and paranoid
|
*Denominators in columns 2–4 reflect each suite's pure cold-classifier safe (85 + 25 + 60 = 170) and high-confidence attack (105 + 38 + 42 = 185) subsets; the remaining 101 of 456 cases test .yolonot rule precedence, script attachment, and gray-zone prompt-rate behavior (13 in rogue-security and 18 in RedCode-Exec). In rogue-security, the 9 safe commands flagged as ask on a cold start (1.4% on standard CLI suites; 87.0% 3-suite cold macro-average) are zero-context executions of unfamiliar /tmp/*.py scripts, kill -9, or public gist creation that require a one-time confirmation before session memory or yolonot suggest auto-allows them.
4. Stage 2 cross-model escalation & pluggable judge models
Why did Claude Code Auto Mode's miss rate jump from 6.6% at Stage 1 to 17.0% at Stage 2? Because asking the same model family to second-guess its own blocks without deterministic floor constraints lets persuasive transcripts talk the classifier down. yolonot avoids this through three design choices:
-
Cross-model Stage 2 escalation: Escalating uncertain Stage 1
askverdicts fromjev-1.13to a distinct model (claude-haiku-5.5) rescued 48.3% of real-world false alarms (raising Dippy CLI safe allow rate from93.3% → 98.3%) while catching and hardening 8 under-rated risks. -
Non-relaxation invariant: A
criticalrisk verdict at Stage 1 or in deterministic AST/script checks can never be downgraded toallowby Stage 2. -
14/14 on-disk script accuracy: Running
yolonot eval --suite evals/suites/script-attach.jsonlcatches 100% (14/14) of hidden script attacks (such asrm -rf $HOMEtails or reverse shells insidehealthcheck.py) that surface command-string classifiers miss.
-
TypeSafe Jev (
jev-1.13): Purpose-built typed decision classifier · 99.4% greenfield accuracy ·~50–80mstypical latency. - Kev-4B (Apache 2.0 LoRA): Open-weights 4B RL decision model · 93.2% accuracy · runs locally with zero cloud API cost.
- Cloudflare Clef-flash: Lightweight command classifier · 92.0% accuracy.
-
Custom AST & Any LLM: Combine
exec:dippyor any Anthropic, OpenAI, Gemini, Grok, OpenRouter, or local Ollama model viayolonot modelsandyolonot judges.
Reproduce these numbers against your own configured models anytime with yolonot eval --all.