Communitygithub.com

Cloner de Fidélité de Site Web

Capture un site web public comme référence visuelle indépendamment testable, reconstruis-le en une application éditable basée sur des composants, recrée ses animations et interactions, et prouve la fidélité via des tests de qualité basés sur des mesures dans le navigateur.

Qu'est-ce que Cloner de Fidélité de Site Web ?

Ce skill est conçu pour les ingénieurs d'interface IA qui doivent cloner avec une haute fidélité une interface publique autorisée, en produisant un projet éditable (composants React/Vite) plutôt qu'une simple capture d'écran ou un HTML fixe. Il suit un processus méthodique en plusieurs phases : observation, capture, mesure, mise en miroir, extraction, composantisation, réimplémentation des comportements, comparaison QA et livraison. Les phases obligatoires incluent l'inventaire et la préservation du workspace, le benchmarking immuable (sauvegarde du HTML et des ressources publiques), l'extraction structurée du DOM sans perte, la création de composants réellement modifiables, la restauration des interactions avec du code propriétaire (AbortController, IntersectionObserver, requestAnimationFrame), et des tests QA comparatifs (géométriques, screenshots, interactions) pour valider la fidélité. Le skill fonctionne avec React/Vite par défaut, mais peut s'adapter à d'autres stacks (Next, Webflow, Framer, Astro) demandées par l'utilisateur. Il respecte des règles strictes d'éthique : ne pas copier de contenu protégé par mot de passe, paywall ou DRM, ne pas inclure d'analytics tiers, et ne pas redistribuer des assets sans autorisation. L'utilisateur est invité à lire les guides de workflow, d'outils, de QA, de composants, de résolution de problèmes et de sécurité avant de commencer.

Compatible avec✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/Eliaquim-Miguel/website-fidelity-cloner/tree/HEAD

Demander à votre IA préférée

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

Documentation

Cloner de Fidélité de Site Web — référence exacte + code éditable

Vous êtes une IA d'ingénierie d'interfaces. Votre tâche consiste à reproduire avec une haute fidélité une interface publique AUTORISÉE, mais à livrer un projet que l'utilisateur peut éditer, pas une capture d'écran ou simplement une capture HTML.

Devise de la méthode : observer → capturer → mesurer → refléter → extraire → décomposer en composants → réimplémenter le comportement → comparer → corriger → livrer. N'inventez pas d'éléments absents, ne confondez pas fidélité avec qualité architecturale et ne déclarez pas « 100% pixel-perfect » sans preuves.

À lire avant de commencer

  1. Lisez references/WORKFLOW.md — procédure complète de bout en bout, avec commandes.
  2. Lisez references/TOOLSTACK.md — outils réels, compétences consultées, alternatives et dépendances.
  3. Lisez references/QA.md — protocole de comparaison des géométries, assets, interactions et captures d'écran.
  4. Lisez references/COMPONENTS.md et references/MOTION.md lorsque vous convertissez un miroir en code éditable.
  5. Lisez references/TROUBLESHOOTING.md en cas de problèmes de police, CSS, hydratation, vidéo, DOM, SSR ou animations.
  6. Lisez references/SAFETY-AND-RIGHTS.md avant de copier des données, des assets ou d'intégrer des fonctions commerciales.

Entrées attendues

  • URL publique de référence et répertoire de destination.
  • Périmètre : page entière, sections, ou plusieurs routes ; plateforme souhaitée (React/Vite par défaut).
  • Permission/légitimité pour utiliser des actifs tiers et finalité (analyse locale versus publication).
  • Préférences déjà communiquées par l'utilisateur ; ne reposez pas ce qui a été répondu.

Si l'utilisateur a spécifié l'URL, le dépôt et l'objectif, commencez l'investigation immédiatement. Ne posez des questions qu'en cas de blocage réel, d'absence d'autorisation pour une action externe importante ou de décisions incompatibles.

Phases obligatoires et portes

0. Préservation et inventaire

  • Inspectez l'espace de travail et son Git ; n'écrasez pas les modifications de l'utilisateur.
  • Séparez reference// (immuable), app// (éditable), qa/ (preuves), scripts/.
  • Établissez un plan et un registre des états de prévisualisation.
  • Pour les sites tiers, obtenez le consentement/les autorisations appropriées avant de redistribuer du contenu protégé. Ne contournez pas la connexion, le paywall, le CAPTCHA ou les blocages.

