What problem does it solve? When a use case on one aggregate needs to verify the state of another aggregate (e.g., "a brand with linked products cannot be deleted"), developers often reach for the wrong solution: misusing Sagas, letting the command side depend on read models, or building complex reverse-lookup indexes. This Skill provides a structured decision framework to question the requirement, reconsider aggregate boundaries, and choose an appropriate resolution strategy. ## Core Features & Use Cases - Requirement Re-examination: Challenges whether the cross-aggregate constraint is truly necessary, analyzing lifecycle implications and offering relaxation options like logical deletion. - Modeling Review: Detects when the constraint signals wrong aggregate boundaries (1:1 relationships should merge; pure query needs should become CQRS read models). - Saga Misuse Detection: Distinguishes legitimate Saga usage (distributed transaction coordination) from misuse (simple constraint checks). - CQRS/ES Technical Guidance: Explains why command-side code must not depend on read models, how to reference other aggregates via repositories or actor messaging, and the cost of reverse-lookup indexes on event stores. - Use Case: During a code review, you find a use case that queries a brand read model before creating a product. Use this Skill to identify the race condition risk and refactor toward command-side resolution or explicit eventual consistency. ## Quick Start Ask the AI to review whether checking another aggregate's state in this use case is the right design, and what alternatives exist.