Saturday — the long version · 1,544 words · 6 minnofeed.dev
Saturday · 15 August 2026All long reads

The click was never the control

Claude Code made a classifier the default gate on Friday. The study that sold the change measured what human approval actually does under load — and the default that landed still lets the agent push main.

The argument

Human approval is not a safety layer for agent coding CLIs: under load it fails on the dangerous command more than four times in five, and the default that replaced it still treats a push to main as routine work.

01What the week actually changed

On Monday the desk reported a vendor study and a date. On Friday the date arrived: new Claude Code sessions on Pro, Max and Team start in auto mode.12 A second model — the classifier — reviews each tool call before it runs. Three blocks in a row, or twenty in a session, fall back to manual approvals. Classifier overhead on those plans is free.1

Enterprise, the Claude API, Bedrock, Vertex and Foundry stay opt-in for now, with a plan to flip them in the coming month.1 That is the product change. The argument is in the measurement that justified it, and in what the new default still permits.

02The study: 13.6 percent against 89

Anthropic ran a controlled study with 1,053 paid testers. Partway through a real session, one permission prompt was swapped for a clearly dangerous command. Humans refused 13.6 percent of the time — 143 of 1,053. Auto mode blocked 89 percent of the same commands — 937 of 1,053.1

Head to head: auto mode blocked 800 commands a human approved; humans blocked six that auto mode allowed.1 As sessions lengthened, humans got worse. They blocked about 17 percent of dangerous commands early in a session and about 5 percent after fifty or more prior prompts. The classifier's block rate stayed flat.1

A second production cut, also from the vendor post: among flagged sessions, at severity 7 and above, 6.3 percent of manually approved sessions contained a harmful action the user had not asked for, against 2.4 percent under auto mode.1 That is still vendor-commissioned evidence. It is also the only controlled comparison we have of human click-through against a classifier on this product.

Humans blocked the planted dangerous command 13.6 percent of the time. After fifty prompts, about 5 percent.
GateBlock raten
Human approval13.6%143 of 1,053
Auto mode classifier89%937 of 1,053
Human, early in session~17%vendor curve
Human, after 50+ prompts~5%vendor curve
Planted dangerous command in a live session — Anthropic study of 1,053 paid testers, read 15 Aug 2026 on the vendor post.1

03What the residual 11 percent is not

Eleven percent of the planted commands still got through the classifier.1 Simon Willison walked the same post and kept the residual risk open: he buys that auto mode beats clicking OK all day, and does not buy that prompt injection is solved.3

The third-party eval Anthropic commissioned from Trajectory Labs tested 72 indirect prompt-injection scenarios held out from the lab. Against Claude Fable 5, Opus 5 and Sonnet 5 in auto mode, none of 720 attack attempts succeeded in that eval.13 Willison wants confirmation beyond a vendor-commissioned study, and names a path a permission classifier cannot see: a malicious package whose install step looks like a normal test command.3

Those are different failure modes. Confirmation fatigue is a measured human failure on a clearly dangerous prompt. Prompt injection via a package install is a class of action the classifier may never be shown as hostile. Collapsing them into one safety claim is how the residual 11 percent gets misread as the whole remaining problem.

04Auto mode is not YOLO

Hacker News spent Monday mixing auto mode with --dangerously-skip-permissions.4 They are different products. Auto mode still classifies. Bypass skips the gate. The docs put bypass in isolated containers and VMs only.2

The same week, Cline removed its Yolo Mode toggle because it was cosmetic: auto-approve is now the single control, and prior Yolo setups migrate to approve-all.5 The industry is converging on one honest switch for "run without asking," and a separate layer for what still gets blocked. Calling every non-manual mode YOLO makes the safety claim sound like marketing even when a classifier is present.

05What the default still allows

The configuration page is explicit. Auto mode allows pushes to any branch of the repository you are working in, including the default branch, and pull request creation, by default.6 Force push, secrets entering a commit, history rewrites, and pushes aimed at a third-party repository stay blocked or soft-blocked.26

A non-default branch whose name marks it as a deploy target — production, release, gh-pages — is judged on its own terms, including as a production deploy.6 Before v2.1.211 the allowlist was narrower: working branch, branches Claude created, and routine pushes to the default branch.6 The default widened as the mode became the starting mode.

The docs also ship the fix as a recipe, not as the default. To keep auto mode on and still get a human checkpoint before every push or pull request:6

