Automated summary
Clones a web app pixel-for-pixel from a URL by orchestrating the Claude Chrome extension and Task sub-agents through recon of every view, computed-style extraction, build, and verification.
Strengths
- Treats computed styles (CSSOM) read from the live page as ground truth instead of guessing from screenshots.
- Splits the work into stages with a mandatory check-in after each one: the user approves, revises, or stops.
- Objective convergence loop: assert-styles.mjs compares the clone against the design tokens and requires zero assertion failures.
- Goes past copying by adding custom features and an MCP server so an agent can operate the cloned app.
Limitations
- Requires the Claude Chrome extension and an authenticated session; browser stages run sequentially, one view at a time.
- No pixel-diff gate: screenshots are only a visual reference, so purely visual drift not captured by computed styles can slip through.
- Long and highly interactive workflow (a stop per stage), poorly suited to unattended background runs.
Use it when you need a faithful reproduction of an existing web UI or app from its URL, backed by measured proof of the match.
Avoid it for a rough UI prototype, or when you lack the Chrome extension or the right to copy the target site.
Security analysis
CautionNo 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.
Examples
/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.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/clone-web-app-pixel-perfect-ms47vodg/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
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. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Tools declared by the author (check availability in your agent): Bash, Read, Write, Edit, Agent
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
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 must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/clone-web-app-pixel-perfect-ms47vodg'openskills read 'clone-web-app-pixel-perfect-ms47vodg'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/clone-web-app-pixel-perfect-ms47vodg/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.