Habilidade de Design de Logotipo — Edição Definitiva
Design abrangente de logotipos e identidade visual de marca. Abrange: captura de contexto de marca, estratégia de identidade visual, geração de imagens por IA, criação direta de SVG, conversão raster-para-vetor, animação de logotipos, documentação de sistema de marca, seleção de fontes e entrega de consistência de marca.
Ferramenta de Visão — Corrigir e Verificar
Quando o usuário envia um logotipo/imagem para referência e pede para combinar ideias: vision_analyze deve funcionar. Se retornar "Não vejo uma imagem" em vez de uma análise, o MiniMax-M2.7 não possui visão nativa e a configuração auxiliar precisa ser corrigida.
A correção correta (execute ambos os comandos, verificado em Jul 2026):
hermes config set auxiliary.vision.provider minimax
hermes config set auxiliary.vision.model MiniMax-Image-01
Verifique a configuração após a execução — ela deve aparecer sob uma seção vision: de nível superior (linha ~559 em ~/.hermes/config.yaml), separada da seção auxiliary.vision: aninhada. Se vision_analyze ainda falhar, a URL da imagem pode estar inacessível — tente baixar novamente ou usar um caminho diferente. Esta correção persiste entre sessões.
Fallback se a visão ainda falhar: Use PIL/Pillow para amostrar cores de pixel da imagem e descrevê-la analiticamente. Leia o arquivo, amostre regiões-chave (topo-centro, centro, fundo, cantos) e reporte as cores dominantes, distribuição de brilho e formas básicas. Isso funcionou como fallback quando vision_analyze estava quebrado — a imagem foi confirmada como asas pretas planas sobre cinza claro com uma âncora em forma de gota.
Protocolo de Confirmação de Gradiente (crítico — obrigatório antes de escrever qualquer SVG)
Os usuários refinam gradientes descrevendo-os em linguagem natural, o que é ambíguo até se tornar visual. Sempre confirme a sequência verbalmente usando os nomes de cores exatos deles antes de escrever o SVG. Isso evita refações de 3 iterações.
A etapa de pré-codificação (obrigatória):
Usuário diz: "ouro esmeralda ciano esmeralda ouro"
→ CORRETO: Diga "Entendi — Ouro → Esmeralda → Ciano → Esmeralda → Ouro, ambas as extremidades ouro, ciano no centro absoluto." Então escreva o SVG.
→ ERRADO: Assumir que você sabe o que eles querem. Escrever o SVG.
Usuário diz: "ciano azul para ouro com esmeralda no meio"
→ CORRETO: Diga "Então Ouro → Esmeralda → Ciano → Esmeralda → Ouro? Ou Ouro → Ciano → Esmeralda → Ciano → Ouro? Explique da esquerda para a direita."
→ ERRADO: Escolher uma interpretação e escrevê-la.
Lições-chave de iterações reais (Jul 2026 — a organização):
-
"ciano azul para ouro com esmeralda no meio, ouro em ambas as extremidades" → Extremidades externas ouro confirmadas pelo usuário. Esmeralda e ciano estão no meio.
-
"ciano no meio" → ciano está no deslocamento de 50%, esmeralda/outros flanqueiam.
-
Em caso de dúvida: dê ao usuário a sequência exata da esquerda para a direita usando os nomes de cores deles e pergunte "está correto?"
-
A cor do ponto do gradiente deve ser explicitamente confirmada — é um elemento separado da linha de gradiente.
-
Borda gradiente com ouro nos pontos cardeais (3/6/9/12 horas): use CSS
conic-gradient()viaforeignObjectouborder-image— SVG 1.1 NÃO suporta<conicGradient>. Tentar usá-lo falha silenciosamente. -
Ícone arredondado estilo Telegram: círculo base preto + borda com gradiente de traço + preenchimento interno cobre o centro. Use
fill="none" stroke="url(#grad)"em um círculo para a borda. Faça o r do círculo SVG corresponder ao r do fundo para que não haja lacuna. -
Após confirmação: escreva SVG → renderize para PNG via Playwright → envie como
MEDIA:/caminho/para/arquivo.pngem sua própria linha.
Centralização óptica para marcas com formato V (lição crítica das iterações da organização):
O centro geométrico (50% y) parece muito alto quando a marca tem uma extensão em V para baixo — o peso visual está abaixo do centro. Para uma tela de 512×512 com o vértice do V em y local ≈28 dentro do grupo da marca, translate(256, 290) deu o equilíbrio óptico correto para uma marca alta combinada (asas + V). Itere visualmente — comece em +20px e aumente até parecer correto.
Restrição de borda de ícone social/Telegram:
O raio r do círculo base preto deve ser exatamente igual ao raio interno do traço da borda — sem lacunas. Se o traço da borda tem 8px centrado em r=252, a borda interna é r=248. O círculo preto também deve ter r=248. Qualquer incompatibilidade = lacuna visível ou sobreposição.
Lições de composição de ícone do Telegram (Jul 2026 — iterações da organização):
- "Sem borda, apenas o ícone" → Usuário quer NENHUMA borda, apenas a marca no preto. Remova os elementos de borda
<circle>, mantenha apenas o fundo<rect>preto e o grupo da marca. - "Mova para baixo para que eu possa ver o logotipo inteiro" → Com marcas altas (asas + V), o centro geométrico (50% y) corta o topo. Mude o translate y para ~290 em uma tela 512. Itere visualmente de +20px e aumente até que o topo tenha espaço e a parte inferior não pareça apertada.
- "Aumente o logotipo" → Aumente as coordenadas do caminho da marca e as larguras de traço proporcionalmente. Para a marca de osciloscópio, estender os braços de ±196 para ±234 fez com que preenchessem o espaço. Pontos de acento ouro nas extremidades dos braços devem ficar logo dentro da borda do círculo (~20px da borda em uma tela 512).
- "Combine as asas com o V do osciloscópio" → O vértice do V se torna o ponto de convergência orgânico "âncora em gota". As asas se curvam para cima a partir das extremidades dos braços do sinal. O ponto ciano permanece na origem do sinal (fundo do V). Mantenha os braços do sinal como base estrutural — eles fundamentam as formas orgânicas das asas.
- "Centralizado" → A centralização geométrica (transladar para o centro da tela) funciona para marcas com peso visual equilibrado. Para marcas com extensões em V para baixo, a centralização óptica requer mover 40–60px para baixo do centro geométrico. Comece em +20px e ajuste.
Combinando dois logotipos em um (síntese de design):
- Quando o usuário diz "combine X com Y", identifique o NÚCLEO semântico de cada: X = simetria de asas orgânicas + âncora em gota (silhueta preta), Y = V de osciloscópio + sinal gradiente + ponto ciano
- A síntese: mantenha o sinal do osciloscópio como base estrutural, adicione formas de asas orgânicas como lâminas secundárias fluindo dos braços do sinal
- O gradiente e o ponto ciano são elementos de identidade de marca que devem persistir através da síntese
- NÃO misture estilos aleatoriamente — escolha o elemento estrutural mais forte de cada e componha-os intencionalmente
Tipos de marca que são mal interpretados na primeira iteração
Marcas de pulso de sinal (batimento cardíaco / escopo / EKG). Quando o briefing pede uma marca de "sinal" ou "pulso" e você a desenha como \_/\_ (linha de base plana, pico, pico menor, linha de base plana), a PRIMEIRA iteração provavelmente será lida como uma pessoa com braços estendidos, uma onda ou lombadas de terreno porque o olho humano faz correspondência de padrões com formas corporais primeiro. Duas correções específicas:
- Mantenha os segmentos de linha de base plana curtos, próximos ao pico. Segmentos de linha de base longos distantes do pico são o que lê como "braços". Aproxime-os da subida/descida do pico.
- Certifique-se de que a subida e a descida sejam claras. Um pico simétrico com segmentos planos distantes do centro lê como um corpo (braços + cabeça). Uma descida claramente assimétrica (subida acentuada da linha de base, pico, então uma pequena saliência secundária na descida) lê como dados com atividade — isso é sinal, não corpo.
- Adicione pelo menos um recurso secundário além do pico dominante. Mesmo uma pequena marca na descida muda a leitura de "forma" para "dados". Sem ela, marcas de sinal padrão são interpretadas como silhueta corporal.
Contornos de hexágono / losango / quadrado. Quando o briefing é "tech moderno" e a marca é um hexágono ou losango, verifique se as bordas não formam acidentalmente letras (um "X" dentro de um hexágono soletra algo, ou os ângulos do losango lêem como um "V" apontando na direção errada). Ajuste os ângulos do vértice em 5° se estiver ambíguo.
Quadrados com cantos arredondados como ícones de aplicativo. Verifique se o raio do canto corresponde à plataforma. O iOS usa um "squircle" (cantos contínuos, matematicamente diferente de um simples border-radius). Um border-radius: 36px simples em um quadrado 200×200 lê como "Android Material", não "iOS". Se a plataforma for importante, use um gerador de squircle estilo iOS dedicado.
SVG 1.1 NÃO possui elemento de gradiente cônico nativo. <conicGradient> não é válido. Soluções alternativas:
- CSS
conic-gradient()dentro de umforeignObjectdiv — funciona em navegadores, renderiza via Playwright border-image: conic-gradient(...) 1em um<div>dentro deforeignObject- Recorra a um traço circular com um
linearGradientde múltiplas paradas rotacionado 45° — dá 4 cores com ouro em 4 pontos, mas não perfeitamente em 3/6/9/12 simultaneamente
Padrões comuns de má interpretação:
- "Ciano para ouro" + "esmeralda no meio" = Ouro → Esmeralda → Ciano → Esmeralda → Ouro (não Ouro → Ciano → Esmeralda → Ciano → Ouro)
- "Ambas as extremidades ouro" = as paradas externas são ouro, não ciano
- "Ciano no centro" = ciano está no deslocamento de 50%, esmeralda/outros flanqueiam
Sempre renderize para PNG e mostre visualmente antes de pedir feedback de cor. Descrições de cores em texto não são confiáveis — o visual é a fonte da verdade.
Notas de Ambiente
A geração de imagens (FAL.ai FLUX.2) NÃO está disponível neste ambiente Hermes — FAL_KEY não está definido. NÃO tente usar ImageGenerate para trabalho de logotipo. SVG-first é superior independentemente: produz arquivos vetoriais reais, não rasters.
Renderização SVG via Playwright (confirmado funcionando em Jul 2026):
import asyncio
from playwright.async_api import async_playwright
async def render(svg_path, png_path, width=900):
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page(viewport={'width': width, 'height': int(width*0.9)})
await page.goto(f'file://{svg_path}')
await asyncio.sleep(0.8)
await page.screenshot(path=png_path, full_page=False)
await browser.close()
asyncio.run(render('/caminho/para/logo.svg', '/caminho/para/preview.png'))
Entrega no Telegram: As imagens devem ser enviadas como MEDIA:/caminho/absoluto/para/arquivo.png em sua própria linha. A sintaxe de imagem Markdown  NÃO renderiza no Telegram — falha silenciosamente. Nunca incorpore links de imagem em blocos de texto markdown.
As Regras de Ouro
- SVG-first para logotipos. Gere vetores SVG diretos — não geração de imagens por IA. SVGs são infinitamente escaláveis, editáveis, animáveis e renderizam instantaneamente via Playwright. Use ImageGenerate apenas quando o conceito precisar de referência fotorrealista ou textura complexa que SVG não pode alcançar. Fluxo de trabalho confirmado funcionando (Jul 2026): escreva SVG → renderize para PNG via Playwright headless → envie como
MEDIA:/caminho/para/arquivo.pngpara o Telegram. - Itere visualmente. Vá de conceito → pré-visualização PNG → refine. Os usuários refinam melhor quando veem a marca, não uma descrição. Gere 2-4 variações explorando diferentes dimensões (remover flecha, apenas ícone, mudança de cor) antes de travar um conceito.
- Seja específico em cada dimensão. "Moderno" não significa nada. "Geométrico, espaçamento apertado, marinho + ouro" significa algo.
- Imponha a lista EVITAR. A maioria dos logotipos ruins de IA vem de não dizer ao modelo o que rejeitar.
- A escalabilidade é inegociável. O logotipo deve ser lido claramente em 16×16.
- Geometria suave mínima É geometria animável. Caminhos traçados complexos com 400 pontos não podem ser coreografados.
Fase 1: Captura de Contexto da Marca
Leia o contexto existente primeiro
Verifique se .agents/brand-context.md existe. Se sim, leia — não pergunte por informações já capturadas.
Atalho para marca estabelecida: Se a marca tiver um site público, navegue até ele e extraia o contexto da marca visualmente antes de fazer qualquer pergunta. Leia o texto do herói, slogan, mensagens-chave, nomes de produtos e cores. Verifique public/logo.png ou public/favicon.ico no repositório do projeto para ver o logotipo atual. Armazene as descobertas em references/<nome-da-marca>.md sob esta habilidade.
Se não houver contexto — colete rapidamente
Faça no máximo 3 perguntas:
- "Qual é o nome da marca e o que ela faz?" (uma frase)
- "3 palavras que descrevem a personalidade?" (por exemplo, ousada, técnica, premium)
- "Alguma cor que te atrai — ou alguma a evitar?" (ou diga "me surpreenda")
A partir dessas três respostas, infira todo o resto.
Armazene o contexto da marca
Salve em .agents/brand-context.md:
# Contexto da Marca
## Marca
- **Nome**: [nome]
- **Categoria**: [indústria/niche]
- **Descrição**: [uma linha]
- **Estágio**: [pré-lançamento / início / crescimento / estabelecida]
## Personalidade da Marca
- **Palavras de Personalidade**: [palavra, palavra, palavra]
- **Tom**: [formal/casual] · [sério/divertido]
- **Concorrentes Admirados**: [opcional]
## Cor
- **Atração**: [cores ou "me surpreenda"]
- **Evitar**: [cores se especificado]
## Objetivos
- **Uso Principal**: [ícone de aplicativo / site / social / impresso / embalagem / tudo]
- **Requisito Chave**: [deve funcionar em uma cor / geométrico / etc.]
- **Movimento**: [a marca precisa de logotipo animado / revelação / tela de splash?]
Fase 2: Estratégia de Identidade Visual
Defina a direção de design ANTES de gerar qualquer coisa.
As 8 Dimensões
| Dimensão | Pergunta | Exemplo |
|---|---|---|
| Nome | O que precisa aparecer? | "a plataforma alvo" |
| Indústria | Qual setor? | Fintech / trading |
| Valor Central | Essência da marca em uma palavra | Precisão |
| Personalidade | Caráter da marca? | Ousada, técnica, premium |
| Emoção da Cor | O que as cores comunicam? | Ouro = riqueza/premium |
| Lacuna do Concorrente | Como os outros são? | "Bloomberg é ocupado; queremos minimalista" |
| Tipo de Logotipo | O que se encaixa melhor? | Combinação / letra / abstrato |
| Contexto de Uso | Onde vai viver? | Ícone de aplicativo, site, terminal escuro |
Guia de Seleção de Tipo de Logotipo
| Tipo | Melhor para | Exemplo |
|---|---|---|
| Logotipo de Palavra | Novas marcas, nomes memoráveis | Google, Coca-Cola |
| Logotipo de Letra | Nomes longos, abreviações | IBM, HBO |
| Combinação | Mais versátil | Slack, Spotify |
| Marca Abstrata | Tecnologia, IA, marcas globais | Nike, Apple |
| Emblema | Restaurantes, esportes, oficial | Starbucks |
| Mascote | Aplicativos de consumo, marcas de comida | Mailchimp |
| Monograma | Marcas pessoais, agências | Vogue |