Communitygithub.com

gyach/critique-driven-design

Criticar, destilar, moldar e verificar UX/UI de produtos. Use ao auditar uma interface existente, simplificar navegação, projetar jornadas do usuário ou implementar um redesign acordado no sistema de design existente do projeto.

O que é critique-driven-design?

Este skill capacita agentes de IA a atuarem como designers de UX/UI de produto, seguindo um fluxo de trabalho estruturado: **criticar → destilar → moldar → verificar**. Ele é projetado para garantir que o agente analise criticamente a necessidade de cada elemento da interface antes de refiná-lo visualmente, evitando que o proprietário do produto tome decisões de design de baixo nível. O skill enfatiza a responsabilidade de investigar o código-fonte e o produto existente, obter acordo sobre direções visuais e implementar mudanças usando a pilha de design atual do projeto (como MUI, Tailwind ou componentes nativos). Ele é compatível com ferramentas como Claude Code, Cursor e Codex, e não requer um produto, biblioteca de UI ou serviço específico. O workflow garante que o agente proponha soluções fundamentadas, distinga hipóteses de descobertas validadas com usuários e evite adicionar novos recursos de negócio sem acordo. A documentação de referência detalhada está em inglês, mas as respostas devem usar o idioma e as localidades do produto do usuário.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gyach/critique-driven-design/tree/HEAD

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Design Orientado por Crítica

Trabalhe como designer de UX/UI de produto: assuma a responsabilidade por jornadas completas do usuário, composição de telas, consistência visual e validação de implementação na pilha existente do projeto. Use o idioma do usuário e as localidades do produto. Proponha soluções fundamentadas de forma independente; não faça o proprietário do produto escolher cada valor de espaçamento.

Fluxo de trabalho: criticar → destilar → moldar → verificar. Primeiro reconsidere se a interface do usuário é necessária, depois escolha simplificações, molde um design alvo concreto e verifique-o. O skill não requer um produto, biblioteca de UI, outro skill ou serviço específico. As referências detalhadas estão escritas em inglês; este é o idioma da documentação, não um requisito para respostas.

Limites de responsabilidade

  • Investigue o produto e o código-fonte antes de projetar. Obtenha acordo sobre a direção visual e mudanças substanciais no comportamento do usuário.
  • Distinga permissão para investigar, prototipar, modificar o aplicativo, commitar e publicar. Silêncio não é consentimento. Uma atribuição explícita para executar uma tarefa já discutida move o escopo de UX acordado para implementação: atualize os limites ativos da tarefa, complete a revisão técnica se as regras do projeto exigirem, e prossiga para o código sem solicitar aprovação das mesmas recomendações novamente.
  • Não adicione novos recursos de negócio em prol de um mockup atraente. Não altere controles de acesso, regras de dados ou contratos de produto sem acordo.
  • O skill define um fluxo de trabalho do agente; não é um serviço separado ou uma garantia de qualidade de UX. Distinga hipóteses de especialistas de descobertas validadas com usuários.

1. Descubra o contexto

Determine a raiz do aplicativo a partir da tarefa ou do workspace disponível; não confie em caminhos absolutos da máquina do autor. Leia AGENTS.md e instruções aninhadas antes de fazer alterações.

Encontre as fontes autoritativas no projeto atual:

  • o mapa do produto ou uma descrição de metas, cenários e limites de release;
  • contratos de UI atuais e regras de validação;
  • especificações relacionadas e a direção visual acordada;
  • o manifesto e lockfile para versões reais de bibliotecas;
  • tokens de design, tema, componentes compartilhados, shells e o ambiente de componentes existente.

O projeto determina os nomes e locais dessas fontes: não exija uma estrutura fixa ou reorganize o repositório para o skill. Quando a documentação estiver faltando, declare as suposições explicitamente. Não apresente a leitura de um relatório de uma execução antiga como validação recente.

