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]]