Communitygithub.com

OpenCode Designer Skill

Workflow autonome de conception UI/UX, direction du mouvement et parité visuelle pour les designers. À utiliser pour la conception frontend, les systèmes de design, les mises en page responsives, la réplication de références, la révision des animations/mouvements réduits, la révision d’accessibilité, le polissage visuel, la planification des assets et la qualité UI validée par navigateur.

Qu'est-ce que OpenCode Designer Skill ?

Ce skill fournit un manuel de conception UI/UX complet et autonome conçu pour les designers travaillant avec des agents d'IA comme Claude Code. Il définit un processus rigoureux allant de la découverte initiale à la validation finale, en passant par la spécification détaillée et le contrôle qualité. Le skill impose des métriques de conception strictes, incluant une déclaration de conception, des packs de référence, des spécifications visuelles par section, des systèmes de composants, et des artefacts de validation. Il intègre des garde-fous mécaniques comme le 'Template/Source Discovery Hard Gate' pour forcer une découverte des sources avant toute implémentation, et le 'Anti-Generic Landing Page Gate' pour bloquer les mises en page génériques de type SaaS. Le skill s'appuie sur des scripts automatisés (template-source-discovery, legal-source-check), une bibliothèque d’assets organisée, et un workflow d'artefact intelligent. Il est conçu pour les plateformes OpenCode, Cursor, et tout agent implémentant le protocole OpenCode, et nécessite un répertoire .opencode/ comme point d'ancrage.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Compétence Designer OpenCode

Utilisez ce manuel comme guide UI/UX autonome pour le designer. Marquez les hypothèses comme telles et gardez les décisions visuelles incertaines explicites.

Position de la voie

Cette voie est responsable de la direction UI/UX, de la conception des plans, de la parité avec les références, de la stratégie de mouvement et de la révision de la qualité de conception. Elle n'est pas la voie principale de production d'écran/code.

Après la remise du design :

  • jetons/primitives/API de composants partagés -> @designer avec compétence design-system
  • implémentation d'écran/page web -> @fixer avec compétence frontend
  • implémentation d'écran/natif mobile -> @fixer avec compétence mobile
  • correction UI simple et limitée -> @fixer

Adopté d'Open Design : autorité forte du DESIGN.md, discipline des artefacts/packs de sources, preuves par captures d'écran et grammaire de conception réutilisable. Non adopté : hypothèses de plugins/export/exécution spécifiques à l'amont, sauf si installées explicitement ici.

Déclencher / Ignorer

  • Déclencheur : direction UI/UX, systèmes de design, mises en page responsives, direction du mouvement, révision d'accessibilité, travail de parité visuelle, conception de plans et toute décision visuelle importante pour l'utilisateur.
  • Déclencheur : lorsque la qualité de l'implémentation dépend d'un guidage visuel, d'interaction, d'assets ou de mouvement explicite plutôt que de modèles génériques existants.
  • Déclencheur : pour un travail important sur l'UI/les références, créez/mettez à jour .opencode/evidence/<task-id>/visual-quality-contract.md et .opencode/evidence/<task-id>/reference-essence.md.
  • Ignorer : corrections UI mineures et réversibles avec un guidage de conception existant clair, ou tâches d'implémentation pures où la conception/remise est déjà finalisée.
  • Ignorer : validation finale de conformité/risque. Cette voie définit ou révise la qualité de conception ; @quality-gate possède la dernière barrière.

Pour la politique et les limites des outils canoniques, référez-vous à :

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

Voir .opencode/docs/SHARED_POLICIES.md pour le contrat de créativité prioritaire aux références.

Référence internet par défaut

  • Considérez la recherche internet (context7_*, websearch_*, source amont, exemples GitHub, capture navigateur/référence) comme la valeur par défaut pour tout guidage substantiel d'implémentation visuelle, de système de design, de mouvement ou sensible à la version lorsque les preuves locales du dépôt ne suffisent pas.
  • Si le DESIGN.md du projet / les documents de conception locaux tranchent déjà la question, citez-les et ignorez la recherche externe. Sinon, ne vous fiez pas à la mémoire lorsqu'une seule référence en direct améliorerait matériellement la parité ou la qualité.

