The Vibe Coding Manifesto: Why Speed is the Only Metric

The Shift to 'Vibe'
For the last decade, software engineering has been obsessed with "Clean Code". We optimized for maintainability, assuming that humans would be the primary readers and writers of code for the next 50 years. We wrote exhaustive unit tests before writing a single line of logic. We argued about folder structures, hexagonal architecture, and the correct abstraction layers.
But in mid-2026, the game has fundamentally changed. When an agentic model like GPT-5.6 Sol or a locally-hosted Llama 5 instance can rewrite your entire codebase in seconds to fit a new requirement, maintainability is dead. Or rather, the human cost of maintenance has dropped to near zero.
This piece is the argument, not the tutorial. If you're looking for a plain definition of the term, who it's for, and how to get started this afternoon, read What Is Vibe Coding? first and come back. What follows is why the practice is defensible, what it demands in exchange, and where it stops being a good idea.
What Actually Changed Underneath
Philosophies about software don't shift because someone writes a manifesto. They shift when the underlying economics move, and three specific things moved between 2024 and now.
Context windows got big enough to hold a real project. The reason older AI coding tools felt like fancy autocomplete is that they could only see the file in front of them. A model that can hold a repository, its tests, and its conventions in working memory is a categorically different collaborator — it can make a change that's consistent with the rest of the system rather than locally plausible and globally wrong.
Agents got the ability to run and check their own work. Generation alone was never the bottleneck; verification was. Once a tool could execute the test suite, read the compiler output, and iterate without a human in the loop for each cycle, the cost of a wrong first attempt collapsed. That's what makes "throw it away and regenerate" a rational strategy instead of a reckless one.
The cost per token fell far enough to make iteration cheap. When a full regeneration of a module costs cents, the calculus that made careful hand-crafting rational — because rewriting was expensive — inverts. Our breakdown of token economics in 2026 works through the actual numbers, but the qualitative point is what matters here: iteration stopped being the expensive part.
Take those three together and the conclusion follows almost mechanically. If a model can see the whole system, verify its own changes, and do so cheaply enough to try again, then the artefact loses value relative to the loop that produces it. That is the entire manifesto in one sentence.
Speed as the Primary KPI
"Vibe Coding" isn't just about feeling good or coding while listening to lo-fi hip hop. It is a strategic decision to prioritize shipping velocity over architectural purity. If the AI understands it, it's good code. The metric is no longer "How easy is this for a junior engineer to understand?" but "How fast can I iterate on this with an LLM?"
We are seeing a shift from "Code as Craft" to "Code as Clay". You don't polish clay; you mold it, smash it, and reshape it until the final form emerges. The code itself is transient. The product is what matters.
The New Stack: Intent -> Generation -> Verification
The traditional LAMP or MERN stack is being replaced by a new workflow:
- Intent (The Vibe): The developer defines what needs to happen. This is the new high-level programming language.
- Generation (The Labor): Models like GPT-5.6 Sol and Claude Sonnet 5 generate the implementation. They handle the boilerplate, the types, and the syntax.
- Verification (The Guardrails): Automated test suites and "Shadow Workspaces" verify the output. You don't read the code; you check the green checkmarks.
In practice this workflow lives inside a specific set of tools — an AI-first editor like Cursor, a frontier assistant like Claude for planning and review, and a deploy pipeline that gives you a working preview of every change. The complete vibe coding stack covers the specific tooling; this piece is about why the workflow is shaped that way.
The Five Principles
Strip away the tooling and the aesthetics, and the philosophy reduces to five claims. Each is falsifiable, which is the point — a manifesto that can't be wrong isn't worth writing.
- 1. Intent is the source code. The durable artefact of your work is the specification: the description of what the system should do and the tests that prove it does. The implementation is a compilation target. If your specs live only in a chat history, you have no source code — you have output.
- 2. Verification replaces reading as the trust mechanism. Nobody ever verified correctness by reading a diff; we just pretended to. Now the pretence is unnecessary. Trust comes from tests, types, staged rollouts, and observed production behaviour. Reading is a debugging tool, not a quality gate.
- 3. Code is disposable; specs and tests are durable. When regenerating a module is cheap, the instinct to preserve existing implementations becomes a liability. Delete more aggressively than feels comfortable. The thing you must not lose is the description of what it was for.
- 4. Optimize the loop, not the artefact. Time from idea to verified change in production is the metric that dominates all others. A beautiful codebase with a two-week deploy cycle loses to an average one with a two-hour cycle, every time, on every dimension including eventual code quality — because the fast team gets more attempts.
- 5. You own the guardrails you delegate through. Delegation without a mechanism to catch failure is abdication. If you cannot articulate how a bad generated change would be caught before it reaches a user, you are not vibe coding; you are gambling with extra steps.
Principle five is the load-bearing one, and it's the one people skip. The other four are permissions. This one is the price.
How to Tell Whether a Change Suits This Workflow
The principles only pay off on work where verification is cheaper than reading, and that condition is a property of the change rather than of the team. Before delegating anything, run it through four questions. They are ordered deliberately: a "no" near the top matters far more than a "yes" further down.
- Can correctness be observed rather than argued? A billing refactor where you can inspect the actual invoices generated in test mode qualifies, because the artefact settles the question. A change to a retry policy whose failure mode only surfaces under production load does not — not because a model can't write it, but because you have no cheap way to learn whether it did.
- Is the blast radius contained and the change reversible? Ask what breaks if this is silently wrong and how long undoing it takes. Feature-flagged work behind a small user segment is a fundamentally different risk object from a schema migration, even when the two diffs look comparable in size.
- Is the surface area legible? A change touching three files you can name upfront is a specification problem. A change that first requires discovering which of two hundred files are involved is a research problem, and research is where delegated work goes quiet and then goes wrong.
- Does a spec exist, or only a vibe? If you cannot write down the desired end state in a paragraph, neither can the model. That paragraph is the actual work; the implementation is the part that got cheap.
Where all four answers are yes, reading the diff line by line adds little that the test output and the generated artefacts don't already tell you, and the loop compresses accordingly. Where any one is no, the honest move is to fix that condition first — write the tests, put the change behind a flag, narrow the surface, write the spec — rather than delegate anyway and hope. Most of the failures attributed to vibe coding are cases where someone skipped straight to generation with two of these four unresolved, which is a process failure rather than a model failure.
Vibe Coding Is Not "No Standards"
The most common misreading of this philosophy is that it means "anything goes." It doesn't. Vibe coding still demands rigorous automated tests, strict type checking, and CI gates — arguably more of them than the old world, because you are no longer manually reviewing every generated line. The discipline moves from the code itself to the guardrails around the code: your eval suite, your type system, your staging environment, your rollback plan. Skipping those guardrails to "go faster" is not vibe coding; it's just recklessness wearing a trendy name.
Don't Be a Bricklayer, Be a Conductor
The developers who are thriving in 2026 are not the ones who memorize syntax. They are the ones who can orchestrate multiple AI agents to build complex systems. They treat code generation like a commodity.
Stop worrying about whether your function is pure. Start worrying about whether your product solves a user's problem. That is the essence of Vibe Coding.
Objections We Hear Constantly
"But what happens when the AI is wrong and nobody understands the code well enough to fix it?" This is the most common pushback, and it's a fair one. The answer isn't "don't worry about it" — it's that the safety net moves from human code comprehension to automated verification. A codebase with 90% test coverage, strict typing, and a staging environment that mirrors production is more resilient to an AI-authored bug than a hand-crafted codebase with 40% coverage and a "just be careful" culture. Vibe coding without guardrails is reckless. Vibe coding with strong guardrails is simply a faster development loop.
"Isn't this just technical debt with extra steps?" Only if you mistake velocity for carelessness. Technical debt, historically, was the interest you paid for skipping the guardrails — skipping tests, skipping documentation, skipping the design review. Vibe coding doesn't ask you to skip any of that; it asks you to stop caring whether a human or a model wrote the implementation between those guardrails. The debt accumulates the same way it always did: when teams cut corners on verification, not when they let an LLM hold the pen.
Objection Three: "This Only Works Because You Build Simple Web Apps"
This one lands more often than the others, and the honest response is a partial concession. The practice works best where training data is dense and feedback is fast: web applications, internal tools, API integrations, data plumbing, tests, infrastructure configuration. It works considerably less well where the problem is genuinely novel, where correctness cannot be expressed as a test, or where the feedback loop takes days rather than seconds. Anyone claiming the philosophy applies uniformly across all of software is selling something. The next section is the boundary drawn explicitly.
What Actually Changes on a Real Team
The philosophy is easy to agree with in the abstract and disruptive in practice, because it changes process artefacts that teams have built their identity around.
The spec becomes a reviewed artefact. If intent is the source code, the specification deserves the scrutiny a pull request used to get. Teams that adopt this well start reviewing specs before delegation and find that most agent failures were spec failures in disguise.
Review policy becomes tiered by risk rather than uniform. Reviewing every line of every generated change doesn't scale and doesn't help. What works is sorting changes by blast radius: styling and test additions auto-merge on green CI, ordinary feature work gets one reviewer checking the diff against the spec, and anything touching auth, billing, migrations, or permissions still gets full line-by-line human review regardless of who wrote it. Our piece on agentic engineering and review fatigue goes deeper on how teams are structuring this.
Git hygiene stops being a nicety and becomes the undo button. Small, frequent commits are what make an agent run that went sideways a thirty-second recovery rather than a lost afternoon. Teams that vibe code without disciplined version control are the ones with horror stories.
Test coverage becomes a capability, not a chore. This is the inversion that surprises people most: coverage stops being something you do for the auditors and becomes the thing that determines how much you can safely delegate. A codebase with strong tests can absorb far more generated change per week than one without. Coverage is throughput.
Seniority changes shape. The valuable engineer is no longer the one who knows the most syntax or has memorized the codebase. It's the one who can decompose an ambiguous requirement into verifiable pieces and recognize when output is subtly wrong. That's a redistribution of status, which is why adoption meets more resistance than a purely technical change would. We wrote about the career implications in the sovereign developer.
Where This Manifesto Does Not Apply
A philosophy with no boundaries is a religion. Here are the situations where you should ignore everything above:
- Correctness that can't be tested. Numerical stability, cryptographic implementations, concurrency invariants, and anything where the failure mode is subtle and rare. Verification is the whole trust mechanism here, and where verification is weak the philosophy has no foundation.
- Safety-critical and heavily regulated code. If a defect can hurt someone or trigger a regulatory finding, human comprehension of every line is not superstition — it's often a legal requirement, and it's a reasonable one.
- Genuinely novel problem domains. Models are extraordinary at translating clear specifications into working code and weak at inventing the specification when the domain has no precedent in training data. Unusual business rules, new pricing models, and physical-world constraints still need a human to figure out what correct even means.
- Public APIs and shared libraries. Code other teams depend on has a different cost function: the interface is nearly permanent, so deliberation beats iteration. Disposability is the wrong principle for something you can't take back.
- Low-coverage legacy monoliths. The place vibe coding fails most reliably is a large untested codebase, because there's no mechanism to catch what the agent broke. The prerequisite work is building the guardrails, and that part is slow and unglamorous.
Notice the pattern: every exception is a case where verification is weak, expensive, or slow. The philosophy is not "AI writes code now." It's "wherever verification is cheap and fast, human review of implementation is no longer the constraint." The exceptions prove the rule rather than undermining it.
What to Actually Measure
If speed is the metric, measure it honestly. Track cycle time from spec to merged PR, not lines of code written. Track the ratio of agent-authored PRs that pass review on the first attempt versus those that bounce back — a low first-pass rate is a signal that your specs are too vague, not that the model is bad. And track incident rate per shipped feature, because the entire manifesto falls apart if speed comes at the cost of reliability. The teams getting this right in 2026 post faster cycle times and flat or declining incident rates. That combination, not raw speed alone, is the actual proof that vibe coding works.
One more measurement worth adding: how much of your delegation is blocked on missing tests. If the answer is "most of it," your next quarter's highest-leverage work isn't adopting a new tool — it's building the coverage that lets you delegate at all.
The One-Paragraph Version
Describe what you want, let a model implement it, and trust automated verification rather than your own reading to tell you whether it's right. Keep the specification and the tests, treat the implementation as disposable, optimize for the speed of the whole loop, and accept that you own every guardrail you delegate through. Where verification is cheap, this is simply a faster way to build software. Where verification is expensive, it isn't — and knowing which situation you're in is the actual skill.
If you want the practical version of all of this: the complete vibe coding stack lists the tools, Cursor vs VS Code covers the editor decision in detail, the end of prompt engineering explains why specification beats clever wording, and the best AI coding tools ranking is the wider field.
Frequently asked questions
What is the vibe coding manifesto?
It is the argument that when a model can see a whole codebase, verify its own changes, and iterate cheaply, the implementation stops being the valuable artefact and the loop that produces it becomes the thing to optimize. In practice that means five claims: intent is the real source code, verification replaces reading as the trust mechanism, code is disposable while specs and tests are durable, you optimize the loop rather than the artefact, and you own every guardrail you delegate through.
Does vibe coding mean skipping tests and code review?
The opposite. Because you are no longer reading every generated line, automated tests, strict typing, and CI gates carry more weight than they did before, not less. What changes is the shape of review: risk-tiered rather than uniform, so low-blast-radius changes auto-merge on green CI while anything touching auth, billing, or migrations still gets full human review. Delegating without a mechanism to catch failure is not vibe coding, it is gambling.
How is this different from your beginner guide to vibe coding?
The beginner guide defines the term, compares it to traditional coding and no-code, and walks you through your first project. This piece is the argument behind the practice: what changed in the underlying economics, the principles that hold it together, what has to change in a team's process, the strongest objections, and the cases where the philosophy stops applying. Read the beginner guide for the how, this one for the why.
When should you not vibe code?
Whenever verification is weak, slow, or expensive. Concretely: correctness that cannot be captured in a test, such as cryptography or concurrency invariants; safety-critical and heavily regulated code where line-level human review is often a legal requirement; genuinely novel domains where a model cannot infer what correct means; public APIs and shared libraries where the interface is nearly permanent; and large legacy codebases with no test coverage, where nothing catches what the agent broke.
Isn't vibe coding just technical debt with extra steps?
Only if you mistake velocity for carelessness. Technical debt has always been the interest you pay for skipping guardrails — tests, documentation, review of risky changes. Vibe coding asks you to stop caring whether a human or a model wrote the implementation between those guardrails, not to remove them. The debt accumulates exactly where it always did: when teams cut corners on verification.
How do you measure whether vibe coding is working?
Track cycle time from spec to merged pull request rather than lines of code, the share of agent-authored changes that pass review on the first attempt, and incident rate per shipped feature. A low first-pass rate usually means your specifications are too vague rather than that the model is weak. The proof is faster cycle time combined with flat or declining incidents — speed alone proves nothing.