There's a mass migration happening right now where developers are offloading more and more of their code writing to LLMs. Cursor, Copilot, Claude Code, aider, etc. — the tooling has gotten good enough that the default workflow for a lot of people is now "describe what you want, get code back, review it, ship it." And it works surprisingly well. Until it doesn't.
I've been paying attention to the ways it doesn't work, and the interesting thing is that the failures are not random. They cluster into a small number of recurring patterns, and once you see them, you can predict when they'll happen. More importantly, you can write rules — in your system prompt, your CLAUDE.md, your .cursorrules, whatever — that prevent most of them. But to write good rules, you need to understand why the failures happen. A rule without a mental model is just cargo cult.
This is the big one. When you ask an LLM to "add authentication to this