You just fixed a bug in the payment module. Simple enough — an edge case in the calculation logic. You changed three files: the payment handler, a date formatting utility, and a config loader.
Those three files have nothing to do with each other.
You know that. You've always known it. You fixed the bug anyway, committed all three, and moved on. Because that's just how this codebase works.
Your import graph is lying to you
When we talk about coupling, most developers think of import statements. You open a file, you look at what it imports, and you draw a mental map of dependencies. Clean Architecture tools do the same thing — they trace the explicit links between modules and draw you a diagram.






