Bram Cohen critiques 'vibe coding' and AI-assisted development practices

The problem with 'vibe coding'
Bram Cohen's article criticizes what he calls 'vibe coding'—a development approach where teams use AI coding assistants while deliberately avoiding looking at the underlying code. He argues this is 'dogfooding run amok,' where using your own product becomes a cult activity that goes beyond reasonable limits.
Claude source code example
The article cites Claude's source code leak as a case study. Cohen notes that when people examined the leaked code, they found significant duplication issues—specifically, 'a whole bunch of things that are both agents and tools.' He questions why developers didn't notice this themselves, attributing it to the 'vibe coding' mentality where 'looking under the hood is cheating.'
Practical AI collaboration approach
Cohen advocates for a more engaged approach to AI-assisted development:
- Start conversations with the AI about specific code quality issues: 'Let's audit this codebase for unreachable code' or 'This function makes my eyes bleed'
- Have discussions until actionable items emerge
- Explain what should be done and continue discussing until 'I stop having more thoughts to give and the machine stops saying stupid things which need correcting'
- Use 'Ask mode' to walk through examples, share reasoning, and correct the AI when it's wrong
Specific workflow example
Cohen provides a concrete example of how to work with AI on code cleanup:
"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."
He notes that after enough back-and-forth discussion, the AI can often 'do what looks like one-shotting a task,' but emphasizes this isn't truly one-shotting—there's significant human guidance beforehand that clarifies edge cases and potential issues.
Core argument
Cohen's main point is that 'bad software is a choice you make.' He argues that while AI can help clean up technical debt quickly (sometimes in weeks rather than years), developers still need to engage with the code and provide specific guidance. The AI is 'very bad at spontaneously noticing, "I've got a lot of spaghetti code here, I should clean it up,"' but effective when given clear direction.
📖 Read the full source: HN LLM Tools
👀 See Also

Local LLM Benchmark: Backend Generation by Function Calling – GLM, Qwen, DeepSeek Compared
A rigorous benchmark of local and frontier LLMs for backend code generation via function calling, with scoring rubric. Key findings: qwen3.5-35b-a3b matches gpt-5.4 on DB/API design, and dense Qwen 27B beats 397B MoE. Frontier models dropped due to cost.

Claude Code evolving into an engineering OS rather than just AI code chat
A Reddit discussion argues Claude Code is becoming less like AI chat for coding and more like an engineering operating system with planning, code review, cloud agents, and autonomous workflows.

Exploring Step 3.5 Flash: Open-Source Model for Fast Deep Reasoning
Step 3.5 Flash is an open-source foundation model designed for fast and efficient deep reasoning, utilizing a sparse Mixture of Experts architecture.

Four UX/Product Gaps Identified in Claude's Onboarding Experience
A user identified four specific UX/product gaps while setting up Claude across Desktop, Cowork, Dispatch, and the iPhone app during active use. Issues include Dispatch tasks entering infinite loops when desktop is offline, single persistent threads in Dispatch, tab-anchored chat panels in Chrome, and missing Google Drive files in the mobile app knowledge base UI.