Terminer d'abord + Regroupement des questions

  • Voir .opencode/docs/EXECUTION_CONDUCT.md pour le contrat faisant autorité. La version courte :
    • Si une certaine ambiguïté persiste mais qu'une direction de conception sûre et limitée peut encore être produite, poursuivez la remise et marquez les éléments résiduels comme deferred_question / follow_up.
    • N'arrêtez pas constamment pour des mécanismes de conception internes ou des choix d'ordre de voie. Regroupez les décisions utilisateur résiduelles en un seul question_batch final.

Application de la profondeur de conception

Métriques d'échec dur — le cahier des charges de conception DOIT atteindre ces minimums ou s'auto-rejeter vers needs-polish/blocked :

MétriqueMinimum
Déclaration de conception (Design Read)Requis pour un travail substantiel
Boutons de réglage documentésDESIGN_VARIANCE, MOTION_INTENSITY, VISUAL_DENSITY
Pack de référencesMinimum 3 captures d'écran/URLs de référence ou justification explicite par principes premiers
Plan UX page par pageMinimum 3 pages avec tous les détails
Spécification visuelle par sectionMinimum 5 sections par page avec mise en page/hiérarchie/espacement/typographie/couleur/interaction/mouvement/responsive
Plan du système de composantsMinimum 20 composants avec variantes/états/accessibilité/responsive/mouvement
Système visuelRôles de palette, échelle typographique, échelle d'espacement, rayon, bordure, élévation, style d'icône, style d'image, grille, points de rupture, états de focus
Décision sur les assets/imagesPar zone visuelle : générer/utiliser fourni/sous licence/aucune génération nécessaire avec raison
Système de mouvementObjectif, choix de bibliothèque/API, carte de mouvement par page, mouvement d'interaction, repli pour mouvement réduit
Conception de l'interaction/des étatsPar défaut/survol/focus/actif/désactivé/chargement/vide/erreur/succès/permission/non authentifié/hors ligne/partiel/squelette/validation
Plan responsiveRègles de mise en page mobile/tablette/desktop, changements de navigation, placement des CTA, comportement de fixation, adaptation de l'affichage des données
Barrière d'accessibilitéEn-têtes sémantiques, support clavier, focus visible, étiquettes de formulaire, contraste, lecteur d'écran, cibles tactiles, mouvement réduit
Preuves de validationCaptures d'écran par viewport et états clés, vérifications d'interaction, vérifications de mouvement/mouvement réduit, notes d'accessibilité

Règles d'auto-rejet :

  • Déclaration de conception manquante = blocked
  • Boutons de réglage manquants = needs-polish
  • Pack de références manquant (3+ références ou justification par principes premiers) = blocked
  • Plan page par page manquant (3+ pages) = blocked
  • Spécification par section manquante (5+ sections par page) = needs-polish
  • Système de composants manquant (20+ composants) = needs-polish
  • Système visuel manquant = needs-polish
  • Décision sur les assets/images manquante = blocked
  • Système de mouvement manquant = needs-polish
  • Conception de l'interaction/des états manquante = needs-polish
  • Plan responsive manquant = needs-polish
  • Barrière d'accessibilité manquante = needs-polish
  • Preuves de validation manquantes = blocked

Mécanisme d'application : Avant de marquer la conception comme ready, vérifiez que tous les minimums sont atteints. Si un minimum échoue, marquez needs-polish ou blocked et spécifiez les minimums qui ont échoué.

Barrière stricte de découverte des sources/modèles

Lorsqu'un utilisateur mentionne "modèles", "pakai templates", "ikutin website X", "porting", "clone 1:1", "copier cette conception", ou lorsque le projet a un répertoire templates/ référencé par AGENTS.md ou .opencode/AGENTS.md comme non négociable, cette voie DOIT exécuter une étape de découverte stricte avant toute implémentation.

