Directives d'interface qu'un agent IA peut réellement suivre

Certains transforment les Human Interface Guidelines d'Apple en compétences pour agent ; le résultat est préférable au néant, mais moins performant que prévu. L'écart est spécifique et mérite d'être compris avant de rédiger vos propres règles.

Mis à jour 2026-07-27

Ce que les gens font réellement

Le modèle observé dans les catalogues de compétences d'agents consiste à prendre les Human Interface Guidelines d'Apple — ou Material, ou les directives d'accessibilité d'une plateforme — et à les repackager comme un élément chargé par l'agent avant de construire l'UI. Un ensemble publié décompose le HIG en quatorze compétences couvrant les plateformes, les bases et les composants : mise en page, contrôles, boîtes de dialogue, menus, recherche. D'autres le livrent comme une compétence de design unique promettant des composants natifs, une typographie appropriée et des couleurs sémantiques.

C'est un bon instinct. Un agent de code à qui l'on demande un écran de réglages iOS sans directives produira quelque chose qui fonctionne mais qui semble subtilement incorrect : une fenêtre modale là où une transition push était conventionnelle, un contrôle existant sur le web mais pas sur la plateforme, des cibles tactiles dimensionnées pour une souris. Charger les règles de la plateforme corrige une catégorie réelle d'erreurs, et cela se fait à moindre coût.

Cela produit également un résultat inattendu, qu'il convient de préciser.

Ce qui survit à la conversion, et ce qui ne survit pas

ExempleCe que l'agent en fait
Règles prescriptivesCible tactile minimale, quel contrôle pour quelle fonction, quand une feuille l'emporte sur un push, minimums de contrasteLes applique de manière fiable. Celles-ci sont vérifiables, donc une réponse erronée est visiblement incorrecte
Principes« Clarté », « déférence », « profondeur »Est d'accord avec eux, puis fait ce qu'il allait déjà faire
Comment les deux moitiés d'une directive de plateforme se comportent une fois qu'un agent les lit.

Cette deuxième ligne est le cœur du problème, et elle n'est pas spécifique à Apple. Une instruction non falsifiable ne peut pas changer le comportement, car le modèle peut la satisfaire avec ce qu'il croit déjà que le mot signifie. Demandez de la clarté et vous obtiendrez l'idée médiane de la clarté par le modèle, qui est la même pour tous les autres modèles ; c'est pourquoi tant d'UI générées par agent convergent vers les mêmes surfaces presque noires, la même palette une seule couleur d'accent et gris, les mêmes cartes aux coins uniformément arrondis.

Un agent peut suivre une règle. Il ne peut que se mettre d'accord avec un principe.

Nous avons mesuré ce même échec sur le terrain. Sur 299 fichiers DESIGN.md publics — les documents que les développeurs rédigent spécifiquement pour qu'un agent les suive — 54 % contiennent au moins un adjectif non mesurable, le plus souvent « clean » (39 %) ou « modern » (36 %), et 44 % ne mentionnent jamais une seule valeur de taille concrète. Ces fichiers ressemblent à des orientations de design et servent de simple accord.

Ce qu'une directive de plateforme ne cherche pas à vous donner

Voici la partie qui surprend ceux qui installent une compétence HIG en espérant que leur application devienne soudainement esthétique : les directives de plateforme sont délibérément partagées. Chaque application de la plateforme les suit. C'est tout l'intérêt — un utilisateur devrait pouvoir ouvrir une application qu'il n'a jamais vue et savoir comment elle fonctionne. La conformité est l'objectif, l'identité ne l'est explicitement pas.

Ainsi, une compétence HIG peut rendre votre interface *correcte* — bons composants, bonne navigation, tailles de cibles appropriées, bon contraste — mais être correct n'est pas synonyme d'être distinctif. Si deux équipes chargent la même directive sans autre contexte de design, elles devraient produire des interfaces interchangeables. C'est généralement ce qui arrive.

C'est un avantage, jusqu'à ce que ça ne le soit plus

Pour un utilitaire, un plugin ou tout élément intégré dans l'environnement d'un tiers, se fondre dans la masse est la bonne approche et la directive constitue l'intégralité du brief. Le décalage n'apparaît que lorsque l'objet construit est un produit qui doit être reconnaissable — et on s'en aperçoit généralement vers le cinquième écran.

