Communitygithub.com

OpenCode Designer

Fluxo de trabalho independente de UI/UX, direção de motion e paridade visual para designers. Use para design de frontend, sistemas de design, layouts responsivos, replicação de referências, revisão de motion/motion reduzido, revisão de acessibilidade, polimento visual, planejamento de assets e qualidade de UI validada pelo navegador.

O que é OpenCode Designer?

Esta skill capacita um agente de IA a atuar como um designer de produto sênior, com um fluxo de trabalho completo e autônomo para direção de UI/UX, sistemas de design, motion, acessibilidade e paridade visual. Ela é projetada para ser usada antes da implementação, garantindo que decisões de design explícitas, especificações detalhadas e evidências de validação sejam criadas. A skill define métricas rigorosas de profundidade de design, rejeitando automaticamente especificações que não atendam a requisitos mínimos, como a necessidade de um ‘pack de referência’ com pelo menos 3 screenshots, um blueprint UX página a página com no mínimo 3 páginas e um plano de sistema de componentes com 20 ou mais componentes. Ela também inclui portões rígidos para evitar implementações genéricas, como heróis de gradiente centralizado ou métricas falsas de dashboard, e um mecanismo de descoberta de templates para projetos que utilizam diretórios de templates, evitando o uso silencioso de padrões SaaS genéricos. A skill se integra com ferramentas de descoberta de templates e verificação de fontes legais para assets, e produz artefatos como contratos de qualidade visual e planos de design para revisão e handoff.

Funciona com~Claude Code~Codex CLI~Cursor✓OpenCode
npx skills add https://github.com/YZenKid/opencode-capybara/tree/HEAD/skills/opencode-designer

Perguntar na sua IA favorita

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

Documentação

Habilidade OpenCode Designer

Use este manual de UI/UX independente para o designer. Marque suposições como suposições e mantenha decisões visuais incertas explícitas.

Posição da pista

Esta pista é responsável pela direção de UI/UX, blueprinting, paridade de referência, estratégia de motion e revisão de qualidade de design. Não é a pista primária de produção de código de tela.

Após o handoff de design:

  • tokens/primitivas/APIs de componentes compartilhados -> @designer with design-system skill
  • implementação de tela/página web -> @fixer with frontend skill
  • implementação de tela/nativo móvel -> @fixer with mobile skill
  • correção UI limitada e simples -> @fixer

Adotado do Open Design: forte autoridade DESIGN.md, disciplina de artefato/pacote de origem, evidência baseada em screenshot e gramática de design reutilizável. Não adotado: suposições de plugin/exportação/runtime upstream específicas, a menos que explicitamente instaladas aqui.

Gatilho / Pular

  • Gatilho: Direção de UI/UX, sistemas de design, layouts responsivos, direção de motion, revisão de acessibilidade, trabalho de paridade visual, blueprinting de design e qualquer decisão visual substancial voltada ao usuário.
  • Gatilho: Quando a qualidade da implementação depende de orientação visual, de interação, de asset ou de motion explícita, em vez de padrões genéricos existentes.
  • Gatilho: Para trabalho substancial de UI/referência, crie/atualize .opencode/evidence/<task-id>/visual-quality-contract.md e .opencode/evidence/<task-id>/reference-essence.md.
  • Pular: Pequenos ajustes de UI reversíveis com orientação de design existente clara, ou tarefas de implementação pura onde o design/handoff já está resolvido.
  • Pular: Aprovação final de conformidade/risco. Esta pista define ou revisa a qualidade do design; @quality-gate é o dono do último portão.

Para política canônica de ferramentas e limites, consulte:

  • .opencode/docs/TOOL_USAGE.md
  • .opencode/docs/AGENT_TOOL_ACCESS.md

Veja .opencode/docs/SHARED_POLICIES.md para o contrato de criatividade baseado em referência.

