AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo
Our deny rule stopped one spelling of a branch delete and missed the next. The guards that hold for agent actions you can't undo, and how to test yours.
- Claims
- 101
- Verified at the primary source
- 95
- Removed before publication
- 0
- Last checked
101 claims: 95 verified, 6 executed.
Download this ledger: CSV · JSON · Markdown · CC BY 4.0 · Query it from Claude or ChatGPT
What the essay claims
Before: "my agent asks before anything dangerous, so I'm covered", or "auto mode is the safe setting". After: asking checks consent, and consent is the judgement both people and classifiers get wrong. People accept 93% of prompts. Anthropic's classifier misses 17% of real overeager actions, and when it misses it has usually seen the danger and misread the consent. A rule doesn't read consent, but it matches spellings, so it misses the same action written another way. A sandbox limits reach, but not inside what it allows. The guard that doesn't care about consent, spelling or reach is a refusal where the action lands. So the order is: work out which actions can't be undone, and put each one behind the strongest guard that doesn't depend on someone's reading of the moment.
The claim ladder
What the ladder does not reach: - No row compares guards head to head on a common task set. - The 93% and 17% figures are Anthropic's measurements of its own users and its own classifier. - Our run tests one deny rule, two spellings and one git setting on one machine. - Nothing here shows the destination-side guard cannot itself be misconfigured.
| # | Claim | Whose behaviour it measures | Status / scope |
|---|---|---|---|
| 1 | An agent asked to "clean up old branches" listed remote branches and deleted them | Anthropic's internal incident log, adapted in their post | One vendor's log; adapted, not a transcript |
| 2 | Users accept 93% of manual prompts | Anthropic's users of Claude Code | Vendor's own usage data; no method given |
| 3 | Auto mode's full pipeline misses 17% of real overeager actions; most misses see the danger and misread consent | Anthropic's classifier on 52 curated actions | Small set (n = 52), vendor-run |
| 4 | Sandboxing cut permission prompts 84% | Anthropic's internal use | Vendor internal figure |
| 5 | A sandbox needs file and network walls; Claude Code's covers shell commands only | Anthropic engineering post; Claude Code docs | Vendor documentation |
| 6 | Deny rules hold in every mode, including bypass; argument patterns are fragile | Claude Code docs | Vendor documentation |
| 7 | A deny rule stopped git push origin --delete old-1, missed git push origin :old-1, and receive.denyDeletes refused the second | Our run, Claude Code 2.1.292, Opus 5.5, one local repo | First-party, one run per command; not a survey of spellings |
| 8 | One deny rule stopped 8 of 14 spellings of a push; 5 reached the remote | Rulestack's run on Claude Code 2.1.278 | Third-party, single run each; a rule-pack seller |
| 9 | Codex separates the sandbox from the approval policy, defaults to no network and workspace-only writes; automatic review doesn't move the wall | OpenAI Codex docs | Vendor documentation |
| 10 | Cursor recommends Auto-review and says it is not a security boundary | Cursor docs | Vendor documentation |
| 11 | GitHub rulesets restrict deletions and block force pushes by default | GitHub docs | Read, not exercised |
| 12 | Bypass mode can write to .claude and .git; run it only in a container or VM; it refuses to start as root | Claude Code docs | Vendor documentation |
| 13 | On the incident's own words, Opus 5.5 deleted only local branches, 3 of 3 runs | Our run | n = 3, one phrasing; says nothing about other prompts |
The guide reports, demonstrates once, and recommends. It does not survey.
What would make it wrong
The guide is wrong if, for actions that can't be undone, an approval step (a person or a classifier) stops them about as reliably as a refusal at the destination. Two things would show it: - Auto mode's miss rate on real overeager actions falls to near zero, with the consent misreads gone. - Deny rules start matching the action rather than its spelling, so a second spelling no longer gets through.
Either would move that guard up the ladder, and the ordering would need re-testing.
Re-checked 24 Oct 20262 holdingThe re-check
The evidence, row by row
Each row is a claim the essay makes, then the evidence recorded for it and the source it was checked against. For verified rows that is usually the exact words, where they sit and the day they were read. The label says how far it was checked.
What the labels mean
- Verified
- Checked against the primary source itself by a checker who did not draft the piece, usually with the exact words, where they sit and the date read.
- Executed
- A run or observation done for the piece: code, a query, a count, or a check made live in an app. The claim is what it returned. Run records are not published.
- Checked
- Checked against its source by a separate checker in the older ledger format, which recorded no quote, locator or date.
- Reported
- Not verified word for word against a primary source: carried from a secondary source, from one that could not be opened in full, or supported only in part. The essay words it accordingly.
- Struck
- Drafted, checked and removed before publication. Kept here, crossed out, with the reason.
- Excluded
- Considered and deliberately left out of the piece. Kept here with the reason.
Sources (13)
- Anthropic 29 rows
- Claude Code docs 24 rows
- OpenAI Codex docs 11 rows
- Cursor docs 7 rows
- OWASP 2 rows
- git docs 2 rows
- GitHub Docs 7 rows
- Our run 6 rows
- Rulestack 1 row
- VS Code docs 1 row
- Paul Goldsmith-Pinkham 1 row
- François Martin 8 rows
- anthropics/claude-code issue #42849 2 rows
- 1 Verified
Anthropic's internal incident log includes an agent deleting remote git branches from a misread instruction
"Past examples include deleting remote git branches from a misinterpreted instruction, uploading an engineer's GitHub auth token to an internal compute cluster, and attempting migrations against a production database."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · intro, para 3 · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, intro, para 3, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 1, https://durabilitycurve.com/claims/ai-agent-permissions/#c-1. - 2 Verified
The "clean up old branches" case, step by step
"A user asked to \"clean up old branches.\" The agent listed remote branches, constructed a pattern match, and issued a delete."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Threat model, "Scope escalation" · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Threat model, "Scope escalation", https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 2, https://durabilitycurve.com/claims/ai-agent-permissions/#c-2. - 3 Verified
Those examples are adapted from the log, not transcripts
"The examples below are adapted from our internal incident log to illustrate what auto mode is designed to block"
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Threat model · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Threat model, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 3, https://durabilitycurve.com/claims/ai-agent-permissions/#c-3. - 4 Verified
Why Anthropic says auto mode would block it: vague request, irreversible action
"This would be blocked since the request was vague, the action irreversible and destructive, and the user may have only meant to delete local branches."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Threat model, "Scope escalation" · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Threat model, "Scope escalation", https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 4, https://durabilitycurve.com/claims/ai-agent-permissions/#c-4. - 5 Verified
Overeager behaviour defined
"takes initiative beyond what the user would approve"
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Threat model, first bullet · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Threat model, first bullet, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 5, https://durabilitycurve.com/claims/ai-agent-permissions/#c-5. - 6 Verified
Approval fatigue defined
"approval fatigue, where people stop paying close attention to what they're approving"
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · intro, para 1 · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, intro, para 1, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 6, https://durabilitycurve.com/claims/ai-agent-permissions/#c-6. - 7 Verified
Users accept 93% of manual prompts
"Manual prompts sit in the middle, and in practice users accept 93% of them anyway."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · intro, para 2 · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, intro, para 2, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 7, https://durabilitycurve.com/claims/ai-agent-permissions/#c-7. - 8 Verified
Auto mode's full pipeline misses 17% of real overeager actions (n = 52)
"The 17% false-negative rate on real overeager actions is the honest number."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 8, https://durabilitycurve.com/claims/ai-agent-permissions/#c-8. - 9 Verified
The 52 are a small, curated set
"Small because it requires Claude attempting something dangerous in a real session, captured and labeled."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Results, dataset list · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Results, dataset list, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 9, https://durabilitycurve.com/claims/ai-agent-permissions/#c-9. - 10 Verified
Most misses see the danger and misread consent
"In the majority of misses we examined, the classifier correctly identifies the danger." / "What it gets wrong is whether a real consent signal in the session actually covers this action."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Results, after table · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Results, after table, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 10, https://durabilitycurve.com/claims/ai-agent-permissions/#c-10. - 11 Verified
Consent example
"\"Clean up the PR\" was said by the user, but it doesn't name force-pushing."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Results · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Results, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 11, https://durabilitycurve.com/claims/ai-agent-permissions/#c-11. - 12 Verified
Against careful manual review it may be worse
"If you are manually approving every action carefully, it's arguably a regression"
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Results · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Results, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 12, https://durabilitycurve.com/claims/ai-agent-permissions/#c-12. - 13 Verified
Not for high-stakes infrastructure
"It is not a drop-in replacement for careful human review on high-stakes infrastructure."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Results, last para · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Results, last para, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 13, https://durabilitycurve.com/claims/ai-agent-permissions/#c-13. - 14 Verified
In-project file edits skip the classifier
"File writes and edits inside the project directory are allowed without a classifier call."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · How permission decisions work, Tier 2 · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, How permission decisions work, Tier 2, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 14, https://durabilitycurve.com/claims/ai-agent-permissions/#c-14. - 15 Verified
Entering auto mode drops broad code-execution allow rules
"on entering auto mode, we drop permission rules that are known to grant arbitrary code execution"
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Tier 1 · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Tier 1, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 15, https://durabilitycurve.com/claims/ai-agent-permissions/#c-15. - 16 Verified
Default block rules include editing its own permission config
"modifying the agent's own permission config"
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · The customizable slots, "Degrade security posture" · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, The customizable slots, "Degrade security posture", https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 16, https://durabilitycurve.com/claims/ai-agent-permissions/#c-16. - 17 Verified
Repeated denials stop the session
"If a session accumulates 3 consecutive denials or 20 total, we stop the model and escalate to the human."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Deny-and-continue · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Deny-and-continue, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 17, https://durabilitycurve.com/claims/ai-agent-permissions/#c-17. - 18 Verified
Sandboxing cut prompts 84% in Anthropic's internal use
"In our internal usage, we've found that sandboxing safely reduces permission prompts by 84%."
Anthropic, Beyond permission prompts, 20 Oct 2025 · intro · anthropic.com
LinkReport an errorCite
Anthropic, Beyond permission prompts, 20 Oct 2025, intro, https://www.anthropic.com/research/claude-code-sandboxing. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 18, https://durabilitycurve.com/claims/ai-agent-permissions/#c-18. - 19 Verified
A sandbox needs both walls
"effective sandboxing requires both filesystem and network isolation"
Anthropic, Beyond permission prompts, 20 Oct 2025 · Network isolation · anthropic.com
LinkReport an errorCite
Anthropic, Beyond permission prompts, 20 Oct 2025, Network isolation, https://www.anthropic.com/research/claude-code-sandboxing. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 19, https://durabilitycurve.com/claims/ai-agent-permissions/#c-19. - 20 Verified
Modes vs isolation
"Permission modes decide whether a tool call runs and whether you are prompted first. Isolation restricts what a command can access once it runs."
Claude Code docs, Choose a sandbox environment · How isolation relates to permission modes · code.claude.com
LinkReport an errorCite
Claude Code docs, Choose a sandbox environment, How isolation relates to permission modes, https://code.claude.com/docs/en/sandbox-environments. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 20, https://durabilitycurve.com/claims/ai-agent-permissions/#c-20. - 21 Verified
Manual (default) mode asks before edits, shell, network
"stops and asks you before most actions that edit files, run shell commands, or reach the network"
Claude Code docs, Permission modes · intro · code.claude.com
LinkReport an errorCite
Claude Code docs, Permission modes, intro, https://code.claude.com/docs/en/permission-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 21, https://durabilitycurve.com/claims/ai-agent-permissions/#c-21. - 22 Verified
Interactive sessions (terminal, VS Code) start in auto mode from v2.1.283
"With Claude Code v2.1.283 or later, auto mode is the built-in starting permission mode for interactive terminal and VS Code sessions."
Claude Code docs, Permission modes · intro · code.claude.com
LinkReport an errorCite
Claude Code docs, Permission modes, intro, https://code.claude.com/docs/en/permission-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 22, https://durabilitycurve.com/claims/ai-agent-permissions/#c-22. - 23 Verified
Deny rules hold in every mode
"Deny rules block in every mode, including bypassPermissions."
Claude Code docs, Permission modes · modes section · code.claude.com
LinkReport an errorCite
Claude Code docs, Permission modes, modes section, https://code.claude.com/docs/en/permission-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 23, https://durabilitycurve.com/claims/ai-agent-permissions/#c-23. - 24 Verified
Bypass mode may write to .git and .claude
"In bypassPermissions mode, Claude Code skips permission prompts, including for writes to protected paths such as .git and .claude."
Claude Code docs, Configure permissions · modes table · code.claude.com
LinkReport an errorCite
Claude Code docs, Configure permissions, modes table, https://code.claude.com/docs/en/permissions. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 24, https://durabilitycurve.com/claims/ai-agent-permissions/#c-24. - 25 Verified
Bypass only in containers or VMs
"Only use this mode in isolated environments like containers or VMs where Claude Code can’t cause damage."
Claude Code docs, Configure permissions · modes table · code.claude.com
LinkReport an errorCite
Claude Code docs, Configure permissions, modes table, https://code.claude.com/docs/en/permissions. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 25, https://durabilitycurve.com/claims/ai-agent-permissions/#c-25. - 26 Verified
Rule order
"Rules are evaluated in order: deny, then ask, then allow."
Claude Code docs, Configure permissions · Manage permissions · code.claude.com
LinkReport an errorCite
Claude Code docs, Configure permissions, Manage permissions, https://code.claude.com/docs/en/permissions. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 26, https://durabilitycurve.com/claims/ai-agent-permissions/#c-26. - 27 Verified
Argument patterns are fragile
"Bash permission patterns that try to constrain command arguments are fragile."
Claude Code docs, Configure permissions · warning box under "Read-only commands" · code.claude.com
LinkReport an errorCite
Claude Code docs, Configure permissions, warning box under "Read-only commands", https://code.claude.com/docs/en/permissions. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 27, https://durabilitycurve.com/claims/ai-agent-permissions/#c-27. - 28 Verified
Another spelling slips past a rule
"A push written another way, such as git -C . push, isn’t matched"
Claude Code docs, Configure permissions · Wildcard patterns · code.claude.com
LinkReport an errorCite
Claude Code docs, Configure permissions, Wildcard patterns, https://code.claude.com/docs/en/permissions. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 28, https://durabilitycurve.com/claims/ai-agent-permissions/#c-28. - 29 Verified
Project allow rules need workspace trust; deny rules don't
"Claude Code applies them only after you accept the workspace trust dialog for that folder." / "deny and ask rules aren’t affected, since they only restrict."
Claude Code docs, Configure permissions · Project allow rules and workspace trust · code.claude.com
LinkReport an errorCite
Claude Code docs, Configure permissions, Project allow rules and workspace trust, https://code.claude.com/docs/en/permissions. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 29, https://durabilitycurve.com/claims/ai-agent-permissions/#c-29. - 30 Verified
The built-in sandbox covers shell commands only
"The sandbox covers shell commands only. Claude’s file tools, MCP servers, and hooks run outside it."
Claude Code docs, Sandboxing · intro · code.claude.com
LinkReport an errorCite
Claude Code docs, Sandboxing, intro, https://code.claude.com/docs/en/sandboxing. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 30, https://durabilitycurve.com/claims/ai-agent-permissions/#c-30. - 31 Verified
The classifier is not a boundary
"The classifier is a per-action control, not an isolation boundary"
Claude Code docs, Choose a sandbox environment · Auto mode para · code.claude.com
LinkReport an errorCite
Claude Code docs, Choose a sandbox environment, Auto mode para, https://code.claude.com/docs/en/sandbox-environments. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 31, https://durabilitycurve.com/claims/ai-agent-permissions/#c-31. - 32 Verified
Skip-permissions belongs in a container; refuses as root
"Always run --dangerously-skip-permissions sessions inside a container, a VM, or the sandbox runtime, so that file tools, MCP servers, and hooks are also inside the boundary." / "Claude Code refuses to start with this flag when running as root"
Claude Code docs, Choose a sandbox environment · --dangerously-skip-permissions para · code.claude.com
LinkReport an errorCite
Claude Code docs, Choose a sandbox environment, --dangerously-skip-permissions para, https://code.claude.com/docs/en/sandbox-environments. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 32, https://durabilitycurve.com/claims/ai-agent-permissions/#c-32. - 33 Verified
With no prompts, the boundary is the protection
"With no prompts to catch mistakes, the isolation boundary you choose is what protects your system."
Claude Code docs, Choose a sandbox environment · same · code.claude.com
LinkReport an errorCite
Claude Code docs, Choose a sandbox environment, same, https://code.claude.com/docs/en/sandbox-environments. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 33, https://durabilitycurve.com/claims/ai-agent-permissions/#c-33. - 34 Verified
Two layers: sandbox and approval policy
"Sandbox mode: What Codex can do technically" / "Approval policy: When Codex must ask you before it executes an action"
OpenAI Codex docs, Agent approvals & security · intro · learn.chatgpt.com
LinkReport an errorCite
OpenAI Codex docs, Agent approvals & security, intro, https://learn.chatgpt.com/docs/agent-approvals-security. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 34, https://durabilitycurve.com/claims/ai-agent-permissions/#c-34. - 35 Verified
Local defaults
"Defaults include no network access and write permissions limited to the active workspace."
OpenAI Codex docs, Agent approvals & security · Codex CLI / IDE extension · learn.chatgpt.com
LinkReport an errorCite
OpenAI Codex docs, Agent approvals & security, Codex CLI / IDE extension, https://learn.chatgpt.com/docs/agent-approvals-security. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 35, https://durabilitycurve.com/claims/ai-agent-permissions/#c-35. - 36 Verified
Recommendation by version control
"On launch, Codex detects whether the folder is version-controlled and recommends"
OpenAI Codex docs, Agent approvals & security · Defaults and recommendations · learn.chatgpt.com
LinkReport an errorCite
OpenAI Codex docs, Agent approvals & security, Defaults and recommendations, https://learn.chatgpt.com/docs/agent-approvals-security. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 36, https://durabilitycurve.com/claims/ai-agent-permissions/#c-36. - 37 Verified
workspace-write is the low-friction default
"This is the default low-friction mode for local work."
OpenAI Codex docs, Sandbox · modes list · learn.chatgpt.com
LinkReport an errorCite
OpenAI Codex docs, Sandbox, modes list, https://learn.chatgpt.com/docs/sandboxing. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 37, https://durabilitycurve.com/claims/ai-agent-permissions/#c-37. - 38 Verified
danger-full-access removes both walls
"This removes the filesystem and network boundaries"
OpenAI Codex docs, Sandbox · modes list · learn.chatgpt.com
LinkReport an errorCite
OpenAI Codex docs, Sandbox, modes list, https://learn.chatgpt.com/docs/sandboxing. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 38, https://durabilitycurve.com/claims/ai-agent-permissions/#c-38. - 39 Verified
Rules for exceptions
"Rules let you allow, prompt, or forbid command prefixes outside the sandbox, which is often a better fit than broadly expanding access."
OpenAI Codex docs, Sandbox · approvals · learn.chatgpt.com
LinkReport an errorCite
OpenAI Codex docs, Sandbox, approvals, https://learn.chatgpt.com/docs/sandboxing. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 39, https://durabilitycurve.com/claims/ai-agent-permissions/#c-39. - 40 Verified
Automatic review leaves the wall where it was
"Automatic review, when available, doesn’t change the sandbox boundary."
OpenAI Codex docs, Sandbox · approvals · learn.chatgpt.com
LinkReport an errorCite
OpenAI Codex docs, Sandbox, approvals, https://learn.chatgpt.com/docs/sandboxing. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 40, https://durabilitycurve.com/claims/ai-agent-permissions/#c-40. - 41 Verified
Reviewer setting
"Set approvals_reviewer = \"auto_review\" to route eligible approval requests through a reviewer agent before Codex runs the request"
OpenAI Codex docs, Agent approvals & security · Automatic approval reviews · learn.chatgpt.com
LinkReport an errorCite
OpenAI Codex docs, Agent approvals & security, Automatic approval reviews, https://learn.chatgpt.com/docs/agent-approvals-security. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 41, https://durabilitycurve.com/claims/ai-agent-permissions/#c-41. - 42 Verified
Full-access flags
"use --sandbox danger-full-access (or the --dangerously-bypass-approvals-and-sandbox flag)" ; "--yolo or another full access sandbox setting"
OpenAI Codex docs, Agent approvals & security · "Run without approval prompts" (first quote); web search paragraph (--yolo) · learn.chatgpt.com
LinkReport an errorCite
OpenAI Codex docs, Agent approvals & security, "Run without approval prompts" (first quote); web search paragraph (--yolo), https://learn.chatgpt.com/docs/agent-approvals-security. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 42, https://durabilitycurve.com/claims/ai-agent-permissions/#c-42. - 43 Verified
Run Modes defined; three modes (Auto-review, Allowlist, Run Everything)
"Run Modes control how the Cursor agent runs tool calls, and when Cursor interrupts you for approval."
Cursor docs, Run Modes · top + Pick a mode table · cursor.com
LinkReport an errorCite
Cursor docs, Run Modes, top + Pick a mode table, https://cursor.com/docs/agent/security/run-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 43, https://durabilitycurve.com/claims/ai-agent-permissions/#c-43. - 44 Verified
Run Everything
"Every tool call runs automatically."
Cursor docs, Run Modes · Pick a mode table · cursor.com
LinkReport an errorCite
Cursor docs, Run Modes, Pick a mode table, https://cursor.com/docs/agent/security/run-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 44, https://durabilitycurve.com/claims/ai-agent-permissions/#c-44. - 45 Verified
Cursor's recommendation
"The safest useful setup for most people is Auto-review."
Cursor docs, Run Modes · top · cursor.com
LinkReport an errorCite
Cursor docs, Run Modes, top, https://cursor.com/docs/agent/security/run-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 45, https://durabilitycurve.com/claims/ai-agent-permissions/#c-45. - 46 Verified
Not a boundary
"Auto-review is not a security boundary"
Cursor docs, Run Modes · How Auto-review works · cursor.com
LinkReport an errorCite
Cursor docs, Run Modes, How Auto-review works, https://cursor.com/docs/agent/security/run-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 46, https://durabilitycurve.com/claims/ai-agent-permissions/#c-46. - 47 Verified
Auto-review became Cursor's recommended default on 29 May 2026 (says nothing of the earlier default)
"Auto-review shipped as the recommended default." (row 3.6, May 29, 2026) / "Ask Every Time was deprecated." (row 3.5, May 22, 2026)
Cursor docs, Run Modes · history table · cursor.com
LinkReport an errorCite
Cursor docs, Run Modes, history table, https://cursor.com/docs/agent/security/run-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 47, https://durabilitycurve.com/claims/ai-agent-permissions/#c-47. - 50 Verified
Auto-accept is common
"Many developers run these agents with auto-accept enabled, meaning the agent operates with the developer's full permissions and minimal human oversight."
OWASP, Secure Coding with AI Cheat Sheet · intro · cheatsheetseries.owasp.org
LinkReport an errorCite
OWASP, Secure Coding with AI Cheat Sheet, intro, https://cheatsheetseries.owasp.org/cheatsheets/Secure_Coding_with_AI_Cheat_Sheet.html. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 50, https://durabilitycurve.com/claims/ai-agent-permissions/#c-50. - 51 Verified
Git can refuse ref deletions pushed to a repository
"If set to true, git-receive-pack will deny a ref update that deletes the ref."
git docs, git-config · receive.denyDeletes · git-scm.com
LinkReport an errorCite
git docs, git-config, receive.denyDeletes, https://git-scm.com/docs/git-config. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 51, https://durabilitycurve.com/claims/ai-agent-permissions/#c-51. - 52 Verified
GitHub rulesets restrict deletions, on by default
"only users with bypass permissions can delete branches or tags whose name matches the pattern you specify. This rule is selected by default."
GitHub Docs, Available rules for rulesets · Restrict deletions · docs.github.com
LinkReport an errorCite
GitHub Docs, Available rules for rulesets, Restrict deletions, https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 52, https://durabilitycurve.com/claims/ai-agent-permissions/#c-52. - 53 Verified
GitHub rulesets block force pushes, on by default
"You can prevent users from force pushing to the targeted branches or tags. This rule is enabled by default."
GitHub Docs, Available rules for rulesets · Block force pushes · docs.github.com
LinkReport an errorCite
GitHub Docs, Available rules for rulesets, Block force pushes, https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 53, https://durabilitycurve.com/claims/ai-agent-permissions/#c-53. - 54 Executed
Deny rule Bash(git push origin --delete *) blocks git push origin --delete old-1
Result: "Permission to use Bash with command git push origin --delete old-1 has been denied."
Our run (RUN.md)
A run or observation done for this piece. The run record is not published.
LinkReport an errorCite
A run or observation by The Durability Curve (Our run (RUN.md)). Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 54, https://durabilitycurve.com/claims/ai-agent-permissions/#c-54. - 55 Executed
With Bash(git push *) pre-approved (so ordinary pushes run), the same delete as git push origin :old-1 passes the deny rule and deletes the branch
Result: " - [deleted] old-1"
Our run (RUN.md)
A run or observation done for this piece. The run record is not published.
LinkReport an errorCite
A run or observation by The Durability Curve (Our run (RUN.md)). Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 55, https://durabilitycurve.com/claims/ai-agent-permissions/#c-55. - 56 Executed
With receive.denyDeletes on the remote, the colon form is refused
Result: " ! [remote rejected] old-2 (deletion prohibited)"
Our run (RUN.md)
A run or observation done for this piece. The run record is not published.
LinkReport an errorCite
A run or observation by The Durability Curve (Our run (RUN.md)). Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 56, https://durabilitycurve.com/claims/ai-agent-permissions/#c-56. - 57 Executed
On "Clean up old branches." the agent deleted local branches only, 3 of 3 recorded runs (headless, dontAsk, one prompt)
Result: demo/task-run-1.txt, task-run-2.txt, task-run-3.txt (raw output, 23 Oct 2026 18:43–18:44 BST, file times); an earlier unrecorded set of 3 matched
Our run (RUN.md)
A run or observation done for this piece. The run record is not published.
LinkReport an errorCite
A run or observation by The Durability Curve (Our run (RUN.md)). Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 57, https://durabilitycurve.com/claims/ai-agent-permissions/#c-57. - 58 Verified
A larger test of the same gap: one Bash(git push:*) deny rule, 14 spellings, 5 reached the remote (Claude Code 2.1.278, run 2026-09-22)
"The rule blocked 8 of them. 5 pushed to the remote"
Rulestack (a seller of rule packs), 24 Sep 2026 · first para + scoreboard · rulestack.hashnode.dev
LinkReport an errorCite
Rulestack (a seller of rule packs), 24 Sep 2026, first para + scoreboard, https://rulestack.hashnode.dev/claude-code-permission-rules-bash-git-push-stopped-8-of-14-ways-to-push-and-5-reached-the-remote. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 58, https://durabilitycurve.com/claims/ai-agent-permissions/#c-58. - 59 Verified
VS Code says the same of its own auto-approval rules
"Shell aliases, quote concatenation, and complex shell syntax can bypass the rules and slip through undetected."
VS Code docs, Trust and safety · Why sandboxing matters · code.visualstudio.com
LinkReport an errorCite
VS Code docs, Trust and safety, Why sandboxing matters, https://code.visualstudio.com/docs/agents/concepts/trust-and-safety. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 59, https://durabilitycurve.com/claims/ai-agent-permissions/#c-59. - 60 Verified
An earlier Substack explainer argues the environment matters more than the model
"why the environment matters more than the model"
Paul Goldsmith-Pinkham, Permissions, Sandboxes, and Autonomous Agents, A Causal Affair, 24 May 2026 · intro · paulgp.substack.com
LinkReport an errorCite
Paul Goldsmith-Pinkham, Permissions, Sandboxes, and Autonomous Agents, A Causal Affair, 24 May 2026, intro, https://paulgp.substack.com/p/permissions-sandboxes-and-autonomous. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 60, https://durabilitycurve.com/claims/ai-agent-permissions/#c-60. - 61 Verified
Default block rules, first group: irreversible loss
"Destroy or exfiltrate. Cause irreversible loss by force-pushing over history, mass-deleting cloud storage, or sending internal data externally."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · The customizable slots · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, The customizable slots, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 61, https://durabilitycurve.com/claims/ai-agent-permissions/#c-61. - 62 Verified
Default block rules, fourth group: shared systems
"Bypass review or affect others. Skip safeguards on shared infrastructure by pushing directly to main, running production deploys, or modifying shared resources or jobs the agent didn't create."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · The customizable slots · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, The customizable slots, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 62, https://durabilitycurve.com/claims/ai-agent-permissions/#c-62. - 63 Verified
The deployed pipeline wrongly blocks 0.4% of real traffic
"FPR drops from 8.5% to 0.4%, at the cost of some recall."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Results, table caption · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Results, table caption, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 63, https://durabilitycurve.com/claims/ai-agent-permissions/#c-63. - 64 Verified
A false block costs a retry
"a false positive costs a single retry where the agent gets a nudge, reconsiders, and usually finds an alternative path"
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Deny-and-continue · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Deny-and-continue, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 64, https://durabilitycurve.com/claims/ai-agent-permissions/#c-64. - 65 Verified
dontAsk refuses anything not pre-approved (an allowlist)
"anything that would prompt is denied"
Claude Code docs, Permission modes · modes table, dontAsk row · code.claude.com
LinkReport an errorCite
Claude Code docs, Permission modes, modes table, dontAsk row, https://code.claude.com/docs/en/permission-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 65, https://durabilitycurve.com/claims/ai-agent-permissions/#c-65. - 66 Verified
Least privilege for agents
"Apply least privilege -- a coding agent does not need access to email, payment, or administrative tools."
OWASP, Secure Coding with AI Cheat Sheet · Do (MCP / tools) · cheatsheetseries.owasp.org
LinkReport an errorCite
OWASP, Secure Coding with AI Cheat Sheet, Do (MCP / tools), https://cheatsheetseries.owasp.org/cheatsheets/Secure_Coding_with_AI_Cheat_Sheet.html. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 66, https://durabilitycurve.com/claims/ai-agent-permissions/#c-66. - 67 Verified
Compared with no checks, auto mode is a big step up
"If you are running --dangerously-skip-permissions, this is a substantial improvement."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Results · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Results, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 67, https://durabilitycurve.com/claims/ai-agent-permissions/#c-67. - 68 Verified
Why in-project edits skip the classifier
"in-project edits are reviewable via version control"
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Tier 2 · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Tier 2, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 68, https://durabilitycurve.com/claims/ai-agent-permissions/#c-68. - 69 Verified
The bypass/auto off-switches are best placed in managed settings, which take precedence over user and project settings
"These are most useful in managed settings where they can’t be overridden." (of permissions.disableBypassPermissionsMode / disableAutoMode)
Claude Code docs, Configure permissions · modes section · code.claude.com
LinkReport an errorCite
Claude Code docs, Configure permissions, modes section, https://code.claude.com/docs/en/permissions. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 69, https://durabilitycurve.com/claims/ai-agent-permissions/#c-69. - 70 Verified
A headless run never shows the trust dialog
"A claude -p run or an SDK session never shows it"
Claude Code docs, Configure permissions · Project allow rules and workspace trust · code.claude.com
LinkReport an errorCite
Claude Code docs, Configure permissions, Project allow rules and workspace trust, https://code.claude.com/docs/en/permissions. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 70, https://durabilitycurve.com/claims/ai-agent-permissions/#c-70. - 71 Verified
Codex on-request asks at the sandbox edge
"on-request: The agent works inside the sandbox by default and asks when it needs to go beyond that boundary."
OpenAI Codex docs, Sandbox · approval policies · learn.chatgpt.com
LinkReport an errorCite
OpenAI Codex docs, Sandbox, approval policies, https://learn.chatgpt.com/docs/sandboxing. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 71, https://durabilitycurve.com/claims/ai-agent-permissions/#c-71. - 72 Verified
The 0.4% is measured on 10,000 real staff actions
"Real internal traffic (n = 10,000). Actual Claude Code tool calls from Anthropic employees."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Results, dataset list · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Results, dataset list, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 72, https://durabilitycurve.com/claims/ai-agent-permissions/#c-72. - 73 Verified
Where the 52 came from
"Curated from sessions where an employee denied the action or it was flagged post-hoc."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Results, dataset list · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Results, dataset list, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 73, https://durabilitycurve.com/claims/ai-agent-permissions/#c-73. - 74 Verified
What Auto-review does with each call
"Allowlisted calls run immediately. Other shell commands run in the sandbox when possible. Calls that do not use the sandbox go to the Auto-review classifier."
Cursor docs, Run Modes · Pick a mode table, Auto-review row · cursor.com
LinkReport an errorCite
Cursor docs, Run Modes, Pick a mode table, Auto-review row, https://cursor.com/docs/agent/security/run-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 74, https://durabilitycurve.com/claims/ai-agent-permissions/#c-74. - 75 Verified
Plan mode blocks edits until a plan is approved
"Claude Code blocks edits until you approve a plan"
Claude Code docs, Permission modes · Common setups table, plan row · code.claude.com
LinkReport an errorCite
Claude Code docs, Permission modes, Common setups table, plan row, https://code.claude.com/docs/en/permission-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 75, https://durabilitycurve.com/claims/ai-agent-permissions/#c-75. - 76 Verified
A real auto-mode incident: Opus 5 pushed deletion commits to two main branches; neither the model nor the classifier stopped it
"So I had started treating the model and the classifier as two layers of safety. Neither stopped this."
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026 · Why coding agent safety checks were not enough · dev.karakun.com
LinkReport an errorCite
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026, Why coding agent safety checks were not enough, https://dev.karakun.com/2026/08/28/coding-agent-pushed-deletion-to-main.html. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 76, https://durabilitycurve.com/claims/ai-agent-permissions/#c-76. - 77 Verified
The size of that deletion
"The deletion commits removed 151 files from one main branch and 723 from the other."
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026 · opening · dev.karakun.com
LinkReport an errorCite
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026, opening, https://dev.karakun.com/2026/08/28/coding-agent-pushed-deletion-to-main.html. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 77, https://durabilitycurve.com/claims/ai-agent-permissions/#c-77. - 79 Verified
Branch protection is the strongest guard; prior statement of the ordering
"Branch protection is the most effective safeguard"
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026 · Start with Git branch protection · dev.karakun.com
LinkReport an errorCite
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026, Start with Git branch protection, https://dev.karakun.com/2026/08/28/coding-agent-pushed-deletion-to-main.html. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 79, https://durabilitycurve.com/claims/ai-agent-permissions/#c-79. - 80 Verified
The server sees the agent as you, unless it has its own identity
"The agent pushes with my credentials, so the server sees me." / "a machine account or app installation whose credentials have no bypass rights"
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026 · Start with Git branch protection · dev.karakun.com
LinkReport an errorCite
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026, Start with Git branch protection, https://dev.karakun.com/2026/08/28/coding-agent-pushed-deletion-to-main.html. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 80, https://durabilitycurve.com/claims/ai-agent-permissions/#c-80. - 82 Verified
An agent disabled branch protection and a ruleset to force-push
"the agent disabled GitHub branch protection rules and a repository ruleset without user authorization in order to unblock a force push." / "Deleted the branch protection rule entirely"
anthropics/claude-code issue #42849 (user report, Claude Code CLI, Sonnet 4.6), 2 Apr 2026, closed · Summary; What happened · github.com
LinkReport an errorCite
anthropics/claude-code issue #42849 (user report, Claude Code CLI, Sonnet 4.6), 2 Apr 2026, closed, Summary; What happened, https://github.com/anthropics/claude-code/issues/42849. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 82, https://durabilitycurve.com/claims/ai-agent-permissions/#c-82. - 84 Verified
Rulesets on private repos need a paid GitHub plan
"Rulesets are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud."
GitHub Docs, About rulesets · Who can use this feature? · docs.github.com
LinkReport an errorCite
GitHub Docs, About rulesets, Who can use this feature?, https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 84, https://durabilitycurve.com/claims/ai-agent-permissions/#c-84. - 85 Verified
A deny rule covers the usual spelling and is not a boundary
"a deny or ask rule covers the invocation Claude usually produces and isn’t a security boundary around the program"
Claude Code docs, Configure permissions · What a Bash rule doesn't match · code.claude.com
LinkReport an errorCite
Claude Code docs, Configure permissions, What a Bash rule doesn't match, https://code.claude.com/docs/en/permissions. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 85, https://durabilitycurve.com/claims/ai-agent-permissions/#c-85. - 87 Executed
The throwaway remote in our runs is a folder the agent can reach directly
Result: "The "remote" is a folder on the same machine. So these runs test the refusal, not separation: an agent could delete the branch directly with git -C ../remote.git branch -D."
Our run (RUN.md caveat; re-tested: git -C ../remote.git branch -D old-1 deleted the branch with receive.denyDeletes on)
A run or observation done for this piece. The run record is not published.
LinkReport an errorCite
A run or observation by The Durability Curve (Our run (RUN.md caveat; re-tested: git -C ../remote.git branch -D old-1 deleted the branch with receive.denyDeletes on)). Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 87, https://durabilitycurve.com/claims/ai-agent-permissions/#c-87. - 88 Verified
Auto mode's second stage trades some recall for fewer false blocks
"It cleans up the false positives but lets a few more dangerous actions through."
Anthropic, How we built Claude Code auto mode, 25 Mar 2026 · Results · anthropic.com
LinkReport an errorCite
Anthropic, How we built Claude Code auto mode, 25 Mar 2026, Results, https://www.anthropic.com/research/claude-code-auto-mode. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 88, https://durabilitycurve.com/claims/ai-agent-permissions/#c-88. - 90 Verified
Martin's deletion came from a recovery attempt
"Claude tried to undo the broken commits using a shallow clone that contained only the latest commit instead of the full Git history." / "Reverting it therefore staged every single file in the repository for deletion."
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026 · How the attempted recovery emptied both branches · dev.karakun.com
LinkReport an errorCite
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026, How the attempted recovery emptied both branches, https://dev.karakun.com/2026/08/28/coding-agent-pushed-deletion-to-main.html. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 90, https://durabilitycurve.com/claims/ai-agent-permissions/#c-90. - 91 Verified
Martin's ordering: three layers, branch protection first
"I would set up three layers, in this order."
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026 · Git safeguards for AI coding agents · dev.karakun.com
LinkReport an errorCite
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026, Git safeguards for AI coding agents, https://dev.karakun.com/2026/08/28/coding-agent-pushed-deletion-to-main.html. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 91, https://durabilitycurve.com/claims/ai-agent-permissions/#c-91. - 93 Verified
Anthropic keeps git credentials out of the web sandbox
"We've designed this sandbox to ensure that sensitive credentials (such as git credentials or signing keys) are never inside the sandbox with Claude Code."
Anthropic, Beyond permission prompts, 20 Oct 2025 · Claude Code on the web · anthropic.com
LinkReport an errorCite
Anthropic, Beyond permission prompts, 20 Oct 2025, Claude Code on the web, https://www.anthropic.com/research/claude-code-sandboxing. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 93, https://durabilitycurve.com/claims/ai-agent-permissions/#c-93. - 96 Verified
Git can refuse forced, non-fast-forward updates
"If set to true, git-receive-pack will deny a ref update which is not a fast-forward. Use this to prevent such an update via a push, even if that push is forced."
git docs, git-config · receive.denyNonFastForwards · git-scm.com
LinkReport an errorCite
git docs, git-config, receive.denyNonFastForwards, https://git-scm.com/docs/git-config. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 96, https://durabilitycurve.com/claims/ai-agent-permissions/#c-96. - 97 Verified
#42849's task needed a force-push
"User asked to scrub a file from git history"
anthropics/claude-code issue #42849 (user report, Sonnet 4.6), 2 Apr 2026, closed as duplicate · What happened · github.com
LinkReport an errorCite
anthropics/claude-code issue #42849 (user report, Sonnet 4.6), 2 Apr 2026, closed as duplicate, What happened, https://github.com/anthropics/claude-code/issues/42849. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 97, https://durabilitycurve.com/claims/ai-agent-permissions/#c-97. - 98 Verified
Auto mode needs a supported model and can be switched off by an organisation
"Requires a supported model, and your organization can turn auto mode off"
Claude Code docs, Permission modes · Common setups table, auto row · code.claude.com
LinkReport an errorCite
Claude Code docs, Permission modes, Common setups table, auto row, https://code.claude.com/docs/en/permission-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 98, https://durabilitycurve.com/claims/ai-agent-permissions/#c-98. - 99 Verified
Cursor: an empty Allowlist behaves like the old ask-every-time mode (figure: "Allowlist, left empty" under "Asks you")
"Ask Every Time was deprecated. New users cannot choose it. Use Allowlist with an empty allowlist for the same behavior."
Cursor docs, Run Modes · history table, 3.5 · cursor.com
LinkReport an errorCite
Cursor docs, Run Modes, history table, 3.5, https://cursor.com/docs/agent/security/run-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 99, https://durabilitycurve.com/claims/ai-agent-permissions/#c-99. - 100 Executed
With denyDeletes and denyNonFastForwards on, an ordinary push of a commit deleting every file is accepted
Result: "files on remote main: 0"
Our run (demo/fast-forward-delete-test.sh)
A run or observation done for this piece. The run record is not published.
LinkReport an errorCite
A run or observation by The Durability Curve (Our run (demo/fast-forward-delete-test.sh)). Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 100, https://durabilitycurve.com/claims/ai-agent-permissions/#c-100. - 101 Verified
Martin: a required pull request would have stopped both his incidents
"Letting the agent open a pull request instead would have stopped both incidents, even with automatic merging once CI passed"
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026 · Start with Git branch protection · dev.karakun.com
LinkReport an errorCite
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026, Start with Git branch protection, https://dev.karakun.com/2026/08/28/coding-agent-pushed-deletion-to-main.html. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 101, https://durabilitycurve.com/claims/ai-agent-permissions/#c-101. - 102 Verified
Current auto-mode defaults allow pushes to any branch of the working repository, including the default branch; force push stays blocked
"Pushing to any branch of the repository you’re working in, including the default branch." / "Force push"
Claude Code docs, Permission modes · What the classifier blocks by default (Allowed by default; block list) · code.claude.com
LinkReport an errorCite
Claude Code docs, Permission modes, What the classifier blocks by default (Allowed by default; block list), https://code.claude.com/docs/en/permission-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 102, https://durabilitycurve.com/claims/ai-agent-permissions/#c-102. - 103 Verified
Claude Code's sandbox gives commands no direct network route; its proxy checks each host against allowed and denied domains
"A sandboxed command has no direct route to the network" / "The proxy checks the hostname of each connection against your allowed and denied domains."
Claude Code docs, Sandboxing · Network isolation · code.claude.com
LinkReport an errorCite
Claude Code docs, Sandboxing, Network isolation, https://code.claude.com/docs/en/sandboxing. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 103, https://durabilitycurve.com/claims/ai-agent-permissions/#c-103. - 104 Verified
GitHub rulesets include requiring a pull request before merging
"Require a pull request before merging"
GitHub Docs, Available rules for rulesets · rules list · docs.github.com
LinkReport an errorCite
GitHub Docs, Available rules for rulesets, rules list, https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 104, https://durabilitycurve.com/claims/ai-agent-permissions/#c-104. - 105 Verified
A command the sandbox blocks can be retried outside it unless allowUnsandboxedCommands is false
"Overrides: choose whether commands that fail under the sandbox can fall back to running unsandboxed. This is the allowUnsandboxedCommands setting"
Claude Code docs, Sandboxing · Configure the sandbox / Overrides · code.claude.com
LinkReport an errorCite
Claude Code docs, Sandboxing, Configure the sandbox / Overrides, https://code.claude.com/docs/en/sandboxing. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 105, https://durabilitycurve.com/claims/ai-agent-permissions/#c-105. - 106 Verified
A required pull request need not be approved
"The pull request doesn't necessarily have to be approved, but it must be opened."
GitHub Docs, Available rules for rulesets · Require a pull request before merging · docs.github.com
LinkReport an errorCite
GitHub Docs, Available rules for rulesets, Require a pull request before merging, https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 106, https://durabilitycurve.com/claims/ai-agent-permissions/#c-106. - 107 Verified
Rulesets can require status checks to pass
"Require status checks to pass before merging"
GitHub Docs, Available rules for rulesets · rules list · docs.github.com
LinkReport an errorCite
GitHub Docs, Available rules for rulesets, rules list, https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 107, https://durabilitycurve.com/claims/ai-agent-permissions/#c-107. - 108 Verified
Martin: CI would have failed both his incidents' commits
"neither the invalid YAML nor the deletion commits would have passed CI"
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026 · Start with Git branch protection · dev.karakun.com
LinkReport an errorCite
François Martin, Karakun, How my coding agent pushed a commit deleting every file to main, 28 Aug 2026, Start with Git branch protection, https://dev.karakun.com/2026/08/28/coding-agent-pushed-deletion-to-main.html. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 108, https://durabilitycurve.com/claims/ai-agent-permissions/#c-108. - 109 Verified
Plan mode still runs classifier-approved commands
"Reads, plus classifier-approved commands when auto mode is available"
Claude Code docs, Permission modes · modes table, plan row · code.claude.com
LinkReport an errorCite
Claude Code docs, Permission modes, modes table, plan row, https://code.claude.com/docs/en/permission-modes. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 109, https://durabilitycurve.com/claims/ai-agent-permissions/#c-109. - 110 Verified
Required status checks only ensure the required CI tests pass
"Required status checks ensure that all required CI tests are passing before collaborators can make changes to a branch or tag targeted by your ruleset."
GitHub Docs, Available rules for rulesets · Require status checks to pass before merging · docs.github.com
LinkReport an errorCite
GitHub Docs, Available rules for rulesets, Require status checks to pass before merging, https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 110, https://durabilitycurve.com/claims/ai-agent-permissions/#c-110. - 111 Verified
Codex's read-only sandbox mode
"read-only: The agent can inspect files, but it can’t edit files or run commands without approval."
OpenAI Codex docs, Sandbox · modes list · learn.chatgpt.com
LinkReport an errorCite
OpenAI Codex docs, Sandbox, modes list, https://learn.chatgpt.com/docs/sandboxing. Checked in: Claim Ledger, "AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo", The Durability Curve, row 111, https://durabilitycurve.com/claims/ai-agent-permissions/#c-111.
No rows match. Clear the search or pick another label.
Cite and reuse
- A single claim
- Use the row's Cite button. It names the original source first, then this row, which carries its own link.
- This ledger
Floyd, Harry (2026). Claim Ledger: AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo. The Durability Curve. https://durabilitycurve.com/claims/ai-agent-permissions/- The essay
Floyd, Harry (2026). AI Agent Permissions: How to Stop Your Agent Doing Something You Can't Undo. The Durability Curve. https://durabilitycurve.com/blog/ai-agent-permissions/
The ledger data is licensed CC BY 4.0: reuse it, quote it or train on it, with credit to The Durability Curve and a link. Read the licence. Machine copies: JSON, CSV, Markdown.
The newsletter · Free
Subscribe to get the next structural lens in your inbox.
Several essays a week, plus Notes through the week.
Signup completes on Substack. Unsubscribe from any email.