Synthèse automatique
Clone une application web à l'identique, pixel par pixel, depuis une URL, en pilotant l'extension Chrome de Claude et des sous-agents pour le repérage des vues, l'extraction des styles calculés, la construction et la vérification.
Points forts
- Prend les styles calculés (CSSOM) de la page live comme vérité terrain plutôt que de deviner depuis des captures d'écran.
- Découpe le travail en étapes avec un point de contrôle obligatoire après chacune : l'utilisateur approuve, révise ou arrête.
- Boucle de convergence objective : le script assert-styles.mjs compare le clone aux tokens de design et exige zéro échec d'assertion.
- Va au-delà de la copie en ajoutant des fonctionnalités personnalisées et un serveur MCP pour qu'un agent puisse opérer l'app clonée.
Limites
- Dépend de l'extension Chrome de Claude et d'une session authentifiée ; les étapes navigateur sont séquentielles, une seule vue à la fois.
- Pas de pixel-diff : les captures ne servent que de référence visuelle, donc des écarts purement visuels non exprimés en styles calculés peuvent échapper au contrôle.
- Workflow long et très interactif (un arrêt par étape), peu adapté à une exécution autonome en arrière-plan.
À utiliser lorsqu'on veut reproduire fidèlement une interface ou une application web existante à partir de son URL, avec une preuve mesurée de la correspondance.
À éviter pour un simple prototype d'UI approximatif, ou sans accès à l'extension Chrome et sans droit de copier le site cible.
Analyse de sécurité
PrudenceNo destructive commands (rm -rf, curl|sh), no base64 payloads, no secret/token exfiltration, and no instruction to disable safety. The risk is 'powerful tools used legitimately': browser automation over an authenticated session, plus bash/file-writing sub-agents that reconstruct whole apps. This is expected for the stated purpose but warrants caution given the authenticated-context JS execution and IP-copying intent.
- •Drives the user's authenticated Chrome session via mcp__claude-in-chrome__* and explicitly notes it 'reaches authed sites' — javascript_tool executes arbitrary JS in that logged-in context, so it can read session data, cookies-adjacent page state, and any authed content; scope is not restricted to the target page.
- •Bash/Write/Edit/Agent (Task sub-agents) give a broad execution and filesystem surface; parallel code-gen agents build and modify files with no explicit sandbox or path confinement stated.
- •Cloning arbitrary third-party sites 'pixel-for-pixel' is a copyright/ToS risk (legal, not technical) — no destructive or exfiltration behavior, but the intent invites reproducing proprietary UI/assets.
Exemples
/clone-app-pat-pro https://app.example.com/dashboard my-dash — clone this dashboard pixel for pixel, capture every view, and prove the match with computed-style assertions before we move on.Replicate this app: https://example.com/pricing — copy the site's UI, extract computed styles as ground truth, then add a dark-mode toggle as a custom feature.Build a clone of https://example.com/admin, verify it with computed-style QA, then add an MCP server so my agent can operate the cloned app.name: clone-app-pat-pro description: Clones any web app pixel-for-pixel from a URL. Runs as an IN-CONVERSATION workflow — the live Claude orchestrates Task sub-agents and drives the Claude Chrome extension to recon (every view), extract (computed styles = ground truth), design-spec, build, QA (computed-style assertions), and extend. Guided check-ins, custom features, and an MCP server so an agent can operate the app. Use when cloning a site, replicating a web app, building a clone, copying a website, recreating a UI, or when told "clone this", "replicate this app", "copy this site", "build a clone of", "make a copy of this website", "recreate this UI". argument-hint: <url> <name> allowed-tools: Bash, Read, Write, Edit, Agent
Clone App — Pat Pro
Mission: own the target, pixel for pixel. Read every value off the live page (never a screenshot guess), rebuild it, prove the match with measured computed-style assertions, then make it yours.
The contract is law.
references/00-contract.mddefines the workspace layout, exact artifact filenames, stage I/O, the verification gate, the convergence loop, and the agent-prompt standard. Read it first.
How this runs — IN-CONVERSATION (read first)
This skill runs as a workflow inside a live Claude session, not a background script. When it's invoked, YOU (the in-session agent) orchestrate it: spawn Task sub-agents, drive the browser, check in with the user, run the helper scripts.
Browser tool = the Claude Chrome extension, only (mcp__claude-in-chrome__*). You're already logged in, so it reaches authed sites. There is one Chrome — one view/tab at a time (browser stages are sequential). Code stages fan out in parallel via Task sub-agents (build each page, fix each file-set concurrently).
| Need | Chrome-extension tool |
|---|---|
| open a route | mcp__claude-in-chrome__navigate |
| read computed styles / CSSOM / run JS | mcp__claude-in-chrome__javascript_tool (the verification ground truth) |
| read DOM / find elements | mcp__claude-in-chrome__read_page / find |
| click / hover / focus (interaction sweep) | mcp__claude-in-chrome__computer |
| visual reference screenshot | mcp__claude-in-chrome__computer (screenshot) |
| set viewport | mcp__claude-in-chrome__resize_window |
Screenshots are a VISUAL REFERENCE only. The extension can't reliably write screenshot files to disk in this environment, so do not build the gate on saved PNGs / pixel-diff. Screenshots are for you and the user to eyeball the real site vs the clone. The objective ground truth is computed styles read via javascript_tool (the contract's own rule: CSSOM/computed values beat screenshots).
The gate = computed-style assertions. QA reads the clone's computed styles via javascript_tool, writes them to JSON, and scripts/assert-styles.mjs compares them to the design tokens (assertions.json from the DESIGN.md). PASS = 0 style-assertion failures + the build compiles. Plus a visual eyeball of clone vs real site.
⛔ STOP-AND-CHECK-IN GATE — after EVERY stage (the rule agents break)
This is the single most important rule, and the one that gets ignored: after each stage you MUST stop, report, and WAIT for the user before doing anything else. Do not "batch through" the pipeline.
After every stage — recon, extraction, design spec, architecture, build-foundation, build-pages, each QA cycle, polish, each feature, agent-access:
- Post a short summary of what the stage produced + the exact artifact paths (for visual stages, name the views/screenshots you captured).
- Ask the user: approve / revise / stop.
- STOP. Do not call ANY tool. Do not start the next stage. Wait for the user's reply.
Running stage N+1 before the user has responded to stage N is a failure. One stage → stop → wait, every single time. Recon is ONE stage: capture every view, then STOP and check in — do not roll straight into extraction. Same for every other stage.
What "EVERY VIEW" means (recon is not one screenshot)
Recon must reach every state the app can show — exhaustive, not a sample. Navigate and capture/extract:
- every left-hand sidebar item (click each, go into its view);
- every tab / top filter (Active / Backlog / All / …);
- every filter and layout toggle (board ↔ list ↔ every layout; sort/group);
- every menu, dropdown, context menu (open state);
- every side panel, detail, modal (open an issue, settings panels, slide-overs);
- every interaction-revealed state (focus the editor → its toolbar; the comment composer; hover states);
- at every viewport (desktop, tablet, mobile).
For each view: read its computed styles via javascript_tool (the data that matters) and take a visual-reference screenshot. Log each in interaction-map.json (contract §8). One view captured = broken recon — keep going.
Pipeline
Recon (EVERY view — Chrome ext, computed styles + visual ref, sequential) → Extraction (per view)
→ Design Spec (DESIGN.md + assertions.json) → Architecture → Build-foundation → Build-pages (‖ Task agents)
→ [QA (read clone computed styles → assert-styles gate) → Fix (‖ Task agents)] loop-until-converged
→ Polish → [guided] Customize (feature loop) → Agent access (API + MCP server)
Gate (contract §5): 0 style-assertion failures + build compiles, plus a visual check. Loop QA↔Fix until it passes, stalls, or hits a hard blocker.
Stages
| # | Stage | Browser | Parallel | Reference |
|---|-------|---------|----------|-----------|
| 1 | Recon | Chrome ext, every view | sequential | 01-recon.md |
| 2 | Extraction | Chrome ext (javascript_tool) | sequential | 02-extraction.md |
| 3 | Design Spec | no | single (fan-in) | 03-design-spec.md |
| 4 | Architecture | no | single | 04-architecture.md |
| 5a | Build-foundation | no | single | 05-build.md |
| 5b | Build-page | no | ‖ Task agents | 05-build.md |
| 6 | QA | Chrome ext (read clone styles) | sequential read, ‖ analysis | 06-qa.md |
| 7 | Fix | no | ‖ Task agents per file-set | 06-qa.md |
| 9 | Polish | Chrome ext (clone) | sequential | 07-polish.md |
| 10-11 | Extend (guided) | mixed | — | 08-extend.md |
Verification scripts (run via Bash)
scripts/assert-styles.mjs— compares the clone's computed styles (JSON the QA agent reads viajavascript_tool) to the DESIGN.md tokens/assertions.json. The gate.scripts/partition_bugs.py— disjoint per-file fix sets for parallel fixers.
Pat Pro Enhancements
- In-conversation, Chrome-extension-only — runs in your session, drives the real browser you're logged into.
- Click everything — recon reaches every sidebar item, tab, filter, view, panel, and state (see "EVERY VIEW" + contract §8).
- Computed styles are ground truth — the gate is measured style assertions, not eyeballing or fragile screenshots.
- Autonomous convergence — loops QA↔Fix until it passes.
- Customize & extend — add features matched to
DESIGN.md, then build an MCP server so an agent can operate the app (contract §10, 08-extend.md).
Workspace
All artifacts in clone-workspace/{name}/ with fixed filenames — contract §1. Stage prompt templates (used as Task sub-agent prompts): references/stage-prompts.md.
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/clone-web-app-pixel-perfect-ms47vodg/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/clone-web-app-pixel-perfect-ms47vodg' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/clone-web-app-pixel-perfect-ms47vodg/download' --output '.skill-downloads/clone-web-app-pixel-perfect-ms47vodg/SKILL.md.part' && mv '.skill-downloads/clone-web-app-pixel-perfect-ms47vodg/SKILL.md.part' '.skill-downloads/clone-web-app-pixel-perfect-ms47vodg/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.
Outils déclarés par l’auteur (à vérifier dans votre agent) : Bash, Read, Write, Edit, Agent
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/clone-web-app-pixel-perfect-ms47vodg/SKILL.md' && test -s '.skill-downloads/clone-web-app-pixel-perfect-ms47vodg/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/clone-app-pat-pro' && cp -R '.skill-downloads/clone-web-app-pixel-perfect-ms47vodg' '.claude/skills/clone-app-pat-pro'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/clone-web-app-pixel-perfect-ms47vodg'openskills read 'clone-web-app-pixel-perfect-ms47vodg'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/clone-web-app-pixel-perfect-ms47vodg/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.