What problem does it solve? Writing Domain layer code for an ERP system requires strict consistency: aggregate roots with UUIDv7 identifiers, private setters, factory methods, business invariants, and domain events raised from entities rather than handlers. This Skill generates correct Domain layer code following these rules so the Domain layer stays free of external dependencies. ## Core Features & Use Cases - AggregateRoot and Entity templates: Generates sealed C# classes with private constructors, static factory methods, private setters, and Guard-based invariant enforcement. - ValueObject and DomainEvent templates: Produces equality-by-value objects like Money and InvoiceNumber, plus record-based domain events with EventId and OccurredAt. - Supporting patterns: Includes enum templates mapped to TINYINT, static error classes using the "{module}.{entity}.{code}" format, and Application-layer event handlers that publish integration events via MassTransit. - Use Case: When asked to create an Invoice aggregate for a Finance module, the Skill produces the entity with UUIDv7 ID generation, AddLine/Approve/Cancel business methods, and raised domain events, all with zero Infrastructure references. ## Quick Start Ask the AI to create a new aggregate root entity with value objects and domain events for a specific ERP module using the domain-entity skill.