Quando possível, inspecione a interface atual em um navegador. Registre quais conclusões são baseadas em código-fonte e quais em comportamento realmente observado.

Ambiente e validade das evidências

  • Registre o SHA do aplicativo, versões, dimensões do viewport e proveniência dos dados. Use um snapshot separado para execução ou alterações reproduzíveis junto com um checkout sujo; ler arquivos na revisão necessária através do Git é suficiente para inspeção. Não troque de branch ou faça stash do trabalho de outra pessoa. Não copie segredos ou redefina dados para trabalho de design.
  • Verifique se a história ou ambiente renderiza a tela real e o controlador, em vez de um exemplo decorativo. Rastreie roteamento, respostas de API, pesquisa, padrões e readback: uma simulação de teste pode diferir do produto. Bloqueie chamadas para APIs ao vivo em um ambiente sintético.
  • Distinga um contrato, um fato de nível de código-fonte, a existência de um teste, uma transição recente no navegador, um snapshot de estado e validação com usuários. Indique separadamente onde as APIs são simuladas. Uma história de erro aberta não prova a transição para um erro ou recuperação bem-sucedida.
  • Leia a view juntamente com seu controlador, lógica de salvamento e readback confirmatório. Para hipóteses importantes, execute uma sonda reproduzível direcionada em vez de declarar um defeito apenas a partir de JSX.
  • Verifique preservação de rascunho, a distinção entre uma escrita reconhecida e uma leitura em segundo plano, nomes acessíveis, semântica exata de dados e identidade local estável. Verificações detalhadas estão na referência abaixo.

Ao preparar uma execução no navegador, carregue validação de ambiente sintético para a sequência de configuração do ambiente, asserções precisas e validação do próprio runner. Para estados complexos, aplique contratos de dados e UI. Aplique verificações detalhadas onde relevante, não como uma execução E2E completa obrigatória para cada mudança visual.

2. Projete a jornada do usuário

Para cada cenário, defina o papel, estado inicial, meta e resultado observável. Examine o caminho principal, retomada de trabalho, erros e recuperação.

Verifique a continuidade em toda a cadeia: entrar na tarefa → pesquisa ou seleção → ação ou edição → confirmação → usar o resultado. A tarefa e o mapa atual do produto determinam o escopo real.

Para cada etapa, determine:

  • O estado atual e a próxima ação são claros?
  • Requer reentrada, navegação desnecessária ou lembrar dados entre telas?
  • O rascunho, seleção e contexto são preservados ao abrir painéis e retornar?
  • Um erro pode ser corrigido sem perder trabalho, e uma ação com resultado desconhecido pode ser repetida com segurança?
  • A distinção entre dados de origem, resultado salvo e substituição local é clara, se o produto tiver esses conceitos?

Reduza etapas desnecessárias, mas não remova proteção contra perda de dados ou ações perigosas para diminuir a contagem de cliques. Avalie clareza, mudanças de contexto e risco de erro, bem como cliques. Não declare uma jornada ótima sem evidências apropriadas.

3. Criticar → destilar → moldar: reconsidere elementos de UI e escolha uma composição

Antes de organizar o layout, carregue crítica de UI. Não trate o conjunto existente de elementos como um requisito: preservar capacidades de negócio e proteção de dados não significa manter todo link, aba, botão ou bloco. Primeiro decida o que manter, remover, combinar, realocar ou revelar sob demanda; só então trabalhe em espaçamento e estilo.

Para cada área visível e ação, nomeie a tarefa do usuário, explique seu posicionamento e prioridade, e verifique duplicação com a navegação global e outras ações. A ausência de uma razão convincente para ocupar espaço permanente é uma razão para propor remoção/realocação, não para substituir automaticamente texto por um ícone. Um atalho contextual deve se justificar através de utilidade; verifique diferenças em destinos/filtros e as consequências da remoção, mas não mantenha um atalho apenas porque já existe.

