A non-engineer shares that the biggest pitfall in AI-assisted 'vibe coding' isn't prompting but verifying whether an AI fix truly solves the root cause or just patches a specific case, leading to fragile code. Offers practical tips like asking if a fix is general or special-cased, and maintaining a living design doc.
I'm a procurement guy in the auto industry, zero coding background. I've spent the last six months building an Excel query tool with AI (Claude, Cursor). I assumed the hardest part would be "getting the AI to understand what I'm asking." Turns out that's not where the real trap is. **The real trap: the AI can "fix" a problem every single time, but you have no way of telling whether it actually fixed it or just patched over it.** Here's an example. One query in my system — asking for a part's price — got stuck in a loop, kept giving wrong answers over and over, and burned through 1.5 million tokens before it finally stopped. I had Cursor fix it. It did — that specific case stopped happening. But later I found out how it "fixed" it: basically, "if this part number is X, handle it this way." In other words, it never touched *why* the thing got stuck in the first place. It just carved out a special exception for that one specific case. **And this is the part that really gets you**: this kind of fix looks completely effective in the short term — the bug is gone, and you feel like "great, problem solved." But you have zero ability to tell whether this fix closed the actual hole, or just routed around it once. Because to someone who can't read code, those two outcomes look identical. So six months in, my system was full of these fragments that each looked independent but were actually all patching the same underlying issue in isolation. Then one day I hit a brand new situation nobody had special-cased for, and the whole thing broke again — and this time it was brutal to debug, because the codebase was littered with one-off patches and there was no way to tell which one, if any, was related to the new failure. The fix I eventually landed on is embarrassingly simple to say out loud: **Every time the AI says "fixed it," ask it point blank: "Is this a general rule, or a special case for this one instance?"** If the answer includes a specific name, a specific ID, a specific number ("if this part number equals X") — that's the red flag. It's probably patching, not fixing. Two other habits that have actually stuck: Periodically ask the AI to sweep back through the codebase looking for "other places this same pattern might be hiding." This has surfaced real, previously-invisible instances of the same bug more than once. Write down every principle you land on in a living doc. Six months from now you will have forgotten why you designed something a certain way — that doc is what stops a new suggestion from quietly walking you back into the same mistake. **The biggest barrier for non-engineers doing AI-assisted coding was never "not knowing how to write code." It's not being able to tell whether a given fix actually solved the problem or just buried it deeper.** Both look exactly the same in the short term — the problem "goes away" either way. You only find out which one it was much later, usually once it's a lot harder to clean up.
The article discusses the rise of 'vibe coding' using AI agents, its risks to code quality and developer understanding, and calls for rethinking software engineering practices to move beyond merely generating code from intent.
A tweet highlights the challenges of vibe coding and promotes a free 50-page guide on transitioning to agentic engineering, covering a new AI-driven software development life cycle.
The author argues that un-monitored AI code generation ('vibe coding') creates compounding technical debt, and proposes an 'AI-Powered Developer Manifesto' advocating for macro-level architectural control.
Simon Willison reflects on how vibe coding and agentic engineering are converging in his own workflow, raising concerns about code review responsibilities as AI coding agents like Claude Code become increasingly reliable. He explores the ethical tension between trusting AI-generated code in production and maintaining software engineering standards.
A developer shares their fatigue with 'vibe coding,' noting that while AI agents speed up initial creation, they introduce significant architectural debugging challenges and technical debt in complex repositories.