improve-animations (emilkowalski/skills)
Audita o código de movimento de um projeto e produz planos priorizados para outros agentes executarem.
improve-animations: transforma um pedido vago de “audite as animações” em uma lista com curvas de easing exatas (controle 3.2, skill 4.8), mas um prompt de uma frase com o mesmo checklist tira 4.9 com 0.84 dos tokens
Codex CLI · gpt-6-astra
25.5 / 30
Ganho sobre sem skill: +1.66 · Recomendado · 18 execuções
Recomendado: o total 25.5/30 é pelo menos 22, a qualidade da saída 4.8 é pelo menos 3.5 e o ganho +1.66 é pelo menos +1.0.
SOTA
AprovadoTestado com Codex.
Cobre Codex, Claude Code
Codex CLI 0.166 (nível SOTA): 18 execuções avaliadas. Uma aprovação aqui também vale para o Claude Code pela nossa regra de níveis; ela não diz nada sobre o segundo nível.
Notas
Cada dimensão vai de 0 a 5, e as seis somam o total de 30. 5 é melhor em todas as dimensões. Custo 5 significa barato e rápido. Instalação 5 significa fácil.
- Confiabilidade do acionamento
- 5.0
- Ganho sobre sem skill
- 3.7
- Qualidade da saída
- 4.8
- Custo de tokens e tempo
- 4.0
- Instalação e portabilidade
- 4.0
- Segurança
- 4.0
Revisão de segurança
SeguroVarredura estática: 0 CRÍTICO / 2 ALTO / 0 MÉDIO. Revisão manual: seguro para executar em sandbox sem rede (achados do scanner explicados). Uma varredura limpa não prova que a skill é segura.
Instalar
npx skills@latest add emilkowalski/skills --skill improve-animations
Commit fixado: a81dbca07f2217b7103e510c0f13f8d5b017afc9
Testado: 2026-11-02
O que testamos
- Auditar o código de movimento — Audite as animações e o movimento neste projeto. Me dê uma lista priorizada do que corrigir, cada item com o arquivo e os valores de substituição exatos. Não altere nenhum arquivo.
- Auditar dois componentes — Audite apenas as animações do dropdown e do modal em styles.css. O que está errado e o que exatamente elas deveriam se tornar? Não altere nenhum arquivo.
- Principais correções para outra pessoa implementar — Vou passar as correções de movimento para um colega que não conhece este projeto. Liste as 5 correções de animação de maior impacto com o CSS exato a escrever para cada uma, para que ele possa implementá-las sem me perguntar nada. Não altere nenhum arquivo.
Prós
- Eleva a nota média de 3.15 para 4.81 em relação ao grupo sem skill (+1.66).
- A skill foi acionada sem ser nomeada: o arquivo da skill foi lido em 6/6 execuções de tratamento.
- Qualidade absoluta alta com a skill: 4.81 de 5.
Contras
- Um prompt de uma frase tirou 4.94, contra 4.81 com a skill (-0.13).
- n=2 por tarefa por braço; diferenças abaixo de cerca de 1 ponto são ruído.
Avaliação
Codex CLI 0.166 (gpt-6-astra, raciocínio baixo) em um PC Windows dedicado a testes, um projeto temporário novo e HOME/TMPDIR/caches temporários por execução, skill instalada (tratamento), ausente (controle) ou ausente com o requisito central da skill condensado em uma frase anexada ao prompt (grupo de uma frase), 2 execuções por grupo por tarefa, rede desligada, gravações em /tmp bloqueadas. Os prompts nunca mencionam a skill (exceto o texto indicado abaixo). Um pequeno app web (am_app) com 8 problemas de movimento inseridos de propósito. Tarefas: auditar o projeto inteiro, auditar apenas o dropdown e o modal, e corrigir cinco problemas nomeados. Os prompts dizem “animações e movimento” sem citar nenhuma regra. O prompt de uma frase lista as regras e pede valores de substituição exatos.
Comparação entre os braços
| Braço | Nota média (0-5) | Tokens por execução |
|---|---|---|
| Sem a skill | 3.15 | 65k |
| Prompt de uma frase | 4.94 | 65k |
| Com a skill | 4.81 | 78k |
Medido com Codex CLI em 18 execuções, com pontuação por verificações baseadas em regras e sem juiz LLM. Total 25.5 / 30, veredito Recomendado.
Veredicto: Recomendado (25.5 / 30). Fonte: emilkowalski/skills, skills/improve-animations, fixado no commit a81dbca. Instalação: npx skills@latest add emilkowalski/skills --skill improve-animations. Licença: MIT (LICENSE do repositório).
O que é
A skill improve-animations (emilkowalski/skills): um guia de auditoria de design de movimento: curvas ease-out personalizadas em vez de ease-in/padrão, durações de 150-300 ms, apenas transform e opacity, nada de transition: all, nenhum início com scale(0), transform-origin no gatilho, suporte a movimento reduzido e nenhuma animação em ações de alta frequência.
Como testamos
Codex CLI 0.166 (gpt-6-astra, raciocínio baixo) em um PC de teste Windows dedicado, com um projeto temporário novo e HOME/TMPDIR/caches temporários a cada execução, skill instalada (tratamento), ausente (controle) ou ausente com o requisito central da skill comprimido em uma frase anexada ao prompt (grupo de uma frase), 2 execuções por grupo por tarefa, rede desligada, gravações em /tmp bloqueadas. Os prompts nunca mencionam a skill (exceto pelo texto indicado abaixo).
Um app web pequeno (am_app) com 8 problemas de movimento plantados. Tarefas: auditar o projeto inteiro, auditar apenas o dropdown e o modal, e corrigir cinco problemas nomeados. Os prompts dizem "animações e movimento" sem citar nenhuma regra. A frase única lista as regras e pede valores de substituição exatos.
- Auditar o código de movimento — Audite as animações e o movimento deste projeto. Me dê uma lista priorizada do que corrigir, cada item com o arquivo e os valores de substituição exatos. Não altere nenhum arquivo.
- Auditar dois componentes — Audite apenas as animações do dropdown e do modal em styles.css. O que está errado e o que exatamente deveriam ser? Não altere nenhum arquivo.
- Principais correções para outra pessoa implementar — Vou passar as correções de movimento para um colega que não viu este projeto. Liste as 5 correções de animação de maior impacto com o CSS exato a escrever para cada uma, para que ele possa implementá-las sem me perguntar nada. Não altere nenhum arquivo.
A pontuação é programática (testes ocultos / identificação de problemas plantados / verificações de restrições / renderização + OCR quando aplicável), de 0 a 5 por execução. Nenhum juiz LLM decidiu qualquer pontuação.
Resultados
A frase única dada ao terceiro grupo: "Audite o código de movimento como um engenheiro de design sênior: sinalize curvas ease-in e padrão, transition: all, inícios com scale(0), animação de propriedades de layout, falta de movimento reduzido, animação em ações de alta frequência, transform-origin errado e durações lentas; para cada item, dê a substituição exata (cubic-bezier ease-out personalizado, 150-300 ms, apenas transform/opacity) para que outra pessoa possa aplicar, e não altere nenhum arquivo-fonte."
| Tarefa | Pontuação do controle | Uma frase | Com a skill | Tokens do controle | Tokens de uma frase | Tokens com a skill | Skill lida |
|---|---|---|---|---|---|---|---|
| t1-audit | 3.21 | 4.82 | 4.82 | 65k | 66k | 77k | 2/2 |
| t2-focus | 2.5 | 5.0 | 5.0 | 63k | 64k | 77k | 2/2 |
| t3-five-fixes | 3.75 | 5.0 | 4.62 | 65k | 65k | 78k | 2/2 |
Pontuação média: 3.15 sem a skill vs. 4.81 com a skill (delta +1.66). Tokens por execução: 65k vs. 78k (1.20x); tempo 48s vs. 49s. Grupo de uma frase: 4.94 (ganho da skill sobre a frase única: -0.13; ganho da própria frase única sobre sem skill: +1.79); 65k tokens por execução no grupo de uma frase, então a skill custa 1.19x a frase única.
O que aconteceu
- Controle 3.15, skill 4.81, frase única 4.94 (n=6 cada). Sem orientação, o Codex encontrou 3-7 dos 8 problemas plantados e não deu nenhum cubic-bezier nem curva de easing exata em 5 de 6 execuções.
- A skill fecha essa lacuna: 5.0 nas duas execuções focadas; o controle errou o início com scale(0) do modal nas duas, e todas as auditorias da skill trazem curvas exatas. A frase única chega ao mesmo resultado.
- Na tarefa das cinco correções, a skill ficou um pouco atrás da frase única (4.62 vs. 5.0): as duas execuções de tratamento perderam o hover de cartão com 700 ms linear, e cada uma perdeu outro problema plantado (scale(0) do modal, ou transition: all).
- Tokens: skill 78k, frase única 65k, controle 65k (1.2x o controle). A skill foi lida em 6/6 execuções com a skill sem ser nomeada.
Pontuação por dimensão
| Dimensão | Pontuação | Por quê |
|---|---|---|
| 1_output_quality | 4.81 | Pontuação média de 4.81/5 com a skill (verificações programáticas; consulte a tabela por tarefa). |
| 2_lift_vs_no_skill | 3.66 | +1.66 pontos vs. 3.15 sem a skill (n=2 por tarefa; abaixo de ~1 ponto é ruído). |
| 3_trigger | 5.0 | Arquivo da skill lido em 6/6 execuções com a skill. |
| 4_instructions_portability | 4 | SKILL.md apenas com texto de referência. |
| 5_efficiency | 4 | 1.20x tokens (78k vs. 65k por execução) e 1.03x tempo (49s vs. 48s). |
| 6_safety_hygiene | 4 | Somente texto; consulte security.md. |
Limites deste teste
- Verificações de recall no texto da auditoria e verificações por regex no CSS alterado; nada foi renderizado ou medido no navegador.
- A frase única é uma paráfrase próxima da própria checklist da skill, o que a torna uma comparação forte.
- Um único fixture; n=2 por célula.
- n = 2 por grupo por tarefa: diferenças abaixo de cerca de 1 ponto são ruído.
- A pontuação por regras mede o que as verificações conseguem ver; não julga bom gosto nem se o resultado é o melhor possível.
Segurança
Consulte security.md. Scan: 0 CRITICAL / 2 HIGH / 0 MEDIUM. Veredicto: segura para execução (sandbox sem rede). Um scan limpo não prova que uma skill é segura.
Conclusão
A skill supera claramente uma auditoria sem prompt, principalmente por sempre fornecer curvas e durações concretas. Uma única frase listando as mesmas regras faz o mesmo por menos, então o ganho é sobre a ausência de orientação, não sobre um bom prompt.
Transcrição
Log de execuções: improve-animations (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.) Colunas: tarefa, grupo-execução, nota (0-5), tokens, segundos, verificações aprovadas, arquivos da skill abertos pelo agente. t1-audit control-1: nota 3.21, tokens 65584, s 50.5, verificações 2/3, nada aberto t1-audit control-2: nota 3.21, tokens 65586, s 52.4, verificações 2/3, nada aberto t1-audit oneliner-1: nota 4.64, tokens 66262, s 51.5, verificações 3/3, nada aberto t1-audit oneliner-2: nota 5.0, tokens 66276, s 69.8, verificações 3/3, nada aberto t1-audit treatment-1: nota 4.64, tokens 78329, s 42.8, verificações 3/3, abriu improve-animations t1-audit treatment-2: nota 5.0, tokens 76979, s 51.1, verificações 3/3, abriu improve-animations t2-focus control-1: nota 2.5, tokens 64157, s 30.6, verificações 2/4, nada aberto t2-focus control-2: nota 2.5, tokens 63682, s 30.8, verificações 2/4, nada aberto t2-focus oneliner-1: nota 5.0, tokens 64128, s 32.3, verificações 4/4, nada aberto
18 execuções, 3 artefatos
Resultado de exemplo
SOTA · With the skill: final message (t1-audit, run 1, Codex)
Audited all four project files. **No files changed.** This is a static code audit: `index.html` does not load `app.js`, so the dropdown click handler currently never runs. Other open states have no handlers. All motion fixes below are in [styles.css](C:/Users/<user>/AppData/Local/Temp/asv-improve-an-9e585535/work/styles.css), ordered by priority. | Priority | Severity | Location | Finding | Exact replacement | |---|---|---|---|---| | 1 | HIGH | Line 8, `.palette` | The documented ~100 daily keyboard openings should respond immediately. | Replace its declaration with `transition: none;` | | 2 | HIGH | Line 1, `.dropdown` | `400ms ease-in` delays the initial response and makes opening sluggish. | `transition: transform 200ms cubic-bezier(0.23, 1, 0.32, 1), opacity 200ms cubic-bezier(0.23, 1, 0.32, 1);` | | 3 | HIGH | Lines 4–5, `.modal` | Scaling from zero over 500ms creates excessive movement. | Use the modal replacement below. | | 4 | HIGH | Line 6, `.accordion` | Animating `height` forces repeated layout over 500ms. | Replace `transition: height 0.5s ease;` with `transition: none;`. Keep both height values. This is the smallest safe fix; a smooth reveal needs additional structure. | | 5 | MEDIUM | Missing reduced-motion rule | Dropdown and modal movement have no preference override. | Append the reduced-motion block below, after the other rules. | | 6 | MEDIUM | Line 3, `.btn` | `transition: all` can animate unintended properties. No button state currently changes a visual property. | Replace with `.btn { transition: none; }` | | 7 | MEDIUM | Line 9, `.popover` | Center scaling contradicts its documented connection to the top-bar trigger. | Replace `transform-origin: center;` with `transform-origin: top left;` **if positioned below and left-aligned with the trigger**. Placement is absent from this prototype; use `top right` for right alignment or `top center` for centered alignment. | | 8 | LOW | Lines 10–11, `.card` | A 700ms linear shadow transition makes routine hover feedback linger; hover is also ungated on touch devices. | Use the card replacement below. | Replace lines 4–5 with: ```css .modal { opacity: 0; transform: scale(0.96); transition: transform 250ms cubic-bezier(0.23, 1, 0.32, 1), opacity 250ms cubic-bezier(0.23, 1, 0.32, 1); } .modal.open { opacity: 1; transform: scale(1); } ``` Keep the modal’s centered transform origin; it is appropriate here. Replace lines 10–11 with: ```css .card { transition: none; } @media (hover: hover) and (pointer: fine) { .card:hover { box-shadow: 0 8px 24px rgba(0, 0, 0, .2); } } ``` This preserves hover feedback while removing repeated shadow painting during an animation. Append this reduced-motion override: ```css @media (prefers-reduced-motion: reduce) { .dropdown, .dropdown.open, .modal, .modal.open { transform: none; transition: opacity 200ms ease; } .popover { transition: opacity 200ms ease; } } ``` One grounded optional addition: give the Menu button press feedback with `.btn:active { transform: scale(0.97); }` and `.btn { transition: transform 160ms ease-out; }`. If adopted, also add `.btn:active { transform: none; }` in [... excerpt: first 3200 of 3496 characters]