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

Developer Seeks Architecture Advice for Serving Embed, Rerank, and Zero-Shot Models on 8GB VRAM
A developer building a unified Knowledge Graph/RAG service for a local coding agent is struggling with memory constraints on 8GB VRAM and 16GB system RAM, experiencing OOM errors, latency spikes, and Linux kernel kills when serving three transformer models concurrently.

Vibe Coding vs Agentic Engineering: The Blur Lines Are Getting Uncomfortable
Simon Willison reflects on how vibe coding and agentic engineering are converging in his own workflow, noting that he now trusts Claude Code to write production JSON API endpoints without reviewing every line — and that feels weird.

OpenClaw April Updates: A Month of Breaking Changes and Eroded Trust
OpenClaw's April updates show a pattern: new features and fixes shipped alongside critical bugs. Postinstall scripts deleting files, security holes, and broken skills erode confidence.

Claude Opus 4.6 Blocks Kaggle Competition Workflow for Code Review
A developer reports Claude Opus 4.6 is now blocking legitimate Kaggle competition workflows where Claude audits reasoning traces for SFT training data validation. The user was working on the NVIDIA Nemotron Reasoning Challenge when safety filters flagged substitution cipher examples.