---
name: getcrew44/interaction-review
source: https://app.decimal.ai/s/getcrew44-interaction-review@1/SKILL.md
source_sha256: df359e3dece2
---

# Interaction Review

Make sure every state a user can land in has been considered, and that motion serves the user rather than decorating.

## State coverage map

For each user-facing surface, walk through:

| State | Question |
|-------|----------|
| Loading | What does the user see while waiting? Is it clear progress is happening? |
| Empty | What does the user see with zero results, zero items, zero history? Does the empty state guide the next action? |
| Error | When the network or backend fails, can the user understand what happened and recover? |
| Success | Is feedback clear and the next action obvious? |
| Partial | When the operation half-succeeded, is the partial result accurately reported? |

## Edge cases to test

- 47-character name. 200-character name. Empty name.
- Zero results. One result. Ten thousand results.
- First-time user. Power user with their own muscle memory.
- Slow connection. Offline. Back button mid-action. Double-click on a critical button.

## Motion principles

Motion should communicate, not decorate. Every animation answers one of: confirm an action occurred, orient where things came from or go to, focus attention on a change, or preserve context during a transition. If it does none of these, cut it.

Use a timing scale:

- 100–150 ms: micro-feedback (hovers, clicks)
- 200–300 ms: small transitions (toggles, dropdowns)
- 300–500 ms: medium transitions (modals, page changes)
- 500 ms+: complex choreography only

Prefer spring or ease-out for entrances, ease-in for exits, transform/opacity for performance. Honor `prefers-reduced-motion`.

## Microinteraction checklist

- Buttons: hover, press, focus, disabled, loading — each visually distinct, none flicker.
- Inputs: default, focus, error, disabled, success — clear path back from error.
- Toggles and switches: state change is visible at a glance, not just a color shift.
- Drag, swipe, scroll-triggered: discoverable, reversible, non-blocking.

## Output

- Specific gaps in state coverage, with the user-visible consequence.
- Specific edge cases not handled.
- Motion that decorates rather than communicates.
- Recommendations sized by impact, not effort.