.agents/skills/reducing-entropy/references/design-is-taking-apart.md
"Design is about taking things apart."
Good design is not about adding features. It's about removing dependencies. It's about separating concerns so cleanly that each piece can be understood, tested, and changed independently.
When you see a complex system, the instinct is to understand how the pieces fit together. But the real skill is seeing how to pull them apart.
Each separation reduces complexity. Each coupling increases it.
Once you have simple, independent pieces:
Inheritance complects. Composition liberates.
A system built from small, focused functions that transform data is:
The opposite of composition is the "god object" or "kitchen sink" - one thing that knows about everything, does everything, and can't be changed without breaking everything else.
Every helper method you add to a class is a small step toward the kitchen sink. Every layer of abstraction is a coupling waiting to cause pain.
Before adding a method, wrapper, or abstraction:
Separate, don't combine. Compose, don't construct.