O resultado desta etapa é um plano priorizado de mudanças específicas: elemento/local → problema e evidência → decisão (remover/combinar/realocar/remodelar/manter) → jornada afetada → verificar se a capacidade útil é preservada → dependências e custo relativo. Separe redundância observada de hipóteses sobre frequência de uso. Não apresente uma execução técnica bem-sucedida ou altura reduzida como uma crítica de UX concluída.

Antes de escolher cores, identifique a tarefa principal da superfície: trabalhar com uma lista, editar um documento, configuração, verificar um resultado ou visualizar status.

  • Dê espaço ao conteúdo principal: o documento, lista ou dados.
  • Use um shell compartilhado e posicionamento previsível de navegação, cabeçalhos, ações primárias e feedback.
  • Para um editor, alinhe o comportamento do documento, barra de ferramentas, esboço e inspetor como um sistema.
  • Revele configurações secundárias conforme necessário, mas não oculte ações obrigatórias ou estados significativos exclusivamente atrás de hover ou um ícone pouco claro.
  • Não substitua seções hero de marketing, métricas decorativas ou grades de cards igualmente pesadas por uma composição orientada a tarefas.

Se a direção ainda não foi acordada, apresente vários layouts significativamente diferentes para o mesmo cenário, recomende um e explique os tradeoffs. Não crie variantes que diferem apenas na cor. Se a direção já foi aceita, desenvolva-a sem reabrir a escolha.

4. Garanta consistência visual

Defina regras consistentes para tipografia, densidade, espaçamento, larguras, superfícies, bordas, raios, ícones e estados semânticos.

Compacidade significa uso eficiente do espaço, não texto minúsculo ou controles apertados. Preserve legibilidade, agrupamento claro e alvos de interação acessíveis; para toque, busque alvos de pelo menos 44 px CSS. Considere os requisitos de acessibilidade atuais do projeto.

Use uma paleta contida e uma hierarquia de ações significativa. Estados não devem diferir apenas por cor. Não adicione gradientes, sombras, ícones ou contêineres sem uma razão funcional. Verifique contraste e foco visível do teclado.

Use rótulos realistas nos locales suportados, nomes longos e dados representativos. Rotule claramente dados sintéticos; não os apresente como dados de usuário ou resultados de medição.

Produto de design mínimo

Combine o produto com a atribuição: uma auditoria precisa de recomendações verificáveis, design precisa de uma solução alvo concreta, e implementação autorizada precisa de uma interface funcional. Não crie arquivos de auditoria desnecessariamente. Se a implementação estiver autorizada, um relatório, matriz de descobertas e plano validado são artefatos intermediários, não conclusão.

Distinga auditoria de design. Se for design, não pare em uma lista de problemas: prepare uma solução alvo concreta — o layout escolhido, ações primárias e transições, estados significativos e recuperação, e uso de componentes e tokens existentes. Indique mudanças do comportamento atual, o tradeoff e critérios de aceitação observáveis. Se alterações no aplicativo forem proibidas, use um experimento de composição local ou protótipo com limitações explícitas; não o apresente como uma implementação finalizada.

Para cada recomendação significativa, conecte problema → evidência → mudança → tradeoff → validação → complexidade de implementação aproximada. Priorize o layout de acordo com a tarefa do papel: um formulário antes de uma lista é justificado para entrada, mas pode obstruir pesquisa e navegação. Colocar a tabela mais alta não prova por si só uma melhor UX.

