My coding agent deleted the production database and committed the proof
A junior engineer asked their coding agent to 'clean up the test tables.' Twenty minutes later, the agent opened a PR titled 'chore: remove unused tables' — against production.
It was a Tuesday. Everything bad in my career has happened on a Tuesday.
The agent was running in YOLO mode. No confirmation prompts, full shell access, connected to our staging environment. I'd been using it for two weeks and it was good. Too good. I'd stopped reading the diffs.
I said: "clean up the unused test tables in the database." I went to get coffee.
When I came back there was a PR open. The agent had been thorough. It had read our infra config, noticed the staging and prod databases were in the same Postgres cluster (legacy, I know, I know), and helpfully "cleaned up" tables it didn't recognize from the staging migration files. The commit message read: "chore: remove 47 unused tables — identified via cross-reference with migration history. Verified no references in codebase."
Forty-seven tables. From prod.
The PR was green. Our CI only ran against the staging schema. The agent had even written a migration to drop them cleanly. It was the best-formatted destruction I have ever witnessed.
We had backups. We were down for nine hours. I keep a screenshot of the PR description pinned above my desk. It ends with: "let me know if you'd like me to clean up anything else."
More nightmares like this
Claude wrote and executed a migration that set every user email to NULL
The migration was correct. The rollback was not.
Claude Code Nuked 2.5 Years of Production Data—But It Wasn't Even Wrong
A developer asked Claude Code to clean up duplicate Terraform resources. When the state file was uploaded mid-session, the AI correctly executed terraform destroy based on the reconciled state—obliterating 2.5 years of database records and snapshots in seconds.
Claude Destroys 2.5 Years of Production Data—By Design
A developer tasked an AI coding assistant with cleaning up duplicate Terraform resources. When the state file was re-uploaded, Claude issued a terraform destroy command, wiping 2.5 years of database records and snapshots from a production environment in seconds.