Todas as skills

emil-design-eng (emilkowalski/skills)

Aplica os princípios de Emil Kowalski para refinar a interface, projetar componentes e decidir animações.

emil-design-eng: adiciona feedback ao pressionar e easing personalizado que o Codex puro nunca escreve (0/6 para 6/6), mas uma versão de uma frase consegue quase tudo isso

RecomendadoSeguro

Codex CLI · gpt-6-astra

26.2 / 30

Ganho sobre sem skill: +1.42 · Recomendado · 18 execuções

Recomendado: o total 26.2/30 é pelo menos 22, a qualidade da saída 4.8 é pelo menos 3.5 e o ganho +1.42 é pelo menos +1.0.

SOTA

Aprovado

Testado 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.4
Qualidade da saída
4.8
Custo de tokens e tempo
4.0
Instalação e portabilidade
4.0
Segurança
5.0

Revisão de segurança

Seguro

Varredura estática: 0 CRÍTICO / 0 ALTO / 0 MÉDIO. Revisão manual: seguro para executar em sandbox sem rede (nenhum achado). Uma varredura limpa não prova que a skill é segura.

Instalar

npx skills@latest add emilkowalski/skills --skill emil-design-eng

Fonte

Commit fixado: a81dbca07f2217b7103e510c0f13f8d5b017afc9

Testado: 2026-11-02

O que testamos

  • Nova landing page a partir de um briefing — Crie um site de uma página para o Tidepool, uma marca de snacks de algas em pequenos lotes vendida por assinatura (três sabores, $14/caixa, envio mensal). Escreva um único index.html autocontido com CSS inline e JS mínimo só se necessário. Sem frameworks, sem etapa de build…
  • UI de dashboard denso em dados — Crie uma página de dashboard para uma equipe municipal de monitoramento da qualidade da água: leituras atuais de 6 estações (pH, turbidez, cloro, temperatura), tendência de 7 dias para cada uma e um painel de alertas. Um único dashboard.html autocontido com CSS/JS inline e leituras hard-coded…
  • Remodelar uma página existente sem graça — old.html é a homepage atual da Granite Peak Climbing Gym (Boulder, CO). Redesenhe-a em new.html: mantenha todo o conteúdo real (preços, aulas, horários, endereço), mas faça a página parecer pertencer a esta academia específica. HTML/CSS autocontido, sem fra…

Prós

  • Eleva a nota média de 3.33 para 4.75 em relação ao grupo sem skill (+1.42).
  • 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.75 de 5.

Contras

  • Ressalva do teste: a checklist de movimento é baseada em regras e em parte circular em relação às próprias regras da skill; capturas estáticas não conseguiram distinguir os grupos.
  • 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 de teste Windows dedicado, com um projeto temporário novo e HOME/TMPDIR/caches temporários a cada execução, skill instalada (tratamento), ausente (grupo de controle) ou ausente com o requisito central da skill comprimido em uma frase anexada ao prompt (grupo do prompt 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). Os mesmos três briefings do teste de frontend-design (uma landing page da Tidepool, um dashboard de qualidade da água e um redesign da homepage de uma academia de escalada), escritos como arquivos HTML autocontidos únicos. Os prompts não mencionam animação nem a skill; o grupo com a skill simplesmente tem a skill instalada.

Comparação entre os braços

BraçoNota média (0-5)Tokens por execução
Sem a skill3.33133k
Prompt de uma frase4.5127k
Com a skill4.75149k

Medido com Codex CLI em 18 execuções, com pontuação por verificações baseadas em regras e sem juiz LLM. Total 26.2 / 30, veredito Recomendado.

Divulgação: A checklist de movimento é baseada em regras e em parte circular com as próprias regras da skill; capturas estáticas não conseguiram distinguir os grupos.

Veredito: Recomendado (26.2 / 30). Fonte: emilkowalski/skills, skills/emil-design-eng, fixado no commit a81dbca. Instalação: npx skills@latest add emilkowalski/skills --skill emil-design-eng. Licença: MIT (LICENSE do repositório).

