Synthèse automatique
Corrige un seul problème d'intégration au design system dans un écran ou composant Figma, en remplaçant les composants locaux par les composants partagés et en reliant les tokens non liés.
Points forts
- Périmètre volontairement étroit : un constat, un nœud, des lectures et écritures minimales
- Contrôle de compatibilité local avant toute modification lorsqu'il y a plusieurs composants candidats
- Workflow explicite en étapes avec inspection ciblée via Figma MCP (screenshot, metadata, variables)
- Résultat tranché : fixed, blocked ou needs-follow-up, sans élargissement silencieux du périmètre
Limites
- Suppose qu'un audit préalable (audit-design-system) a déjà produit un constat exploitable
- Ne traite pas les reprises globales d'un écran : il faut alors passer par apply-design-system
- Dépend de l'accès en lecture Figma via MCP et d'un helper d'écriture selon l'environnement
À utiliser quand un constat précis d'audit design system identifie un nœud Figma à corriger et que l'on veut une correction chirurgicale.
À éviter pour reconnecter un écran entier ou coordonner plusieurs sections, ou lorsqu'aucun nœud ni fichier Figma précis n'est fourni.
Analyse de sécurité
SûrThe skill guides an AI agent through a specific Figma design-system fix using Figma MCP read/write tools. It does not instruct destructive system commands, exfiltration, or obfuscated actions. The workflow involves making backups and applying targeted changes, which is normal and legitimate. No security concerns are present.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
Here is one finding from our design-system audit: fileKey abc123, nodeId 45:678, flagged for a local button override instead of the shared Button component. Please fix just this node and tell me whether it ends up fixed, blocked, or needs follow-up.In this Figma screen (https://figma.com/file/abc123?node-id=45:678) the card uses a hardcoded #F5F5F5 and 16px padding instead of our design tokens. Fix that one issue without touching anything else on the frame.The audit says this node uses an ad-hoc input wrapper instead of a library component, but it doesn't name which one. Run a compatibility check first, then apply the fix if it's safe.name: fix-design-system-finding description: Fix a specific design-system integration finding in a Figma screen or component, including missing shared components, local overrides, and unbound tokens.
Fix One Design-System Finding
Use this skill after audit-design-system has already identified a concrete issue.
This skill is intentionally narrow:
- one finding at a time
- one offending node or local cluster at a time
- minimal read scope
- minimal write scope
Load these capabilities first:
- Figma MCP read access for the normal inspection tools
- a
figma-use-style helper before anyuse_figmawrite call, when your environment requires one
Use apply-design-system instead when the task is a broader screen-wide reconnect, multiple sections need coordinated changes, or the user explicitly wants a full pass across the frame.
Expected Input
Prefer one of these:
- a single JSON finding from
audit-design-system - the full review JSON plus the specific finding to address
- a paraphrased issue plus a Figma URL or
fileKeyandnodeId
If the finding came from audit-design-system, extract the target from:
code_location.absolute_file_path = /figma/<fileKey>/nodes/<nodeId>
Treat the review result as the scope contract. Do not silently widen from one finding into a full cleanup pass.
Scope Rule
Stay pinned to the selected finding until one of these is true:
fixed: the targeted issue is correctedblocked: the fix requires missing library assets, inaccessible components, or broader product decisionsneeds-follow-up: the targeted node is improved, but a separate adjacent issue remains and should be reviewed independently
If the user pastes multiple findings, either address the one they selected or pick the highest-priority finding and say that is the one being fixed now.
Required Workflow
1. Normalize the Finding
Extract and restate:
fileKey- offending
nodeId - finding title
- why the reviewer flagged it
If the review output does not identify a specific node, stop and ask for either the raw finding JSON or a direct Figma node.
2. Run A Local Compatibility Check When Replacement Choice Is Ambiguous
Before backing anything up or editing the canvas, decide whether a clean fix is actually possible.
Run a local compatibility check when:
- the finding implies a DS swap but does not identify the exact component
- more than one library component looks plausible
- override behavior or sizing is unclear
- the user explicitly wants extra research before writing
Do not continue into writes until the compatibility check returns one of:
safe-to-applyblockedneeds-human-choice
The compatibility check should answer:
- which exact component or variant is the leading candidate
- whether text, icon, state, and size overrides are supported
- whether the replacement can preserve the node's layout contract
If the result is blocked, stop and report the blocker.
If the result is needs-human-choice, stop and ask the minimal clarifying question instead of guessing.
3. Gather Only the Evidence Needed
Before writing, inspect the target with the smallest useful set of reads:
get_screenshotfor the offending node or closest enclosing sectionget_metadatafor structural contextget_variable_defswhen the finding mentions tokens, raw values, color, spacing, or typographyget_code_connect_mapwhen the finding suggests an existing mapped componentsearch_design_systemonly if you still need to locate the replacement primitive
Do not re-review the whole board unless the finding clearly points to a repeated pattern and the repeated pattern is required to choose the fix.
4. Classify the Fix
Choose exactly one remediation mode:
swap-instance: replace an ad-hoc or wrong instance with the correct library component or variantcompose-from-primitives: rebuild the local custom wrapper from published library partsbind-tokens: replace raw values with variables or stylesalign-variant: move an existing instance to the correct variant or property stateblocked: no valid library-backed fix is currently possible
If more than one mode seems plausible, prefer the smallest change that satisfies the original finding.
5. Back Up Only the Affected Area
Before destructive edits, duplicate only the offending node or the smallest enclosing local section.
Name the backup clearly, for example:
Backup - Fix finding 1Backup - Custom nav
Make the backup in its own write call and return the created node ID.
6. Apply the Fix Incrementally
Do not rebuild the whole screen.
Work in small steps:
- inspect current node IDs and component linkage
- import or locate the needed library component or variable
- replace, compose, or retokenize only the targeted area
- return all created and mutated node IDs
Prefer swapComponent() when it preserves the node's position and valid overrides.
Prefer rebuilding beside the original when:
- the current node is a local wrapper with mixed custom structure
- the review finding points at a custom composition, not a single primitive
- you need visual comparison before replacing the original
If the first validation pass shows that the recommended component regresses layout, text visibility, icon behavior, or width contract, stop. Report blocked or needs-follow-up instead of continuing to force the same primitive into place.
7. Validate the Finding, Not the Entire Screen
After the write:
- screenshot the changed node or its immediate section
- confirm the specific review complaint is no longer true
- confirm the result is library-backed or token-bound when that was the goal
- confirm spacing and text overrides still make sense
Only expand validation beyond the local section if the fix touched a global pattern such as navigation.
Decision Heuristics
- If the finding says a primitive was recreated as a frame, bias toward
swap-instance. - If the finding says repeated local wrappers should collapse into a shared pattern, fix one representative node unless the task explicitly asks to roll the fix across all siblings.
- If the finding is about raw values beside tokenized peers, bias toward
bind-tokens. - If the finding is about a locally edited instance with the wrong size or state, bias toward
align-variant. - If the library lacks the required component family or the import fails, mark it
blockedinstead of improvising a fake connection. - If a DS component exists but cannot preserve the node's text/icon/sizing contract, mark it
blockedorneeds-human-choiceinstead of forcing the swap.
Writing Rules
- Keep the write scope tightly aligned to the selected finding.
- No write before a
safe-to-applycompatibility outcome when replacement choice is ambiguous. - Do not claim the whole screen is "on system" after fixing one finding.
- Prefer exact component keys and variable IDs over names.
- Do not continue into unrelated cleanup just because you noticed more drift.
- If a broader refactor is obviously needed, finish the targeted fix or report the blocker, then recommend
apply-design-systemfor the next pass.
Deliverable Format
When closing the task, report:
Finding fixed: what changed and on which nodeValidation: how you confirmed the original issue is resolvedBlockedorFollow-up: only if the finding could not be fully resolved
Keep the report tied to the single finding. Avoid screen-wide summaries unless the user asks for them.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/fix-a-design-system-finding-msih94xu/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/fix-a-design-system-finding-msih94xu' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/fix-a-design-system-finding-msih94xu/download' --output '.skill-downloads/fix-a-design-system-finding-msih94xu/SKILL.md.part' && mv '.skill-downloads/fix-a-design-system-finding-msih94xu/SKILL.md.part' '.skill-downloads/fix-a-design-system-finding-msih94xu/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/fix-a-design-system-finding-msih94xu/SKILL.md' && test -s '.skill-downloads/fix-a-design-system-finding-msih94xu/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/fix-design-system-finding' && cp -R '.skill-downloads/fix-a-design-system-finding-msih94xu' '.claude/skills/fix-design-system-finding'Cursor
test -f '.skill-downloads/fix-a-design-system-finding-msih94xu/SKILL.md' && test -s '.skill-downloads/fix-a-design-system-finding-msih94xu/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/fix-design-system-finding' && cp -R '.skill-downloads/fix-a-design-system-finding-msih94xu' '.cursor/skills/fix-design-system-finding'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/fix-a-design-system-finding-msih94xu'openskills read 'fix-a-design-system-finding-msih94xu'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/fix-a-design-system-finding-msih94xu/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.