Loading...
Loading...
Found 9 Skills
Apply Clean Architecture + DDD + Hexagonal patterns to backend services. Use when designing APIs, microservices, domain models, aggregates, repositories, bounded contexts, or scalable backend structure. Triggers on DDD, Clean Architecture, Hexagonal, ports and adapters, entities, value objects, domain events, CQRS, event sourcing, repository pattern, use cases, onion architecture, outbox pattern, aggregate root, anti-corruption layer. Language-agnostic (Go, Rust, Python, TypeScript, Java, C#).
Validate domain boundaries -- detect cross-context import violations and aggregate invariant issues
Model business domains using DDD tactical and strategic patterns
Domain-Driven Design patterns. Bounded contexts, aggregates, entities, value objects, domain events, repositories, and application services. Strategic and tactical DDD for complex business domains. USE WHEN: user mentions "DDD", "Domain-Driven Design", "bounded context", "aggregate", "value object", "domain event", "ubiquitous language", "aggregate root", "domain service" DO NOT USE FOR: database schema design - use database skills; CQRS/Event Sourcing specifics - use `event-sourcing-cqrs`
This skill should be used whenever domain modeling is taking place. It provides specialized guidance for type-driven and data-driven design based on Rich Hickey and Scott Wlaschin's principles. The skill helps contextualize current modeling within the existing domain model, identifies inconsistencies, builds ubiquitous language, and creates visualizations (Mermaid, Graphviz/DOT, ASCII diagrams) to communicate domain concepts clearly. Use this skill when designing types, modeling business domains, refactoring domain logic, or ensuring domain consistency across a codebase.
Domain-Driven Design patterns for TypeScript. Use when implementing ubiquitous language, value objects, entities, aggregates, domain events, domain services, or bounded contexts. Only applies to projects that explicitly use DDD. Do NOT use for simple CRUD or projects without domain modeling.
CQRS - Command Query Responsibility Segregation. Use when implementing DDD patterns, separating read/write models, event sourcing, or building scalable architectures with heterogeneous performance requirements.
Use when the user is modeling something whose identity matters beyond its attributes — phrases like "entity", "this thing has an ID", "two of these are the same if their IDs match", "tracked over time", "lifecycle". Distinguishes entities from value objects by identity continuity. Pairs with ddd-value-object (the opposite distinction).
Use when the user wants concrete code that realizes a DDD pattern — phrases like "scaffold an entity for X", "write the Aggregate for Y", "give me the repository interface", "implement this value object". Drives the conversation through naming + invariants and then delegates code generation to a language adapter skill (e.g., ddd-kotlin-idioms for Kotlin). Do NOT use for refactoring (route to ddd-refactor), review (route to ddd-review), or design from scratch (route to ddd-design).