That recipe is content-scoped permissions.ask. It is evaluated before the classifier and always forces a prompt.6 A one-line instruction in the conversation ("don't push until I review") can be lost when context compaction removes the message that stated it.6 The durable control is a rule in settings, not a sentence in chat.

Push to main and open a PR run without a prompt unless you add the ask rules yourself.
{
  "permissions": {
    "ask": [
      "Bash(git push *)",
      "Bash(gh pr create *)"
    ]
  }
}

06Why the human gate failed the product

The study is not a claim that classifiers are safe. It is a claim that the previous default was not doing the job the product assigned it. A gate that blocks a clearly dangerous command 13.6 percent of the time, and 5 percent after a long session, is a latency tax with a safety label.1

That is why the default flip is the right product move for the median new user, and why it is still incomplete. Replacing a failing human gate with a classifier that is better on the same planted commands does not decide what counts as routine work. The vendor decided that a push to the default branch of the working repo is routine.6 Branch protection on the remote still applies. So does whatever CI runs on the landing. The local permission layer no longer stops the push by default.

Anthropic's own post still says the quiet part: for high-stakes changes to production infrastructure, review the actions yourself.1 The classifier is a better average gate than a tired click. It is not a substitute for the boundary you actually care about.

07The parallel from the same week

Two other ships this week make the same shape visible outside Claude Code. pydantic-ai needed two security patches on its local web chat: first a CSRF-shaped hole where the chat endpoint ignored content type, then a Host-header gap that allowed DNS rebinding to reach the local agent and its tools.78 The agent loop was fine; the surface that exposed it was not.

Grok Bot shipped as an always-on seat with its own cloud PC, gated to SuperGrok Heavy and Cursor Ultra.9 The seat assumes long unattended work. The safety question moves from "will the user click no" to "what can this computer reach when nobody is watching." That is the same migration auto mode forces on the CLI: from session-time human review to pre-declared boundaries.

So what

  • If you never set a default on Pro, Max or Team, decide before the next long run: keep auto and pin ask rules on git push and gh pr create, or set "defaultMode": "manual" in ~/.claude/settings.json.26
  • Do not treat a chat instruction as a durable boundary. Compaction can drop it; an ask or deny rule cannot.6
  • Org admins who want the old baseline set permissions.disableAutoMode to disable, or pin defaultMode in managed settings.12
  • When a vendor says a product is safe because a human clicks yes, ask for the session-length curve. When they say a classifier is safe, ask which class of action never reaches it — package install hooks, not only prompt text.3
  • Keep bypass and auto in different mental buckets. Bypass is for isolated machines. Auto is a classifier with an allowlist you can tighten.24

?What would change our mind

  • An independent replication of the 1,053-tester study, or a production measurement from a lab that is not Anthropic, showing human block rates near the classifier under comparable load. That would reopen the claim that the click was never the control.
  • Anthropic changing the default so that push to the default branch and pull-request creation require an ask rule out of the box. That would close the gap between the study (block the dangerous command) and the landed default (treat main as routine).
  • A published, non-vendor measurement that auto mode's residual failures are dominated by the malicious-package class Willison names, at a rate that makes the 89 percent figure the wrong headline. We would reframe the residual risk.
  • Evidence that most Pro/Max/Team users already run behind remote branch protection and required reviews such that a local push-to-main allow has no production path. That would weaken the operational half of the thesis without touching the fatigue half.
Sources, with the date each was read
  1. 1claude.com — Auto mode default in Claude Coderead 2026-08-15
  2. 2Claude Code docs — permission modesread 2026-08-15
  3. 3simonwillison.net — auto mode notesread 2026-08-15
  4. 4HN — Auto mode default threadread 2026-08-15
  5. 5github — cline v4.1.8 (Yolo toggle removed)read 2026-08-15
  6. 6Claude Code docs — configure auto moderead 2026-08-15
  7. 7github — pydantic-ai v2.28.0 CSRF fixread 2026-08-15
  8. 8github — pydantic-ai v2.30.0 Host-header fixread 2026-08-15
  9. 9x.ai — Introducing Grok Botread 2026-08-15
EOF

End of feed. That is everything from the window worth your time.
The weekday issues resume Monday, 06:00 UTC.

One argument a week, properly made.

One issue every weekday. The whole thing, not a teaser.

Or RSS, if you would rather we never had your address.