Audit all failure paths, edge cases, and non-happy-path states -- empty states, validation errors, permission failures, loading, undo, and recovery.
Audit failure paths and edge cases for this scope:
$ARGUMENTS
Use ultrathink. Happy paths make prototypes look coherent. Failure paths reveal whether they actually are. Review the actual codebase, components, error handling, and UI states.
Write docs/hci/failure-path-audit.md unless the user asked for another path.
Create the directory if it does not exist.
For every screen or list that can be empty: | Screen/component | What is empty | Current empty state treatment | Has illustration/guidance? | Has call to action? | Rating |
Rating: OK = empty state is handled well; PARTIAL = present but incomplete; MISSING = no empty state handling.
Check:
For every async operation: | Operation | Current loading indicator | Location | Blocks interaction? | Has timeout handling? |
Check:
For every form or input: | Form/input | Validation rules | When validation runs | Error message | Error placement | Recovery path |
Check:
For every protected action or screen: | Action/screen | Required permission | What happens without permission | User feedback |
Check:
| Operation | Behavior on network failure | Retry available? | Data preserved? | Offline fallback? |
Check:
| Flow | Can be partially completed? | What happens if abandoned? | Can be resumed? | Is progress saved? |
Check:
| Action | Reversible? | Undo mechanism | Confirmation required? | Time limit on undo? |
Check:
| Scenario | Current handling | User feedback |
Check:
| Category | Items audited | Handled well | Partially handled | Not handled | Critical gaps |
|---|
End with: