Technical debt is the future cost of shortcuts, outdated dependencies, tangled design, or unresolved implementation deficiencies. Like financial debt, it accumulates interest: later changes become harder, slower, riskier, and more expensive. section 3.1.1
Technical debt accumulates when:
- A deadline encourages a temporary solution instead of a clean design. section 3.1.1
- External systems preserve outdated protocols, or libraries and frameworks remain unsupported and unsecured. section 3.1.1
- Business logic, database queries, and user-interface code become entangled, making debugging and extension error-prone. section 9.1
- Generated patches solve immediate failures without restoring a coherent design or shared understanding. section 1.2.2
A patch loop
An AI agent produces an incorrect first draft. Repeated requests to fix it add patches rather than improving the underlying solution. The code may compile and pass tests, yet later bugs or requirement changes force developers to reverse-engineer code they never fully understood. section 1.2.2
Durable design limits debt by separating concerns: distinct modules and protected domain logic make systems easier to extend and allow technical details to change without rewriting core rules. section 9.1









