The speed is real. The debt is also real. You don't have to choose.


What vibe coding actually is

Vibe coding is using AI to generate working code in a session — fast, fluent, sometimes one-shot. It's a real skill. The right combination of clear intent and AI capability produces output that used to take a small team a sprint to ship.

The criticism of vibe coding from disciplined engineers is mostly fair. The output usually has:

  • No specification — the requirements live only in the chat history.
  • No tests — the code works because it works, not because anything verifies it.
  • No documented decisions — when someone (or future-you) asks "why is it this way?", nobody can answer.
  • No cold-start path — six weeks later, no one can pick it up cleanly.

Fast to build. Slow to maintain. Expensive to change. Impossible to hand off.

That's not a coding problem. It's a documentation-and-architecture problem. And it's exactly what old-school engineering disciplines were designed to handle — before humans got too tired and too rushed to apply them consistently.


What changes when AI applies the discipline

The disciplines worked. They were abandoned because the cost of running them was higher than the value, for human teams. Writing every spec, drawing every diagram, documenting every decision, running every test — these were tedious. Humans skipped them. Methodology decayed. Vibe coding emerged as the cheerful refusal to pretend otherwise.

AI removes the tedium tax. The specs get written because writing them costs minutes, not hours. The diagrams get drawn because the AI can draw them and keep them current. The decisions get documented because the AI is the documenter.

Lazlo is what vibe coding looks like when you let AI do the structural work in parallel with the build.


What Lazlo adds without slowing you down

Spec the capability before building. What does this thing do? What are the inputs and outputs? What's it not allowed to do? Fifteen minutes. AI helps.

Diagram the contract. A class diagram if it's a new entity. A sequence diagram if it's a flow. Mermaid in Notion. Approved before any code is written. Five minutes.

Write the contract test. Derived from the diagram. The test is the diagram in executable form. AI generates it.

Append to the changelog. Every meaningful decision recorded. Not by you. By the AI, in real time, as you work.

The engineering disciplines aren't slow. The reason humans abandoned them was. AI fixes that.


The result

A codebase that is:

  • Reversible. Every decision can be reconstructed from the artifacts.
  • Auditable. The build LJ records what was tried and rejected, not just what shipped.
  • Handoffable. A fresh contributor — human or AI — can pick it up cold from the documentation alone.
  • Testable. Contract tests verify each capability against its specification.

All without writing more code than vibe coding produces. All without slowing down the build.

Fast and disciplined are not opposites. They were enemies because of how humans had to work. They aren't enemies anymore.