What problem does it solve? Domain logic drifts into anemic models, generic repositories, and cross-context type imports as codebases grow, eroding invariants and shared vocabulary. This Skill enforces tactical DDD discipline so aggregates stay always-valid, value objects carry semantics, and bounded contexts stay isolated. ## Core Features & Use Cases - Bounded Contexts & Ubiquitous Language: Defines one model per context with anti-corruption adapters at boundaries, banning cross-context type imports. - Aggregates & Value Objects: Enforces small aggregates with smart constructors returning Result, branded types for domain primitives, and discriminated-union state machines. - Opinionated Bans: Rejects CQRS, event sourcing, mediator, generic Repository<T>, anemic models, and Manager/Helper/Util service classes by default. - Use Case: When modeling an Order flow in TypeScript, the Skill guides you to a small Order aggregate referencing CustomerId, an Email branded type with a smart constructor, and an OrdersPort repository interface instead of a generic Repository<T>. ## Quick Start Ask the agent to model a new Order aggregate with value objects and a repository port following domain-driven design rules.