Technical debt is not one thing. It has at least three distinct flavors:
Deliberate: we know this is messy, we chose speed over cleanliness, we'll fix it. This is often fine.
Inadvertent: we didn't know better at the time. This is just learning.
Accumulated complexity: the system grew in ways nobody planned, and now nobody fully understands it. This is the dangerous kind — it's not a debt you can pay off; it's an entanglement you have to untangle.
The distinction matters because the interventions are different. Deliberate debt: schedule the refactor. Accumulated complexity: rewrite or strangle.
Related: debugging-as-search, ↗ @dave / on-abstraction