← taeyeon kwon

The real cost of vibe coding is cognitive debt

The real cost of vibe coding is not technical debt. It is cognitive debt, and I design my systems specifically against it.

For the past year, my team has relied on coding agents, and an industry consensus has formed. We cannot let agents build indefinitely without understanding what they are actually building. The research community has a name for this. An MIT Media Lab study coined “cognitive debt” after finding that LLM-assisted writers showed weaker neural connectivity and could not quote their own output minutes later. Addy Osmani calls the software version “comprehension debt.” It is the growing gap between how much code exists and how much of it any human genuinely understands. Unlike technical debt, it breeds false confidence. It stays invisible until something breaks and nobody knows why.

The oldest framing is still the sharpest. Peter Naur argued back in 1985 that a program’s real value is the theory of it in its builders’ heads. Code without that theory is legacy code. Agents did not create this problem, but they industrialized it by generating code much faster than we can comprehend it.

I learned this the hard way. When I first moved my team onto agents, I put human checkpoints everywhere. We reviewed the plan, checked the output, and approved. Then we scaled up. We ran multiple projects and agent sessions in parallel, and my own supervision quality collapsed. I became a mindless acceptor of recommendations. The checkpoints were still there, but my understanding was gone. That is the part most teams miss. The real failure mode is not removing the human from the loop. It is leaving the human in the loop as a rubber stamp.

Most people respond by either removing the gates entirely or adding more hollow checkpoints. I think both approaches miss the mark because they treat approval gates merely as control mechanisms. I redesigned my gates around a different question: what should human attention actually buy? My answer is system understanding, not just output checking.

In the delivery system I operate today, every gated work item opens an interactive session. It explains the decision in front of me, highlighting what is changing, why the old design existed, and the impact of the new one. I do not just approve a diff. I answer a decision engineered to teach me the system. Approval time becomes understanding time. The debt gets repaid exactly when it would otherwise accrue. (To be clear, this exact mechanism is running in my environment today.)

The version I am building now goes a step further. It treats my own engagement as a measurable input. If the system notices that my approvals have degraded into mindless nodding, the gate demotes itself to a mere notice. An unengaged gate is just safety theater. Only engaged gates actually teach. (This is a ratified design decision currently in build. I am saying “building” rather than “shipped” on purpose.)

There is evidence backing this up. Anthropic published a study on how AI affects coding skills. Engineers who fully delegated tasks scored poorly on comprehension. However, those who used patterns that bundled explanations with conceptual questions scored higher than some people writing code by hand. The key variable was never whether the AI builds. It was the engagement structure at the human touchpoints.

I want to be careful not to overclaim. That study focused on junior engineers, while I am a senior operator running my own systems. I treat my thesis as a solid design bet, not a completely solved problem. Furthermore, gates only teach at escalation points. The quiet majority of agent work lands cleanly and still accrues debt. Comprehension surfaces are a repayment mechanism, not an amnesty.

But this bet matters for every enterprise adopting AI. Delivery will accelerate, review queues will grow, and approvals will turn into theater right when the stakes are highest. The teams that thrive will be the ones who redesign what their engineers’ attention buys. You cannot own, fix, or defend a system to a regulator if nobody on your team holds a theory of it.

We need to harden our gates, make them teach, and demote them when they do not. That is the difference between vibe coding and actual agentic engineering.


Sources