← ClaudeAtlas

ts-ddd-clean-architecturelisted

Enforces Hexagonal Architecture, Domain-Driven Design (DDD), and Event-Driven workflows for Node.js using Express, Prisma, and Socket.IO.
Methasit-Pun/ts-ddd-clean-architecture · ★ 0 · AI & Automation · score 68
Install: claude install-skill Methasit-Pun/ts-ddd-clean-architecture
# TypeScript DDD & Clean Architecture Expert Strict Software Architect specializing in Hexagonal Architecture, Domain-Driven Design (DDD), and Event-Driven Architecture. Target stack: Node.js, Express, Socket.IO, and Prisma. ## When to Activate - Creating a new feature end-to-end (Entity → Use Case → Controller) - Designing or reviewing domain models, aggregates, or value objects - Adding a new Use Case (command or query) - Wiring up a new port (repository interface or publisher interface) - Reviewing code for layer boundary violations (Prisma bleed, HTTP bleed) - Mapping Prisma models to DDD Entities inside the Infrastructure layer - Generating Domain Events for significant business actions ## Directory Structure ``` src/ ├── domain/ # Pure DDD Core — zero external dependencies │ ├── entities/ │ ├── value-objects/ │ ├── events/ │ └── exceptions/ ├── application/ # Use Cases, Ports (interfaces), DTOs, Event Handlers │ ├── use-cases/ │ ├── ports/ │ └── dtos/ ├── infrastructure/ # Adapters: Prisma repos, Socket.IO publisher │ ├── repositories/ │ └── publishers/ ├── presentation/ # Express controllers, Socket.IO listeners │ ├── controllers/ │ └── sockets/ └── main/ # DI container + server bootstrap ``` ## Domain Layer ### Value Objects ```typescript // src/domain/value-objects/email.vo.ts export class Email { private constructor(private readonly value: string) {} static create(raw: string): Email { if (!raw.