Vibe Coding
Definition
Vibe Coding is the practice of generating code directly from natural language prompts without formal specifications, schemas, or contracts. Coined by Andrej Karpathy, the term describes an AI-assisted development mode where engineers describe desired functionality conversationally (“make this faster,” “add a login button”), and the LLM produces implementation code.
This approach inverts traditional software engineering rigor: the specification emerges after the code, if at all. Developers describe intent and trust the model to infer the details.
Key Characteristics
- Natural language as input. Functionality is described conversationally, not constrained by schemas or typed interfaces.
- Immediate feedback loop. Describe the behavior, see the code, run it, iterate. Code appears almost as fast as you can articulate what you want.
- Probabilistic output. The LLM infers implementation details — error handling strategies, validation rules, concurrency models — from training data, not from project-specific contracts.
- Extreme velocity. Engineers report 2-10x faster feature delivery for greenfield work. At Anthropic, 80-90% of Claude Code’s codebase is written by Claude Code itself, with a 70% productivity increase per engineer. At Google, approximately 30% of code committed in 2024 was AI-generated.
When a feature that previously took three days can be scaffolded in thirty minutes, the economic pressure to adopt vibe coding becomes overwhelming. For throwaway scripts, MVPs, and rapid exploration, this workflow is transformative.
Known Caveats
The velocity advantage collapses when code must be maintained, extended, or integrated into production systems. Storey (2026) frames vibe coding as the primary generator of all three debt types in the Triple Debt Model — Technical Debt in code, Cognitive Debt in people, and Intent Debt in artifacts.
Debt Accumulation
Forrester Research predicts that by 2026, 75% of technology leaders will face moderate-to-severe technical debt directly attributable to AI-generated code. Code generated from vague prompts encodes vague assumptions. Future maintainers inherit code without contracts and must reverse-engineer intent from implementation.
2024 marked the first year in industry history where copy-pasted code exceeded refactored code — a direct symptom of vibe coding. When generating fresh code is faster than understanding existing code, engineers default to regeneration over refactoring. The result, as Codurance notes, is “legacy code in record time”: systemic duplication across fifteen slightly different implementations, none validated against a shared contract.
[!NOTE] The 100 Million Token Lesson
Dan Cripe, a 25-year enterprise software veteran, documented spending 100 million tokens on a frontier model attempting to fix its own architectural mistakes — not syntax errors, but fundamental design pattern violations. His diagnosis: “LLMs are pattern matchers, not architects.”
Silent Drift
LLMs make undocumented assumptions about error handling, validation, and concurrency. The code passes tests (if tests exist), but violates implicit architectural contracts. Over time, the system drifts toward inconsistency — different modules make different assumptions about the same concepts. Without deterministic constraints, LLMs trend toward generic solutions that lack the domain-specific optimizations and architectural decisions that distinguish production systems from prototypes.
“Speed is seductive. Maintainability is survival.” — Boris Cherny, The Peterman Podcast (December 2025)
Cognitive Surrender
Shaw & Nave (2026) identify the psychological mechanism behind these failure modes: Cognitive Surrender — adopting AI outputs with minimal scrutiny, bypassing both intuition and deliberate reasoning entirely.
This is distinct from healthy Cognitive Offloading, where a developer strategically delegates rote tasks to free mental capacity for higher-level reasoning. In Cognitive Surrender, the cost of evaluation appears to exceed the cost of acceptance, and the developer adopts generated code without understanding its implications.
The resulting debt is invisible: the developer’s mental model of the system erodes with each surrendered decision. Over time, they lose the ability to reason about architectural trade-offs, diagnose subtle failures, or externalize the constraints that should govern future changes. Cognitive Surrender is the mechanism that accelerates all three debt types simultaneously.
The Debt Spiral
Anthropic’s internal research found that engineers who spend more time on Claude-assisted tasks often do so because they “vibe code themselves into a corner” — generating code without specs until debugging and cleanup overhead exceeds the initial velocity gains. Vibe coding is fast until it isn’t, and by then the context needed to fix issues was never documented.
Applications
Vibe coding is effective in bounded contexts where maintainability is not a constraint:
- Rapid Prototyping — Validating product hypotheses where speed of iteration outweighs code quality.
- Throwaway Scripts — One-off data migrations, analysis scripts, and temporary tooling with no maintenance burden.
- Learning and Exploration — Experimenting with new APIs, frameworks, or architectural patterns for immediate feedback.
- Greenfield MVPs — Early-stage products prioritizing speed-to-market, with planned transition to deterministic development.
ASDLC Usage
In ASDLC, vibe coding is a legitimate operational mode for bounded contexts (exploration, prototyping, throwaway code). For production systems, ASDLC mandates a transition to deterministic development:
- Vibe coding is steering (probabilistic guidance via prompts)
- Production requires determinism (schemas, tests, typed interfaces)
- Both are necessary: prompts steer the agent; schemas enforce correctness
Related:
- Spec-Driven Development — The production-grade alternative to vibe coding
- Triple Debt Model — Diagnostic framework for the debt vibe coding generates
- Context Gates — Deterministic enforcement layer
- Levels of Autonomy — Human oversight model (L3: “Hands Off, Eyes On”)
- Industry Alignment — External voices converging on ASDLC principles
References
- (2026).
Humans and Agents in Software Engineering Loops
.
Accessed March 18, 2026.
Morris's 'Humans Outside the Loop' critique validates the ASDLC position that unstructured agent delegation creates technical debt. Published on martinfowler.com.
- (2025).
Claude Code and the Future of AI-Assisted Development
.
The Peterman Podcast.
Claude Code creator's framework for disciplined AI-assisted development, discussing the balance between automation and rigor.
- (2024).
Forrester Research on AI-Generated Code Technical Debt
.
Accessed January 8, 2026.
Technical debt predictions and analysis for AI-generated code in production systems.
- (2024).
Google's AI-Generated Code Adoption Metrics
.
Accessed January 8, 2026.
Industry data on Google's 30% AI-generated code adoption rate and analysis of copy-paste versus refactor patterns.
- (2025).
How AI is Transforming Work at Anthropic
.
Accessed January 9, 2026.
Research showing engineers vibe code themselves into corners, with cleanup overhead exceeding initial velocity.
- (2026).
The Mythical LLM: Why Rumors of the Death of Software are Premature
.
Accessed January 24, 2026.
Enterprise architect's critique of vibe coding for production systems. Documents spending 100M tokens on architectural drift fixes and argues the quality gap is 'fundamental to how current LLMs work.'
- (2026).
Calm Coding: The Workflow That Makes Vibecoding Survivable
.
Accessed February 4, 2026.
Governance framework positioning 'Calm Coding' as the disciplined counterpart to vibecoding. Introduces 'The Hype-Man Problem' — LLMs enabling bad decisions with high conviction. Key quote: 'Velocity without direction isn't speed. It's drift.'
- (2024).
Software Craftsmanship in the AI Era
.
Accessed February 12, 2026.
Analysis of how speed without discipline creates 'legacy code in record time,' and why AI increases rather than decreases the need for TDD and solid design principles.
- (2026).
From Technical Debt to Cognitive and Intent Debt: Rethinking Software Health in the Age of AI
.
Accessed March 25, 2026.
Defines the Triple Debt Model — Technical, Cognitive, and Intent Debt — positioning vibe coding as the primary generator of all three debt types.
- (2026).
Thinking-Fast, Slow, and Artificial: How AI is Reshaping Human Reasoning and the Rise of Cognitive Surrender
.
Accessed March 25, 2026.
Defines Cognitive Surrender — adopting AI outputs with minimal scrutiny, bypassing both intuition and deliberate reasoning. The psychological mechanism behind vibe coding's failure modes.