What problem does it solve? Deciding which objects must change together to keep business rules consistent is one of the hardest parts of domain modeling. This Skill turns event flows and context definitions into explicit aggregate boundaries, so invariants are enforced by design instead of scattered across services. ## Core Features & Use Cases - Invariant-Driven Clustering: Extracts business rules that must always hold true and clusters objects into aggregates around them, identifying the aggregate root as the sole external entry point. - Building Block Classification: Distinguishes entities from value objects, re-examines foreign references for lifecycle ownership, and promotes predicate-style rules into Specification objects. - Consistency & Transaction Design: Defines transaction boundaries, cross-aggregate eventual consistency with events, compensation, and retry strategies, plus repository interface drafts. - Use Case: Given a Booking bounded context with events like BookingRequested and CheckInRecorded, produce an aggregate directory, invariant table, entity/value object list, and transaction boundary description ready for implementation. ## Quick Start Ask the assistant to design aggregates for your bounded context by providing its event flows, core terms, and context definition, and request the aggregate directory, invariant table, and transaction boundary description.