O que é

A skill emil-design-eng de emilkowalski/skills: as regras de engenharia de design de Emil Kowalski para polimento de UI, cerca de 4.000 palavras em um único SKILL.md. Ela cobre quando animar (e quando não animar), curvas ease-out personalizadas em vez dos padrões, durações de 150-300 ms, animar apenas transform e opacity, feedback ao pressionar (scale(0.97) em :active), nunca animar a partir de scale(0), stagger, condicionar o hover com (hover: hover), movimento reduzido e detalhes invisíveis como áreas de toque. Sem scripts.

Como testamos

Codex CLI 0.166 (gpt-6-astra, raciocínio baixo) em um PC de testes Windows dedicado, com um projeto temporário novo e HOME/TMPDIR/caches temporários a cada execução, skill instalada (com a skill), ausente (controle) ou ausente com o requisito central da skill comprimido em uma frase anexada ao prompt (grupo do prompt de uma frase), 2 execuções por grupo por tarefa, rede desativada, gravações em /tmp bloqueadas. Os prompts nunca mencionam a skill (exceto pelo texto indicado abaixo).

Os mesmos três briefings do teste frontend-design (uma landing page da Tidepool, um painel de qualidade da água e um redesign da página inicial de uma academia de escalada), escritos como arquivos HTML únicos e autossuficientes. Os prompts não mencionam animação nem a skill; o grupo com a skill simplesmente tem a skill instalada.

  1. Nova landing page a partir de um briefing — Crie um site de uma página para a Tidepool, uma marca de snacks de algas em pequenos lotes vendida por assinatura (três sabores, $14/caixa, envio mensal). Escreva um único index.html autossuficiente com CSS inline e JS mínimo apenas se necessário. Sem frameworks, sem build st…
  2. Interface de painel com muitos dados — Construa uma página de painel para uma equipe municipal de monitoramento da qualidade da água: leituras atuais de 6 estações (pH, turbidez, cloro, temperatura), uma tendência de 7 dias para cada uma e um painel de alertas. Um único dashboard.html autossuficiente com CSS/JS inline e dados fixos no có…
  3. Remodelar uma página sem graça existente — old.html é a página inicial atual da Granite Peak Climbing Gym (Boulder, CO). Redesenhe-a em new.html: mantenha todo o conteúdo real (preços, aulas, horários, endereço), mas faça a página parecer pertencer a esta academia específica. HTML/CSS autossuficiente, sem fra…

A pontuação é programática (testes ocultos / recuperação de problemas plantados / verificações de restrições / renderização+OCR quando relevante), 0–5 por execução. Nenhum juiz LLM decidiu qualquer pontuação. Como esta skill trata de movimento e detalhes de interação que uma captura de tela não mostra, a pontuação é uma checklist baseada em regras executada sobre o CSS gerado (10 verificações: feedback ao pressionar em :active, cubic-bezier personalizado, sem ease-in/linear/ease padrão, sem transition: all, apenas transform/opacity/cor animados, durações <= 300 ms, movimento reduzido, stagger, sem scale(0), hover condicionado por (hover: hover)), 0-5 por execução. Isso está muito alinhado às próprias regras da skill, então mede "seguiu a skill", não "a página ficou melhor".

Resultados

A frase única dada ao terceiro grupo: "Polir como um engenheiro de design: curvas de easing personalizadas (ease-out para entradas, nunca o padrão ou ease-in), durações de 150-300 ms, animar apenas transform e opacity, feedback ao pressionar como scale(0.97) em :active, nunca animar a partir de scale(0), escalonar entradas, respeitar prefers-reduced-motion e caprichar nos detalhes invisíveis (estados hover, active e focus, áreas de toque de 44 px)."

TarefaPontuação do controlePrompt de uma fraseCom a skillTokens do controleTokens do prompt de uma fraseTokens com a skillSkill lida
t1-landing3.254.55.089k103k130k2/2
t2-dashboard3.54.54.25202k145k135k2/2
t3-redesign3.254.55.0106k133k181k2/2

