Agent skill · software engineering · yonatangross
domain-driven-design
DDD tactical patterns for complex business modeling including entities, value objects, aggregates, domain services, repositories, specifications, and bounded contexts. Python dataclass implementations with TypeScript alternatives. Use when building rich domain models, enforcing invariants, or separating domain logic from infrastructure.
Why this skill is useful
Provides domain-specific patterns and Python implementations for DDD that the AI wouldn't reliably generate on its own.
What it needs
About 4k tokens when loaded. Last updated 2026-08-06. 215 stars on the source repository.
What this skill does
Domain-Driven Design Tactical Patterns Model complex business domains with entities, value objects, and bounded contexts. Overview Modeling complex business logic Separating domain from infrastructure Establishing clear boundaries between subdomains Building rich domain models with behavior Implementing ubiquitous language in code Building Blocks Overview Quick Reference Entity (Has Identity) ID generation is a house rule, not a taste call: Read("references/ork-delta.md"). Value Object (Immutable) Canonical Address / DateRange boilerplate is not restated here. See the upstream coverage table below. Key Decisions Decision Recommendation ---------- ---------------- Entity vs VO Has unique ID + lifecycle? Entity. Otherwise VO Entity equality By ID, not attributes Value object mutability Always immutable (frozen=True) Repository scope One per aggregate root Domain events Collect in entity, publish after persist Context boundaries By business capability, not technical Rules Quick Reference Rule Impact What It Covers ------ -------- ---------------- aggregate-boundaries (load rules/aggregate-boundaries.md) HIGH Aggregate root design, reference by ID, one-per-transaction aggregate-invariants (load rules/aggregate-invariants.md) HIGH Business rule enforcement, specification pattern aggregate-sizing (load rules/aggregate-sizing.md) HIGH Right-sizing, when to split, eventual consistency When NOT to Use Under 5 entities? Skip DDD entirely. The ceremony costs more than the benefit. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills yonatangross/domain-driven-design--54d7fc