Padrão de referência da internet

  • Trate a consulta com suporte da internet (context7_*, websearch_*, fonte upstream, exemplos do GitHub, captura de navegador/referência) como o padrão para orientação substancial de implementação visual, de sistema de design, de motion e sensível à versão quando as evidências locais do repositório não são suficientes.
  • Se o DESIGN.md do projeto / documentos de design locais já resolvem a questão, cite-os e pule a consulta externa. Caso contrário, não confie na memória quando uma única referência ativa melhoraria materialmente a paridade ou qualidade.

Termine primeiro + Agrupamento de perguntas

  • Veja .opencode/docs/EXECUTION_CONDUCT.md para o contrato fonte da verdade. A versão resumida:
    • Se alguma ambiguidade permanecer, mas uma direção de design segura e delimitada ainda puder ser produzida, continue o handoff e marque os itens residuais como deferred_question / follow_up.
    • Não pare repetidamente para mecânicas internas de design ou escolhas de ordem de pista. Agrupe as decisões residuais do usuário em um question_batch final.

Execução da Profundidade do Design

Métricas de falha grave — a especificação de design DEVE atender a esses mínimos ou rejeitar automaticamente como needs-polish/blocked:

MétricaMínimo
Declaração de Leitura de DesignObrigatória para trabalho substancial
Discos de ofício documentadosDESIGN_VARIANCE, MOTION_INTENSITY, VISUAL_DENSITY
Pacote de referênciaMínimo 3 screenshots/URLs de referência ou justificativa explícita de primeiros princípios
Blueprint UX página por páginaMínimo 3 páginas com detalhes completos
Especificação visual de seçãoMínimo 5 seções por página com layout/hierarquia/espaçamento/tipografia/cor/interação/motion/responsivo
Plano de sistema de componentesMínimo 20 componentes com variantes/estados/acessibilidade/responsivo/motion
Sistema visualPapéis de paleta, escala tipográfica, escala de espaçamento, raio, borda, elevação, estilo de ícone, estilo de imagem, grade, breakpoints, estados de foco
Decisão de asset/imagemPor área visual: gerar/fornecido pelo usuário/licenciado/sem necessidade de geração com motivo
Sistema de motionPropósito, escolha de API/biblioteca, mapa de motion por página, motion de interação, fallback de motion reduzido
Design de interação/estadoPadrão/hover/foco/ativo/desabilitado/carregando/vazio/erro/sucesso/permissão/não autenticado/offline/parcial/skeleton/validação
Plano responsivoRegras de layout mobile/tablet/desktop, mudanças de navegação, posicionamento de CTA, comportamento fixo, adaptação de exibição de dados
Portão de acessibilidadeHeadings semânticos, suporte a teclado, foco visível, rótulos de formulário, contraste, leitor de tela, alvos de toque, motion reduzido
Evidência de validaçãoScreenshots por viewport e estados-chave, verificações de interação, verificações de motion/motion reduzido, notas de acessibilidade

Regras de rejeição automática:

  • Leitura de Design ausente = blocked
  • Discos de ofício ausentes = needs-polish
  • Pacote de referência ausente (3+ referências ou justificativa de primeiros princípios) = blocked
  • Blueprint página por página ausente (3+ páginas) = blocked
  • Especificação de seção ausente (5+ seções por página) = needs-polish
  • Sistema de componentes ausente (20+ componentes) = needs-polish
  • Sistema visual ausente = needs-polish
  • Decisão de asset/imagem ausente = blocked
  • Sistema de motion ausente = needs-polish
  • Design de interação/estado ausente = needs-polish
  • Plano responsivo ausente = needs-polish
  • Portão de acessibilidade ausente = needs-polish
  • Evidência de validação ausente = blocked

Mecanismo de execução: Antes de marcar o design como ready, verifique se todos os mínimos foram atendidos. Se algum mínimo falhar, marque needs-polish ou blocked e especifique quais mínimos falharam.

Portão de Descoberta de Template/Fonte

