What problem does it solve?
Large or long-lived codebases become hard to understand, test, and change due to tangled business logic, fat controllers, circular dependencies, unclear module boundaries, and inappropriate abstractions. This Skill provides concrete guidance to reorganize and design application modules so the code remains reliable and adaptable as the team and feature set grow.
Core Features & Use Cases
- Architecture selection: Help choose between clean architecture, hexagonal architecture, feature-based structure, or vertical-slice organization based on team size and domain complexity.
- Dependency inversion & DI guidance: Prescribe interfaces, constructor injection patterns, when to use IoC containers, and anti-patterns to avoid.
- Module boundaries & exports: Define public APIs for features, enforce barrel exports, and recommend import rules to prevent internal coupling.
- Anti-pattern detection & refactoring advice: Diagnose fat controllers, circular dependencies, over-abstraction, and recommend concrete remediation steps and tooling.
- Testing strategy alignment: Map layers to the test pyramid and recommend where unit, integration, and E2E tests should live.
- Use case example: Reorganize an orders feature into a feature folder with domain, application, infrastructure, HTTP adapters, and a public index to improve onboarding and deletion safety.
Quick Start
Ask the assistant to analyze your repository and recommend a concrete folder structure, dependency-injection approach, and three prioritized refactors to reduce coupling.