What problem does it solve? Codebases accumulate accidental complexity when domain rules are scattered across booleans, if/else chains, and repeated shape assumptions in multiple files. This Skill guides you to encode the domain directly in a structure, making invalid states unrepresentable and deleting branches at write time. ## Core Features & Use Cases - Structure Selection Guidance: Recommends concrete structures such as state machines, typed models, lookup tables, discriminated unions, reducers, and domain-organized modules to replace branching logic. - Anti-Pattern Detection: Identifies tells like growing if/else chains, booleans that must stay in sync, and phase-named modules that repeat domain rules across steps. - Restraint Against Over-Abstraction: Advises preferring boring code when the current shape is already clear, local, and unlikely to grow. - Use Case: When adding a feature that extends an existing conditional chain or introduces a second lifecycle flag, apply this Skill to design a state machine or registry that encodes the domain rules once. ## Quick Start Apply the model-the-domain principle to refactor this module's scattered conditionals into a single domain structure.