Map the edge cases, error states, and empty states for {{feature: e.g. the file upload flow}}.
Cover:
1. **Empty states** — first use, no data yet, cleared inputs
2. **Loading states** — slow network, partial loads, abandoned mid-flight
3. **Error states** — server errors, validation errors, permission errors, rate limits, network failures
4. **Boundary inputs** — zero, very large, negative, unicode, RTL, very long strings, files at the size limit
5. **Concurrent access** — two tabs, two users, same record
6. **Permissions and auth** — logged out, session expired, wrong role, suspended account
7. **External dependencies down** — third-party API timeout, DB unavailable, CDN failing
8. **Browser / device edge cases** — offline, slow CPU, small viewport, screen reader, no JS
For each: a one-line description, what the user should see, and whether the current design covers it. Mark items "not covered" or "ambiguous" explicitly — don't paper over gaps.edge-casesdesignplanning