Pontuação média: 3.33 sem a skill vs 4.75 com a skill (delta +1.42). Tokens por execução: 133k vs 149k (1.12x); tempo 178s vs 163s. Grupo prompt de uma frase: 4.5 (ganho da skill sobre o prompt de uma frase: +0.25; ganho do próprio prompt de uma frase sobre nenhuma skill: +1.17); tokens do prompt de uma frase: 127k por execução, então a skill custa 1.17x o prompt de uma frase.

O que aconteceu

  • O Codex sem skill nunca escreve feedback ao pressionar nem uma curva de easing personalizada: 0/6 páginas de controle têm uma regra de escala em :active ou um cubic-bezier, contra 6/6 do grupo de uma frase e 6/6 (pressão) e 5/6 (curva) com a skill. Pontuação 3.33 no controle, 4.50 em uma frase e 4.75 com a skill.
  • A única regra que o prompt de uma frase não trazia, condicionar estilos de hover com @media (hover: hover), foi seguida por 5/6 páginas com a skill e 0/12 das outras páginas. É toda a margem da skill sobre a frase (+0.25).
  • Bons hábitos já estavam presentes em toda parte: sem transition: all, apenas transform/opacity/cor animados, suporte a movimento reduzido, sem scale(0). O controle acertou esses pontos 6/6 vezes, então a skill acrescenta as regras específicas de polimento, não o básico.
  • Olhando as páginas às cegas (capturas de tela de desktop, embaralhadas), todas as 18 estão polidas e nenhuma está quebrada; a qualidade estática de design dos três grupos é indistinguível. A skill muda o comportamento que você sente, não o que uma captura de tela mostra.
  • Custo: 149k tokens por execução, contra 133k (1.12x) e 127k do grupo de uma frase, o menor custo extra de skill que medimos entre skills de design.

Pontuações por dimensão

DimensãoPontuaçãoPor quê
1_output_quality4.75

Pontuação média de 4.75/5 com a skill (verificações programáticas, veja a tabela por tarefa).

2_lift_vs_no_skill3.42

+1.42 pontos vs 3.33 sem a skill (n=2 por tarefa; abaixo de ~1 ponto é ruído).

3_trigger5.0Arquivo da skill lido em 6/6 execuções com a skill.
4_instructions_portability4

Texto simples com trechos de CSS/React; pressupõe um projeto de UI web; frontmatter válido com texto de acionamento.

5_efficiency4

1.12x tokens (149k vs 133k por execução) e 0.92x tempo (163s vs 178s).

6_safety_hygiene5Um único arquivo Markdown, sem scripts, scanner limpo, MIT.

Limites deste teste

  • As regras de movimento são verificadas a partir do texto CSS, não observando a página; uma transição pode existir e ainda assim parecer errada.
  • A checklist deriva das próprias regras da skill, e o prompt de uma frase enuncia a maioria delas, então o grupo de uma frase é um limite superior para um prompt curto.
  • Apenas três briefings de páginas estáticas; componentes interativos (dropdowns, toasts, drawers), nos quais a skill gasta a maior parte das palavras, não foram solicitados.
  • n = 2 por grupo por tarefa: diferenças abaixo de ~1 ponto são ruído.
  • A pontuação baseada em regras mede o que as verificações conseguem ver; ela não julga bom gosto nem se o resultado é o melhor possível.

Segurança

Consulte security.md. Varredura: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Veredito: seguro para executar (sandbox sem rede). Uma varredura limpa não prova que uma skill é segura.

Conclusão

Se você quer páginas com feedback ao pressionar, curvas ease-out e hover condicionado sem precisar pedir, a skill entrega isso com quase nenhum custo de tokens. Uma frase que lista as mesmas regras chega a 94% do caminho, então o valor da skill é você não precisar conhecer as regras.

Transcrição