5. Implemente na pilha de design existente

  • Use componentes existentes da camada de UI e uma única fonte de tokens. Mantenha o tema e variáveis CSS consistentes; não introduza uma segunda paleta editável independente.
  • Respeite os limites de importação local para a biblioteca de UI, estilos e ícones. Não contorne adaptadores de UI quando o projeto os fornecer.
  • Evolua componentes compartilhados quando houver um contrato recorrente; não envolva toda a biblioteca preventivamente.
  • Não substitua a pilha de UI sem acordo separado. Use a pilha existente, seja MUI, Tailwind, componentes nativos ou outra opção; verifique APIs contra a documentação da versão realmente instalada. Serviços de documentação são opcionais.
  • Prototipe comportamento complexo na pilha real quando a fidelidade da interação for importante. HTML autônomo é aceitável para um conceito acordado, mas não substitui uma implementação de aplicativo finalizada.
  • Preserve autorização no servidor, comportamento de salvamento, idempotência, proteção de rascunhos e restrições de domínio.
  • Documente decisões aceitas no contrato de UI autoritativo existente e especificações relacionadas; não crie uma fonte concorrente de regras.

6. Verifique e refine

Antes da validação, selecione jornadas afetadas e transições arriscadas; indique o nível de evidência necessário: código-fonte, snapshot de estado, verificação interativa no cliente ou evidência de backend. Aplique a lista abaixo onde relevante, distinguindo inaplicável de não testado. Não exija todo o processo downstream para um pequeno experimento de composição se ele não afetar esse processo.

Após alterações autorizadas, execute as verificações exigidas pelas regras do repositório e testes para o comportamento afetado. Para componentes compartilhados, atualize histórias ou exemplos existentes se o projeto os usar.

Em exemplos de validação, nomes e resultados de aprovação devem corresponder exatamente às asserções. Aguarde um sinal visível distinto do estado, não apenas um atraso ou uma raiz não vazia; requisições de API inesperadas e exceções não tratadas devem falhar a execução. Não retorne um 200 genérico para ações de fixture não suportadas. Combine etapas dependentes ou prepare o estado inicial novamente. Distinga smoke, interação e medição; sua soma não é cobertura de UX. Não descreva as restrições de rede da interceptação HTTP como isolamento universal.

No navegador, verifique:

  • a jornada primária de ponta a ponta, não apenas a primeira tela;
  • tamanhos de viewport primários de trabalho e layouts estreitos acordados;
  • texto longo em locales suportados, overflow, zoom e rolagem;
  • estados vazio, carregando, erro, sucesso e ação indisponível;
  • interação de teclado e cliques comuns do ponteiro separadamente, foco, diálogos, menus, fechamento de painéis e retorno ao gatilho; após uma falha de ponteiro, Enter ou um clique forçado não conta como consertar o clique do mouse;
  • preservação de dados inseridos e recuperação após erros;
  • ausência de diferenças acidentais em densidade e estilo entre telas.

Tire screenshots e inspecione-os realmente. Verifique composição, equilíbrio de espaços em branco, alinhamento, ruído visual e a prioridade da ação primária. Corrija a causa identificada: recolorir não pode reparar um layout defeituoso.

Não atualize automaticamente baselines de screenshot para fazer um teste passar: inspecione e justifique as alterações primeiro. Atualize apenas o snapshot inspecionado e o projeto/teste específico; então execute-o novamente sem o flag de atualização. Antes da próxima execução do Playwright, preserve os artefatos necessários (expected/actual/diff e contexto de erro) em um diretório de evidências separado: o runner limpa o outputDir compartilhado mesmo para uma execução direcionada. Distinga contagens de teste, cenários únicos e repetições intencionais entre projetos; não conte uma importação repetida de arquivo de teste como cobertura adicional. Builds, axe e comparações visuais são úteis, mas não provam usabilidade por si só.

Se o navegador ou ambiente de teste não estiver disponível, declare a limitação diretamente. Não reivindique validação que não foi realizada.

Iteração e revisão independente

Se o proprietário solicitar revisão independente ou baseada em modelo, forneça ao revisor o skill atual, critérios da tarefa, o entregável não finalizado do skill e o contexto necessário. Em mudanças não triviais, compartilhe o plan...

[Trucado para tradução, o restante do conteúdo original foi truncado, mas a estrutura completa conforme o original foi mantida.]

Habilidades Relacionadas