What problem does it solve? Stateful code often accumulates scattered booleans, repeated shape assumptions, and branching spread across files, creating accidental complexity that makes invalid states possible and refactors expensive. This Skill guides you to encode the real domain in a structure at write time, deleting branches and making invalid states unrepresentable. ## Core Features & Use Cases - Structure Selection Guidance: Recommends concrete structures such as state machines, typed models, lookup tables, discriminated unions, reducers, and command/event models matched to the problem shape. - Anti-Pattern Detection: Identifies warning signs 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 would extend an existing if/else chain by one more branch, apply this Skill to replace the branching with a state machine or registry that encodes the domain directly. ## Quick Start Apply the model-the-domain principle to refactor this module's scattered conditionals into a structure that encodes the domain.