Vibe Coding
Building by prompt-and-accept, without reading the code.
Writing software by describing what you want and accepting generated code without close inspection. Fast and excellent for throwaway prototypes; genuinely risky for anything maintained.
The term names a real continuum. The honest version is fine for a spike you will delete; applied to production code that others must maintain, it pushes the cost downstream.
The right posture is not prohibition but scoping: name which parts of the codebase are allowed to be generated without close reading. Prototypes, internal scripts and throwaway analyses are legitimate. Anything with users, data or a maintenance horizon is not, because the cost of unread code lands later and on somebody else.
The prototype that became load-bearing
A weekend tool built by prompt-and-accept is now used by a team daily.
There is no test, no error handling, and nobody knows what it does on an unexpected input. The honest options are to harden it deliberately or to declare it disposable and reimplement. The failure is the middle path, where it is neither.
Using the label to skip review on code that will be maintained. The bill arrives as debugging.
- docsBest practices for using GitHub Copilot to work on tasks ↗
Recommends bounded tasks with explicit acceptance criteria, and names what is a bad fit for unattended delegation: ambiguous, security-sensitive, production-critical or deeply domain-specific work.
- reportMeasuring the impact of early-2025 AI on experienced open-source developer productivity ↗
A randomised trial on experienced maintainers’ own repositories in which tasks took 19% longer with the AI tools, against participants’ expectation of a speed-up. A snapshot of one population and tool set.
Prototyping · Spike
Build the cheapest thing that answers the question.
Human Review
A person reading the work, with judgment as part of the job.
Spec-Driven Development
Write the specification first; let the implementation follow.
AI-Assisted Development
Day-to-day engineering with a model in the loop.