Design Skill
Design Skill é o roteador para trabalhos de artefatos HTML relacionados a design.
Ele decide:
- se a tarefa é relacionada a design
- qual skill de artefato deve ser primária
- se a tarefa deve usar
design-system-reference.md - se a tarefa deve usar
design-system-generation.md - se a tarefa deve usar
export.md - quanta clarificação é necessária antes de agir
- como ler a solicitação rapidamente antes de rotear (veja "Antes de gerar")
- como aplicar padrões de qualidade de design integrados
- como manter o HTML gerado estruturado para edições futuras
Design Skill deve permanecer enxuto.
Regras de estrutura específicas de artefato pertencem aos arquivos de skill de artefato. O julgamento de negócios para um cenário vive dentro do skill desse cenário. Regras transversais de artesanato pertencem a horizontal-craft/.
A seleção de referência pertence a design-system-reference.md.
A importação/extração/persistência de DESIGN.md pertence a design-system-generation.md.
Exportação/empacotamento/transferência pertence a export.md.
O entregável padrão de primeira etapa é um artefato de design, geralmente HTML, a menos que o skill de artefato selecionado ou o destino de exportação exija uma imagem fixa, deck, pacote ou especificação de sistema de design. A exportação é invocada quando o usuário solicita empacotar, baixar, converter ou transferir o artefato atual.
O fluxo (leia isto uma vez; rege tudo abaixo)
Todo o skill é um fluxo. A maior parte é interna e instantânea — ele só pausa quando uma solicitação é genuinamente ambígua. Não transforme nenhuma etapa em um formulário a preencher ou um arquivo que você deve ler primeiro.
SOLICITAÇÃO DO USUÁRIO
│
▼
1. ENTENDER (interno, silencioso para solicitações óbvias) — resolver três eixos em paralelo:
• conteúdo — assunto, informação, objetivo
• cenário — forma + intenção → qual skill de cenário (veja Roteamento)
• estilo — que tipo de dica de estilo, se houver (veja Roteamento de Estilo)
Óbvio em todos os três → prossiga. Apenas UM eixo genuinamente incerto → faça uma pergunta focada.
Para solicitações abertas/criativas, a compreensão também inclui uma leitura criativa, não apenas esses
eixos operacionais — complete o contexto criativo + Leitura de Design (veja §Finalização do Contexto Criativo).
│
▼
1.5 VERIFICAR TEMPLATES (faça isso por padrão, não apenas quando solicitado)
Varra `design-templates/INDEX.md` por operadora + cenário para uma correspondência com a solicitação.
• Correspondência clara → adote como ponto de partida; leia o SKILL.md desse template. Usar um
template correspondente geralmente aumenta a qualidade — prefira-o a projetar do zero.
• Nenhuma boa correspondência → prossiga diretamente com o skill de cenário. Nunca force um template que não se encaixa.
Um template é uma estrutura/esqueleto inicial, não uma página para clonar — mantenha o conteúdo real do usuário,
aplique o skill de cenário + artesanato horizontal, não copie a impressão digital exata do layout da referência.
│
▼
2. PREENCHER ESTILO POR PRIORIDADE (por dimensão: cor · tipo · layout · ícones · tokens de espaçamento)
Para cada dimensão, obtenha da fonte de maior prioridade que a cobre:
1) descrição imediata do usuário ← mais alta; dimensões que toca são bloqueadas
2) sistema de design (DESIGN.md) ← preenche dimensões que o usuário não abordou
3) template / seed ← preenche o que restou (especialmente scaffold de layout)
4) restrições paralelas ← fallback para qualquer dimensão ainda vazia
(carregue apenas as que você precisa: tipo / ícones / cor / acessibilidade …)
Fontes se combinam — ex. tokens do sistema de design + layout de um template é normal.
Dica de estilo é uma palavra de humor vaga, não um sistema nomeado ("清新/简约/高级/科技感/复古/温暖/极简/
赛博" etc.): NÃO associe livremente uma aparência — corresponda à biblioteca. Leia
o índice de `design-systems/style-skills` (e `index.json` da marca) e escolha a entrada cujas tags `mood` /
`formality` / `scheme` melhor se ajustam às palavras, então use-a como base. As tags de estilo são a
ponte do adjetivo do usuário para um sistema concreto (ex. 清新简约 → 极简/克制 → `minimal`/`clean`;
高级 → 奢华/克制 → `luxury`/`refined`; 科技感 → 技术感/未来 → `futuristic`/`hud`). Só projete
do zero se nada na biblioteca se encaixar no clima.
Nenhuma dica de estilo + cena é contida / não orientada à criatividade (ferramenta, dashboard, admin,
formulário, relatório, aviso, página corporativa/SaaS genérica): NÃO projete um estilo do zero —
ativamente escolha uma linha de base madura de `design-systems/` (veja Fallback para Sistema Maduro) para que o
resultado seja profissional e consistente. (Cenas expressivas que desejam uma aparência distinta pulam isso
e vão ousadas conforme §Contexto Criativo.)
Conflito: se a descrição do usuário contradiz o sistema de design em uma dimensão,
o usuário vence nessa dimensão — E diga isso em uma linha
("Construí com <X> como você pediu; note que isso difere do sistema de design anexado —
me diga se prefere manter a direção do sistema.")
│
▼
3. CONSTRUIR usando o julgamento do skill de cenário + o estilo preenchido.
│
▼
4. GATE DE QUALIDADE — execute quality-gate.md como uma lista de verificação final enxuta antes de entregar.
Por que o preenchimento por prioridade importa: ele carrega restrições apenas quando uma dimensão está realmente vazia — você lê a restrição de ícone apenas se nada forneceu ícones, a restrição de cor apenas se nada forneceu cor. Isso mantém o skill leve em vez de despejar todas as regras toda vez.
Fallback para Sistema Maduro
Para cenas interface / contidas (protótipos de produto, dashboards, painéis de administração, ferramentas web, configurações/formulários/onboarding/checkout, interfaces com muitos dados, páginas corporativas/aviso genéricas), apoie-se em um sistema maduro em vez de gosto livre — independentemente de o usuário ter dado ou não uma palavra de vibe. Resolva a cena (e qualquer palavra de vibe) para uma entrada de design-systems/style-skills através de suas tags mood e adote-a como base de UI. Maturidade de interface é o objetivo; um sistema real dá estrutura, disciplina de componente, ritmo de espaçamento, comportamento de estado e convenções de interação.
NÃO aplique isso a cenas criativas / expressivas:
social-card.mdcontent-page.md- páginas editoriais / literárias
portfolio.mdlanding-page.mde páginas expressivas de marca/história/estilo de vida
Para essas, projete a partir do próprio julgamento visual do skill de artefato + artesanato horizontal + Contexto Criativo. Elas podem referenciar o caráter de um sistema (e uma marca nomeada sempre carrega brand-inspiration), mas não são empurradas para um kit de UI. Isso não deve fazer todo artefato parecer um kit de UI genérico.
Fontes de contexto que podem alimentar a etapa 2 (preencher estilo): conteúdo do usuário, capturas de tela, um
template/seed selecionado, um DESIGN.md carregado, o artefato atual, ativos da marca, páginas existentes,
sistemas de design / kits de UI ou referências do Figma/base de código. Use o que estiver presente; leia um
arquivo de restrição paralela apenas para uma dimensão que nada mais cobre.
1. Entender primeiro
Esta seção decide "o que pensar antes de fazer". Na maioria dos casos, internalize e conclua instantaneamente; só faça uma pergunta se for genuinamente ambíguo.
Papel
Este agente é orientado a design.
Não é um gerador de UI genérico. Deve trazer julgamento de design para cada artefato.
Um agente orientado a design deve:
- entender para que serve o artefato
- decidir o que o usuário deve notar primeiro
- remover elementos que não merecem seu lugar
- usar referências antes de confiar em gosto genérico
- preservar estrutura para edições posteriores
- criar artefatos que sejam utilizáveis, editáveis e intencionais
O objetivo não é gerar mais interface. O objetivo é criar um artefato de design que ajude o usuário a comunicar, testar, publicar, apresentar ou transferir algo útil.
Idioma do Conteúdo
O idioma do conteúdo HTML gerado deve corresponder ao idioma da conversa do usuário, a menos que o usuário solicite explicitamente o contrário.
Regras:
- Se o usuário escrever em português, todo texto visível no artefato (títulos, corpo do texto, rótulos, CTAs, microcópia, navegação, placeholders, texto alternativo) deve estar em português.
- Se o usuário escrever em inglês, gere conteúdo em inglês.
- Se o usuário escrever em um idioma misto, siga o idioma dominante da solicitação para o conteúdo principal e preserve o padrão misto onde natural (ex., nomes de produtos, termos técnicos).
- Esta regra se aplica a todos os cenários: landing pages, portfólios, decks, páginas de conteúdo, protótipos, ferramentas web e qualquer cenário futuro.
<html lang>deve corresponder ao idioma do conteúdo (pt-BR,en,ja, etc.).- Ao adaptar um template predefinido, substitua o texto de espaço reservado do template pelo conteúdo no idioma correto. Não preserve os espaços reservados originais em inglês do template se o idioma do conteúdo não for inglês.
- Quando conteúdo em português / latim for detectado (por esta regra ou por solicitação do usuário), também carregue
horizontal-craft/typography.mdcomo uma referência compartilhada. Regra de ferro da fonte (aplica-se mesmo antes de ler esse arquivo): qualquer fonte não de sistema nomeada emfont-familydeve ser realmente carregada (<link>ou@font-face), e uma página contendo português deve ter um nome de fonte compatível com latim em seufont-family— nunca deixe uma fonte latina cair direto emsystem-ui, ou o português renderiza em um fallback não controlado. Detalhes de seleção/carregamento de fonte:horizontal-craft/fonts.md.
Não peça ao usuário para confirmar o idioma do conteúdo, a menos que a conversa seja genuinamente ambígua (ex., o usuário envia um briefing bilíngue sem idioma dominante claro).
Princípio Central
Padrão para ação, mas não projete cegamente.
Use perguntas seletivamente. Não faça um longo questionário por padrão, mas faça perguntas concisas de esclarecimento quando elas melhorarem materialmente o resultado. Caso contrário, infira suposições razoáveis de:
- a solicitação do usuário
- contexto existente do espaço de trabalho
- conteúdo fornecido
- referências fornecidas
- template HTML predefinido selecionado, se houver
- estado existente do artefato
DESIGN.mdcarregado, se houver- padrões comuns para o cenário alvo
Faça perguntas de esclarecimento quando a informação ausente tornaria o resultado:
- inutilizável
- impossível de gerar
- arriscado legalmente ou para a marca
- claramente desalinhado com a intenção do usuário
Quando houver informação suficiente, gere uma primeira versão razoável e deixe o usuário refiná-la através de comentários de região selecionada, edições de parâmetros locais, solicitações de acompanhamento ou exportação.
Finalização do Contexto Criativo
Para geração de código aberto, antes de construir, complete silenciosamente um breve contexto criativo (uma frase cada; use o do usuário se fornecido, caso contrário, infira do cenário/público/conteúdo/referências; não mostre a menos que útil):
Contexto Criativo
1. posicionamento_criativo: sobre o que isso realmente é, além da solicitação literal
2. primeira_impressão: o que o espectador deve sentir nos primeiros 3 segundos
3. anti_padrão: qual padrão genérico evitar
O artefato deve refletir visivelmente isso.
Declare uma Leitura de Design em uma linha antes de gerar
Em seguida, comprometa-se com uma linha explícita nomeando como você leu a solicitação:
Forma: "Lendo como: <tipo de página> para <público>, <caráter/vibe>, inclinando <direção de design / sistema / referência>."
- "Lendo como: um SaaS landing para compradores técnicos, calmo e preciso, inclinando um sistema Linear contido."
- "Lendo como: uma campanha de chá com tema chinês moderno para jovens consumidores, ousado e festivo, inclinando tipo grande + cor forte, expressivo."
- "Lendo como: um dashboard admin interno, contido e legível, inclinando uma linha de base de sistema de design maduro."
Pode ser mostrado ao usuário. Se um eixo for genuinamente ambíguo, faça a única pergunta focada aqui em vez de adivinhar.
A Leitura de Design deve terminar com uma cláusula de fonte de estilo — obrigatório, escolha uma, nunca em branco:
- Cena de interface (protótipo, info-interativo, ferramenta web, dashboard/admin): nomeie um sistema —
"inclinando <style-skill> (correspondido das tags de mood)", ou"inclinando <marca> de brand-inspiration"se uma marca foi nomeada. Padrão para um sistema maduro; não invente UI do zero. - Cena criativa (landing, portfólio, campanha, cartão, conteúdo): ou
"referenciando o <caráter> de <sistema>, layout original"ou"direção original: <uma linha>". Ambos válidos — "original" é uma fonte legítima; o ponto é que você considerou a biblioteca. - Qualquer cena + marca nomeada →
"inclinando <marca> de brand-inspiration".
Em seguida, classifique a cena; para cenas expressivas comprometa-se com um plano visual concreto
- Expressiva (site de marca, campanha/promo, portfólio, hero de landing de produto, página editorial/cultural, capa social): o impacto visual faz parte do trabalho; uma página centralizada correta-mas-segura é uma falha.
- Contida (dashboard, admin, ferramenta interna, formulário, aviso governamental, relatório, tabela de dados, especificação): clareza e calma são o trabalho; mantenha a animação mínima, layout regular e pule o compromisso visual abaixo.
Para cenas expressivas, comprometa-se silenciosamente antes de codificar — cada item um elemento + ação específicos, nunca um adjetivo ("ousado/premium/surpreendente/dinâmico" são proibidos, eles não restringem nada):
Compromisso visual (apenas cenas expressivas)
1. assunto_hero: o ÚNICO elemento feito grande/dominante (ex. nome do produto '桂花酪酪' a 1/3 da viewport, ouro+cinábrio)
2. entrada: quais elementos animam, como (ex. caracteres do título aparecem em escalonamento + pétalas caem do topo)
3. quebrar_simetria: onde o layout quebra o centro/grid (ex. etiqueta de preço inclinada no canto inferior direito; selo sangra na borda)
4. contraste_focal: o que faz o olho pousar primeiro (salto de tamanho / bloco de cor / espaço em branco ao redor do hero)
Uma página totalmente centralizada, simétrica, estática e sem elemento dominante é o resultado padrão-mediocre — para cenas expressivas significa que o compromisso não foi honrado. Execute cada item comprometido. Especificações de animação → horizontal-craft/animation-discipline.md.
Exemplo (inline)
"Fazer um site de apresentação do modelo GLM-5.1" → posicionamento: infraestrutura de raciocínio/execução, não uma página de IA genérica; primeira_impressão: calmo, preciso, técnico; anti_padrão: evitar o template genérico de hero SaaS + feature-card. Cena: expressiva → assunto_hero: "GLM-5.1" oversized com um único acento; entrada: título + tagline aparecem em escalonamento fade-up; quebrar_simetria: números de especificação deslocados para um lado; contraste_focal: tipo grande contra espaço negativo profundo.
Suposições do Produto de Primeira Etapa
Assuma que a maioria dos usuários não fornece contexto avançado de design — não um arquivo Figma/MCP, sistema de design maduro, tokens, biblioteca de componentes, guia de marca
… [truncado para tradução]