Diretrizes de interface que um agente de IA realmente consegue seguir

As pessoas estão empacotando o Human Interface Guidelines da Apple como habilidades de agente, e isso funciona melhor do que nada, mas pior do que o esperado. A lacuna é específica e vale a pena ser compreendida antes de você escrever a sua própria.

Atualizado 2026-07-27

O que as pessoas estão realmente fazendo

O padrão que está surgindo nos catálogos de habilidades de agentes é pegar o Apple's Human Interface Guidelines — ou o Material, ou a orientação de acessibilidade de uma plataforma — e republicá-lo como algo que um agente carrega antes de construir a UI. Um conjunto publicado divide o HIG em quatorze habilidades que cobrem plataformas, fundamentos e componentes: layout, controles, diálogos, menus, busca. Outros o entregam como uma única habilidade de design que promete componentes nativos, tipografia adequada e cores semânticas.

Este é um bom instinto. Um agente de código solicitado para criar uma tela de configurações do iOS sem orientação produzirá algo que funciona, mas que parece sutilmente errado: um modal onde um push seria o convencional, um controle que existe na web e não na plataforma, alvos de toque dimensionados para um mouse. Carregar as regras da plataforma resolve uma classe real de erros, e resolve de forma barata.

Isso também faz algo que as pessoas não esperam, o que merece precisão.

O que sobrevive à tradução e o que não sobrevive

ExemploO que o agente faz com isso
Regras prescritivasAlvo de toque mínimo, qual controle para cada função, quando um sheet vence um push, mínimos de contrasteAplica-as de forma confiável. Estas são verificáveis, portanto, uma resposta errada é visivelmente errada
Princípios"Clareza", "deferência", "profundidade"Concorda com eles e depois faz o que já ia fazer de qualquer forma
Como as duas metades de uma diretriz de plataforma se comportam assim que um agente as lê.

Essa segunda linha é o problema central, e não é algo específico da Apple. Uma instrução infalsificável não pode mudar o comportamento, porque o modelo pode satisfazê-la com qualquer coisa que ele já acredite que a palavra significa. Peça clareza e você obterá a ideia mediana de clareza do modelo, que é a mesma de todos os outros modelos, e é por isso que tantas UIs construídas por agentes convergem para as mesmas superfícies quase pretas, a mesma paleta de uma única cor de destaque e cinza, os mesmos cards com cantos uniformemente arredondados.

Um agente pode seguir uma regra. Ele só pode concordar com um princípio.

Medimos a mesma falha na prática. Em 299 arquivos DESIGN.md públicos — os documentos que desenvolvedores escrevem especificamente para que um agente os siga — 54% contêm pelo menos um adjetivo não mensurável, mais frequentemente "clean" (39%) ou "modern" (36%), e 44% nunca declaram um único valor de tamanho concreto. Esses arquivos parecem direcionamento de design e funcionam como um acordo.

O que uma diretriz de plataforma não está tentando te dar

Aqui está a parte que surpreende as pessoas que instalam uma habilidade de HIG esperando que seu app comece a ficar bonito: as diretrizes de plataforma são deliberadamente compartilhadas. Todos os apps da plataforma as seguem. Esse é o ponto principal — um usuário deve ser capaz de abrir um app que nunca viu e saber como ele funciona. A conformidade é o objetivo, e a identidade não é explicitamente.

Portanto, uma skill de HIG pode tornar sua interface *correta* — componentes certos, navegação certa, tamanhos de alvo certos, contraste certo — e ser correto não é o mesmo que ser distintivo. Se duas equipes carregarem a mesma diretriz e nenhum outro contexto de design, elas deverão produzir interfaces intercambiáveis. E geralmente produzem.

Isso é uma vantagem, até que deixa de ser

Para um utilitário, um plugin ou qualquer coisa incorporada ao ambiente de terceiros, misturar-se ao entorno é a resposta certa e a diretriz é o briefing completo. A incompatibilidade só aparece quando o que está sendo construído é um produto que precisa ser reconhecível — e isso geralmente é descoberto por volta da quinta tela.

A configuração de duas camadas

Uma vez que você enxerga isso como dois trabalhos distintos, a solução torna-se óbvia e as camadas param de conflitar entre si.

Camada de plataformaCamada de identidade
RespostasComo isso deve se comportar aqui?Qual deve ser a aparência disso em todos os lugares?
FonteAs diretrizes da plataforma, como uma skill ou arquivo de regrasSeu conjunto de tokens e regras escritas, no repo
Muda quandoA plataforma mudaSua marca muda
Falha se estiver ausenteUI com aparência correta, mas que parece estranha na plataformaUI perfeita para a plataforma, indistinguível de qualquer outro app
Duas camadas, duas fontes, dois modos de falha.

Mantenha-as em arquivos separados. É tentador fundir sua marca na skill de HIG para ter apenas um item para carregar, mas isso dará errado na primeira atualização da plataforma ou no primeiro rebranding, porque você terá que desvendar quais frases pertenciam a quem.

