What is Vibe Coding?
Vibe coding is a style of software development where the developer describes what they want in natural language and an AI coding agent — Claude Code, Cursor, GitHub Copilot — generates the implementation. The developer iterates through conversation: prompting, reviewing output, adjusting, prompting again.
The term captures the feeling of the workflow: you describe the vibe of what you want, and the agent figures out the details. It's fast, intuitive, and remarkably effective for getting a working prototype.
Why it works (at first)
A solo developer with a clear mental model can hold the entire context of a project in their head. Every prompt carries implicit constraints — the developer knows what they mean by "make it fast" or "add authentication." The agent fills in the gaps, and the developer course-corrects in real time.
For prototypes, side projects, and early exploration, this is genuinely transformative. What used to take weeks takes hours.
Where it breaks down
Vibe coding relies on context that lives in one person's head. The moment a second developer joins, that context fragments:
No shared definition of success. Developer A's "fast" is different from Developer B's "fast." Without explicit outcomes, every team member optimizes for a different target.
No record of decisions. The agent generated 40,000 lines of code, but there's no artifact explaining why any of it is structured the way it is. Architecture decisions are embedded in a chain of prompts that nobody saved.
No constraints. The agent doesn't know what can't change — which APIs are frozen, which patterns the team follows, which performance budgets exist. It makes choices. Some of them conflict with choices another agent made in a different session.
No verification criteria. The code runs. But does it satisfy the actual requirement? Without explicit success criteria, "it works" means "it works for the scenario I tested in my head."
This is what teams call the "vibe coding hangover" — the realization that speed without structure creates technical debt faster than any human developer could.
From vibes to intent
The fix isn't to stop using AI agents. It's to give them structured input instead of conversational prompts. Intent engineering adds the layer that vibe coding skips: explicit objectives, measurable outcomes, constraints, edge cases, and verification criteria.
The agent still writes the code. But it writes it against a contract, not a conversation. The result is code that a team can understand, extend, and verify — without needing to reconstruct the original developer's mental model.