Skip to content
Back to skills

Clean Architect

ASecurity

Senior 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
toolstypescriptgoshell

Security analysis

A100/100

Scanned February 10, 2026

npx -y skills add majiayu000/claude-skill-registry --skill clean-architect --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Clean Architect?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Clean Architect
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-clean-architect/badge)](https://www.skillsdirectory.com/skills/majiayu000-clean-architect)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.