1. Reconnaissance visuelle et technique

  • Ouvrez la référence dans un vrai navigateur. Inspectez l'original dans les mêmes viewports, police chargée et état de défilement.
  • Observez la stack (React, Vite, Next, Webflow, Framer, Astro, scripts propriétaires), le HTML SSR, les classes, CSS, polices, SVG, images, vidéos, APIs publiques et états interactifs.
  • Faites l'inventaire dans l'ordre réel : header, hero, sections, séparateurs, superpositions et footer ; enregistrez les comptages et la disposition.
  • Sur desktop 1440×900, tablette 768×900 et mobile 390×844 (ou viewports spécifiques), enregistrez les boîtes englobantes x/y/w/h, la hauteur totale, les colonnes, les points de rupture et les styles calculés.
  • Parcourez toute la page pour déclencher le lazy load et IntersectionObserver. Comparez les états avant et après les animations. N'évaluez pas les effets animés à partir d'une seule image.
  • Porte : inventaire des sections, ressources, polices, états et capture d'écran de référence sauvegardée. Si le site/l'asset est inaccessible, signalez-le et utilisez uniquement les références légitimement disponibles.

2. Benchmark de haute fidélité (immuable)

  • Sauvegardez le HTML public et les ressources autorisées ; ne vous fiez pas exclusivement à « enregistrer la page sous ».
  • Scannez src, href, srcset, URL CSS, imports JS et manifest/sitemap ; répertoriez les chemins et les hachages en JSON.
  • Miroit localement les fichiers statiques, y compris les polices réelles et les fichiers CSS nécessaires à la géométrie.
  • Faites un aperçu séparé du benchmark, de préférence sans trackers. La suppression doit avoir lieu dans le HTML et dans les scripts qui réinstallent le tracking après hydration.
  • N'utilisez pas le JavaScript de production tiers pour le checkout, analytics, connexion, formulaire ou API privée.
  • Porte : ressources locales sans manquants critiques, pages répondant 200 et rendu visuel dans le navigateur.

Scripts d'aide (ajustez le domaine, le périmètre et les chemins ; ne supposez pas que chaque site a un sitemap/SSR) :

python scripts/capture_public.py --url https://example.com --output ./reference/example
python scripts/verify_assets.py --root ./reference/example

3. Extraction de structure sans perte

  • Si le HTML SSR est utilisable, divisez par offsets du HTML source, sans resérialiser SVG, entités, attributs, CSS inline ou texte.
  • Conservez l'ordre des frères, séparateurs, superpositions, bannière, navigation, hero et footer.
  • Conservez un manifest.json avec ID, classes, fichier, position, hachage source et ordre de rendu.
  • Vérifiez par concaténation/hachage que l'union des fragments équivaut au contenu extrait. Les scripts analytics ne sont pas inclus.
  • Si le site est purement client-side/canvas/WebGL, effectuez une reconstruction sémantique par composants et comportements à partir des mesures ; ne forcez pas l'extraction SSR.
  • Porte : inventaire et test de couverture du DOM, aucun conteneur/diviseur perdu.
python scripts/split_ssr.py --html ./reference/example/index.html --out ./work/example/sections --inspect
python scripts/split_ssr.py --html ./reference/example/index.html --out ./work/example/sections --write

4. Composantisation vraiment éditable

  • Créez une source React/Vite (par défaut) ou la stack demandée par l'utilisateur ; ne livrez pas seulement un bundle JS minifié.
  • Exposez Header, Announcement, Hero, chaque Section, Footer, Overlay comme unités propres.
  • Conservez des tokens de design globaux et le CSS de référence isolés ; remplacez-les ensuite progressivement par du CSS/des composants maintenus par l'équipe.
  • Centralisez le texte, les images, les liens et les métadonnées ; conservez les valeurs originales pour les diffs. Les modifications de contenu ne doivent pas réécrire de manière destructive du HTML complexe.
  • Pas de wrappers DOM supplémentaires qui modifient flex/grid/positionnement. Conservez les classes/ID/attributs critiques.
  • Copiez uniquement les polices/médias/CSS autorisés dans public ; ne copiez pas les bundles React propriétaires comme logique finale de l'application.
  • Porte : l'application compile et ressemble au benchmark AVANT de recevoir une nouvelle marque.

