What problem does it solve? Codebases often allow illegal states to be represented through nullable fields, boolean flag combinations, and raw input passed deep into business logic, causing bugs that surface far from their source. This Skill guides agents to model data first so forbidden states become unrepresentable in the type system. ## Core Features & Use Cases - Invariant-first data design: Define data shapes, allowed state combinations, and transitions before writing transformations, using explicit variants instead of flags or nullables. - Boundary parsing discipline: Parse external input once at the edge into trusted internal types using ecosystem schema libraries like Pydantic or Zod. - Functional core, imperative shell: Keep effects such as I/O, clocks, randomness, and persistence at the edges so core logic tests run without mocks or databases. - Use Case: When adding a payment state machine to an invoicing service, use this Skill to model states like pending, settled, and expired as explicit variants, parse API payloads at the boundary, and keep database calls out of the domain functions. ## Quick Start Use the domain-modeling skill to design the data shapes and state transitions for this feature before writing any transformation code.