Token specimen · real values

Ambient Sage

Live render

Ambient Sage's actual tokens — the same values its exports use.

Color tokensSemantic roles with HEX / HSL / CMYK

Color tokens

Ambient Sage

light · HEX · HSL · CMYK

Core

#F3F4EF

background

H 72 · C0, 0, 2, 4

#1A1C17

foreground

H 84 · C7, 0, 18, 89

#E5E6E0

card

H 70 · C0, 0, 3, 10

#ECEEE8

muted

H 80 · C1, 0, 3, 7

#D8D9D2

border

H 69 · C0, 0, 3, 15

Brand

#FEE951

primary

H 53 · C0, 8, 68, 0

#1A1C17

primary-fg

H 84 · C7, 0, 18, 89

#E5E6E0

secondary

H 70 · C0, 0, 3, 10

#F7E464

accent

H 52 · C0, 8, 60, 3

#FEE951

ring

H 53 · C0, 8, 68, 0

Semantic

#C0392B

destructive

H 6 · C0, 70, 78, 25

#FFFFFF

destructive-fg

H 0 · C0, 0, 0, 0

#2D7238

success

H 130 · C61, 0, 51, 55

#C97D12

warning

H 35 · C0, 38, 91, 21

#545651

muted-fg

H 84 · C2, 0, 6, 66

Charts

#FEE951

chart-1

H 53 · C0, 8, 68, 0

#4A8FD4

chart-2

H 210 · C65, 33, 0, 17

#6BBF8A

chart-3

H 142 · C44, 0, 28, 25

#E07498

chart-4

H 340 · C0, 48, 32, 12

#E8A24B

chart-5

H 33 · C0, 30, 68, 9

Type scaleHeading, body, and mono in the kit's fonts

Typography

Ambient Sage

Scale: compact-product

Density: balanced

Heading · Plus Jakarta Sans · 1.875rem

Sample headline

Subheading · Plus Jakarta Sans · 1.375rem

A warm-sage neutral-surface mobile kit with a single vivid yellow accent, flat tonal cards, and oversized display numerals.

Body · Plus Jakarta Sans · 1rem

