What problem does it solve? Stateful logic often ends up as scattered booleans, repeated shape assumptions, and branching spread across files, which creates accidental complexity and allows invalid states. This Skill guides you to encode the real domain in a structure so invalid states become unrepresentable and branches disappear. ## Core Features & Use Cases - Structure Selection Guidance: Recommends state machines, typed models, registries, discriminated unions, reducers, and command/event models as replacements for ad hoc conditionals. - Anti-Pattern Detection: Identifies warning signs such as growing if/else chains, booleans that must stay in sync, and temporal decomposition across phase-named modules. - Restraint Against Over-Abstraction: Advises preferring boring, clear code when the current shape is local and unlikely to grow, and rejecting abstractions that add indirection without removing branches. - Use Case: When adding a new lifecycle phase to a feature, instead of extending an if/else chain and adding another boolean, model the lifecycle as a state machine so illegal transitions cannot compile. ## Quick Start Apply the model-the-domain principle to refactor this module's scattered conditionals into a structure that encodes the domain rules.