error-prevention-recovery
Installation
SKILL.md
Error Prevention and Recovery
Design systems that prevent errors before they happen, and when errors do occur, help people recover without shame, confusion, or lost work.
Prevention Strategies
Forgiving Input
- Accept multiple date formats ("15/03/2026", "15 March 2026", "March 15, 2026")
- Accept multiple phone formats ("(555) 123-4567", "555-123-4567", "5551234567")
- Auto-format as the user types
- Case-insensitive matching
- Trim whitespace automatically
- Show format examples next to fields ("e.g., 15/03/2026")
Smart Defaults
- Pre-select the most common option
- Pre-fill known information (name from account, address from postcode)
- Show the recommended choice for complex decisions
- Default to the safest option for irreversible settings
Progressive Validation
- Validate each field when the user moves to the next (on blur)
- Show success states for correctly completed fields
- Never validate while the user is still typing
- Never clear user input on error — always preserve their work
Minimal Demands
- Only ask for information you strictly need
- Mark optional fields, not required ones (most fields should be required by design — if they aren't needed, remove them)
- Break long forms into steps with clear progress
Error Message Design
Every error message must answer three questions:
- What happened? (specific, not generic)
- Why? (in plain language)
- What do I do now? (a clear, single action)
Examples
Bad: "Invalid input" Good: "Please enter a date in the format DD/MM/YYYY — for example, 15/03/2026"
Bad: "Error 403" Good: "You don't have permission to view this page. Contact your team admin to request access."
Bad: "Password does not meet requirements" Good: "Your password needs at least 8 characters and one number. You have 6 characters."
Error Message Tone
- Never blame the user ("You entered an invalid email")
- State the situation neutrally ("We need a valid email to continue")
- Be specific about what needs to change
- Offer an alternative path when possible
Recovery Design
- Undo available for at least 10 seconds after any action
- Confirmation before destructive actions with useful detail: "Delete 'Project Alpha'? This removes all 23 files. This cannot be undone."
- Preview before submission for any consequential action
- Save progress automatically in long flows
- Alternative path when primary path fails: "Can't upload a photo? You can describe what you see instead."