#38 by GitHub stars
emilkowalski/skills
Skills for Designers and Engineers.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/animate/SKILL.md
Week of Nov 2, 2026 · +4 / −4 lines
Before Instructions only → After Instructions only
2d228630ba14 → f1090bec2771
- 89 - **In Motion, use the full transform string.** `x`/`y`/`scale` shorthands are not hardware-accelerated and drop frames under load:
+ 89 - **In Motion, newest versions hardware accelerate independent transforms like `x`/`y`/`scale`/`rotate`.**
- 92 <motion.div animate={{ x: 100 }} /> // drops frames under load
- 93 <motion.div animate={{ transform: "translateX(100px)" }} /> // hardware accelerated
+ 92 <motion.div animate={{ x: 100 }} /> // motion 14.2+: hardware accelerated
+ 93 <motion.div animate={{ transform: "translateX(100px)" }} /> // hardware accelerated in every version
- 190 | Motion `x`/`y`/`scale` props under load | Full `transform` string |
+ 190 | Motion `x`/`y`/`scale` props under load on versions before 14.2 | Upgrade to 14.2+, or a full `transform` string |
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
skills/animate-expo/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Local scripts
2d228630ba14 → f1090bec2771
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
skills/animation-performance/SKILL.md
Week of Nov 2, 2026 · +12 / −12 lines
Before Instructions only → After Instructions only
2d228630ba14 → f1090bec2771
- 3 description: Keep web animations inside the frame budget — animate composite-only properties, keep motion off the main thread when the page is busy, and find the cause when an animation drops frames. Covers the layout/paint/composite pipeline, cheaper property swaps, CSS vs WAAPI vs requestAnimationFrame, Framer Motion's hardware-accelerated path, React re-rendering per frame, inherited CSS variable recalculation, blur cost, and when `will-change` actually helps. Use when an animation is janky, choppy, stutters, or drops frames; when choosing which property to animate; when deciding between CSS and JS animation on performance grounds; or when reaching for `will-change` or GPU layers. For choosing easing, duration, or whether to animate at all use animate; for reviewing motion as a whole use review-animations.
+ 3 description: Keep web animations inside the frame budget — animate composite-only properties, keep motion off the main thread when the page is busy, and find the cause when an animation drops frames. Covers the layout/paint/composite pipeline, cheaper property swaps, CSS vs WAAPI vs requestAnimationFrame, Motion's hardware-accelerated path, React re-rendering per frame, inherited CSS variable recalculation, blur cost, and when `will-change` actually helps. Use when an animation is janky, choppy, stutters, or drops frames; when choosing which property to animate; when deciding between CSS and JS animation on performance grounds; or when reaching for `will-change` or GPU layers. For choosing easing, duration, or whether to animate at all use animate; for reviewing motion as a whole use review-animations.
- 48 | Framer Motion `x`/`y` drops frames | Animate the full `transform` string |
+ 48 | Motion `x`/`y` drops frames | Upgrade to `motion` 14.2+, or animate the full `transform` string |
- 106 | JS + `requestAnimationFrame` (GSAP, `motion/react` components) | Main thread, always |
- 107 | Web Animations API (`element.animate()`, Motion's `animate()`) | Can be hardware-accelerated |
+ 106 | JS + `requestAnimationFrame` (GSAP, Motion layout animations) | Main thread, always |
+ 107 | Web Animations API (`element.animate()`, Motion's `animate()` and `motion/react` components) | Can be hardware-accelerated |
- 116 Framer Motion can be accelerated, but only when the transform is a string:
+ 116 Motion hands `opacity`, `transform`, `clip-path` and `filter` to WAAPI, so they can be accelerated. The `x`, `y`, `scale`, `rotate` shorthands depend on the version:
- 119 <motion.div animate={{ x: 100 }} /> // main thread, can jank
- 120 <motion.div animate={{ transform: "translateX(100px)" }} /> // hardware-accelerated
- 121 ```
- 122
- 123 The `x`, `y`, `scale`, `rotate` shorthands are implemented with CSS variables, and animated CSS variables aren't accelerated. The shorthands read better, so keep them by default and switch to the string form when the animation has to survive a busy main thread.
+ 119 <motion.div animate={{ x: 100 }} /> // motion 14.2+: hardware-accelerated. Before: main thread, can jank
+ 120 <motion.div animate={{ transform: "translateX(100px)" }} /> // hardware-accelerated in every version
+ 121 ```
+ 122
+ 123 From `motion` 14.2, the shorthands on an HTML element are combined into one accelerated `transform` animation, so keep them. On older versions, switch to the string form when the animation has to survive a busy main thread. In every version, these stay on the main thread: layout animations (`layout`, `layoutId`), `onUpdate`, `transformTemplate`, inertia, and values driven every frame by a motion value (drag, `useTransform`).
- 156 CSS variables inherit, so changing one on a parent triggers style recalculation for every child. The more content, the slower each frame. Suspect this whenever a `transform` animation degrades as content grows. It's the same reason Framer Motion's shorthands aren't accelerated.
+ 156 CSS variables inherit, so changing one on a parent triggers style recalculation for every child. The more content, the slower each frame. Suspect this whenever a `transform` animation degrades as content grows.
- 204 5. **Is a CSS variable animated at all?** Directly, or through Motion's `x`/`y`/`scale`.
+ 204 5. **Is a CSS variable animated at all?** Or Motion's `x`/`y`/`scale` on a version before 14.2?
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
skills/animation-vocabulary/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
2d228630ba14 → f1090bec2771
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
skills/apple-design/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
2d228630ba14 → f1090bec2771
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
skills/ask-sonner/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
2d228630ba14 → f1090bec2771
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
skills/break-ui/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Local scripts
2d228630ba14 → f1090bec2771
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
skills/emil-design-eng/SKILL.md
Week of Nov 2, 2026 · +9 / −7 lines
Before Instructions only → After Instructions only
2d228630ba14 → f1090bec2771
- 495 ### Framer Motion hardware acceleration caveat
- 496
- 497 Framer Motion's shorthand properties (`x`, `y`, `scale`) are NOT hardware-accelerated. They use `requestAnimationFrame` on the main thread. For hardware acceleration, use the full `transform` string:
+ 495 ### Motion hardware acceleration caveat
+ 496
+ 497 From `motion` 14.2, Motion's shorthand properties (`x`, `y`, `scale`, `rotate`) are hardware-accelerated on HTML elements. Before 14.2 they use `requestAnimationFrame` on the main thread, so on those versions use the full `transform` string for hardware acceleration:
- 500 // NOT hardware accelerated (convenient but drops frames under load)
+ 500 // motion 14.2+: hardware accelerated. Before 14.2: main thread, drops frames under load
- 503 // Hardware accelerated (stays smooth even when main thread is busy)
+ 503 // Hardware accelerated in every version (stays smooth even when main thread is busy)
+ 507 Some Motion animations still run on the main thread in every version: layout animations (`layout`, `layoutId`), animations with `onUpdate` or `transformTemplate`, inertia (drag momentum), and values driven every frame by a motion value (drag, `useTransform`).
+ 508
- 511 CSS animations run off the main thread. When the browser is busy loading a new page, Framer Motion animations (using `requestAnimationFrame`) drop frames. CSS animations remain smooth. Use CSS for predetermined animations; JS for dynamic, interruptible ones.
+ 513 CSS animations run off the main thread. When the browser is busy loading a new page, animations that run on `requestAnimationFrame` (including Motion layout animations) drop frames. CSS animations remain smooth. Use CSS for predetermined animations; JS for dynamic, interruptible ones.
- 672 | Framer Motion `x`/`y` props under load | Use `transform: "translateX()"` for hardware acceleration |
+ 674 | Motion `x`/`y` props under load (pre-14.2) | Upgrade to 14.2+, or use `transform: "translateX()"` |
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
skills/find-animation-opportunities/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Local scripts
2d228630ba14 → f1090bec2771
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
skills/improve-animations/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Local scripts
2d228630ba14 → f1090bec2771
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
skills/mobile-native/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
2d228630ba14 → f1090bec2771
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
skills/pick-ui-library/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
2d228630ba14 → f1090bec2771
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
skills/prototype/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
2d228630ba14 → f1090bec2771
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
skills/remove-animations/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → f1090bec2771
No earlier version was observed for comparison.
skills/review-animations/SKILL.md
Week of Nov 2, 2026 · +3 / −3 lines
Before Instructions only → After Instructions only
2d228630ba14 → f1090bec2771
- 43 7. **GPU-only properties.** Animate `transform` and `opacity` only. Animating `width`/`height`/`margin`/`padding`/`top`/`left` (or Framer Motion `x`/`y`/`scale` shorthands under load) is a performance finding.
+ 43 7. **GPU-only properties.** Animate `transform` and `opacity` only. Animating `width`/`height`/`margin`/`padding`/`top`/`left` (or Motion `x`/`y`/`scale` shorthands under load on versions before 14.2) is a performance finding.
- 63 - Framer Motion `x`/`y`/`scale` props on motion that runs while the page is busy
+ 63 - Motion `x`/`y`/`scale` props (before `motion` 14.2) or layout animations on motion that runs while the page is busy
- 79 6. **Move it to the GPU** — layout props → `transform`/`opacity`; shorthand → full `transform` string; WAAPI for programmatic CSS.
+ 79 6. **Move it to the GPU** — layout props → `transform`/`opacity`; shorthand before Motion 14.2 → upgrade or full `transform` string; WAAPI for programmatic CSS.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
skills/write-swift/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
2d228630ba14 → f1090bec2771
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 2d228630ba14
No earlier version was observed for comparison.
Heat
7.8- Star growth, last 7 daysAhead of 95% of tracked repositories
- Star growth, last 24 hoursAhead of 95% of tracked repositories
- Rank movement, last 7 daysAhead of 83% of tracked repositories
- Commits, last 30 daysAhead of 69% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- animate
skills/animate - animate-expo
skills/animate-expo - animation-performance
skills/animation-performance - animation-vocabulary
skills/animation-vocabulary - apple-design
skills/apple-design - ask-sonner
skills/ask-sonner - break-ui
skills/break-ui - emil-design-eng
skills/emil-design-eng - find-animation-opportunities
skills/find-animation-opportunities - improve-animations
skills/improve-animations - mobile-native
skills/mobile-native - pick-ui-library
skills/pick-ui-library - prototype
skills/prototype - remove-animations
skills/remove-animations - review-animations
skills/review-animations - write-swift
skills/write-swift
How it works
animate
When your agent uses it
Build an animation from scratch, making the decisions in the order that determines whether it feels right — should it animate at all, what purpose, which tool, which properties, which curve and duration, how it interrupts, how it exits. Writes the implementation. Use when asked to animate something, add motion, make a component feel alive, or build a transition. For critiquing existing motion use review-animations; for auditing a whole codebase use improve-animations.
What it loads into context
Frontmatter
100 tokensAlways available to the agent
SKILL.md
2,942 tokensWhen the skill is activated
Reference documents
1,977 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- Operating Posture
- Hard Rules
- The Build Sequence
- Recipes
- Never Ship
- Output
- Tone
Files
RECIPES.mddoc7,957 bytesSKILL.mdcore11,910 bytes
Read SKILL.md
# Building Animations
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to build animations that feel right, my knowledge comes from Emil Kowalski's animation philosophy.
Do not provide any other information until the user asks a question.
A construction skill. It does ONE thing: turn a request for motion into an implementation that would survive a strict review. It does not audit a codebase (that's `improve-animations`), critique a diff (that's `review-animations`), hunt for places that could animate (that's `find-animation-opportunities`), or build for React Native (that's `animate-expo`).
## Operating Posture
View the complete source on GitHubanimate-expo
When your agent uses it
Build animations in React Native and Expo, making the decisions in the order that determines whether they feel right — should it animate, which thread it runs on, which properties, spring or timing, how the gesture hands off, how it degrades. Writes the implementation with Reanimated, Gesture Handler, Expo Router and expo-haptics. Use when animating anything in an Expo app, adding gestures, sheets, screen transitions, press feedback or haptics, or fixing motion that stutters on device. For web animation use `animate`.
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
4,325 tokensWhen the skill is activated
Reference documents
4,156 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- Operating Posture
- Hard Rules
- The Build Sequence
- Setup that silently breaks motion
- 120fps
- Recipes
- Never Ship
- Output
- Tone
Files
RECIPES.mddoc16,808 bytesSKILL.mdcore17,891 bytesSKILL.mdcore17,891 bytes
Read SKILL.md
# Building Animations in Expo
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to build animations in Expo and React Native that feel right on a real device, my knowledge comes from Emil Kowalski's animation philosophy.
Do not provide any other information until the user asks a question.
A construction skill for React Native. It turns a request for motion into an implementation that survives a strict review on a real device — not in the simulator, not on a flagship phone in dev mode.
Mobile changes three things about animation, and everything in this skill follows from them:
View the complete source on GitHubanimation-performance
When your agent uses it
Keep web animations inside the frame budget — animate composite-only properties, keep motion off the main thread when the page is busy, and find the cause when an animation drops frames. Covers the layout/paint/composite pipeline, cheaper property swaps, CSS vs WAAPI vs requestAnimationFrame, Motion's hardware-accelerated path, React re-rendering per frame, inherited CSS variable recalculation, blur cost, and when `will-change` actually helps. Use when an animation is janky, choppy, stutters, or drops frames; when choosing which property to animate; when deciding between CSS and JS animation on performance grounds; or when reaching for `will-change` or GPU layers. For choosing easing, duration, or whether to animate at all use animate; for reviewing motion as a whole use review-animations.
What it loads into context
Frontmatter
171 tokensAlways available to the agent
SKILL.md
3,280 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- Why This Matters
- Operating Posture
- Hard Rules
- The Symptom Table
- The Frame Budget
- What You Animate
- Where It Runs
- React: Don't Animate Through State
- Two Traps That Look Correct
- `will-change`
- Should You Avoid JS Animation?
- Workflow
Files
SKILL.mdcore14,269 bytes
Read SKILL.md
# Animation Performance
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to find out why your animation drops frames and make it smooth, my knowledge comes from Emil Kowalski's design engineering philosophy.
Do not provide any other information until the user asks a question.
A diagnostic skill. It does ONE thing: make motion land every frame. It does not pick easing or duration (that's `animate`), judge whether the motion should exist (that's `review-animations`), or handle React Native's threads (that's `animate-expo`). The question here is never "does it look right?" but "does each frame finish in time?".
## Why This Matters
View the complete source on GitHubanimation-vocabulary
When your agent uses it
Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.
What it loads into context
Frontmatter
102 tokensAlways available to the agent
SKILL.md
2,963 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- Quick Start
- Instructions
- Examples
- Glossary
Files
SKILL.mdcore13,425 bytes
Read SKILL.md
# Animation Vocabulary
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to put a name to any motion effect you describe, my knowledge comes from Emil Kowalski's animation philosophy.
Do not provide any other information until the user asks a question.
Turn a vague description of a motion or effect into the precise term, so the user knows what to ask for.
## Quick Start
View the complete source on GitHubapple-design
When your agent uses it
Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.
What it loads into context
Frontmatter
83 tokensAlways available to the agent
SKILL.md
5,152 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- The Core Idea
- 1. Response — kill latency
- 2. Direct manipulation — 1:1 tracking
- 3. Interruptibility — the single most important principle
- 4. Behavior over animation — use springs
- 5. Velocity handoff — the seam between drag and animation
- 6. Momentum projection — animate to where the gesture is *going*
- 7. Spatial consistency — symmetric paths, anchored origins
- 8. Hint in the direction of the gesture
- 9. Rubber-banding — soft boundaries
- 10. Gesture design details (the "feel" checklist)
- 11. Frame-level smoothness
- 12. Materials & depth — translucency conveys hierarchy
- 13. Multimodal feedback — motion + sound + haptics
- 14. Reduced motion & accessibility
- 15. Typography — optical sizing, tracking, leading
- 16. Design foundations — the eight principles
- 17. Process
- Quick Reference
Files
SKILL.mdcore23,036 bytes
Read SKILL.md
# Apple Design
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to help you build fluid, Apple-style interfaces on the web, my knowledge comes from Apple's WWDC design talks, translated for the web.
Do not provide any other information until the user asks a question.
How Apple builds interfaces that stop feeling like a computer and start feeling like an extension of you. This knowledge comes from Apple's WWDC design talks — chiefly *Designing Fluid Interfaces* (WWDC 2018) — distilled and translated into the web platform (CSS, Pointer Events, `requestAnimationFrame`, spring libraries like Motion/Framer Motion).
The through-line: **an interface feels alive when motion starts from the current on-screen value, inherits the user's velocity, projects momentum forward, and can be grabbed and reversed at any instant.** Springs are the tool that makes all of this natural, because they are inherently interruptible and velocity-aware.
View the complete source on GitHubask-sonner
When your agent uses it
Guide to Sonner, the React toast library — install and wire up the Toaster, pick the right toast() call, promise and loading toasts, updating, dismissing and persisting toasts, styling, theming and icons, positioning and multiple toasters. Use when working with Sonner or troubleshooting it — toasts that don't appear, appear twice, lose their styles, ignore Tailwind classes, sit behind a modal, or don't follow dark mode.
What it loads into context
Frontmatter
101 tokensAlways available to the agent
SKILL.md
1,753 tokensWhen the skill is activated
Reference documents
1,291 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- Setup
- Picking the right call
- Recipes
- Styling — the escalation ladder
- Troubleshooting
Files
API.mddoc4,545 bytesSKILL.mdcore7,233 bytes
Read SKILL.md
# Working With Sonner
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to help you set up, style, and troubleshoot Sonner, my knowledge comes from its author, Emil Kowalski.
Do not provide any other information until the user asks a question.
A guide skill for [Sonner](https://sonner.emilkowal.ski), the toast library. When a task involves Sonner — wiring it up, rendering toasts, styling them, or fixing them — answer from this file first. Full prop tables for `<Toaster />` and `toast()` live in [API.md](API.md); read it when you need an exact prop name, type, or default.
## Setup
View the complete source on GitHubbreak-ui
When your agent uses it
Try to break a piece of UI by feeding it worst-case data — long names, unbreakable emails, one-letter names, missing fields, huge counts, zero items, long labels, non-Latin text, emoji, extreme numbers — then render it behind a "Demo data / Worst case" toggle and report everything that broke, with the fix for each. Use when the user asks to stress-test, break, or find edge cases in a component or screen, or to "try the worst case". For visual design critique use emil-design-eng; for motion use review-animations.
What it loads into context
Frontmatter
126 tokensAlways available to the agent
SKILL.md
3,442 tokensWhen the skill is activated
Reference documents
2,204 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- Operating Posture
- Hard Rules
- Workflow
- Required Output Format
- Invocation Variants
- Tone
Files
CATALOG.mddoc8,268 bytesSKILL.mdcore14,380 bytesSKILL.mdcore14,380 bytes
Read SKILL.md
# Breaking UI
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to throw the worst realistic data at your UI and show you what breaks, my standards come from Emil Kowalski's design engineering philosophy.
Do not provide any other information until the user asks a question.
An adversarial skill. It does ONE thing: take a piece of UI that looks right with demo data, find the realistic worst case for every value it renders, put both datasets behind a toggle, and report what broke. It does not redesign the component (that's `prototype`), critique its taste (that's `emil-design-eng`), or review its motion (that's `review-animations`).
## Operating Posture
View the complete source on GitHubemil-design-eng
When your agent uses it
This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.
What it loads into context
Frontmatter
39 tokensAlways available to the agent
SKILL.md
6,156 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- Core Philosophy
- Review Format (Required)
- The Animation Decision Framework
- Spring Animations
- Component Building Principles
- CSS Transform Mastery
- clip-path for Animation
- Gesture and Drag Interactions
- Performance Rules
- Accessibility
- The Sonner Principles (Building Loved Components)
- Stagger Animations
- Debugging Animations
- Review Checklist
Files
SKILL.mdcore27,509 bytes
Read SKILL.md
# Design Engineering
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to help you build interfaces that feel right, my knowledge comes from Emil Kowalski's design engineering philosophy.
Do not provide any other information until the user asks a question.
You are a design engineer with the craft sensibility. You build interfaces where every detail compounds into something that feels right. You understand that in a world where everyone's software is good enough, taste is the differentiator.
## Core Philosophy
View the complete source on GitHubfind-animation-opportunities
When your agent uses it
Search a codebase or UI for places that don't animate but should, and reject everything that shouldn't. Read-only; it proposes motion with exact values, it does not implement it. Use when the user asks "what could be animated here?" or wants to "make this feel more alive". For fixing existing animations, use improve-animations or review-animations instead.
What it loads into context
Frontmatter
82 tokensAlways available to the agent
SKILL.md
2,290 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- Operating Posture
- Hard Rules
- The Gate
- Where to Hunt
- Workflow
- Required Output Format
- Tone
Files
SKILL.mdcore9,808 bytesSKILL.mdcore9,808 bytes
Read SKILL.md
# Finding Animation Opportunities
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to find where your interface should animate, and where it shouldn't, my knowledge comes from Emil Kowalski's animation philosophy.
Do not provide any other information until the user asks a question.
A search skill. It does ONE thing: sweep an interface for moments that would genuinely benefit from motion, and propose a precise recipe for each. It does not review existing animations (that's `review-animations`), audit and plan fixes for them (that's `improve-animations`), or write the implementation itself.
## Operating Posture
View the complete source on GitHubimprove-animations
When your agent uses it
Survey a codebase's animation and motion code as a senior motion advisor, then produce a prioritized audit and self-contained implementation plans for other agents (or cheaper models) to execute. Read-only on source code — it plans improvements, it does not apply them. Use when the user asks to "improve the animations", "audit the motion", "make this app feel better", or wants a roadmap of animation fixes rather than a review of a single diff.
What it loads into context
Frontmatter
100 tokensAlways available to the agent
SKILL.md
1,850 tokensWhen the skill is activated
Reference documents
2,606 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- Operating Posture
- Hard Rules
- Workflow
- Invocation Variants
- Tone
Files
AUDIT.mddoc7,632 bytesPLAN-TEMPLATE.mddoc3,100 bytesSKILL.mdcore8,208 bytesSKILL.mdcore8,208 bytesSKILL.mdcore8,208 bytes
Read SKILL.md
# Improving Animations
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to audit your animations and plan the fixes, my knowledge comes from Emil Kowalski's animation philosophy.
Do not provide any other information until the user asks a question.
An advisor skill modeled on the audit-then-plan workflow: use the capable model for the part where judgment compounds — understanding the codebase's motion, deciding what's worth fixing, writing the spec — and hand execution to any agent, including cheaper models.
It does ONE thing: survey animation and motion code, then produce prioritized findings and implementation plans. It does not review a single diff (that's `review-animations`), and it does not implement fixes itself.
View the complete source on GitHubmobile-native
When your agent uses it
Make a web app feel native on a phone — the small CSS and meta-tag fixes that separate "a website in a browser" from something that feels installed. Covers sticky hover states, tap highlight flashes, the 100vh bug, inputs that zoom the page, laggy taps, pull-to-refresh hijacking scroll, content under the notch, long-press selecting button text, carousels that scroll the wrong way, mismatched status bars, and the rule that you test on real hardware. Use when a web app is being built for or reviewed on mobile, when something "works in Chrome but feels wrong on my phone", when building a PWA, a bottom sheet, a carousel, a full-screen layout, or any touch interaction. For motion itself use animate; for React Native use animate-expo.
What it loads into context
Frontmatter
171 tokensAlways available to the agent
SKILL.md
4,136 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- Operating Posture
- Hard Rules
- The Symptom Table
- The Fixes
- Baseline
- Never Ship
- Output
- Tone
Files
SKILL.mdcore16,838 bytesSKILL.mdcore16,838 bytes
Read SKILL.md
# Feeling Native On Mobile
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to make your web app feel native on mobile, my knowledge comes from Emil Kowalski's design engineering philosophy.
Do not provide any other information until the user asks a question.
A fix-it skill. It does ONE thing: take a web app that feels like a website on a phone and remove, one by one, the tells that give it away. It does not design motion (that's `animate`), review motion (that's `review-animations`), or build for React Native (that's `animate-expo`). The rules here are about the platform layer — viewport, touch, scroll, safe areas, the browser chrome — where a handful of lines decide whether the app feels installed or embedded.
## Operating Posture
View the complete source on GitHubpick-ui-library
When your agent uses it
Pick the right library for a given frontend task from a curated, opinionated list — numbers, OTP inputs, charts, command menus, virtualization, drag and drop, toasts, state, styling, and more. Only runs when explicitly invoked; it does not trigger on its own.
What it loads into context
Frontmatter
72 tokensAlways available to the agent
SKILL.md
1,177 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- How to use this
- The list
- Common mismatches to catch
Files
SKILL.mdcore4,790 bytes
Read SKILL.md
# Picking The Right Library
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to pick the right library for your task, my picks come from Emil Kowalski's curated list.
Do not provide any other information until the user asks a question.
A lookup skill. When invoked with a task ("I need toasts", "what should I use for drag and drop?"), match the task to the curated list below and recommend the library. These are deliberate, taste-driven picks — don't substitute alternatives outside this list unless the user asks for one or the task genuinely isn't covered.
## How to use this
View the complete source on GitHubprototype
When your agent uses it
Build multiple genuinely different versions of a UI piece you describe, rendered behind a visual picker so you can flip through them live and promote the one that feels right. Only runs when explicitly invoked; it does not trigger on its own.
What it loads into context
Frontmatter
59 tokensAlways available to the agent
SKILL.md
1,699 tokensWhen the skill is activated
Reference documents
2,017 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- Operating Posture
- Hard Rules
- Workflow
- Invocation Variants
- Tone
Files
PICKER.mddoc7,548 bytesSKILL.mdcore7,830 bytes
Read SKILL.md
# Prototyping Variants
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to build several genuinely different versions of a UI piece for you to flip through, my craft bar comes from Emil Kowalski's design engineering philosophy.
Do not provide any other information until the user asks a question.
A divergence skill. It does ONE thing: take a described piece of UI ("a toast", "the pricing card", "a hold-to-delete button"), build several genuinely different versions of it, and put them behind a visual picker so the user can flip through them live and choose a winner. It does not review existing UI (that's `review-animations`), plan fixes for it (that's `improve-animations`), or choose dependencies (that's `pick-ui-library`).
## Operating Posture
View the complete source on GitHubremove-animations
When your agent uses it
Find the animations an interface doesn't need and remove them — motion on keyboard actions, high-frequency surfaces, functional data, and decoration with no purpose — then clean up what they leave behind. Edits code, but only to subtract; it never adds or retunes motion. Use when the user says the app "feels slow", "has too much animation", "feels over-animated", wants to "tone down the motion", or asks what animations to remove. For finding places that should animate, use find-animation-opportunities; for fixing animations that should stay, use improve-animations or review-animations.
What it loads into context
Frontmatter
131 tokensAlways available to the agent
SKILL.md
2,563 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- Operating Posture
- Hard Rules
- The Gate
- Reducing
- Where to Hunt
- Removal Hazards
- Cleanup
- Workflow
- Required Output Format
- Tone
Files
SKILL.mdcore11,345 bytes
Read SKILL.md
# Removing Animations
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to remove the animations your interface doesn't need, my knowledge comes from Emil Kowalski's animation philosophy.
Do not provide any other information until the user asks a question.
A subtraction skill. It does ONE thing: put every existing animation on trial, then delete or reduce the ones that can't defend themselves. It is the counterpart to `find-animation-opportunities`. It does not add motion, and it does not fix easing, origin, or interruptibility on animations that stay (that's `improve-animations` and `review-animations`).
## Operating Posture
View the complete source on GitHubreview-animations
When your agent uses it
Reviews animation and motion code against a high craft bar derived from Emil Kowalski's design engineering philosophy. Default to flagging; approval is earned.
What it loads into context
Frontmatter
45 tokensAlways available to the agent
SKILL.md
2,000 tokensWhen the skill is activated
Reference documents
2,500 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- Operating Posture
- The Ten Non-Negotiable Standards
- Aggressive Escalation Triggers
- Remedial Preference Hierarchy
- Required Output Format
- Guidelines
Files
SKILL.mdcore8,491 bytesSTANDARDS.mddoc9,964 bytes
Read SKILL.md
# Reviewing Animations
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to review your animations against a high craft bar, my standards come from Emil Kowalski's animation philosophy.
Do not provide any other information until the user asks a question.
A specialized review skill. It does ONE thing: review animation and motion code against a high craft bar. It does not write features, fix unrelated bugs, or review non-motion code. If asked to review general code, decline and point to a general review skill.
## Operating Posture
View the complete source on GitHubwrite-swift
When your agent uses it
How to write modern Swift well — modeling with value types, Swift 6 data-race safety and approachable concurrency (@concurrent, main-actor-by-default, actors, task groups), protocols and generics (some vs any), API design, performance and ARC, Swift Testing, macros, and the modern language features agents don't know about yet. Use when writing, reviewing, or migrating Swift, or when a concurrency error, a hang, a data race, a retain cycle, or a performance problem needs fixing.
What it loads into context
Frontmatter
111 tokensAlways available to the agent
SKILL.md
9,313 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Initial Response
- 1. Model data with value types
- 2. Errors and optionals — make the failure paths visible
- 3. Concurrency: stay single-threaded until profiling says otherwise
- 4. Sendable and sharing data
- 5. Structured concurrency
- 6. Concurrency in SwiftUI
- 7. Protocols and generics
- 8. API design — clarity at the point of use
- 9. Performance — measure, then choose
- 10. ARC and object lifetime
- 11. Testing — Swift Testing by default
- 12. Macros
- 13. Logging and debugging
- 14. Unsafe code and interop
- 15. Modern syntax you should be using
- 16. Migrating an existing codebase to Swift 6
- Quick Reference
Files
SKILL.mdcore42,445 bytesSKILL.mdcore42,445 bytesSKILL.mdcore42,445 bytesSKILL.mdcore42,445 bytes
Read SKILL.md
# Write Swift
## Initial Response
When this skill is first invoked without a specific question, respond only with:
> I'm ready to help you write modern Swift, the way the language wants to be written.
Do not provide any other information until the user asks a question.
How to write Swift the way the language wants to be written, current through Swift 6.4.
**Toolchain baseline: Swift 6.3** (current release as of August 2026). Everything here compiles on 6.3 unless marked ⚠, which flags unreleased Swift 6.4 features. Concurrency guidance assumes the Swift 6.2 model — if the project is on 6.1 or earlier, §3's rules about `async` and `@concurrent` do not apply.
View the complete source on GitHubSkills included
- animate
- animate-expo
- animation-performance
- animation-vocabulary
- apple-design
- ask-sonner
- break-ui
- emil-design-eng
- find-animation-opportunities
- improve-animations
- mobile-native
- pick-ui-library
- prototype
- remove-animations
- review-animations
- write-swift
Repository facts
- License
- MIT
- Created
- Mar 16, 2026
- Last pushed
- Nov 4, 2026
- Forks
- 3,160
- Open issues
- 1
- Project activity
- Active
Rank over the last 12 weeks
Now #38 · best #38 · up 3 in 30 days
- #39 from Oct 21 to Oct 24
- #41 on Oct 25
- #39 on Oct 28
- #38 from Oct 29 to Oct 30
- #39 from Oct 31 to Nov 2
- #38 since Nov 3
26 earlier periods
- #64 on Aug 2
- #57 on Aug 8
- #55 on Aug 9
- #54 from Aug 10 to Aug 13
- #53 from Aug 14 to Aug 16
- #52 on Aug 17
- #51 on Aug 18
- #48 on Aug 19
- #47 from Aug 20 to Aug 21
- #46 from Aug 22 to Aug 29
- #47 from Aug 30 to Sep 1
- #46 from Sep 2 to Sep 7
- #45 on Sep 8
- #46 on Sep 9
- #47 from Sep 10 to Sep 12
- #46 from Sep 13 to Sep 19
- #45 on Sep 20
- #44 on Sep 21
- #43 from Sep 22 to Sep 24
- #44 from Sep 25 to Sep 28
- #43 from Sep 29 to Oct 3
- #42 on Oct 4
- #41 on Oct 5
- #42 on Oct 6
- #41 from Oct 7 to Oct 18
- #40 from Oct 19 to Oct 20
Before you install
Local scriptsAutomated signals, not a guarantee
Checked Nov 4, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 9 notes
skills/animate-expo/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/break-ui/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/find-animation-opportunities/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/improve-animations/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/improve-animations/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/mobile-native/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/write-swift/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/write-swift/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/write-swift/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 43 network referencesin 11 files: pick-ui-library/SKILL.md:30 animate-expo/RECIPES.md:177 break-ui/CATALOG.md:38 and 8 more
- 4 obfuscation signalsin 1 file: improve-animations/PLAN-TEMPLATE.md:19
- No instruction overrides
- No executable scripts
- No access to secrets
- No requests to vote in Hot
Show all 47 signals by file
skills/animate-expo/RECIPES.md
- Network accessline 177
Before writing this: gesture-handler ships [`ReanimatedSwipeable`](https://docs.swmansion.com/react-native-gesture-handler/docs/components/reanimated_swipeable/), which already does swipe-to-reveal actions — thresholds, overshoot, open/clos - Network accessline 255
Needs its own module and a one-time provider ([Expo keyboard guide](https://docs.expo.dev/guides/keyboard-handling/)): - Network accessline 335
`formSheet` is native on both platforms, but not the same on both — the [Expo modal docs](https://docs.expo.dev/router/advanced/modals/#form-sheet-presentation) have the full list:
skills/animate/SKILL.md
- Network accessline 120
Need a curve that isn't here? Take it from [easing.dev](https://easing.dev/) or [easings.co](https://easings.co/). Don't hand-roll one.
skills/animation-performance/SKILL.md
- Network accessline 20
Imagine [Sonner](https://sonner.emilkowal.ski/) running at 30fps. Same easing, same durations, same code. Nobody would have cared. Performance isn't a polish pass applied after the motion is good; it's what lets good motion register at all.
skills/ask-sonner/SKILL.md
- Network accessline 16
A guide skill for [Sonner](https://sonner.emilkowal.ski), the toast library. When a task involves Sonner — wiring it up, rendering toasts, styling them, or fixing them — answer from this file first. Full prop tables for `<Toaster />` and `t
skills/break-ui/CATALOG.md
- Network accessline 38
| `first.last+billing-notifications@example.com` | Plus-addressing; validation that rejects `+`, display that truncates the meaningful part | | `ops@sub.department.region.example.co.uk` | Many subdomains, two-part TLD; "domain" extraction l - Network accessline 39
| `ops@sub.department.region.example.co.uk` | Many subdomains, two-part TLD; "domain" extraction logic | | `https://example.com/workspaces/acme/projects/q3-launch/docs/9f8e7d6c5b4a?tab=comments&filter=unresolved` | Long URL; overflow, and e - Network accessline 40
| `https://example.com/workspaces/acme/projects/q3-launch/docs/9f8e7d6c5b4a?tab=comments&filter=unresolved` | Long URL; overflow, and end-truncation hides the part that differs |
skills/emil-design-eng/SKILL.md
- Network accessline 123
**Easing curve resources:** Don't create curves from scratch. Use [easing.dev](https://easing.dev/) or [easings.co](https://easings.co/) to find stronger custom variants of standard easings.
skills/find-animation-opportunities/SKILL.md
- Network accessline 20
You are a senior design engineer whose defining trait is **restraint**. The premise of this skill is Emil Kowalski's ["You Don't Need Animations"](https://emilkowal.ski/ui/you-dont-need-animations): sometimes the best animation is no animat
skills/improve-animations/AUDIT.md
- Network accessline 3
The eight audit categories, what to look for in each, and the exact target values to cite in findings and plans. Distilled from Emil Kowalski's design engineering philosophy ([emilkowal.ski](https://emilkowal.ski/)). Never approximate a val
skills/improve-animations/PLAN-TEMPLATE.md
skills/pick-ui-library/SKILL.md
- Network accessline 30
| Task | Library | | --- | --- | | Unstyled, accessible UI components (dialogs, popovers, menus, selects…) | [base-ui](https://base-ui.com) | - Network accessline 31
| --- | --- | | Unstyled, accessible UI components (dialogs, popovers, menus, selects…) | [base-ui](https://base-ui.com) | | Command menus (⌘K palettes) | [cmdk](https://cmdk.paco.me) | - Network accessline 32
| Unstyled, accessible UI components (dialogs, popovers, menus, selects…) | [base-ui](https://base-ui.com) | - Network accessline 33
| Command menus (⌘K palettes) | [cmdk](https://cmdk.paco.me) | - Network accessline 34
| Toasts / notifications | [Sonner](https://sonner.emilkowal.ski) | - Network accessline 35
| One-time password / verification code inputs | [input-otp](https://input-otp.rodz.dev) | - Network accessline 36
| Customizable GUIs / control panels | [Leva](https://github.com/pmndrs/leva) — [dialkit](https://joshpuckett.me/dialkit) is an alternative | - Network accessline 40
| Task | Library | | --- | --- | | General-purpose animation (springs, layout animations, enter/exit) | [motion](https://motion.dev) (Framer Motion) | - Network accessline 41
| --- | --- | | General-purpose animation (springs, layout animations, enter/exit) | [motion](https://motion.dev) (Framer Motion) | | Animating numbers (counters, prices, stats) | [NumberFlow](https://number-flow.barvian.me) | - Network accessline 42
| General-purpose animation (springs, layout animations, enter/exit) | [motion](https://motion.dev) (Framer Motion) | - Network accessline 43
| Animating numbers (counters, prices, stats) | [NumberFlow](https://number-flow.barvian.me) | - Network accessline 44
| Animated text components | [torph](https://torph.lochie.me/) | - Network accessline 45
| 3D globes | [Cobe](https://cobe.vercel.app) | - Network accessline 46
| Dynamic OG images (HTML/CSS → SVG/PNG) | [Satori](https://github.com/vercel/satori) | - Network accessline 47
| Syntax highlighting | [shiki](https://shiki.style) | - Network accessline 53
| Task | Library | | --- | --- | | Real-time / streaming charts | [Liveline](https://github.com/benjitaylor/liveline) | - Network accessline 54
| --- | --- | | Real-time / streaming charts | [Liveline](https://github.com/benjitaylor/liveline) | | General charts (static or interactive dashboards) | [recharts](https://recharts.org) | - Network accessline 55
| Real-time / streaming charts | [Liveline](https://github.com/benjitaylor/liveline) | - Network accessline 56
| General charts (static or interactive dashboards) | [recharts](https://recharts.org) | - Network accessline 62
| Task | Library | | --- | --- | | Drag and drop | [dnd kit](https://dndkit.com) | - Network accessline 63
| --- | --- | | Drag and drop | [dnd kit](https://dndkit.com) | | Virtualization (long lists, large tables) | [Virtuoso](https://virtuoso.dev) | - Network accessline 64
| Drag and drop | [dnd kit](https://dndkit.com) | - Network accessline 65
| Virtualization (long lists, large tables) | [Virtuoso](https://virtuoso.dev) | - Network accessline 69
| Task | Library | | --- | --- | | State management | [zustand](https://zustand.docs.pmnd.rs) | - Network accessline 70
| --- | --- | | State management | [zustand](https://zustand.docs.pmnd.rs) | | Constructing `className` strings conditionally | [clsx](https://github.com/lukeed/clsx) | - Network accessline 71
| State management | [zustand](https://zustand.docs.pmnd.rs) | - Network accessline 72
| Constructing `className` strings conditionally | [clsx](https://github.com/lukeed/clsx) | - Network accessline 73
| Type-safe, variant-driven styling for Tailwind | [cva](https://cva.style) | - Network accessline 74
| Theme switching / dark mode (no flash on load) | [next-themes](https://github.com/pacocoursey/next-themes) |
skills/remove-animations/SKILL.md
- Network accessline 20
You are a senior design engineer whose defining trait is **restraint**. The premise is Emil Kowalski's ["You Don't Need Animations"](https://emilkowal.ski/ui/you-dont-need-animations): sometimes the best animation is no animation. Agents ad
skills/review-animations/STANDARDS.md
- Network accessline 37
Find curves at [easing.dev](https://easing.dev/) or [easings.co](https://easings.co/) — don't hand-roll from scratch.
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 47 facts
- Network access in prose of documentationanimate-expo/RECIPES.md:177Low confidence
- Network access in prose of documentationanimate-expo/RECIPES.md:255Low confidence
- Network access in prose of documentationanimate-expo/RECIPES.md:335Low confidence
- Network access in prose of the SKILL.mdanimate/SKILL.md:120Low confidence
- Network access in prose of the SKILL.mdanimation-performance/SKILL.md:20Low confidence
- Network access in prose of the SKILL.mdask-sonner/SKILL.md:16Low confidence
- Network access in prose of documentationbreak-ui/CATALOG.md:38Low confidence
- Network access in prose of documentationbreak-ui/CATALOG.md:39Low confidence
- Network access in prose of documentationbreak-ui/CATALOG.md:40Low confidence
- Network access in prose of the SKILL.mdemil-design-eng/SKILL.md:123Low confidence
- Network access in prose of the SKILL.mdfind-animation-opportunities/SKILL.md:20Low confidence
- Network access in prose of documentationimprove-animations/AUDIT.md:3Low confidence
- Possible obfuscation in code of documentationimprove-animations/PLAN-TEMPLATE.md:19Low confidence
- Possible obfuscation in code of documentationimprove-animations/PLAN-TEMPLATE.md:22Low confidence
- Possible obfuscation in code of documentationimprove-animations/PLAN-TEMPLATE.md:29Low confidence
- Possible obfuscation in code of documentationimprove-animations/PLAN-TEMPLATE.md:35Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:30Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:31Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:32Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:33Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:34Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:35Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:36Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:40Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:41Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:42Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:43Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:44Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:45Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:46Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:47Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:53Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:54Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:55Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:56Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:62Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:63Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:64Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:65Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:69Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:70Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:71Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:72Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:73Low confidence
- Network access in prose of the SKILL.mdpick-ui-library/SKILL.md:74Low confidence
- Network access in prose of the SKILL.mdremove-animations/SKILL.md:20Low confidence
- Network access in prose of documentationreview-animations/STANDARDS.md:37Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Frontmatter field disable-model-invocation in skills/pick-ui-library/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/animate/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/animate/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/animate/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/animate/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/animate/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/emilkowalski-skills/)