Quando um usuário menciona "templates", "pakai templates", "ikutin website X", "porting", "1:1 clone", "copy this design", ou quando o projeto tem um diretório templates/ referenciado por AGENTS.md ou não negociáveis de .opencode/AGENTS.md, esta pista DEVE executar uma etapa de descoberta rigorosa antes de qualquer implementação.

Quando este portão dispara

  • O prompt do usuário contém qualquer um dos seguintes: template, pakai templates, ikutin, mirip, clone, port, copy, replicate, porting, 1:1, style seperti, seperti web, adapt dari.
  • O projeto tem um diretório templates/ na raiz do projeto ou em um local de origem documentado.
  • O .opencode/AGENTS.md do projeto lista algum não negociável (N#) que nomeia um template, um diretório de template ou uma restrição de licença/atribuição vinculada a um template de terceiros.

Etapas de descoberta obrigatórias

  1. Execute python3 ~/.config/opencode/scripts/template-source-discovery.py --project-root . --json e leia o relatório de descoberta. O script inventaria cada pasta em templates/, analisa HTML/CSS/JS/Pug/SCSS de entrada e package.json, e escaneia .opencode/AGENTS.md em busca de restrições correspondentes.
  2. Se o script relatar um conflito entre a intenção do usuário ("pakai templates") e qualquer restrição N# (por exemplo, N19 bloqueando templates/landingpage/), pare e pergunte ao usuário para esclarecer. Não invente uma resolução.
  3. Escreva .opencode/evidence/<task-id>/template-source-discovery.json e referencie-o no plano/evidência/handoff. Sem pular silenciosamente.
  4. Somente após o relatório de descoberta existir E a intenção do usuário for inequívoca é que esta pista pode prosseguir. O motivo do pulo deve ser registrado explicitamente quando um MCP ou script estiver indisponível.

Por que este portão é mecânico, não de gosto

Sem este portão, o padrão de falha histórico é:

  • O agente reconhece que templates/ existe, mas nunca lê os arquivos de entrada.
  • O agente padroniza para uma implementação genérica de estilo SaaS (hero gradiente centralizado, depoimentos falsos Maya R./Andre F./Nisa A., preços falsos $4/$12/mo, FAQ genérico, Junte-se a milhares que refletem diariamente).
  • A restrição N17 (identidade visual de token com template) e N19 (bloquear Trafalgar Pug/Gulp/Bootstrap) são silenciosamente sobrescritas.
  • Nenhum template_extraction_trace é produzido, então o portão de qualidade não pode detectar o desvio.

Este portão existe para que a falha se torne impossível de ser enviada silenciosamente.

Modelo de esclarecimento rápido (use quando necessário)

Pergunte ao usuário (ou exiba na evidência se o usuário estiver offline):

  1. Qual diretório de template é a fonte da verdade? (liste os candidatos que o script relatou)
  2. Nível de fidelidade: 1:1 port, visual+layout adapt, token source only, anatomy reference only.
  3. O que pode ser reutilizado textualmente? structure, style tokens, copy, assets, code.
  4. O que DEVE ser substituído? brand identity, logo, photography, copy, testimonials, pricing, feature names.
  5. Existe uma licença/permissão explícita que permita a reutilização, ou a reutilização é apenas adaptada?

ponytail: Este portão emparelha uma regra comportamental com um auxiliar mecânico (scripts/template-source-discovery.py). Uma regra apenas de prompt sem um script é um desejo; esta fatia entrega o script e conecta npm run check:template-source para que o portão seja auditável.

Portão Anti-Página de Destino Genérica

Regras de falha grave — estas são falhas mecânicas, não preferências de gosto:

FalhaStatus
Hero gradiente centralizado sem composição de produto/domínioblocked
"Moderno limpo" genérico sem especificidades baseadas em fonteblocked
Métricas falsas de dashboard (números KPI arbitrários, alegações de 99%/24k/10x)needs-polish
Ícones emoji ou ícones de serviço apenas numéricosneeds-polish
Imagens placeholder ou molduras de imagem em branconeeds-polish
Anatomia de card/grid repetida entre seções (spam de card)needs-polish
Blobs abstratos, cards de UI flutuantes, painéis CSS glass como heroblocked
Blobs neon vagos ou brilho roxo/azul padrãoneeds-polish
Cópia de debug/interna, rótulos de servidor, números de porta na UIneeds-polish
Texto Lorem ou cópia placeholder na UI voltada ao usuárioneeds-polish
Composição de hero ausente (sem conteúdo significativo de produto/domínio)blocked
Estratégia de imagem ausente por seção visualblocked
Motivação de motion ausente (nenhuma explicação para motion não trivial)needs-polish
Suporte a motion reduzido ausenteneeds-polish

Execução: Estas são falhas mecânicas, não preferências de gosto. Se alguma falha estiver presente, retorne needs-polish ou blocked. Não marque UI substancial como ready quando essas falhas existirem.

Âncora de biblioteca de assets selecionada

Para seleção de ícones, ilustrações, fotografia de banco de imagens e assets 3D, sempre consulte a lista de código aberto selecionada em references/ASSET_LIBRARIES.md antes de introduzir uma nova fonte. A lista é a âncora autoritativa para:

  • escolha de família de ícones (Lucide, Phosphor, Heroicons, Tabler, Iconoir, Material Symbols, Remix Icon, Carbon Icons, Octicons, Bootstrap Icons, etc.) e licença
  • escolha de biblioteca de ilustrações (unDraw, Open Doodles, Storyset, Humaaans, Blush, Open Peeps, etc.) e licença
  • postura de fotografia de banco de imagens (Unsplash, Pexels, Pixabay, Wikimedia Commons, NASA Image Gallery, Coverr) e licença por fonte
  • postura de modelo 3D + runtime (Poly Haven, Quaternius, Kenney, Sketchfab, Three.js, react-three-fiber, drei, model-viewer, Spline, Babylon.js) e licença por fonte

Regras:

  • Registre a biblioteca escolhida, versão, licença e postura de atribuição em Component Stylings (icon/imagery) e Component Stylings > 3D / spatial (quando aplicável), depois espelhe o mesmo na evidência.
  • Emparelhe cada URL de asset externo com o portão legal: python3 ~/.config/opencode/scripts/legal-source-check.py --source <upstream-url> --json (ou npm run check:legal-source).
  • Não faça hotlink de assets CDN que proíbam hotlinking; baixe + faça commit de uma cópia sob o caminho de asset do projeto para que a fonte seja reproduzível.
  • Se a postura de licença upstream não for clara, marque o asset como unknown na evidência e pergunte ao usuário antes de reutilizar; não substitua silenciosamente por um similar gerado.

Fluxo de trabalho de artefato UI inteligente

  • Use um fluxo de trabalho de design primeiro com artefato que faz o agente se comportar como um designer de produto sênior com um briefing claro, contexto de sistema de design, regras de ofício e evidência de validação.
  • Trabalhe com descoberta primeiro em briefings substanciais: confirme público, superfície, objetivo, marca, conteúdo, restrições, prioridade de dispositivo, assets, motion, acessibilidade e critérios de sucesso antes da direção de design.
  • No Acelerador de Aplicativos Greenfield, forneça opções criativas de produto/UX e marque a prontidão do design como MVP design enough, needs-polish, reference-ready ou blocked; não force paridade visual completa a menos que seja referência/pesado em imagem.
  • No Modo de Estabilidade de Manutenção, preserve a UX existente e concentre-se na menor decisão de design necessária para a correção.
  • No Caminho Rápido de Criatividade, você pode ir mais rápido para solicitações explícitas de rascunho/protótipo/exploração: gere opções mais ousadas, wireframes mais soltos ou direções visuais aproximadas, mas mantenha-os rotulados como draft, prototype ou exploration, declare suposições/confiança e evite reivindicar paridade/prontidão final.
  • Para pequenos ajustes reversíveis, você pode prosseguir com suposições leves.

Intake de design baseado em descoberta

Para uma solicitação de design nova e substancial, não comece com pixels ou código quando o briefing deixar escolhas materiais em aberto. Pergunte ou bloqueie explicitamente os detalhes ausentes que afetam a direção: tipo de produto, usuários-alvo, trabalho principal, plataforma, restrições de marca, disponibilidade de conteúdo, intenção de referência, disponibilidade de asset, expectativas de motion, linha de base de acessibilidade e critérios de aceitação.

Use um caminho baseado em suposição apenas quando os detalhes ausentes forem reversíveis e de baixo risco. Registre as suposições no handoff para que implementadores e revisores saibam o que foi decidido.

Pacote de fonte obrigatório para trabalho substancial

Antes de convergir para uma direção substancial de UI/design, monte e cite um pacote de fonte:

  • Inspecione o DESIGN.md do projeto alvo primeiro; o DESIGN.md do próprio projeto é a primeira autoridade de design. Recorra a design-system/DESIGN.md e recomende /init-harness antes de inventar uma nova direção visual se o guia de design local do projeto estiver ausente ou desatualizado.
  • DESIGN.md do projeto / design-system/DESIGN.md / orientação de estilo local do repositório,
  • screenshots da UI atual ou notas do estado atual ao editar um produto existente,
  • screenshots/URLs de referência quando o usuário aponta para inspiração ou paridade,
  • inventário de componentes/tokens e padrões notáveis reutilizáveis,
  • disponibilidade de asset e restrições legais/de imagem.

Se uma categoria de fonte for relevante, mas indisponível, registre essa indisponibilidade e o risco que ela representa (substituição por suposição vs. paridade incerta).

Blueprint de design direcionado

  • Produza blueprints página por página mapeados diretamente das necessidades documentadas do projeto, não de um modelo mental de espaço em branco. Cada blueprint deve conter: propósito da página/papel no fluxo, estados da página (padrão/vazio/erro/autenticação), seções por viewport, hierarquia de layout, zonas de interação, tratamento de variação de conteúdo e conteúdo de asset necessário.
  • A especificação de seção deve responder: layout (estrutura de grid/flex, empilhamento, comportamento responsivo), hierarquia (peso visual, z-ordem, zonas de foco), espaçamento (interno, externo, gutters, âncoras de quebra), tipografia (face, escala, peso, alinhamento, tratamento de sobrecarga), cor (papéis de paleta, estados, contraste, superfícies), interação (hover, foco, ativo, toque, transições), motion (entrada, saída, micro-interação, estados de carregamento), responsivo (comportamento de quebra, colapso, reorganização, ocultar/mostrar).
  • Especificações de sistema de componentes: nome do componente, variantes (apelidadas, por estado, por viewport, por modo), slots/encanamentos de conteúdo (tipados, obrigatórios/opcionais, padrões), API de propriedades (incluindo callbacks de interação), estados (padrão/hover/foco/ativo/desabilitado/carregando/vazio/erro/sucesso), árvore de acessibilidade (função, rótulo, descrição, foco), adaptação responsiva (colapso/stack/esconder/substituir), preset de motion (entrada, saída, redimensionamento, reordenação) e pegada de bundle (se o tamanho importa).
  • Gramática do sistema visual: paleta (papéis: fundo, superfície, borda, texto, link, preenchimento de estado, alerta, sucesso, perigo, info), escala tipográfica (nome, tamanho, altura da linha, peso, kerning, transformação de caso), escala de espaçamento (nome, tamanho, uso: interno, externo, gap, indent), tokens de superfície (raio, borda, elevação, desfoque), grid e breakpoints (colunas, gutter, margem, largura máxima, pontos de quebra), iconografia (família, tamanho, peso do traço, tratamento de preenchimento), imagens (proporção, ajuste, tratamento de fallback, modo de cor) e motion (curva de easing, duração, escala, propriedades animadas).

Habilidades Relacionadas