What problem does it solve? Stateful code often accumulates scattered booleans, repeated shape assumptions, and branching spread across files, creating accidental complexity and invalid states. This Skill guides you to encode the domain in a proper structure at write time, making invalid states unrepresentable and deleting unnecessary branches. ## Core Features & Use Cases - Structure Selection Guidance: Recommends state machines, typed models, lookup tables, discriminated unions, reducers, and other structures matched to your domain problem. - Anti-Pattern Detection: Identifies tells like growing if/else chains, booleans that must stay in sync, and temporal decomposition across phase-named modules. - 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 would extend an existing conditional chain or introduce a second lifecycle boolean, apply this Skill to replace the branching with a state machine or discriminated union. ## Quick Start Apply the model-the-domain principle to refactor this module's scattered conditionals into a structure that encodes the domain rules.