$npx -y skills add vibeeval/vibecosystem --skill clone-websiteReverse-engineer and clone a website in one shot — extracts assets, CSS, and content section-by-section and proactively dispatches parallel builder agents in worktrees as it goes. Use this whenever the user wants to clone, replicate, rebuild, reverse-engineer, or copy any website
| 1 | # Clone Website |
| 2 | |
| 3 | You are about to reverse-engineer and rebuild **$ARGUMENTS** as a pixel-perfect clone. |
| 4 | |
| 5 | This is not a two-phase process (inspect then build). You are a **foreman walking the job site** — as you inspect each section of the page, you write a detailed specification to a file, then hand that file to a specialist builder agent with everything they need. Extraction and construction happen in parallel, but extraction is meticulous and produces auditable artifacts. |
| 6 | |
| 7 | ## Scope Defaults |
| 8 | |
| 9 | The target is whatever page `$ARGUMENTS` resolves to. Clone exactly what's visible at that URL. Unless the user specifies otherwise, use these defaults: |
| 10 | |
| 11 | - **Fidelity level:** Pixel-perfect — exact match in colors, spacing, typography, animations |
| 12 | - **In scope:** Visual layout and styling, component structure and interactions, responsive design, mock data for demo purposes |
| 13 | - **Out of scope:** Real backend / database, authentication, real-time features, SEO optimization, accessibility audit |
| 14 | - **Customization:** None — pure emulation |
| 15 | |
| 16 | If the user provides additional instructions (specific fidelity level, customizations, extra context), honor those over the defaults. |
| 17 | |
| 18 | ## Pre-Flight |
| 19 | |
| 20 | 1. **Browser automation is required.** Check for available browser MCP tools (Chrome MCP, Playwright MCP, Browserbase MCP, Puppeteer MCP, etc.). Use whichever is available — if multiple exist, prefer Chrome MCP. If none are detected, ask the user which browser tool they have and how to connect it. This skill cannot work without browser automation. |
| 21 | 2. Verify the target URL from `$ARGUMENTS` is valid and accessible via your browser MCP tool. |
| 22 | 3. Verify the base project builds: `npm run build`. The Next.js + shadcn/ui + Tailwind v4 scaffold should already be in place. If not, tell the user to set it up first. |
| 23 | 4. Create the output directories if they don't exist: `docs/research/`, `docs/research/components/`, `docs/design-references/`, `scripts/`. |
| 24 | |
| 25 | ## Guiding Principles |
| 26 | |
| 27 | These are the truths that separate a successful clone from a "close enough" mess. Internalize them — they should inform every decision you make. |
| 28 | |
| 29 | ### 1. Completeness Beats Speed |
| 30 | |
| 31 | Every builder agent must receive **everything** it needs to do its job perfectly: screenshot, exact CSS values, downloaded assets with local paths, real text content, component structure. If a builder has to guess anything — a color, a font size, a padding value — you have failed at extraction. Take the extra minute to extract one more property rather than shipping an incomplete brief. |
| 32 | |
| 33 | ### 2. Small Tasks, Perfect Results |
| 34 | |
| 35 | When an agent gets "build the entire features section," it glosses over details — it approximates spacing, guesses font sizes, and produces something "close enough" but clearly wrong. When it gets a single focused component with exact CSS values, it nails it every time. |
| 36 | |
| 37 | Look at each section and judge its complexity. A simple banner with a heading and a button? One agent. A complex section with 3 different card variants, each with unique hover states and internal layouts? One agent per card variant plus one for the section wrapper. When in doubt, make it smaller. |
| 38 | |
| 39 | **Complexity budget rule:** If a builder prompt exceeds ~150 lines of spec content, the section is too complex for one agent. Break it into smaller pieces. This is a mechanical check — don't override it with "but it's all related." |
| 40 | |
| 41 | ### 3. Real Content, Real Assets |
| 42 | |
| 43 | Extract the actual text, images, videos, and SVGs from the live site. This is a clone, not a mockup. Use `element.textContent`, download every `<img>` and `<video>`, extract inline `<svg>` elements as React components. The only time you generate content is when something is clearly server-generated and unique per session. |
| 44 | |
| 45 | **Layered assets matter.** A section that looks like one image is often multiple layers — a background watercolor/gradient, a foreground UI mockup PNG, an overlay icon. Inspect each container's full DOM tree and enumerate ALL `<img>` elements and background images within it, including absolutely-positioned overlays. Missing an overlay image makes the clone look empty even if the background is correct. |
| 46 | |
| 47 | ### 4. Foundation First |
| 48 | |
| 49 | Nothing can be built until the foundation exists: global CSS with the target site's design tokens (colors, fonts, spacing), TypeScript types for the content structures, and global assets (fonts, favicons). This is sequential and non-negotiable. Everything after this can be parallel. |
| 50 | |
| 51 | ### 5. Extract How It Looks AND How It Beh |