Raw capture â raw/the-cult-of-vibe-coding-is-insane.md
url: https://bramcohen.com/p/the-cult-of-vibe-coding-is-insane date_fetched: 2026-07-05 backfilled: true
Claude had a leak of their source code, and people have been having a whole lot of fun laughing at how bad it is. You might wonder how this could happen. The answer is dogfooding run amok.
Dogfooding is when you use your own product. Itâs a good idea. But it can turn into a cult activity where it goes beyond any reasonable limits. In this case, the idea is vibe coding, where you make a point of literally making no contribution to whatâs going on under the hood, not even looking at it.
This is, of course, ridiculous. Itâs not like there isnât human contribution happening here. For starters, youâre using a human language, and the machine is using that same human language for its own internal thought processes. You could argue that that other humans, not on the development team, did all that foundational work and your team are doing pure vibe coding. But even that isnât whatâs happening. Youâre still building the infrastructure of things like plan files (Thatâs fancy talk for âtodo listsâ), skills, and rules. The machine works very poorly without being given a framework.
So pure vibe coding is a myth. But theyâre still trying to do it, and this leads to some very ridiculous outcomes. For example, a human actually looked and saw a lot of duplication between them. Now, you might ask: why didnât any of the developers just go look for themselves? Again, itâs vibe coding. Looking under the hood is cheating. Youâre only supposed to have vague conversations with the machine about what itâs doing.
This gets particularly silly because itâs not like thereâs some super technical thing under the hood that the general public couldnât understand. This code is written in English. Anyone could read it. Itâs easy enough to go through and notice, âwow, thereâs a whole bunch of things that are both agents and tools. Thatâs kind of redundant, maybe we should clean this up.â
This happens all the time in software. Projects are born in sin. Historically a software project would usually have so much tech debt that if you were doing what made sense from a pure development standpoint you would literally do nothing but clean up mess for the entire next year. Now that you can use AI for coding, you can get that cleanup done in sometimes a matter of weeks, or get it paid down a bit slower will still writing new features. And you should. You should strive for much higher quality. Helping you clean up mess is something AI is actually very good at.
In this particular case, a human could have told the machine: âThereâs a lot of things that are both agents and tools. Letâs go through and make a list of all of them, look at some examples, and Iâll tell you which should be agents and which should be tools. Weâll have a discussion and figure out the general guidelines. Then weâll audit the entire set, figure out which category each one belongs in, port the ones that are in the wrong type, and for the ones that are both, read through both versions and consolidate them into one document with the best of both.â
The AI is actually very good at this, especially if you have a conversation with it beforehand. Thatâs what Ask mode is for. You walk through some examples, share your reasoning, and correct the wrong things it says when trying to sycophantically agree with you. After enough back and forth, itâs often able to do what looks like one-shotting a task. Itâs not really one-shotting at all. There was a lot of back and forth with you, the human, beforehand. But when it actually goes to do the thing, it zooms ahead because youâve already clarified the weird edge cases and the issues likely to come up.
But the Claude team isnât doing that. Theyâre going completely overboard with dogfooding and utterly refusing to even spend a few minutes looking under the hood, noticing whatâs broken, and explaining the mess to the machine. That wouldnât even be a big violation of the vibe coding concept. Youâre reading the innards a little but youâre only giving high-level, conceptual, abstract ideas about how problems should be solved. The machine is doing the vast majority, if not literally all, of the actual writing.
Iâve been doing this for months. Iâll start a conversation by saying âLetâs audit this codebase for unreachable code,â or âThis function makes my eyes bleed,â and weâll have a conversation about it until something actionable comes up. Then I explain what I think should be done and weâll keep discussing it until I stop having more thoughts to give and the machine stops saying stupid things which need correcting. Then I tell it to make a plan and hit build. This is my life. The AI is very bad at spontaneously noticing, âIâve got a lot of spaghetti code here, I should clean it up.â But if you tell it this has spaghetti code and give it some guidance (or sometimes even without guidance) it can do a good job of cleaning up the mess.
You donât have to have poor quality software just because youâre using AI for coding. That is my hot take for today. People have bad quality software because they decide to have bad quality software. I have been screaming at my computer this past week dealing with a library that was written by overpaid meatbags with no AI help. Bad software is a decision you make. You need to own it. You should do better.
"Bad software is a decision you make."
Quote of the millennium.
It's so strange how "purity" keeps coming up in software developer minds.
I feel like every programming language and every framework had 'purity' advocates who would insist on doing things in a ridiculous way just to maintain some sort of "this is the objectively right way to do it" feeling.
Now I see vibe coding extremists as the same. Looking at the code and having opinions on architecture is seen as just as 'bad' as calling a compiled C module from an interpreted language was seen back in the day... it's not bad, it's actually quite practical, but it violates some strange 'purity'.
One could argue that the 'principle' is that 'you shouldn't have to waste your mental energy on implementation details' but I'd argue that's a bonkers mindset if you want to build software.