<< All versions
Skill v1.0.1
currentAutomated scan100/100dykyi-roman/awesome-claude-code/ddd-knowledge
9 files
──Details
PublishedSeptember 2, 2026 at 02:54 AM
Content Hashsha256:4380fddd66fe504b...
Git SHA7e1fea8899b7
Bump Typepatch
──Files
Files (1 file, 4.1 KB)
SKILL.md4.1 KBactive
SKILL.md · 149 lines · 4.1 KB
version: "1.0.1" name: ddd-knowledge description: DDD architecture knowledge base. Provides patterns, antipatterns, and PHP-specific guidelines for Domain-Driven Design audits.
DDD Knowledge Base
Quick reference for DDD architecture patterns and PHP implementation guidelines.
Core Principles
Layer Dependencies (Clean Architecture)
Presentation → Application → Domain ← Infrastructure↓Domain (center)
Rule: Dependencies point INWARD. Domain has ZERO external dependencies.
Layer Responsibilities
| Layer | Contains | Depends On | |
|---|---|---|---|
| Domain | Entities, Value Objects, Aggregates, Domain Services, Repository Interfaces, Domain Events | Nothing | |
| Application | Use Cases, DTOs, Application Services | Domain | |
| Infrastructure | Repository Implementations, External APIs, DB, Cache, Queue | Domain, Application | |
| Presentation | Controllers, Actions, Request/Response, CLI | Application |
Quick Checklists
Domain Layer Checklist
- [ ] No framework imports (Doctrine, Eloquent, Symfony)
- [ ] Entities have behavior, not just data
- [ ] Value Objects for domain concepts (Email, Money, Id)
- [ ] Repository INTERFACES defined here
- [ ] Enums for fixed value sets
- [ ] Domain Events for side effects
- [ ] No
public function set*()methods
Application Layer Checklist
- [ ] UseCases orchestrate, don't decide
- [ ] DTOs for input/output
- [ ] No business logic (if/switch on domain state)
- [ ] Transaction boundaries here
- [ ] No HTTP/CLI concerns
Infrastructure Layer Checklist
- [ ] Implements Domain interfaces
- [ ] No business logic in repositories
- [ ] External service adapters
- [ ] Caching, queuing implementations
Presentation Layer Checklist
- [ ] Validates input
- [ ] Maps to DTOs
- [ ] Calls UseCase
- [ ] Formats response
- [ ] No business logic
Common Violations Quick Reference
| Violation | Where to Look | Severity | |
|---|---|---|---|
use Doctrine\\ in Domain | Domain/*.php | Critical | |
use Illuminate\\ in Domain | Domain/*.php | Critical | |
use Infrastructure\\ in Domain | Domain/*.php | Critical | |
| Only getters/setters in Entity | Domain/Entity/*.php | Warning | |
=== 'pending' magic strings | Any PHP file | Warning | |
public function set*() | Domain/Entity/*.php | Warning | |
| Business logic in Controller | Presentation/*.php | Warning | |
| Business logic in Repository | Infrastructure/*.php | Warning |
PHP 8.4 DDD Patterns
Value Object
php
final readonly class Email{public function __construct(public string $value) {if (!filter_var($value, FILTER_VALIDATE_EMAIL)) {throw new InvalidArgumentException('Invalid email');}}public function equals(self $other): bool{return $this->value === $other->value;}}
Entity with Behavior
php
final class Order{private OrderStatus $status;public function __construct(private readonly OrderId $id,private readonly CustomerId $customerId) {$this->status = OrderStatus::Pending;}public function confirm(): void{if (!$this->status->canTransitionTo(OrderStatus::Confirmed)) {throw new DomainException('Cannot confirm order');}$this->status = OrderStatus::Confirmed;}}
Repository Interface
php
// Domain/Repository/OrderRepositoryInterface.phpinterface OrderRepositoryInterface{public function findById(OrderId $id): ?Order;public function save(Order $order): void;}
References
For detailed information, load these reference files:
references/layer-architecture.md— Detailed layer rules and boundariesreferences/domain-patterns.md— Entity, VO, Aggregate, Repository patternsreferences/application-patterns.md— UseCase, DTO, Command/Query patternsreferences/antipatterns.md— Common violations with detection patternsreferences/php-specific.md— PHP 8.4 specific implementations
Assets
assets/report-template.md— Structured audit report template