# Find animation opportunities AI skill **An agent skill by Emil Kowalski that sweeps a UI for places where motion would actually help, and rejects almost all of them.** Read-only: it proposes recipes with exact values and hands implementation to another agent. Its opening principle is the reason it's worth reading even if you never install it: *sometimes the best animation is no animation.* Most skills in this space generate work. This one is built to say no. ## The four-question gate Every candidate has to survive all four, in order. **1. Frequency.** How often will someone see this? | Tier | Example | Allowed | |---|---|---| | 100+/day | keyboard shortcuts, command palette | nothing — disqualified outright | | Tens/day | hovers, toggles | near-imperceptible motion only | | Occasional | modals, toasts | standard animation | | Rare / first-time | onboarding, success states | delight budget unlocked | **2. Purpose.** It has to name one: feedback, spatial consistency, state indication, preventing a jarring change, explanation (onboarding only), or delight (rare moments only). "It looks nice" is not on the list. **3. Speed.** Against fixed budgets: press feedback 100–160ms, tooltips and popovers 125–200ms, dropdowns 150–250ms, modals and drawers 200–500ms. **4. Function.** Motion on data-dense functional UI hurts readability. Decoration fails here. ## Where it hunts Pressable elements with no `:active` state or transition. Content that appears or vanishes instantly — conditionals, route changes, accordions. Panels and popovers visually disconnected from what triggered them. Draggables that snap without physics. Rare high-emotion moments rendered flat. ## Output Three parts: a table of opportunities (location, current state, purpose, frequency tier, exact values pulled from the repo's own tokens rather than approximated), then 2–5 **rejected** candidates naming which gate killed each one, then a one-paragraph verdict. The rejection list is the part I'd steal. Making an agent justify what it *didn't* propose is a cheap way to see whether its filter is real. ## Why it's a good skill design The frequency-tier table converts taste into a decision rule the agent can actually apply. That's the hard part of writing any skill: not encoding what you know, but encoding it in a form that survives being executed by something without judgment. Most skills fail here and end up as vibes in a markdown file. It also stops when the hunt is done, even if nothing survives. A skill allowed to return an empty result is a skill you can trust. ## Related - [[AI Agent Skills]] - [[Claude Code Skills]] - [[User Experience (UX)]] - [[AI Agents]] ## References - Skill source: https://github.com/emilkowalski/skills/blob/main/skills/find-animation-opportunities/SKILL.md - Skill collection: https://github.com/emilkowalski/skills