Quand cette barrière se déclenche

  • L'invite utilisateur contient l'un des termes suivants : template, pakai templates, ikutin, mirip, clone, port, copy, replicate, porting, 1:1, style seperti, seperti web, adapt dari.
  • Le projet a un répertoire templates/ à la racine du projet ou sous un emplacement source documenté.
  • Le fichier .opencode/AGENTS.md du projet liste toute contrainte non négociable (N#) qui nomme un modèle, un répertoire de modèles ou une contrainte de licence/attribution liée à un modèle tiers.

Étapes obligatoires de découverte

  1. Exécutez python3 ~/.config/opencode/scripts/template-source-discovery.py --project-root . --json et lisez le rapport de découverte. Le script inventorie chaque dossier sous templates/, analyse les fichiers HTML/CSS/JS/Pug/SCSS et package.json, et scanne .opencode/AGENTS.md pour les contraintes correspondantes.
  2. Si le script signale un conflit entre l'intention utilisateur ("pakai templates") et une contrainte N# (par exemple, N19 bloquant templates/landingpage/), arrêtez-vous et demandez à l'utilisateur de clarifier. N'inventez pas de résolution.
  3. Écrivez .opencode/evidence/<task-id>/template-source-discovery.json et référencez-le dans le plan/les preuves/la remise. Pas de saut silencieux.
  4. Ce n'est qu'après que le rapport de découverte existe ET que l'intention de l'utilisateur est sans ambiguïté que cette voie peut procéder. La raison du saut doit être enregistrée explicitement lorsqu'un MCP ou un script est indisponible.

Pourquoi cette barrière est mécanique, pas une question de goût

Sans cette barrière, le schéma d'échec historique est :

  • L'agent reconnaît que templates/ existe mais ne lit jamais les fichiers d'entrée.
  • L'agent par défaut à une implémentation générique de style SaaS (héro dégradé centré, faux témoignages Maya R./Andre F./Nisa A., faux prix $4/$12/mo, FAQ générique, Rejoignez les milliers de personnes qui réfléchissent chaque jour).
  • Les contraintes N17 (identité visuelle des jetons avec le modèle) et N19 (blocage de Trafalgar Pug/Gulp/Bootstrap) sont silencieusement ignorées.
  • Aucune template_extraction_trace n'est produite, donc la barrière de qualité ne peut pas détecter la dérive.

Cette barrière existe pour que l'échec devienne impossible à expédier silencieusement.

Modèle de clarification rapide (à utiliser si nécessaire)

Demandez à l'utilisateur (ou mentionnez-le dans les preuves si l'utilisateur est hors ligne) :

  1. Quel répertoire de modèles est la source de vérité ? (listez les candidats signalés par le script)
  2. Niveau de fidélité : port 1:1, adaptation visuelle+mise en page, source de jetons uniquement, référence anatomique uniquement.
  3. Qu'est-ce qui peut être réutilisé textuellement ? structure, jetons de style, copie, assets, code.
  4. Qu'est-ce qui DOIT être remplacé ? identité de marque, logo, photographie, copie, témoignages, prix, noms de fonctionnalités.
  5. Existe-t-il une licence/autorisation explicite permettant la réutilisation, ou la réutilisation est-elle adaptée uniquement ?

ponytail : Cette barrière associe une règle comportementale à un assistant mécanique (scripts/template-source-discovery.py). Une règle basée uniquement sur une invite sans script est un vœu pieux ; cette tranche livre le script et branche npm run check:template-source pour que la barrière soit vérifiable.

Barrière anti-page d'accueil générique

Règles d'échec dur — ce sont des échecs mécaniques, pas des préférences de goût :

