| Pattern | Don't Just Say | Ask Instead |
| Primitive obsession | "It's just a string" | What does this value represent? | | Boolean flags | "Add an isvalid flag" | Can states be types? | | Optional everywhere | "Check for None" | Is absence really possible? | | Validation at runtime | "Return Err if invalid" | Can we validate at construction? |
| What types to create | m09-domain | What's the domain model? | | State machine design | m09-domain | What are valid transitions? | | Marker trait usage | m04-zero-cost | Static or dynamic dispatch? |
CRITICO: utilizzare per la progettazione basata sul tipo. Trigger: stato del tipo, PhantomData, newtype, tratto marcatore, modello del builder, rende irrappresentabili gli stati non validi, convalida in fase di compilazione, tratto sigillato, ZST, 类型状态, 新类型模式, 类型驱动设计 Fonte: goooice/rust-skills.