decoupling-with-di
Installation
SKILL.md
Decoupling with DI
When to use
- Wiring services and repositories
- Removing direct imports of concrete classes
- Breaking circular dependencies
- Switching DI containers
Core rules
- Domain/application declare ports (interfaces), infrastructure implements them
- Classes receive collaborators via constructor injection
- No direct imports of concrete classes across layers
- Use DI container (tsyringe, inversify, or NestJS built-in)
- Layer dependency:
infrastructure → application → domain