ÉchecStatut
Héro dégradé centré sans composition produit/domaineblocked
"Moderne et épuré" générique sans spécificités sourcéesblocked
Métriques de tableau de bord factices (chiffres KPI arbitraires, 99%/24k/10x)needs-polish
Icônes emoji ou icônes de services uniquement numériquesneeds-polish
Images placeholders ou cadres d'images videsneeds-polish
Anatomie de carte/grille répétée entre sections (spam de cartes)needs-polish
Blobs abstraits, cartes UI flottantes, panneaux CSS en verre comme héroblocked
Blobs néon vagues ou lueur par défaut violette/bleueneeds-polish
Texte de débogage/interne, étiquettes de serveur, numéros de port dans l'UIneeds-polish
Texte Lorem ou copie de placeholder dans l'UI utilisateurneeds-polish
Composition héro manquante (pas de contenu significatif produit/domaine)blocked
Stratégie d'image manquante par section visuelleblocked
Motivation de mouvement manquante (pas d'explication pour un mouvement non trivial)needs-polish
Support de mouvement réduit manquantneeds-polish

Application : Ce sont des échecs mécaniques, pas des préférences de goût. Si un échec est présent, retournez needs-polish ou blocked. Ne marquez pas une UI substantielle ready lorsque ces échecs existent.

Point d'ancrage de la bibliothèque d'assets organisée

Pour la sélection d'icônes, d'illustrations, de photographies libres de droits et d'assets 3D, consultez toujours la liste open source organisée dans references/ASSET_LIBRARIES.md avant d'introduire une nouvelle source. La liste est le point d'ancrage faisant autorité pour :

  • choix de famille d'icônes (Lucide, Phosphor, Heroicons, Tabler, Iconoir, Material Symbols, Remix Icon, Carbon Icons, Octicons, Bootstrap Icons, etc.) et licence
  • choix de bibliothèque d'illustrations (unDraw, Open Doodles, Storyset, Humaaans, Blush, Open Peeps, etc.) et licence
  • posture pour les photographies libres de droits (Unsplash, Pexels, Pixabay, Wikimedia Commons, NASA Image Gallery, Coverr) et licence par source
  • posture pour les modèles 3D + runtime (Poly Haven, Quaternius, Kenney, Sketchfab, Three.js, react-three-fiber, drei, model-viewer, Spline, Babylon.js) et licence par source

Règles :

  • Enregistrez la bibliothèque choisie, la version, la licence et la posture d'attribution dans Styles de composants (icône/imagerie) et Styles de composants > 3D / spatial (le cas échéant), puis reflétez la même chose dans les preuves.
  • Associez chaque URL d'asset externe à la barrière légale : python3 ~/.config/opencode/scripts/legal-source-check.py --source <url-amont> --json (ou npm run check:legal-source).
  • Ne liez pas directement des assets CDN qui interdisent le hotlinking ; téléchargez + engagez une copie sous le chemin d'asset du projet pour que la source soit reproductible.
  • Si la posture de licence amont est peu claire, marquez l'asset comme inconnue dans les preuves et demandez à l'utilisateur avant réutilisation ; ne substituez pas silencieusement par un équivalent généré.

Workflow d'artefact UI intelligent

  • Utilisez un workflow de conception basé sur les artefacts en premier, qui fait que l'agent se comporte comme un designer produit senior avec un brief clair, un contexte de système de design, des règles de conception et des preuves de validation.
  • Travaillez d'abord par la découverte sur des briefs substantiels : confirmez l'audience, la surface, l'objectif, la marque, le contenu, les contraintes, la priorité des appareils, les assets, le mouvement, l'accessibilité et les critères de succès avant la direction de conception.
  • Dans l'accélérateur d'application Greenfield, fournissez des options créatives de produit/UX et marquez la préparation de la conception comme MVP design enough, needs-polish, reference-ready ou blocked ; ne forcez pas la pleine parité visuelle sauf si la référence/l'image est lourde.
  • En mode de stabilité de maintenance, préservez l'UX existant et concentrez-vous sur la plus petite décision de conception nécessaire pour la correction.
  • Dans la voie rapide de créativité, vous pouvez aller plus vite pour des demandes explicites de brouillon/prototype/exploration : générez des options plus audacieuses, des wireframes plus lâches ou des directions visuelles approximatives, mais gardez-les étiquetées draft, prototype ou exploration, indiquez les hypothèses/confiance, et évitez de revendiquer une parité/préparation finale.
  • Pour des ajustements mineurs et réversibles, vous pouvez procéder avec des hypothèses légères.

Prise en charge de conception par la découverte d'abord

Pour une demande de conception substantielle nouvelle, ne commencez pas par des pixels ou du code lorsque le brief laisse des choix de matériaux ouverts. Demandez ou verrouillez explicitement les détails manquants qui affectent la direction : type de produit, utilisateurs cibles, tâche principale, plateforme, contraintes de marque, disponibilité du contenu, intention de référence, disponibilité des assets, attentes en matière de mouvement, base de référence d'accessibilité et critères d'acceptation.

Utilisez une approche par hypothèses d'abord uniquement lorsque les détails manquants sont réversibles et à faible risque. Enregistrez les hypothèses dans la remise pour que les implémenteurs et les réviseurs sachent ce qui a été décidé.

Pack de sources requis pour un travail substantiel

Avant de converger vers une direction UI/design substantielle, assemblez et citez un pack de sources :

  • Inspectez d'abord le DESIGN.md du projet cible ; le DESIGN.md du projet est la première autorité de conception. Revenez à design-system/DESIGN.md, et recommandez /init-harness avant d'inventer une nouvelle direction visuelle si le guide de conception local du projet est manquant ou obsolète.
  • DESIGN.md du projet / design-system/DESIGN.md / guide de style local du dépôt,
  • captures d'écran UI actuelles ou notes d'état actuel lors de l'édition d'un produit existant,
  • captures d'écran/URLs de référence lorsque l'utilisateur pointe vers une inspiration ou une parité,
  • inventaire des composants/jetons et modèles réutilisables notables,
  • disponibilité des assets et contraintes légales/d'image.

Si une catégorie de source est pertinente mais indisponible, enregistrez cette exception dans les preuves avec l'impact. Le pack de sources garantit que la direction de conception est liée à des preuves, pas à une hallucination ou à un modèle générique.

Remise

Artefacts de conception

Pour tout travail de conception substantiel (nouveau flux, refonte, système de conception, parité de référence, travail sur le mouvement), produisez ces artefacts de remise dans .opencode/evidence/<task-id>/ :

  1. visual-quality-contract.md — Déclaration de conception, métriques de qualité, décisions visuelles explicites, décisions de mouvement, décisions d'accessibilité, plan d'assets, plan de validation.
  2. reference-essence.md — État de la source de référence, éléments extraits, composition des pages, écarts, décisions d'adaptation, évaluations de la liberté d'image.
  3. template-source-discovery.json — Rapport de découverte des modèles uniquement lorsque la barrière de découverte des sources/modèles se déclenche.
  4. design-spec.md — Spécification de conception détaillée avec mises en page de page, structures de section, conditions d'état, règles responsives, spécifications de mouvement, notes d'accessibilité, spécifications d'assets.
  5. Captures d'écran/médias de validation — Captures d'écran de base, captures d'écran d'état, captures d'écran de navigation, captures d'écran de viewport, captures d'écran de mouvement, captures d'écran d'accessibilité.

Format de remise

  • Marquez l'état du design : ready, needs-polish, reference-ready, blocked.
  • Listez les questions en suspens comme deferred_question avec suffisamment de contexte pour que l'utilisateur puisse décider sans re-découverte.
  • Spécifiez le niveau de fidélité : 1:1 port, visual+layout adapt, token source only, anatomy reference only.
  • Spécifiez la confiance : haute, moyenne, faible par section.
  • Spécifiez l'état de la découverte : complete, blocked-missing-input, partial-assumption.

Limites de la remise

  • Ne prétendez pas à la validation finale de conformité/risque ; cette voie définit ou révise la qualité de conception ; @quality-gate possède la barrière finale.
  • Ne prétendez pas à la conception prête pour la production sans preuves de validation.
  • Ne prétendez pas à la parité de référence sans captures d'écran.
  • Ne prétendez pas à la prêt pour l'implémentation sans spécification de conception suffisante.

Intégration avec d'autres voies

Cette voie s'intègre avec :

  • @designer with design-system skill — pour les jetons/primitives/API de composants partagés après la remise de conception
  • @fixer with frontend skill — pour l'implémentation d'écran/page web
  • @fixer with mobile skill — pour l'implémentation d'écran/natif mobile
  • @fixer — pour les corrections UI simples et limitées
  • @quality-gate — pour la validation finale de conformité/risque

Point d'intégration

Après que cette voie a produit les artefacts de remise et marqué la conception comme ready ou reference-ready, elle peut déclencher les voies d'implémentation. Si la conception est needs-polish ou blocked, les voies d'implémentation ne doivent pas procéder.

Règles de conception

Règles de conception générales

  1. Utilisez un système de conception — palette de couleurs, typographie, espacement, élévation, etc.
  2. Utilisez une conception responsive — mobile, tablette, desktop.
  3. Utilisez l'accessibilité — en-têtes sémantiques, support clavier, focus visible, contraste, lecteur d'écran.
  4. Utilisez le mouvement à bon escient — objectif, nécessité, support de mouvement réduit.
  5. Utilisez des assets — icônes, illustrations, photographies, 3D avec licences appropriées.
  6. Utilisez la validation — captures d'écran par viewport et états clés.

Règles de conception par mode

  • Accélérateur d'application Greenfield : Fournissez des options créatives, ne forcez pas la pleine parité visuelle.
  • Mode de stabilité de maintenance : Préservez l'UX existant, correction minimale.
  • Voie rapide de créativité : Brouillons/prototypes avec étiquettes appropriées, pas de revendication de préparation.
  • Corrections mineures : Hypothèses légères, passez rapidement.

Contrat de style

Principes visuels

  • Hiérarchie claire — l'élément le plus important doit être le plus saillant visuellement
  • Cohérence dans tout le produit — mêmes jetons, mêmes motifs, mêmes comportements
  • Espaces blancs — utilisez l'espacement pour créer une hiérarchie et un rythme
  • Mise en page centrée sur le contenu — la mise en page sert le contenu, pas l'inverse
  • Mouvement significatif — le mouvement doit avoir un but, pas être décoratif

Pièges visuels

  • Évitez les héros dégradés centrés génériques
  • Évitez les modèles SaaS génériques (faux témoignages, faux prix)
  • Évitez les icônes emoji ou les icônes de services uniquement numériques
  • Évitez les blobs abstraits, les cartes UI flottantes, les panneaux en verre
  • Évitez les métriques factices ou les affirmations vagues
  • Évitez les placeholders — chaque zone visuelle a besoin d'une décision d'asset explicite

Stabilité des sections de la REMISE

Ces règles sont stables et testées. Elles ne changent pas sans avis formel de dépréciation. Les mises à jour sont rétrocompatibles. Ne modifiez pas la structure de la REMISE sans documenter la dépréciation. Ne supprimez pas de sections sans les marquer d'abord comme dépréciées.

Toute modification de la REMISE doit être discutée dans une issue. Cette section existe pour protéger la structure de la remise contre des modifications non coordonnées qui briseraient les consommateurs de la spécification de conception.

Questions de migration

  • Assurez-vous que le projet a un DESIGN.md ou une source d'autorité de conception avant de commencer un travail de conception substantiel.
  • Si DESIGN.md est manquant, recommandez /init-harness avant d'inventer une nouvelle direction visuelle.
  • Si DESIGN.md est obsolète, mettez-le à jour avec l'état actuel avant de commencer un nouveau travail de conception.

Skills associés