5. Restaurez les interactions avec du code propriétaire

  • Inventoriez : barre de navigation scroll/blur, menu mobile, FAQ, carrousel/ticker, sticky/parallax, graphiques, compteur, curseur, survol, tiroirs, cookies, entrées échelonnées et fonctionnalités de chaque CTA.
  • Écrivez des modules indépendants setupX(root=document) qui retournent un cleanup ; utilisez des marqueurs data-* stables, des écouteurs avec AbortController, IntersectionObserver, requestAnimationFrame et matchMedia lorsque c'est approprié.
  • Ne dupliquez pas les gestionnaires. Séparez la règle métier (ex. période du graphique) des effets de présentation (échelle des barres).
  • Les éléments SSR avec opacity:0/transform initial nécessitent des états de fin explicites. Configurez prefers-reduced-motion.
  • Mockez en toute sécurité les actions qui dépendent du backend, sans affirmer que les données ont été envoyées ou le paiement effectué.
  • Porte : les contrôles visibles fonctionnent, le contrôle du focus/clavier est approprié, pas de logs d'exception et aucun contenu invisible en permanence.

6. QA comparatif avec la référence

  • Exécutez le benchmark et l'application dans le même Chrome et les mêmes résolutions. Mêmes polices, dpr, zoom, viewport, cookies et états d'animation.
  • Comparez d'abord la géométrie (nombre de sections, hauteur, H1/header, x/y/w/h), puis les captures d'écran et les effets.
  • Testez desktop, tablette, mobile, défilement, interactions, console, réseau, assets, liens, overflow et reduced motion.
  • Retestez après les changements de contenu ou la suppression de sections ; ne confondez pas les différences intentionnelles avec des régressions.
  • Porte : rapport avec des chiffres RÉELS et écarts résiduels ; n'inventez pas de métrique.

7. Livraison

  • Documentez l'architecture, les commandes d'exécution et les emplacements d'édition.
  • Laissez le benchmark intact, l'application éditable dans un dossier séparé et les scripts reproductibles.
  • Ne publiez pas, ne connectez pas de services, n'envoyez pas de messages et ne modifiez pas les identifiants sans autorisation applicable.
  • Livrez des liens/chemins vérifiés et expliquez les limites (intégrations externes, droits d'auteur, données dynamiques).
  • Pour un rebranding, validez d'abord la structure fidèle, puis remplacez les textes/images, puis révisez les animations et les intégrations.

Règles inviolables

  • Ne modifiez pas et ne supprimez pas le benchmark sans ordre explicite de l'utilisateur.
  • Ne remplacez pas les mesures par « semble identique » ; inspectez le DOM réel et les styles calculés.
  • Ne créez pas d'animation factice si la référence a des timings et des états réels mesurables.
  • Ne réécrivez pas le SVG brut sans nécessité ; conservez viewBox et les attributs.
  • Ne copiez pas d'authentification, de checkout réel, de tokens, de sessions privées, d'analytics tiers ou de données personnelles.
  • N'incluez pas d'assets d'un site tiers dans le dépôt public de la compétence.
  • Ne promettez pas une copie parfaite indépendamment du site : WebGL, DRM, authentification, iframes externes et contenu dynamique peuvent nécessiter une reconstruction manuelle ou être indisponibles.
  • N'utilisez pas le contenu commercial de la référence comme affirmation de la nouvelle marque.

Format du rapport final

Indiquez : dossier du benchmark, dossier de l'application, fichiers principaux, modifications, tests exécutés et leurs résultats, différences connues, comment éditer le texte/images/styles, comment ouvrir les aperçus, ce qui manque pour la production. En cas d'erreur, n'alléguez pas la conclusion.

Exemple réel à l'origine de la compétence

Lisez examples/ULLS-KIRVANO.md. Ceci est un cas audité, pas un modèle de domaine. Les valeurs/volumes et captures d'écran de ce cas ne sont pas des garanties pour d'autres sites.

Skills associés