implementation-debugging — скилл для Claude Code: отладка
Скилл помогает находить и устранять ошибки в веб-анимациях. Он пригодится, если элементы дёргаются, не запускаются повторно или ломаются при переносе в продакшен.
npx skills add dylantarre/animation-principles --skill implementation-debugging -a claude-codeЧто делает implementation-debugging
Скилл структурирует поиск багов в CSS и JS-анимациях на основе классических принципов движения. Он раскладывает проблемы по категориям: длительность и переопределение стилей в Timing, расчёт ключевых кадров в Pose-to-Pose, перекрытие слоёв и overflow в Staging, а также мерцание и субпиксельный рендеринг в Solid Drawing.
Внутри собраны сценарии для типичных сбоев: когда свойство не поддаётся анимации, когда движение срабатывает только один раз или обрывается без сохранения финального состояния. Скилл предлагает конкретные решения — например, перевод расчётов на transform и opacity, принудительное создание GPU-слоя через will-change: transform или перезапуск через вызов reflow.
Для свойств вроде display плавная анимация в CSS не сработает. Браузер просто переключит кадр мгновенно. Без перевода на transform или манипуляций с opacity плавного перехода не выйдет.
Какие задачи решает
- Устранить мерцание и скачки кадра при старте CSS-анимации
- Исправить сброс стилей после завершения анимации через
animation-fill-mode - Найти причину просадки кадров из-за layout thrashing
- Настроить корректный повторный запуск анимации по клику или событию
Примеры запросов агенту
- Кнопка мерцает при наведении и сбрасывается в исходное состояние, помоги исправить анимацию
- Анимация выпадающего меню тормозит в мобильном браузере, проверь стили на layout thrashing
- CSS-анимация срабатывает один раз и больше не запускается при добавлении класса, как сбросить кадры?
Как установить implementation-debugging
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill implementation-debugging -a claude-code2Вручную: положить файлы
~/.claude/skills/implementation-debugging/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/implementation-debugging/
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill implementation-debugging -a codex2Вручную: положить файлы
.agents/skills/implementation-debugging/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill implementation-debugging -a cursor2Вручную: положить файлы
.cursor/skills/implementation-debugging/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles implementation-debugging2Вручную: положить файлы
.github/skills/implementation-debugging/SKILL.md1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill implementation-debugging -a gemini-cli2Командой платформы
gemini skills install https://github.com/dylantarre/animation-principles --path skills/12-by-problem-type/implementation-debuggingВручную: положить файлы
.devin/skills/implementation-debugging/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill implementation-debugging -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о implementation-debugging
Как установить implementation-debugging в Claude Code?
Выполните в терминале команду npx skills add dylantarre/animation-principles --skill implementation-debugging -a claude-code.
Что делает скилл implementation-debugging?
Скилл помогает диагностировать сбои в интерфейсных анимациях по контрольным спискам и принципам движения. Он подсказывает, как убрать мерцания, исправить зависание ключевых кадров и снизить нагрузку на рендеринг.
Почему анимация в CSS воспроизводится только один раз?
Если класс анимации не сбросить, браузер не запустит её повторно. Для перезапуска нужно удалить класс, вызвать перерасчёт макета через чтение void element.offsetWidth и снова навесить класс.
Исходный текст
SKILL.md · MIT
---
name: implementation-debugging
description: Use when animation doesn't work as expected, has bugs, or behaves inconsistently
---
# Implementation Debugging
Debug animation issues using Disney's principles as diagnostic framework.
## Problem Indicators
- Animation doesn't play at all
- Animation plays but looks wrong
- Works in dev, broken in production
- Inconsistent across browsers
- Animation triggers at wrong time
- Flickering or visual glitches
## Diagnosis by Principle
### Timing
**Issue**: Animation timing is off
**Debug**: Check duration values. Verify units (ms vs s). Check if CSS transition is being overridden. Inspect computed styles.
### Straight Ahead vs Pose-to-Pose
**Issue**: Keyframes not hitting
**Debug**: Verify all keyframe percentages. Check for typos in property names. Ensure values are animatable.
### Staging
**Issue**: Animation hidden or clipped
**Debug**: Check z-index, overflow, opacity. Verify element is in viewport. Check for `visibility: hidden`.
### Solid Drawing
**Issue**: Visual glitches during animation
**Debug**: Look for subpixel rendering issues. Add `transform: translateZ(0)` for GPU layer. Check for layout thrashing.
### Follow Through
**Issue**: Animation ends abruptly or wrong state
**Debug**: Check `animation-fill-mode`. Verify end state matches CSS. Check for competing animations.
## Common Bugs
| Symptom | Likely Cause | Fix |
|---------|--------------|-----|
| No animation | Property not animatable | Use transform instead of changing property directly |
| Flicker at start | No initial state | Set initial values explicitly |
| Wrong end state | Fill mode | Add `forwards` to animation |
| Choppy motion | Layout thrashing | Animate only transform/opacity |
| Works once only | Animation not reset | Remove and re-add class, or use JS |
## Quick Fixes
1. **Check DevTools Animation panel** - See timeline
2. **Verify animatable properties** - Not all CSS animates
3. **Add `animation-fill-mode: forwards`** - Keep end state
4. **Force GPU layer** - `will-change: transform`
5. **Check for `!important`** - May override animation
## Troubleshooting Checklist
- [ ] Is animation class/trigger being applied? (DevTools Elements)
- [ ] Are properties animatable? (`display` is not, `opacity` is)
- [ ] Check computed styles for overrides
- [ ] Is element visible? (opacity, visibility, display, z-index)
- [ ] Any JavaScript errors blocking execution?
- [ ] Check Animation panel in DevTools
- [ ] Test in incognito (no extensions)
- [ ] Compare working vs broken environment
## Code Pattern
```js
// Debug: Log animation events
element.addEventListener('animationstart', (e) => {
console.log('Animation started:', e.animationName);
});
element.addEventListener('animationend', (e) => {
console.log('Animation ended:', e.animationName);
});
// Debug: Check computed animation
const styles = getComputedStyle(element);
console.log('Animation:', styles.animation);
console.log('Transition:', styles.transition);
// Reset animation
element.classList.remove('animate');
void element.offsetWidth; // Trigger reflow
element.classList.add('animate');
```
## DevTools Tips
1. **Elements > Styles**: Check computed animation values
2. **Performance tab**: Record and analyze frames
3. **Animations panel**: Slow down, replay, inspect
4. **Console**: Log animation events
© dylantarre · MIT · dylantarre/animation-principles