[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71JD6QX3WWXQFNAND6M9Q5B":3,"skill-same:01M71JD6QX3WWXQFNAND6M9Q5B":74},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":45,"commitSha":46,"skillDirectory":5,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":52,"updatedAt":53,"install":54,"resources":67},"01M71JD6QX3WWXQFNAND6M9Q5B","clone-site",null,"Clone any website from a URL into a pixel-faithful Next.js codebase — recon, asset\u002FCSS extraction, parallel section builders, animation porting, and automated fidelity verification. Use whenever the user pastes a URL and asks to clone, copy, replicate, rebuild, reverse-engineer, or \"make me a version of\" a website or landing page — even if they don't say the word \"clone\". Also triggers on \"\u002Fclone-site \u003Curl>\". For multi-page sites it discovers and clones every page via the sitemap.","caezium\u002Fskills","caezium","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F113233555?v=4","01M71JB77ZPBAWEK009Y2W8BP7","Henry Zhang","01M71JB792NVXCWSYD27HQ0964",3,"MIT","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fclone-site\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"clone","site","clone site","make","asset","website","next","replicate","me","verification","notes","rebuild","URL","only","pixel","engineer","porting","recon","css","Animation","2026-11-10 10:12:30",false,"---\nname: clone-site\ndescription: Clone any website from a URL into a pixel-faithful Next.js codebase — recon, asset\u002FCSS extraction, parallel section builders, animation porting, and automated fidelity verification. Use whenever the user pastes a URL and asks to clone, copy, replicate, rebuild, reverse-engineer, or \"make me a version of\" a website or landing page — even if they don't say the word \"clone\". Also triggers on \"\u002Fclone-site \u003Curl>\". For multi-page sites it discovers and clones every page via the sitemap.\nargument-hint: \"\u003Curl> [\u003Curl2> ...] [notes like 'landing page only' or 'always animate']\"\n---\n\n# Clone Site\n\nReverse-engineer the site(s) at `$ARGUMENTS` into a Next.js codebase. This skill encodes a refined version of the ai-website-cloner-template pipeline: the big lesson is that **most marketing sites are static (Astro, plain HTML, SSR), and for those the served source IS the ground truth** — downloading it beats hand-measuring computed styles every time. Only fall back to browser-side style extraction for true SPAs.\n\nDefault scope: every page in the site's sitemap, pixel-perfect, with real assets and working interactions. If the user scopes it down (\"just the landing page\"), honor that.\n\n## Phase 0 — Project setup\n\n1. Create the project OUTSIDE any repo you're currently in:\n   ```bash\n   git clone --depth 1 https:\u002F\u002Fgithub.com\u002FJCodesMore\u002Fai-website-cloner-template.git ~\u002FDesktop\u002F\u003Chostname>-clone\n   cd ~\u002FDesktop\u002F\u003Chostname>-clone && rm -rf .git && git init -q && npm install\n   ```\n   If the folder exists, ask before overwriting.\n2. Make research dirs: `docs\u002Fresearch\u002F\u003Chostname>\u002F`, `docs\u002Fresearch\u002Fcomponents\u002F`, `docs\u002Fdesign-references\u002F`.\n3. Check `~\u002FDesktop\u002Finspo\u002Fsites.json` (the inspo hub — the permanent home of all finished clones, private repo `caezium\u002Finspo`): if this site was already cloned, ask whether to redo it or extend the existing one. The Desktop folder is a workspace; the clone isn't done until Phase 6 registers it in the hub.\n\n## Phase 1 — Stack detection (decides everything)\n\n`curl -sS \u003Curl>` and inspect:\n\n- **Content-complete HTML** (real headings\u002Fcopy in the response; `_astro\u002F` assets, or no root `\u003Cdiv id=\"root|__next\">` shell) → **source-first path** (rest of this skill).\n- **SPA shell** (empty root div, content materializes from JS) → the template's browser-extraction pipeline is the right tool; follow `.claude\u002Fskills\u002Fclone-website\u002FSKILL.md` inside the scaffold (screenshots + `getComputedStyle()` extraction per section). The verification and parallel-builder phases below still apply.\n\nRecord: framework, stylesheet links, inline `\u003Cstyle>`\u002F`\u003Cscript>` blocks, font links, animation libraries (grep for `gsap`, `ScrollTrigger`, `lenis`, `framer`).\n\n## Phase 2 — Download the ground truth (source-first path)\n\nAll into `docs\u002Fresearch\u002F\u003Chostname>\u002F`:\n\n1. **Every page**: fetch `sitemap.xml` (or `sitemap-index.xml`) for the definitive URL list. No sitemap → crawl nav\u002Ffooter links one level. Save each page's HTML.\n2. **Every stylesheet** — including page-specific ones (Astro emits per-page CSS files; different pages reference different ones).\n3. **Every behavior script** — inline AND external `\u003Cscript type=\"module\">`. These minified files are the exact spec for animations; you will port them, not guess.\n4. **Every asset** to `public\u002F`: write a small Node download script. Sources of asset URLs: `\u003Cimg src>` AND **every `srcset` variant**, `\u003Cvideo src\u002Fposter>`, CSS `url()` refs, favicons, webmanifest, OG images. Missing a `srcset` variant means broken images at other viewport widths — grep the HTML for all of them.\n5. Take reference screenshots with Chrome MCP at 1440px (scroll through, screenshot each viewport-full) and note per-section behavior: what pins, what fades, what's tabbed vs scroll-driven. Two traps:\n   - **Lazy images look blank** during fast programmatic scrolling — a blank card usually means `loading=\"lazy\"` hadn't fired, not a real gap. Confirm via DOM (`naturalWidth > 0`) before \"fixing\" anything.\n   - **`prefers-reduced-motion`**: if macOS Reduce Motion is on, both the original and your screenshots may show the static branches. Check `matchMedia('(prefers-reduced-motion: reduce)')` and read the source scripts for `reduce` gates so you know which animations exist even if you can't see them.\n\n## Phase 3 — Foundation (do this yourself, not via agents)\n\n1. **CSS verbatim**: concatenate all downloaded CSS + inline `\u003Cstyle>` blocks into `src\u002Fapp\u002Fglobals.css`, stripping framework scoping attrs (e.g. `[data-astro-cid-*]`). Keep the original class names. Do NOT translate to Tailwind — every translation step is drift risk, and fidelity beats idiom. Identical duplicate rules across per-page CSS files are harmless.\n2. **Fonts**: replicate the original's Google Fonts `\u003Clink>` (or download self-hosted fonts). The CSS references literal family names, so `next\u002Ffont`'s renamed families would break it — plain `\u003Clink>` in `layout.tsx` is correct here.\n3. **layout.tsx metadata**: title, description, favicon, OG image from the original head.\n4. `trailingSlash: true` in `next.config.ts` if the original uses trailing-slash URLs.\n5. Install animation libs the site uses (`npm i gsap` etc.) — port to the npm package, never vendor the minified bundle.\n6. Write `docs\u002Fresearch\u002FPAGE_TOPOLOGY.md` (section map, interaction model per section) and `BEHAVIORS.md` (exact mechanisms from the de-minified scripts: trigger points, easings, durations, media-query gates). These are the builders' bible.\n\n## Phase 4 — Parallel build\n\nSplit the page into sections (hero, nav, feature blocks, footer, modals...). For each, write a brief spec in `docs\u002Fresearch\u002Fcomponents\u002F\u003Cname>.spec.md`: target file, ground-truth fragment path, interaction model, behavior notes, gotchas.\n\nDispatch parallel builder agents (Agent tool, `general-purpose`), ~4–7 at once. Worktrees are unnecessary **if each agent owns disjoint files** — pre-write shared files yourself and forbid agents from touching them. Every builder prompt includes:\n\n- Ground-truth fragment path + spec path + BEHAVIORS.md reference\n- Conversion rules: strip scoping attrs; `class`→`className`, `srcset`→`srcSet`, camelCase SVG attrs, self-closing tags; **text verbatim — including apostrophe\u002Fquote style** (don't \"fix\" straight quotes to curly or vice versa; it shows up in the fidelity diff)\n- \"All CSS already exists in globals.css under the original class names — write NO new CSS, NO Tailwind\"\n- Port behaviors from the actual source scripts (de-minify), as hooks with cleanup; respect the original's media-query\u002Fmotion gates unless the user asked otherwise\n- \"Only create\u002Fmodify your own target files\"; verify `npx tsc --noEmit`\n- Ask builders to REPORT deviations and shared-component mismatches they notice — they catch real fidelity bugs (per-page CTA text variants, footer blocks present only on some pages)\n\nCross-component dependencies: use composition (`\u003CHero>{\u003CHeroCard\u002F>}\u003C\u002FHero>` via children) so agents never import each other's unfinished files.\n\n**Multi-page sites**: extract shared chrome (Nav\u002FFooter\u002FModals) into components with variant props FIRST — then per-page builders reuse them. Grep every page for the differences before assuming they're identical: nav light\u002Fdark variant, CTA label, `aria-current`, footer link blocks. Pages sharing one template (blog posts, comparison pages) batch 5 per agent.\n\nAssemble `src\u002Fapp\u002Fpage.tsx` (and routes) yourself; run `npm run build` after merging.\n\n## Phase 5 — Verify (don't skip; this catches what eyeballs miss)\n\n1. `npx tsc --noEmit` and `npm run build` — must be clean.\n2. `npx next start -p 3210` and run the bundled text-fidelity diff:\n   ```bash\n   python3 scripts\u002Ffidelity-diff.py --research docs\u002Fresearch\u002F\u003Chostname> --base http:\u002F\u002Flocalhost:3210\n   ```\n   (Copy `scripts\u002Ffidelity-diff.py` from this skill's directory into the project.) It strips tags\u002Fscripts, decodes entities, and reports missing words per page. Target ≥99%; chase every gap to root cause — real omissions vs entity-encoding artifacts vs apostrophe-style drift all look different in the output.\n3. Live QA with Chrome MCP: side-by-side against the original at the same scroll positions; click every interactive element (tabs, accordions, toggles, modals); check the console for errors. Verify scroll-pinned sections actually pin (`.pin-spacer` exists, body height grew).\n4. Capture a real homepage screenshot of the CLONE for the hub card — the template's stock `docs\u002Fdesign-references\u002Fcomparison.png` is a demo image, not your site; delete it:\n   ```bash\n   \"\u002FApplications\u002FGoogle Chrome.app\u002FContents\u002FMacOS\u002FGoogle Chrome\" --headless --disable-gpu \\\n     --screenshot=docs\u002Fdesign-references\u002Fclone-home-1440.png --window-size=1440,900 \\\n     --hide-scrollbars --virtual-time-budget=12000 http:\u002F\u002Flocalhost:3210\u002F\n   ```\n5. Commit with a summary of sections\u002Fcomponents\u002Fassets. No AI attribution in the message.\n\n## Phase 6 — Register in the inspo hub\n\nEvery finished clone gets consolidated into `~\u002FDesktop\u002Finspo` (gallery of all clones; `sites.json` is the single source of truth — `index.html` renders purely from it, no other wiring).\n\n1. Snapshot the code:\n   ```bash\n   rsync -a --delete --exclude node_modules --exclude .next --exclude .git \\\n     ~\u002FDesktop\u002F\u003Chostname>-clone\u002F ~\u002FDesktop\u002Finspo\u002Fsites\u002F\u003Cid>\u002F\n   git -C ~\u002FDesktop\u002F\u003Chostname>-clone bundle create ~\u002FDesktop\u002Finspo\u002Fhistories\u002F\u003Cid>.bundle --all\n   ```\n   `\u003Cid>` = short lowercase name (see existing ids in sites.json).\n2. Add a `sites.json` entry: `kind: \"nextjs\"`, `port` = next free 31xx, `thumbnail` = the real clone screenshot from Phase 5 (never a stock\u002Ftemplate image), 3–5 design-vibe `tags` (reuse existing tag vocabulary where it fits), `description` = one line on the design language, `original_url`, and `run: \".\u002Fserve.sh \u003Cid>\"`.\n3. Verify: `cd ~\u002FDesktop\u002Finspo && .\u002Fserve.sh` → the new card renders with its thumbnail at localhost:4600. Then commit + push (`origin` = private `caezium\u002Finspo`).\n4. Ask the user whether to delete the Desktop working folder. Before any deletion: check no other session is actively developing it (uncommitted work, recent commits you didn't make, running dev servers) — the hub snapshot captures files, not in-flight work. The history bundle preserves the git log either way.\n\n## Judgment calls to surface to the user (don't silently decide)\n\n- **Reduced motion**: if the original gates animations on `prefers-reduced-motion` and the user's OS has it on, the clone will look \"broken but faithful\". Default to matching the original's code; if the user reports missing animations, offer the always-animate override (drop the gates, comment the deviation).\n- **Backend endpoints** (`\u002Fapi\u002Fdownload`, form posts): a static clone can't replicate them. Keep the original URLs\u002Factions and say so in the completion report.\n- **Analytics** (PostHog, GA): strip them; note it.\n\n## Completion report\n\nSections built, components created, assets downloaded, routes generated, build status, fidelity-diff scores, interactions tested, known gaps (backend routes, uncloned linked pages), and hub registration (sites.json id + port, pushed to caezium\u002Finspo).\n","# Clone Site\n\nReverse-engineer the site(s) at `$ARGUMENTS` into a Next.js codebase. This skill encodes a refined version of the ai-website-cloner-template pipeline: the big lesson is that **most marketing sites are static (Astro, plain HTML, SSR), and for those the served source IS the ground truth** — downloading it beats hand-measuring computed styles every time. Only fall back to browser-side style extraction for true SPAs.\n\nDefault scope: every page in the site's sitemap, pixel-perfect, with real assets and working interactions. If the user scopes it down (\"just the landing page\"), honor that.\n\n## Phase 0 — Project setup\n\n1. Create the project OUTSIDE any repo you're currently in:\n   ```bash\n   git clone --depth 1 https:\u002F\u002Fgithub.com\u002FJCodesMore\u002Fai-website-cloner-template.git ~\u002FDesktop\u002F\u003Chostname>-clone\n   cd ~\u002FDesktop\u002F\u003Chostname>-clone && rm -rf .git && git init -q && npm install\n   ```\n   If the folder exists, ask before overwriting.\n2. Make research dirs: `docs\u002Fresearch\u002F\u003Chostname>\u002F`, `docs\u002Fresearch\u002Fcomponents\u002F`, `docs\u002Fdesign-references\u002F`.\n3. Check `~\u002FDesktop\u002Finspo\u002Fsites.json` (the inspo hub — the permanent home of all finished clones, private repo `caezium\u002Finspo`): if this site was already cloned, ask whether to redo it or extend the existing one. The Desktop folder is a workspace; the clone isn't done until Phase 6 registers it in the hub.\n\n## Phase 1 — Stack detection (decides everything)\n\n`curl -sS \u003Curl>` and inspect:\n\n- **Content-complete HTML** (real headings\u002Fcopy in the response; `_astro\u002F` assets, or no root `\u003Cdiv id=\"root|__next\">` shell) → **source-first path** (rest of this skill).\n- **SPA shell** (empty root div, content materializes from JS) → the template's browser-extraction pipeline is the right tool; follow `.claude\u002Fskills\u002Fclone-website\u002FSKILL.md` inside the scaffold (screenshots + `getComputedStyle()` extraction per section). The verification and parallel-builder phases below still apply.\n\nRecord: framework, stylesheet links, inline `\u003Cstyle>`\u002F`\u003Cscript>` blocks, font links, animation libraries (grep for `gsap`, `ScrollTrigger`, `lenis`, `framer`).\n\n## Phase 2 — Download the ground truth (source-first path)\n\nAll into `docs\u002Fresearch\u002F\u003Chostname>\u002F`:\n\n1. **Every page**: fetch `sitemap.xml` (or `sitemap-index.xml`) for the definitive URL list. No sitemap → crawl nav\u002Ffooter links one level. Save each page's HTML.\n2. **Every stylesheet** — including page-specific ones (Astro emits per-page CSS files; different pages reference different ones).\n3. **Every behavior script** — inline AND external `\u003Cscript type=\"module\">`. These minified files are the exact spec for animations; you will port them, not guess.\n4. **Every asset** to `public\u002F`: write a small Node download script. Sources of asset URLs: `\u003Cimg src>` AND **every `srcset` variant**, `\u003Cvideo src\u002Fposter>`, CSS `url()` refs, favicons, webmanifest, OG images. Missing a `srcset` variant means broken images at other viewport widths — grep the HTML for all of them.\n5. Take reference screenshots with Chrome MCP at 1440px (scroll through, screenshot each viewport-full) and note per-section behavior: what pins, what fades, what's tabbed vs scroll-driven. Two traps:\n   - **Lazy images look blank** during fast programmatic scrolling — a blank card usually means `loading=\"lazy\"` hadn't fired, not a real gap. Confirm via DOM (`naturalWidth > 0`) before \"fixing\" anything.\n   - **`prefers-reduced-motion`**: if macOS Reduce Motion is on, both the original and your screenshots may show the static branches. Check `matchMedia('(prefers-reduced-motion: reduce)')` and read the source scripts for `reduce` gates so you know which animations exist even if you can't see them.\n\n## Phase 3 — Foundation (do this yourself, not via agents)\n\n1. **CSS verbatim**: concatenate all downloaded CSS + inline `\u003Cstyle>` blocks into `src\u002Fapp\u002Fglobals.css`, stripping framework scoping attrs (e.g. `[data-astro-cid-*]`). Keep the original class names. Do NOT translate to Tailwind — every translation step is drift risk, and fidelity beats idiom. Identical duplicate rules across per-page CSS files are harmless.\n2. **Fonts**: replicate the original's Google Fonts `\u003Clink>` (or download self-hosted fonts). The CSS references literal family names, so `next\u002Ffont`'s renamed families would break it — plain `\u003Clink>` in `layout.tsx` is correct here.\n3. **layout.tsx metadata**: title, description, favicon, OG image from the original head.\n4. `trailingSlash: true` in `next.config.ts` if the original uses trailing-slash URLs.\n5. Install animation libs the site uses (`npm i gsap` etc.) — port to the npm package, never vendor the minified bundle.\n6. Write `docs\u002Fresearch\u002FPAGE_TOPOLOGY.md` (section map, interaction model per section) and `BEHAVIORS.md` (exact mechanisms from the de-minified scripts: trigger points, easings, durations, media-query gates). These are the builders' bible.\n\n## Phase 4 — Parallel build\n\nSplit the page into sections (hero, nav, feature blocks, footer, modals...). For each, write a brief spec in `docs\u002Fresearch\u002Fcomponents\u002F\u003Cname>.spec.md`: target file, ground-truth fragment path, interaction model, behavior notes, gotchas.\n\nDispatch parallel builder agents (Agent tool, `general-purpose`), ~4–7 at once. Worktrees are unnecessary **if each agent owns disjoint files** — pre-write shared files yourself and forbid agents from touching them. Every builder prompt includes:\n\n- Ground-truth fragment path + spec path + BEHAVIORS.md reference\n- Conversion rules: strip scoping attrs; `class`→`className`, `srcset`→`srcSet`, camelCase SVG attrs, self-closing tags; **text verbatim — including apostrophe\u002Fquote style** (don't \"fix\" straight quotes to curly or vice versa; it shows up in the fidelity diff)\n- \"All CSS already exists in globals.css under the original class names — write NO new CSS, NO Tailwind\"\n- Port behaviors from the actual source scripts (de-minify), as hooks with cleanup; respect the original's media-query\u002Fmotion gates unless the user asked otherwise\n- \"Only create\u002Fmodify your own target files\"; verify `npx tsc --noEmit`\n- Ask builders to REPORT deviations and shared-component mismatches they notice — they catch real fidelity bugs (per-page CTA text variants, footer blocks present only on some pages)\n\nCross-component dependencies: use composition (`\u003CHero>{\u003CHeroCard\u002F>}\u003C\u002FHero>` via children) so agents never import each other's unfinished files.\n\n**Multi-page sites**: extract shared chrome (Nav\u002FFooter\u002FModals) into components with variant props FIRST — then per-page builders reuse them. Grep every page for the differences before assuming they're identical: nav light\u002Fdark variant, CTA label, `aria-current`, footer link blocks. Pages sharing one template (blog posts, comparison pages) batch 5 per agent.\n\nAssemble `src\u002Fapp\u002Fpage.tsx` (and routes) yourself; run `npm run build` after merging.\n\n## Phase 5 — Verify (don't skip; this catches what eyeballs miss)\n\n1. `npx tsc --noEmit` and `npm run build` — must be clean.\n2. `npx next start -p 3210` and run the bundled text-fidelity diff:\n   ```bash\n   python3 scripts\u002Ffidelity-diff.py --research docs\u002Fresearch\u002F\u003Chostname> --base http:\u002F\u002Flocalhost:3210\n   ```\n   (Copy `scripts\u002Ffidelity-diff.py` from this skill's directory into the project.) It strips tags\u002Fscripts, decodes entities, and reports missing words per page. Target ≥99%; chase every gap to root cause — real omissions vs entity-encoding artifacts vs apostrophe-style drift all look different in the output.\n3. Live QA with Chrome MCP: side-by-side against the original at the same scroll positions; click every interactive element (tabs, accordions, toggles, modals); check the console for errors. Verify scroll-pinned sections actually pin (`.pin-spacer` exists, body height grew).\n4. Capture a real homepage screenshot of the CLONE for the hub card — the template's stock `docs\u002Fdesign-references\u002Fcomparison.png` is a demo image, not your site; delete it:\n   ```bash\n   \"\u002FApplications\u002FGoogle Chrome.app\u002FContents\u002FMacOS\u002FGoogle Chrome\" --headless --disable-gpu \\\n     --screenshot=docs\u002Fdesign-references\u002Fclone-home-1440.png --window-size=1440,900 \\\n     --hide-scrollbars --virtual-time-budget=12000 http:\u002F\u002Flocalhost:3210\u002F\n   ```\n5. Commit with a summary of sections\u002Fcomponents\u002Fassets. No AI attribution in the message.\n\n## Phase 6 — Register in the inspo hub\n\nEvery finished clone gets consolidated into `~\u002FDesktop\u002Finspo` (gallery of all clones; `sites.json` is the single source of truth — `index.html` renders purely from it, no other wiring).\n\n1. Snapshot the code:\n   ```bash\n   rsync -a --delete --exclude node_modules --exclude .next --exclude .git \\\n     ~\u002FDesktop\u002F\u003Chostname>-clone\u002F ~\u002FDesktop\u002Finspo\u002Fsites\u002F\u003Cid>\u002F\n   git -C ~\u002FDesktop\u002F\u003Chostname>-clone bundle create ~\u002FDesktop\u002Finspo\u002Fhistories\u002F\u003Cid>.bundle --all\n   ```\n   `\u003Cid>` = short lowercase name (see existing ids in sites.json).\n2. Add a `sites.json` entry: `kind: \"nextjs\"`, `port` = next free 31xx, `thumbnail` = the real clone screenshot from Phase 5 (never a stock\u002Ftemplate image), 3–5 design-vibe `tags` (reuse existing tag vocabulary where it fits), `description` = one line on the design language, `original_url`, and `run: \".\u002Fserve.sh \u003Cid>\"`.\n3. Verify: `cd ~\u002FDesktop\u002Finspo && .\u002Fserve.sh` → the new card renders with its thumbnail at localhost:4600. Then commit + push (`origin` = private `caezium\u002Finspo`).\n4. Ask the user whether to delete the Desktop working folder. Before any deletion: check no other session is actively developing it (uncommitted work, recent commits you didn't make, running dev servers) — the hub snapshot captures files, not in-flight work. The history bundle preserves the git log either way.\n\n## Judgment calls to surface to the user (don't silently decide)\n\n- **Reduced motion**: if the original gates animations on `prefers-reduced-motion` and the user's OS has it on, the clone will look \"broken but faithful\". Default to matching the original's code; if the user reports missing animations, offer the always-animate override (drop the gates, comment the deviation).\n- **Backend endpoints** (`\u002Fapi\u002Fdownload`, form posts): a static clone can't replicate them. Keep the original URLs\u002Factions and say so in the completion report.\n- **Analytics** (PostHog, GA): strip them; note it.\n\n## Completion report\n\nSections built, components created, assets downloaded, routes generated, build status, fidelity-diff scores, interactions tested, known gaps (backend routes, uncloned linked pages), and hub registration (sites.json id + port, pushed to caezium\u002Finspo).\n",{"name":5,"description":7,"argument-hint":44},"\u003Curl> [\u003Curl2> ...] [notes like 'landing page only' or 'always animate']","main","6ef866230c1ba3459fd08fc65141dfd37fffd41a",0,"https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills","https:\u002F\u002Fskills.henryzh.dev","https:\u002F\u002Fgithub.com\u002Fcaezium","henryzh.dev","quant, data science, full-stack, robotics.\r\nbuilding cool stuff","2026-08-24 19:21:44",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add caezium\u002Fskills --skill clone-site",{"tool":60,"command":61},"bunx","bunx skills add caezium\u002Fskills --skill clone-site",{"tool":63,"command":64},"pnpm","pnpm dlx skills add caezium\u002Fskills --skill clone-site","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fclone-site\u002FSKILL.md",true,[68],{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"scripts\u002Ffidelity-diff.py","SCRIPT","脚本",2905,"https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fclone-site\u002Fscripts\u002Ffidelity-diff.py",[75,99,127,145,165,187],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":91,"publishedAt":39},"01M71JT4RYCAS18RF6003YYR1D","writing-for-agents","Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwriting-for-agents\u002FSKILL.md",[81,86],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":87,"categoryName":88,"taxonomyType":89,"taxonomyTypeDesc":90},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[92,93,94,95,96,97,98],"writing for agents","for","writing","editing","use","documents","when",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":108,"publishedAt":39},"01M71JT0GES4AZ5ADH8EADNN1Z","wrangler","Cloudflare Workers CLI for deploying, developing, and managing Workers, KV, R2, D1, Vectorize, Hyperdrive, Workers AI, Containers, Queues, Workflows, Pipelines, and Secrets Store. Load before running wrangler commands to ensure correct syntax and best practices. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwrangler\u002FSKILL.md",[105],{"categoryNo":106,"categoryName":107,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000010","后端与接口",[101,109,110,111,112,113,114,115,116,117,118,119,120,93,121,122,123,124,125,126],"cloudflare","d1","knowledge","workflows","cli","secrets","commands","syntax","cloudflare workers","r2","queues","running","containers","correct","load","workers","best practices","store",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":39},"01M71JSWX4R203M32K9A18AAW8","workers-best-practices","Reviews and authors Cloudflare Workers code against production best practices. Load when writing new Workers, reviewing Worker code, configuring wrangler.jsonc, or checking for common Workers anti-patterns (streaming, floating promises, global state, secrets, bindings, observability). Biases towards retrieval from Cloudflare docs over pre-trained knowledge.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fworkers-best-practices\u002FSKILL.md",[],[134,124,125,135,136,137,93,109,138,111,139,101,94,123,98,140,141,142,143,144],"workers best practices","observability","reviews","promises","worker","new","code","common","streaming","state","anti-patterns",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":39},"01M71JST6P88MXGT2MWDTPJGEG","wizard","Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwizard\u002FSKILL.md",[],[147,120,152,93,153,154,155,32,96,156,98,157,158,159,160,161,162,163,164,114],"setting","up","ci","provisioning infrastructure","invoke","Bash","one","interactive","can","credentials","dashboard","generate","human",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":169,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":39},"01M71JSQ95S7BQ61DAPN95X2W4","why","Use for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds. Discovers available evidence sources, searches each relevant category, and returns a cited read on decisions and tradeoffs. Use how for runtime behavior.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwhy\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwhy\u002FSKILL.md",[],[167,173,174,175,176,93,177,178,96,179,180,181,182,183,184,185,186],"sources","thresholds","evidence","relevant","runtime","design","decisions","work","how","behavior","read","data","rationale","returns",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":196,"publishedAt":39},"01M71JSMHFVSH8HK8GXN6YAX6J","week-prep","Generate a briefing with calendar, tasks, and attention flags. Use for \"week prep\", \"briefing\", or \"what's on this week\".","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fweek-prep\u002FSKILL.md",[193],{"categoryNo":194,"categoryName":195,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000023","Skill与智能体开发",[197,198,199,200,201,93,202,203,204,205,96,157,206,207,208,163,209,183,210,211],"week prep","prep","deep","attention","get","search","messages","briefing","MCP","tasks","with","slack","calendar","flags","grep"]