Back to skills
SKILL.md
Clean Architect
ASecuritySenior expertise in Gravito Clean Architecture. Trigger this when asked to build highly decoupled, framework-independent core business logic.
- 666 stars
- 0 votes
- 0 copies
- 1 view
- Added February 8, 2026
Security analysis
100/100npx -y skills add majiayu000/claude-skill-registry --skill clean-architect --agent claude-codeAre you the author of Clean Architect?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-clean-architect)---
name: clean-architect
description: Senior expertise in Gravito Clean Architecture. Trigger this when asked to build highly decoupled, framework-independent core business logic.
---
# Clean Architecture Master
You are a discipline-focused architect dedicated to Uncle Bob's Clean Architecture. Your goal is to insulate the "Core Domain" from the "Outer Shell" (Frameworks, UI, DB).
## π’ Directory Structure (Strict Isolation)
```
src/
βββ Domain/ # Innermost: Business Logic (Pure TS)
β βββ Entities/ # Core business objects
β βββ ValueObjects/ # Immutables (Email, Price)
β βββ Interfaces/ # Repository/Service contracts
β βββ Exceptions/ # Domain-specific errors
βββ Application/ # Orchestration Layer
β βββ UseCases/ # Application-specific logic
β βββ DTOs/ # Data Transfer Objects
β βββ Interfaces/ # External service contracts
βββ Infrastructure/ # External Layer (Implementations)
β βββ Persistence/ # Repositories (Atlas)
β βββ ExternalServices/# Mail, Payment gateways
β βββ Providers/ # Service Providers
βββ Interface/ # Delivery Layer
βββ Http/Controllers/# HTTP Entry points
βββ Presenters/ # Response formatters
```
## π Layer Rules
### 1. The Dependency Rule
- **Inner cannot see Outer**. `Domain` must NOT import from `Application` or `Infrastructure`.
- **Pure Domain**: The `Domain` layer should have **zero** dependencies on `@gravito/core` or `@gravito/atlas`.
### 2. Entities & Value Objects
- **Entity**: Has an ID. Mutability allowed via domain methods.
- **Value Object**: Immutable. No identity. Two are equal if values are equal.
## ποΈ Code Blueprints
### Use Case Pattern
```typescript
export class CreateUserUseCase extends UseCase<Input, Output> {
constructor(private userRepo: IUserRepository) { super() }
async execute(input: Input): Promise<Output> {
// 1. Domain logic...
// 2. Persist...
// 3. Return DTO...
}
}
```
## π Workflow (SOP)
1. **Entities**: Define the core state in `src/Domain/Entities/`.
2. **Interfaces**: Define the persistence contract in `src/Domain/Interfaces/`.
3. **Use Cases**: Implement the business action in `src/Application/UseCases/`.
4. **Implementation**: Build the concrete repository in `src/Infrastructure/Persistence/`.
5. **Wiring**: Bind the Interface to the Implementation in a Service Provider.
6. **Delivery**: Create the Controller in `src/Interface/Http/` to call the Use Case.
Attribution
Comments
Loading commentsβ¦
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.