Log de execuções: emil-design-eng (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-landing control-1: nota 3.0, tokens 87031, s 180.3, verificações 5/5, nada aberto
t1-landing control-2: nota 3.5, tokens 91542, s 176.7, verificações 5/5, nada aberto
t1-landing oneliner-1: nota 4.5, tokens 124122, s 175.9, verificações 5/5, nada aberto
t1-landing oneliner-2: nota 4.5, tokens 82163, s 143.1, verificações 5/5, nada aberto
t1-landing treatment-1: nota 5.0, tokens 132827, s 151.2, verificações 5/5, abriu emil-design-eng
t1-landing treatment-2: nota 5.0, tokens 128585, s 170.2, verificações 5/5, abriu emil-design-eng
t2-dashboard control-1: nota 3.5, tokens 270891, s 204.0, verificações 5/5, nada aberto
t2-dashboard control-2: nota 3.5, tokens 134118, s 172.6, verificações 5/5, nada aberto
t2-dashboard oneliner-1: nota 4.5, tokens 154395, s 240.7, verificações 5/5, nada aberto

18 execuções, 3 artefatos

Resultado de exemplo

SOTA · With the skill: index.html (t1-landing, run 1, Codex)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="theme-color" content="#f7f3e9"> <meta name="description" content="Meet Tidepool: small-batch seaweed snacks with a big ocean crunch. Three flavours. $14 a box. A fresh delivery every month."> <title>Tidepool — A little ocean. A lot of crunch.</title> <style> :root{--paper:#f7f3e9;--ink:#183d48;--coral:#ed674c;--line:#cbd0c3;--green:#dce5bd}*{box-sizing:border-box}html{scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}button,input{font:inherit}a,button,label,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible+span{outline:3px solid var(--coral);outline-offset:5px}.skip{position:absolute;left:16px;top:-60px;background:var(--paper);padding:12px;z-index:10}.skip:focus{top:12px}.wrap{width:min(1240px,90%);margin:auto}.topline{text-align:center;padding:10px 16px;background:var(--ink);color:var(--paper);font-size:11px;letter-spacing:1.5px;text-transform:uppercase}.nav{display:flex;align-items:center;justify-content:space-between;min-height:100px;border-bottom:1px solid var(--line);gap:24px}.logo{font-family:Georgia,serif;font-size:42px;font-weight:bold;letter-spacing:-3px;text-decoration:none}.logo sup{font:11px Arial;letter-spacing:0;vertical-align:top;display:inline-block;margin-top:12px}.links{display:flex;gap:32px;font-size:13px}.links a{text-decoration:none}.links a:hover{text-decoration:underline;text-underline-offset:5px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:17px 24px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:4px;text-decoration:none;font-size:14px;font-weight:bold;transition:transform 150ms cubic-bezier(.23,1,.32,1)}.button:active{transform:scale(.97)}.nav .button{padding:13px 20px}.hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:66px 0 58px;gap:20px}.eyebrow{font-size:11px;font-weight:bold;letter-spacing:2px;text-transform:uppercase;margin:0 0 22px}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(58px,6.9vw,96px);line-height:.98;letter-spacing:-5px;font-weight:normal;margin:0 0 28px}h1 em{color:var(--coral);font-weight:normal}p{line-height:1.65}.intro{max-width:360px;font-size:16px;margin-bottom:28px}.small{font-size:12px}.hero-note{margin-top:14px;color:#53676a}.art{position:relative;min-height:480px;display:flex;align-items:center;justify-content:center}.orb{position:absolute;width:440px;height:440px;max-width:100%;border-radius:50%;background:#e4e8d6}.pack{width:190px;height:285px;position:relative;background:var(--green);border-radius:9px 9px 20px 20px;color:var(--ink);box-shadow:8px 18px 20px #173c4820,inset 6px 0 14px #ffffff55,inset -5px 0 10px #0000000d;text-align:center;overflow:hidden;padding:29px 10px 15px;border:1px solid #193e4825}.pack:before,.pack:after{content:'';position:absolute;left:0;right:0;height:10px;background:repeating-linear-gradient(90deg,transpa [... excerpt: first 3200 of 16222 characters]

Ver o Pro