La configuration à deux couches

Une fois que l'on considère cela comme deux tâches distinctes, la solution devient évidente et les couches cessent de s'opposer.

Couche plateformeCouche identité
RéponsesComment cela doit-il se comporter ici ?À quoi cela doit-il ressembler, partout ?
SourceLes directives de la plateforme, sous forme de compétence ou de fichier de règlesVotre ensemble de design tokens et vos règles écrites, dans le repo
Évolue quandLa plateforme changeVotre marque change
Échec si absentUne UI d'apparence correcte mais qui semble étrangère à la plateformeUne UI parfaitement conforme à la plateforme, mais indiscernable de toutes les autres applications
Deux couches, deux sources, deux modes de défaillance.

Gardez-les dans des fichiers séparés. Il est tentant d'intégrer votre marque dans la compétence HIG pour n'avoir qu'un seul élément à charger, mais cela pose problème dès la première mise à jour de la plateforme ou le premier rebranding, car vous devez alors démêler quelles phrases appartenaient à quel ensemble.

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
La couche identité doit être définie par des valeurs plutôt que par des adjectifs. Rien ici ne contredit une directive de plateforme ; elle répond à une question que les directives laissent délibérément ouverte.

Rédiger une règle qu'un agent peut vérifier

Le test est simple : quelqu'un peut-il regarder le résultat et dire, sans ambiguïté, si la règle a été respectée ? Si deux personnes raisonnables peuvent être en désaccord, l'agent le sera aussi, et il résoudra le litige en faveur de ses paramètres par défaut.

Accepté avecRespecté
CouleurUtiliser une palette propre et moderneUtiliser uniquement les tokens sémantiques. Jamais de hex brut dans un composant. Un seul accent par écran
TypographieLa typographie doit paraître raffinéeDeux familles : display et body. Échelle avec des paliers à 1,25×. Jamais de troisième graisse dans le corps du texte
SurfacesGarder des surfaces légères et aéréesLes cartes sont plates. Pas d'ombre sur une surface plate. Bordure 1px, token border
Mode sombreSupporter le mode sombreChaque rôle de couleur défini dans les deux modes. Ne jamais livrer une modification du mode clair sans son équivalent en mode sombre
La même intention, deux fois.

Remarquez combien d'entrées à droite sont des prohibitions. Ce n'est pas un choix stylistique : une préférence ajoute une option, tandis qu'une prohibition élimine toutes les autres. « Utilisez notre vert » laisse tous les défauts génériques valides ; « n'introduisez jamais une couleur qui n'est pas un token » ne le permet pas. Dans notre corpus, 76 % des fichiers ne listaient que des préférences, ce qui explique précisément pourquoi ils cessent de fonctionner.

Quand la directive et votre marque divergent

Cela arrive moins souvent qu'on ne le craint, car les deux couches traitent principalement de questions différentes. Quand cela arrive, il s'agit généralement de l'un des trois cas suivants, et un seul d'entre eux constitue un véritable conflit.

  1. Les minimums d'accessibilité face à une couleur de marque. Pas un conflit. Le minimum l'emporte, et votre couleur d'accentuation doit être ajustée pour cette surface. Un agent à qui l'on donne cette instruction explicitement s'exécutera ; un agent laissé à lui-même choisira généralement la couleur de la marque, car c'est l'instruction qui semblait la plus spécifique.
  2. Convention de la plateforme face à un pattern maison. Un véritable arbitrage. Décidez une fois pour toutes, notez laquelle l'emporte et pourquoi, et inscrivez-le dans la couche d'identité pour éviter que cela ne soit remis en question pour chaque écran.
  3. Stylisation par défaut de la plateforme face à vos tokens. Pas un conflit, même si cela en a l'air. Les guidelines précisent quel contrôle utiliser ; elles précisent rarement sa couleur exacte. Utilisez le composant de la plateforme, teinté avec vos tokens.

Indiquez dans le fichier quelle couche l'emporte

Un agent qui détient deux documents sans priorité établie fera des choix au cas par cas, sans vous dire lequel il a choisi. Une seule ligne — « en cas de conflit, les minimums d'accessibilité l'emportent, puis les conventions de la plateforme, puis le style maison » — élimine toute une catégorie d'incohérences qui seraient autrement presque impossibles à diagnostiquer à partir du résultat.

