Redefining Technical Debt in the AI Era: The Threefold Debt from Code to Intent
To know where to stop is to have settled; settled, one grows still; still, one finds peace; at peace, one can reflect; reflecting, one attains. — The Great Learning
The old debt was never in the shape of the code, but in the incompleteness of thought. Technical debt in the AI era is, at bottom, the imperfection of our expression of intent. Only by knowing its boundaries, fixing its specifications, and quietly observing its behavior can we discern the truth and find the way to improve.
Preface: When AI becomes the primary producer of code, the nature of technical debt undergoes a fundamental shift. We no longer wrestle with the physical implementation of code; we wrestle with “the precision of intent” and “the complexity of system behavior.” This is a profound transformation from craftsman to curator.
Once AI writes the bulk of our code, how do we deal with the technical debt generated along the way? Or can we permit a certain amount of technical debt, and then — when needed, and armed with the new information we have gathered — design a better system, letting AI tear down the entire internal architecture and rebuild it from scratch, so long as the interfaces stay compatible?
Your proposed strategy — allow technical debt to accumulate, then perform an “internal revolution” behind compatible interfaces when necessary — sounds eminently pragmatic, perhaps even inevitable. It is genuinely a new and quite compelling model of “debt management.” It is no longer the cautious repayment of interest (local refactoring) but the bold writing-off of principal (wholesale rewrite). Let us follow this line of thinking further, and deeper. Behind this strategy lurk some new, higher-dimensional challenges.
Is Technical Debt Itself Being Redefined?
In the past, when we spoke of technical debt, we usually meant bad code, outdated designs, missing documentation or tests. But in a world where AI is the producer, these traditional “debts” seem payable instantly.
So what is the new “technical debt”?
- Is it specification debt? If AI is a perfect executor, then aren’t all problems rooted in the “specifications” we hand it — incomplete, ambiguous, or lacking foresight? Is the vague requirement we filed to ship fast the usury of the new era?
- Is it knowledge debt? Once a system runs in the real world, we gain invaluable tacit knowledge about its behavior and its users’ habits. If we simply let AI “tear it down and start over,” does that tacit knowledge — never explicitly recorded in the spec — die with the old system? Is that another, subtler form of debt?
- Is it data debt? The data structures and state inside the old system are the sediment of its history. How does a thorough internal rebuild guarantee perfect compatibility with old data and old state? Does handling the complexity of this “data migration” become the new, dominant cost of debt?
What Is the Real Cost of Starting Over?
The cost of AI rewriting code may approach zero. But is the cost of the whole “starting over” process really zero?
- You mention “interface compatibility,” and that is the critical constraint. But is a system’s “contract” merely its API? For a system running stably, the subtle differences in response time, the particular patterns of error handling, even some of its “benign bugs,” may already have become implicit contracts that external dependents — users or other systems — have grown accustomed to. Might a brand-new, seemingly perfect rewrite trigger a cascade of failures by breaking these implicit contracts?
- How do we verify, 100%, that a new internal implementation is equal or superior to the old one across every dimension? Might the cost of re-validating an entirely new system — functionality, performance, security, compliance — far exceed our imagination, even exceeding the cost of repaying the old technical debt?
Are We Repaying Debt, or Rolling It Over?
You mention “designing a better system based on the new information we have gathered.” That is the crux.
- How will this precious “new information” — our understanding of where the old system fell short — be preserved and passed on? If we merely rely on memory and experience to write a better spec at the next rewrite, how do we ensure that the rewrite after next, and the one after that, won’t repeat similar errors at the conceptual level somewhere else?
- Does this mean the core work of us humans becomes maintaining an ever-evolving, ever-improving “repository of system specifications and architectural knowledge”? That repository itself becomes our most important asset. And each “tear-down and rebuild” is the act of using AI’s power to instantiate the latest wisdom in that repository into a new product. If that repository itself is poorly managed, aren’t we just borrowing new debt to pay off the old?
Your proposal may well be the answer of the future. But it also seems to transform us from “code debtors” into “managers of systemic risk” and “curators of abstract knowledge.” We no longer worry about whether the code is elegant; we begin to worry about whether our specifications are precise, whether our knowledge is complete, whether our foresight into risk is deep.
Is this a liberation, or a heavier burden?
Good thinking. Could you explore in detail what the new definition of technical debt is when AI writes the bulk of the code? And what kind of sustainable path should we take to continually remedy our deficiencies in product thinking and system design?
Of course — an excellent follow-up question. We have seen the storm coming; now we need to draw the chart that will carry us through it. Let us explore these two questions in depth.
The New Definition of Technical Debt — Threefold Debt, from Code to Intent
In a world where AI is the primary productive force, the concept of “technical debt” migrates entirely from the physical layer of code to the abstract layer of thought and knowledge. It is no longer about “how well it was written,” but “how well it was thought.” I break it down into three escalating debts:
Specification Debt
This is the most direct and most common new form of debt. It arises from the flaws in the instructions — the specification — we give the AI.
- Definition: ambiguity, incompleteness, internal contradiction, or short-sighted simplification in the specification.
- Old-world analogy: a sloppy requirements document that says only “build a house.”
- New-world manifestation: to ship fast, we tell the AI “implement user login.” But we never defined: password-strength rules, third-party login options, lockout after three failed attempts, two-factor authentication flow, or compliance with privacy regulations in different regions. The AI fills these gaps with its own assumptions — and its assumptions will almost certainly collide with our future expectations.
- Essence: this is “the debt of intent.” We failed to think through and express our true intent clearly and completely, so the AI’s “free interpretation” becomes tomorrow’s liability. This is the highest-interest debt, because it directly affects the core behavior and security of the product.
Knowledge Debt
This is the deeper debt, about how the system interacts with the real world. It arises from the gap between the written rule and the unwritten reality.
- Definition: the loss or neglect of tacit knowledge, user habits, and external dependencies accumulated after the system runs in a real environment — things never formally recorded in the specification.
- Old-world analogy: the desire paths across the grass that appear on no city plan but that citizens have already worn down. Paving over them to lay tidy lawn actually reduces circulation and irritates the citizenry.
- New-world manifestation: an AI-generated system happens to return an average response time of 100ms on one API. Another team, building a new service, unknowingly depends on that latency. Later, we improve the spec, have AI rewrite the system, and the new API is “better” — 50ms. The result: the service that relied on the 100ms gap for polling collapses. That “100ms implicit contract” is a knowledge debt.
- Essence: this is “the debt of context.” We failed to absorb the behaviors and dependencies that emerged from the system in real contexts back into our knowledge base.
Paradigm Debt
This is the highest-level, most strategic debt. It arises from clinging to an architecture or problem-solving model that is already behind.
- Definition: when a superior architectural paradigm, data model, or technical philosophy appears, we still choose to patch and iterate on the old, inefficient paradigm.
- Old-world analogy: in the age of the automobile, devoting ourselves to optimizing carriage design and horse husbandry instead of studying the internal combustion engine.
- New-world manifestation: our product handles highly connected data, but our original specification was designed on the traditional relational database paradigm. AI can perfectly and endlessly generate code conforming to that paradigm. But the paradigm itself dictates that the system grows slower and clumsier at complex relationship queries. The real “debt” is not the code — it’s that the relational-database mode of thinking we chose no longer fits the new business requirements.
- Essence: this is “the debt of the mental model.” We paid off the first two debts, making the spec clear and the knowledge complete, but the foundation our thinking rests on — the paradigm — is obsolete.
The Sustainable Path — Building an “Intent–Insight” Evolutionary Loop
Since the nature of the debt has changed, the way we repay it must change too. A simple “tear down and rebuild” may settle the specification debt while detonating the knowledge debt. What we need is a sustainable evolutionary system that continually remedies our deficiencies in product thinking and system design. That system can be a closed loop:
Specification as Code
- Practice: treat the output of product thinking and system design — the “specification” — as a first-class citizen. It should not be a Word document or a slide deck, but a formalized asset, rigorously version-controlled and reviewed like code, perhaps even described in a purpose-built language (a DSL).
- Role: human experts become “specification architects,” focused on defining a precise, unambiguous, testable “legal code” for the system.
Deep Observation
- Practice: after the AI-generated system is deployed, observe it with unprecedented depth. We observe not only CPU and memory, but user behavior, business processes, and inter-system interaction patterns.
- Role: humans become “system ethnographers,” whose goal is to find, amid oceans of data, the divergence between the specification (intent) and reality (behavior).
Insight Sedimentation
- Practice: treat the observed divergences, user complaints, and newly discovered “knowledge debts” as the most precious resource. Build a “repository of insight” that turns this fuzzy, unstructured information into structured, machine-comprehensible knowledge.
- Role: humans become “knowledge curators,” responsible for distilling and translating feedback from the real world.
Specification Evolution
- Practice: feed the sedimented “insight” back into the “specification,” iterating and refining it. For example, explicitly write a newly discovered “implicit contract” into the spec as a new rule; or, informed by an awareness of “paradigm debt,” restructure the top-level architecture of the spec.
- Role: the whole team participates, completing a “pull request” on the specification.
This closed loop — specification → generation → observation → insight → specification evolution — is our sustainable path to continually remedying our deficiencies.
It elevates our work from the burdensome, repetitive “implementation of code” to a level that is more creative and demands more critical thinking: we are no longer builders, but the designers and navigators of this evolutionary system. By continually refining the expression of “intent,” we guide AI to shape a world ever closer to perfection for us. This may be precisely our most valuable position in the new era.