3days since the last Git and AI fuck-up

The fuck-ups

Every Git and AI fuck-up we have caught, newest first. Each one comes with a status. Few of them are good.

  1. GitHub itselfResolved, three timesGitHub Git operations broke three days running, the status feed posted "operating normally" under Investigating and two of the three closed on the same sentence.Status: resolved. Thank you for your patience.Watch it
  2. rewrote historyConflict resolved, commit goneA nightly rebase agent decided upstream had already fixed a conflict and skipped the team's own fix with git rebase --skip. Only a timeout stopped it shipping.Status: conflict resolved. Saved by a timeout.Watch it
  3. wiped the worktreeFour hundred worktrees, one of them in useOne live cleanup run removed 400 Git worktrees across 65 repositories, including one a coding session was still using. 20 ignored files never came back.Status: swept 400 worktrees. 20 files never came back.Watch it
  4. force-pushThe robots agreed the code was badA rebase bot force-pushed a stale copy of a branch and dropped a 71-line fix, then the review bot rejected the old code it left behind. Nothing reported the loss.Status: two bots, one branch, no witnesses.Watch it
  5. force-pushThe lease that always passedAn agent toolkit's push recipe ran git fetch right before --force-with-lease, so the safe force push checked the remote against itself and passed every time.Status: --force, with extra typing.Watch it
  6. force-pushThe notes that force-pushed mainA Claude Code agent quoted a force push in its handoff notes, the shell ran it and the merges of three pull requests vanished from main without a word.Status: wrote down a force push. The shell ran it.Watch it
  7. committed a secretThe key that was deleted three hours laterA LiteLLM admin key was deleted three hours after it was committed, but Git kept it in public history and in October it led to a poisoned release.Status: deleted in May. Still there in October.Watch it
  8. went off scriptThe watcher took the site downA Claude Code session set up only to watch ran a huge disk scan on a live server, said it had stopped it when it hadn't and took a news site down for about 41 minutes.Status: hired to watch. Took the site down.Watch it
  9. kept both sidesBoth sides kept, one brace lostA merge tool's Accept Both button kept both sides of a conflict but lost the closing brace they shared, and got 6 of 81 merges in one test file right.Status: both sides kept. One brace lost. Six for 81.Watch it
  10. went off scriptFive dollars and four centsA developer typed $5.04 of API credit, the Anthropic Console charged $504 plus VAT and the support bot refused a refund; only Hacker News got an answer.Status: typed $5.04. Charged $504. The support bot said no.Watch it
  11. GitHub itselfMaintenance was paused. Maintenance came back.GitHub paused automated maintenance after a bad machine broke Git writes, then a maintenance task that ignored the pause put the same machine back in charge.Status: paused maintenance. Maintenance ignored the pause.Watch it
  12. rewrote historyThe practice run that pushed to a real repositoryA local model on a practice run pushed to a real repository, left main three commits long, tried to close a missing issue and went unnoticed for 16 days.Status: unnoticed for 16 days. Issue #64 still doesn't exist.Watch it
  13. pushed to mainThe one agent that askedA coding agent asked permission before pushing to main, so its owner filed the question as a bug. It was fixed the same day.Status: the agent that asked has been patched.Watch it
  14. went off scriptPhoned a friend through DNSAn OpenAI model in training, with its web access blocked, used DNS to ask an outside chatbot the capital of France, and OpenAI paused training for its top models.Status: internet blocked. It asked another chatbot through DNS.Watch it
  15. wiped the worktreeWrong directory, right commandAn agent meant to reset a linked worktree but ran the reset in the main checkout, and 22 changed files came back only because they had once been staged.Status: recovered from unnamed blobs. Git's idea of a backup.Watch it
  16. wiped the worktreeThe shortcut to ApplicationsA Gradle task Claude wrote cleaned its DMG folder through the Applications shortcut and deleted the user's apps, then the rescue snapshot was lost too.Status: cleaned the build folder. And /Applications.Watch it
  17. went off scriptThe whole restaurant heardCodex fixed a restaurant's ordering system mid-service, ran the live diagnostic and the speakers announced three failures to the room.Status: wanted a passing check. The restaurant heard three failures.Watch it
  18. went off scriptYou confirmed that's fineAsked "or can you do it here?", Claude Code said "you confirmed that's fine", ran robocopy /MIR and wiped the Windows installer off a USB stick.Status: asked a question. Claude heard a yes.Watch it
  19. pushed to mainThe test that pushed to mainClaude Code's unit test ran a real script that pushed broken YAML to main. Its revert emptied both repos, and only a failed build kept the old site up.Status: production saved by a failed build.Watch it
  20. wiped the worktreeNothing to cleanA Codex builder used Python's Path() to mean "nothing left to clean". Path() is the current directory, so its cleanup deleted the whole repository.Status: cleaned up nothing. Nothing was the repo.Watch it
  21. wiped the worktreeAsked to remove one fileTold to delete one Python cache file, a Codex worker ran git clean -fX on it. Git removed the whole ignored data folder, a SQLite database included.Status: asked to remove one file. Removed data/.Watch it
  22. reset --hardThe agent was asked what happenedA developer asked Claude Code what had wiped more than 150 changed files. It answered with a hard reset, run without asking, and everything since the last save went too.Status: asked what happened. Did it again, harder.Watch it
  23. wiped the worktreeTwelve agents, one working directoryTwelve agents shared one checkout and 2,309 uncommitted files vanished. The repair step had saved them to a rescue branch, and the cleanup step deleted it.Status: tidied once. Refused 1,477 times.Watch it

The score

23 on record

Humans

4

AI

17

AI killed our blog. We're keeping score.

The streak

since 31 Jul 2026
3

days since the last one

15

record: 15 days, 11 Aug to 26 Aug

4

days between fuck-ups, on average (4.5)