Ambient Sage uses a near-white warm-sage canvas (#f3f4ef) with card panels distinguished only by a tonal shift to #e5e6e0, never by shadows or borders. A single vivid yellow (#fee951) is the only saturated color and appears sparingly at component scale as orbs, button fills, and focus rings. Primary data values render as oversized bold hero numerals with a small superscript unit. Typography is a friendly rounded geometric (Plus Jakarta Sans) with no uppercase and no tight tracking, while JetBrains Mono is reserved for hex codes and technical strings. Generous rounding and luminance-only contrast give the whole system a calm, minimal feel.

Mono · JetBrains Mono · 0.8125rem

npx shadcn add ambientsage.json

Aa

Plus Jakarta Sans · Heading

400500600700

Aa

Plus Jakarta Sans · Body

400500600700

ABCDEFGHIJKLM NOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz

0123456789 & @ # % →

Radius & spacingCorner radius, elevation, and spacing steps

Tokens

Ambient Sage primitives

density: balanced

Radius scale

sm · 0.375rem
md · 0.75rem
lg · 1.25rem
xl · 1.75rem

Component radius

button
card
input

Elevation

level 1
level 2
level 3
level 4

Spacing · base 4px

1x
2x
3x
4x
6x
8x
A camada de identidade, como valores em vez de adjetivos. Nada aqui contradiz uma diretriz de plataforma; ela responde a uma pergunta que as diretrizes deliberadamente deixam aberta.

Escrevendo uma regra que um agente consiga verificar

O teste é simples: alguém poderia olhar para o resultado e dizer, sem discussão, se a regra foi seguida? Se duas pessoas razoáveis pudessem discordar, o agente também discordará, e resolverá a divergência a favor de seus padrões (defaults).

Acordado comSeguido
CorUse uma paleta limpa e modernaUse apenas os tokens semânticos. Nunca use um hex bruto em um componente. Um destaque por tela
TipografiaA tipografia deve parecer refinadaDuas famílias: display e body. Escala de passos em 1.25×. Nunca use um terceiro peso no corpo do texto
SuperfíciesMantenha as superfícies leves e arejadasCards são planos. Sem sombra em superfície plana. Borda de 1px, token border
Modo escuroSuporte ao modo escuroCada função de cor definida em ambos os modos. Nunca envie uma alteração de modo claro sem sua contraparte no modo escuro
A mesma intenção, duas vezes.

Observe que muitas das entradas à direita são proibições. Isso não é uma escolha estilística: uma preferência adiciona uma opção, enquanto uma proibição remove todas as outras. "Use nosso verde" mantém todos os padrões genéricos como válidos; "nunca introduza uma cor que não seja um token" não permite isso. Em nosso corpus, 76% dos arquivos listavam apenas preferências, o que é a descrição exata do porquê de eles pararem de funcionar.

Quando a diretriz e a sua marca divergem

Isso acontece com menos frequência do que as pessoas temem, pois as duas camadas geralmente abordam questões diferentes. Quando ocorre, costuma ser um de três casos, e apenas um deles é um conflito real.

  1. Mínimos de acessibilidade versus cor da marca. Não é um conflito. O mínimo prevalece, e a sua cor de destaque precisa de ajuste para aquela superfície. Um agente instruído explicitamente sobre isso o fará; um agente deixado à própria escolha geralmente manterá a cor da marca, pois essa instrução pareceu mais específica.
  2. Convenção de plataforma versus padrão interno. Um trade-off real. Decida uma vez, escreva qual prevalece e por quê, e coloque isso na camada de identidade para que não seja rediscutido a cada tela.
  3. Estilização padrão da plataforma versus seus tokens. Não é um conflito, embora pareça. As diretrizes especificam qual controle usar; raramente especificam a cor exata. Use o componente da plataforma, estilizado com os seus tokens.

Defina qual camada prevalece, no arquivo

Um agente com dois documentos sem precedência declarada escolherá a cada turno, e não dirá qual escolheu. Uma única linha — "em caso de conflito, prevalecem os mínimos de acessibilidade, depois as convenções da plataforma e, por fim, o estilo interno" — elimina toda uma categoria de inconsistência que, de outra forma, seria quase impossível de diagnosticar pelo resultado final.

Configuração prática

  1. 1

    Carregue a camada da plataforma como uma skill ou arquivo de regras

    Seja o que o seu agente suportar — uma skill, .cursor/rules, .devin/rules, uma seção no CLAUDE.md. Mantenha o mais próximo possível da diretriz original, para que possa ser substituído integralmente quando a plataforma for atualizada.

  2. 2

    Coloque a camada de identidade no repo

    Um arquivo de tokens mais um DESIGN.md com suas regras e proibições. Ele deve estar no repositório em vez de em um prompt, porque o agente precisa relê-lo a cada tarefa, assim como a próxima pessoa que assumir o projeto.

  3. 3

    Declare a precedência uma única vez

    Uma frase no topo do arquivo de identidade nomeando o que prevalece em caso de conflito.

  4. 4

    Teste na tela que ninguém desenhou

    Peça algo plausível que nenhuma das camadas previu — um estado vazio, um erro de permissão, um controle de paginação. O que o agente inventar é como será cada caso não mapeado, e essa é a sua real medida de cobertura.

O último passo é o que vale a pena repetir. Ambas as camadas cobrem os casos em que alguém pensou. Em um produto construído por agente, a maioria das telas são casos em que ninguém pensou, e é por isso que a camada de identidade deve declarar regras gerais e proibições, em vez de enumerar componentes. Mais sobre o que pertence a esse arquivo: o que é um DESIGN.md.

A camada de identidade, como um único arquivo instalável

Cada kit do Identity Forge é serializado em um DESIGN.md completo — tokens semânticos em light e dark, um pairing de fontes real, motivos e proibições explícitas — junto com o arquivo de tokens. Ele fica ao lado de qualquer orientação de plataforma que você carregar, e nunca conflita com ela.

FAQ

Um agente de IA consegue seguir as Human Interface Guidelines da Apple?

As partes prescritivas, sim — escolha de controles, padrões de navegação, alvos de toque mínimos, contrastes mínimos. Estes são verificáveis, então o agente os aplica com precisão. As partes principiológicas — clareza, deferência, profundidade — não conseguem mudar o comportamento, porque um agente satisfaz uma instrução não falsificável com o que ele já acredita que a palavra significa.

Uma skill de HIG fará meu app ficar bonito?

Fará com que ele fique correto, o que é diferente. As diretrizes de plataforma são deliberadamente compartilhadas por todos os apps da plataforma para que os usuários possam transferir conhecimento entre eles. Duas equipes carregando a mesma diretriz e nada mais deveriam produzir interfaces intercambiáveis. A distinção vem de uma segunda camada: seus próprios tokens e regras.

As diretrizes de plataforma e o meu design system devem ficar em um único arquivo?

Não. Eles mudam em cronogramas diferentes — um quando a plataforma atualiza, outro quando a sua marca muda — e fundi-los significa ter que desmembrar quais frases pertencem a quem futuramente. Mantenha dois arquivos e declare qual prevalece em caso de conflito.

O que eu faço quando uma cor da marca não atinge o mínimo de acessibilidade?

O mínimo prevalece e a cor de destaque precisa de ajuste para aquela superfície. Declare isso explicitamente em suas regras: um agente deixado à própria escolha geralmente mantém a cor da marca, porque essa instrução pareceu mais específica do que uma nota geral de acessibilidade.

Como sei se uma regra está escrita bem o suficiente para um agente?

Pergunte se um revisor poderia olhar para o resultado e dizer, sem discussões, que a regra foi seguida. "Use uma paleta limpa" falha nesse teste. "Use apenas os tokens semânticos, nunca um hex puro, um destaque por tela" passa no teste.