Skip to content

Claude Code's Regression Problem: Vibe Coders Are Shipping Bugs They Can't Trace

A growing thread on r/vibecoding surfaces the core pain of AI-assisted development: new features silently break old ones, and most vibe coders have no test safety net.

Claude Code adds a feature, touches a few files, everything looks fine — then a user reports an unrelated flow is broken a day later. That’s the exact scenario one vibe coder posted to r/vibecoding, and the replies suggest it’s not an edge case. It’s the default experience.

The core complaint breaks down into three compounding problems:

  • Silent regressions — Claude Code modifies files across the codebase to implement a feature, and side effects in unrelated flows go unnoticed until a user hits them.
  • No test safety net — The poster admits they’ve “never written a proper test suite” and loses a full day every time they try to learn Playwright, shipping nothing in the process.
  • Untraceable breakage — When something does break, there’s no way to pinpoint which change caused it or when it happened.

This is the structural weakness of vibe coding laid bare. When you’re prompting an AI to write code you don’t fully read, every change is a potential regression — and without automated tests, your only QA process is your users.

The poster’s question — “do you write tests for the stuff Claude Code writes?” — gets at a real tension. Vibe coding’s speed advantage evaporates if you have to manually click through every flow before each push. But skipping verification means you’re running production as your test environment.

NOTE

The thread highlights a gap in current AI coding workflows: Claude Code (and similar tools) will happily refactor shared utilities or modify function signatures to satisfy a new feature request, with no awareness of downstream callers it might break.

The irony is that test generation is one of the things LLMs are genuinely good at. Asking Claude Code to write regression tests before implementing a feature — or to generate a test for every file it modifies — is a workflow that costs minutes, not days of learning Playwright from scratch.

The practical move: tell Claude Code to write a test for any function it changes, run it before and after, and diff the results. That won’t catch everything, but it catches the silent breaks that are currently reaching users first.