principle-clean-architecture
Installation
SKILL.md
Clean Architecture
The one rule
Source-code dependencies point inward. Inner circles know nothing about outer ones.
[ Frameworks & Drivers ] ← HTTP, DB, UI, CLI
[ Interface Adapters ] ← controllers, presenters, gateways
[ Use Cases ] ← application-specific business rules
[ Entities ] ← enterprise-wide business rules
If a use case imports the ORM, the rule is broken.
Ports and adapters
- Port — interface owned by the domain describing what it needs (
UserRepository.find(id)). - Adapter — implementation in the outer layer (
PostgresUserRepository). - Domain depends on ports. Composition root wires adapters to ports at startup.