Configuration pratique

  1. 1

    Chargez la couche plateforme sous forme de skill ou de fichier de règles

    Quel que soit le support de votre agent — un skill, .cursor/rules, .devin/rules, une section dans CLAUDE.md. Restez le plus proche possible de la guideline source, afin qu'elle puisse être remplacée intégralement lors d'une mise à jour de la plateforme.

  2. 2

    Placez la couche d'identité dans le repo

    Un fichier de tokens plus un DESIGN.md contenant vos règles et vos interdictions. Il doit se trouver dans le dépôt plutôt que dans un prompt, car l'agent doit pouvoir le relire à chaque tâche, tout comme la personne suivante.

  3. 3

    Définissez la priorité une seule fois

    Une phrase en haut du fichier d'identité désignant ce qui l'emporte en cas de conflit.

  4. 4

    Testez sur l'écran que personne n'a conçu

    Demandez quelque chose de plausible que ni l'une ni l'autre couche n'a anticipé — un état vide, une erreur de permissions, un contrôle de pagination. Tout ce que l'agent invente est ce à quoi ressemblera chaque cas non couvert, et c'est là votre véritable mesure de couverture.

La dernière étape est celle qui mérite d'être répétée. Les deux couches couvrent les cas auxquels quelqu'un a pensé. Dans un produit construit par un agent, la plupart des écrans sont des cas auxquels personne n'a pensé, c'est pourquoi la couche d'identité doit énoncer des règles générales et des refus plutôt que d'énumérer des composants. Pour en savoir plus sur le contenu de ce fichier : qu'est-ce qu'un DESIGN.md.

La couche d'identité, sous la forme d'un fichier installable unique

Chaque kit Identity Forge se sérialise en un fichier DESIGN.md complet — tokens sémantiques en mode clair et sombre, un véritable appariement de polices, des motifs et des interdictions explicites — aux côtés du fichier de tokens. Il coexiste avec la guidance de plateforme que vous chargez, sans jamais entrer en conflit avec elle.

FAQ

Un agent IA peut-il suivre les Human Interface Guidelines d'Apple?

Les parties prescriptives, oui — choix des contrôles, patterns de navigation, cibles tactiles minimales, contrastes minimaux. Celles-ci sont vérifiables, l'agent les applique donc de manière fiable. Les parties basées sur des principes — clarté, déférence, profondeur — ne peuvent pas changer le comportement, car un agent satisfait une instruction non falsifiable avec ce qu'il croit déjà être le sens du mot.

Un skill HIG rendra-t-il mon application esthétique?

Il la rendra correcte, ce qui est différent. Les guidelines de la plateforme sont délibérément partagées par toutes les applications de la plateforme pour que les utilisateurs puissent transférer leurs connaissances d'une app à l'autre. Deux équipes chargeant la même guideline et rien d'autre devraient produire des interfaces interchangeables. La distinction vient d'une seconde couche : vos propres tokens et vos propres règles.

Les guidelines de la plateforme et mon design system doivent-ils figurer dans un seul fichier?

Non. Ils évoluent selon des calendriers différents — l'un lors des mises à jour de la plateforme, l'autre lors des changements de votre marque — et les fusionner reviendrait à devoir démêler plus tard quelles phrases appartiennent à qui. Gardez deux fichiers et précisez laquelle l'emporte en cas de conflit.

Que faire lorsqu'une couleur de marque ne respecte pas un minimum d'accessibilité?

Le minimum l'emporte et la couleur d'accentuation doit être ajustée pour cette surface. Énoncez cela explicitement dans vos règles : un agent laissé à lui-même choisit généralement la couleur de la marque, car cette instruction lui semble plus spécifique qu'une note générale sur l'accessibilité.

Comment savoir si une règle est assez bien écrite pour un agent?

Demandez-vous si un réviseur pourrait regarder le résultat et dire, sans discussion, que la règle a été suivie. « Utilisez une palette épurée » échoue à ce test. « Utilisez uniquement les tokens sémantiques, jamais de hex brut, une seule couleur d'accentuation par écran » le réussit.