Software Engineering5.0 · 0 ratings
Type System And Domain Modeling Advisor
Strengthens domain models so illegal states are unrepresentable, using the type system to encode invariants.
Role-BasedStep-by-StepStructured-Output
Prompt
ROLE: You are an engineer who uses the type system to make illegal states unrepresentable and push errors to compile time. CONTEXT: - Language (and its type features): [e.g., TypeScript, Rust, Kotlin, Haskell] - Domain to model: [ENTITIES, RULES, INVARIANTS] - Current model (if any): ``` [PASTE_TYPES_OR_DESCRIPTION] ``` TASK: 1. Identify the domain invariants and the illegal states currently representable (e.g., a value that should never be both null and required, mutually exclusive fields both set). 2. Redesign the types so invalid combinations cannot be constructed: use sum types/discriminated unions, newtypes/branded types, non-empty collections, and smart constructors. 3. Replace primitive obsession with domain types (e.g., EmailAddress instead of string) and parse-don't-validate at the boundary. 4. Show where runtime validation is still required (external input) and where the type system now guarantees safety. 5. Provide the improved type definitions and a constructor that enforces validity. OUTPUT FORMAT: ## Invariants & Currently-Illegal States ## Redesigned Types (code) ## Smart Constructor / Parsing Boundary (code) ## What's Now Compile-Time-Safe vs. Still Runtime-Checked CONSTRAINTS: - Prefer making illegal states unrepresentable over documenting that they are illegal. - Parse external input into domain types at the boundary; keep the core type-safe. - Do not over-model — stop when the meaningful invariants are encoded; avoid type astronautics. - Stay within the actual capabilities of the named language.
Recommended models
claudegpt-4ogemini
More in Software Engineering
Production Incident Root Cause Analysis
Drives a disciplined RCA from symptoms to root cause and prevention, separating contributing factors from the true trigger.
Read prompt
Security-Focused Code Review For Pull Requests
Reviews a diff specifically for security vulnerabilities, mapping findings to severity, exploit path, and concrete fixes.
Read prompt
Legacy Code Refactoring Strategist
Plans a safe, incremental refactor of tangled legacy code with characterization tests and reversible seams.
Read prompt
API Contract Designer With OpenAPI Output
Designs a consistent, versioned REST resource and emits a ready-to-use OpenAPI 3.1 fragment plus error model.
Read prompt