[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-automattic-liberate":3,"mdc--11w3yz-key":40,"related-org-automattic-liberate":572,"related-repo-automattic-liberate":749},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":35,"sourceUrl":38,"mdContent":39},"liberate","migrate websites to WordPress","Import and rebuild a website from a closed platform (Wix, Squarespace, Webflow, Shopify, GoDaddy, Hostinger, HubSpot, Weebly) into a Studio WordPress site. Extracts pages\u002Fposts\u002Fproducts + media, then reconstructs the design as editable blocks + WooCommerce OR as a high-fidelity replica theme. Invoke when the user wants to migrate, import, liberate, or rebuild a site from one of these platforms.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"automattic","Automattic","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fautomattic.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"CMS","cms","tag",{"name":17,"slug":18,"type":15},"WordPress","wordpress",{"name":20,"slug":21,"type":15},"Migration","migration",{"name":23,"slug":24,"type":15},"Web Development","web-development",484,"https:\u002F\u002Fgithub.com\u002FAutomattic\u002Fstudio","2026-07-09T06:47:33.454311",null,82,[31,32,33,34,18],"agents","cli","desktop","electron",{"repoUrl":26,"stars":25,"forks":29,"topics":36,"description":37},[31,32,33,34,18],"WordPress Studio, a free desktop app and CLI that helps developers streamline their local WordPress development workflow.","https:\u002F\u002Fgithub.com\u002FAutomattic\u002Fstudio\u002Ftree\u002FHEAD\u002Fapps\u002Fcli\u002Fai\u002Fskills\u002Fliberate","---\nname: liberate\ndescription: Import and rebuild a website from a closed platform (Wix, Squarespace, Webflow, Shopify, GoDaddy, Hostinger, HubSpot, Weebly) into a Studio WordPress site. Extracts pages\u002Fposts\u002Fproducts + media, then reconstructs the design as editable blocks + WooCommerce OR as a high-fidelity replica theme. Invoke when the user wants to migrate, import, liberate, or rebuild a site from one of these platforms.\n---\n\n# Liberate a website into Studio\n\nThis skill is only a **redirect**. The real, always-up-to-date pipeline lives in the Data Liberation engine's own skill. Do NOT re-plan or summarize the steps here — defer to the engine skill so its updates take effect automatically. Your job is just to (1) stand the engine up and (2) follow its skill, translating its tool calls into Studio's bridge.\n\n## Step 1 — Locate the engine\n\nCall the `data_liberation` tool with `{ tool: \"setup\" }`. It returns `{ engineDir, liberateSkill, skillsDir }` — the paths to the engine's skill files. The engine ships prebuilt with Studio, so this is instant — just proceed.\n\n## Step 2 — Load the engine's tool catalog\n\nCall `data_liberation` with `{ tool: \"list\" }` to load the engine's full tool catalog (every tool name + its argument JSON-Schema). Treat that catalog as the **source of truth** for tool names and arguments — the engine skill names the tools to call, but the catalog tells you their exact arguments. If you are ever unsure of an argument, re-read the catalog rather than guessing.\n\n## Step 3 — Follow the engine's real liberate skill\n\n`Read` the `liberateSkill` path from Step 1 (the engine's own `SKILL.md`) and execute its workflow verbatim, applying these Studio bindings wherever it instructs you:\n\n- **Engine tool call** — where it says \"call the `liberate_X` tool with `{…}`\", instead call Studio's `data_liberation` tool with `{ tool: \"liberate_X\", args: {…} }` and read the returned text\u002FJSON as that tool's result. (`args` is a JSON **object**, never a stringified JSON.)\n- **Sub-skill dispatch** — where it dispatches another skill (e.g. `replicate-with-blocks` \u002F `replicate-theme`), `Read` it under `engineDir\u002Fskills\u002F\u003Cname>\u002FSKILL.md` and continue inline with these same bindings.\n- **Install & import** — follow the engine's install step (it documents both `liberate_preview` and `liberate_install_theme` + `liberate_import`); `\u002Fliberate` is the engine's *standalone* context, so prefer **`liberate_preview`** (one call: creates the Studio site, imports the WXR + media, runs WP-default cleanup, activates the theme). Two Studio specifics the engine can't know: (1) `liberate_import` needs credentials — create an application password with `studio wp user application-password create` and pass it; (2) never point `studio wp import` \u002F `wp eval-file` at the host `_liberations` path — Studio's PHP sandbox only reads inside the site (`\u002Fwordpress\u002F...`), so let `liberate_preview` \u002F `liberate_import` do the import rather than hand-rolling it.\n- **Don't skip the final QA** — it's nested a level deeper and easy to stop short of after a long run. The chosen sub-skill ends with a mandatory parity step: **blocks** → `Read` `engineDir\u002Fskills\u002Fdesign-qa\u002FSKILL.md` and complete its loop; **theme** → `replicate-theme`'s `liberate_compare` step. Run it fully; never substitute eyeballed screenshots, and honor the engine's honesty rule — no \"looks good \u002F matches\" without measured parity.\n- **`liberate_blockify_wxr`** — if it reports \"no platform recorded\", re-call with the platform from `liberate_detect` (e.g. `{ platform: \"wix\" }`); a no-op on platforms without a block recipe is expected, not a failure.\n- **Timeouts (`MCP error -32001`) mean \"still working,\" not \"failed.\"** Any engine op can return `-32001` on the client side while it keeps running **inside the engine** — never treat it as a failure and never blindly re-invoke (a re-invoke often errors, e.g. `extraction already in progress`). For extraction\u002Freconstruct ops (`liberate_extract`, `liberate_screenshot`, reconstruct), poll `liberate_status` with `{ outputDir }` until `running` is `false`, then continue from the output artifacts. For any other op that times out, wait and re-check its output\u002Fstate before concluding it failed.\n\n## Reporting\n\nWhen the engine finishes, summarize its run report: the Studio site built into, the reconstruct path taken, counts (pages\u002Fposts\u002Fproducts\u002Fmedia), the parity\u002Fverdict, and anything flagged for manual attention.\n",{"data":41,"body":42},{"name":4,"description":6},{"type":43,"children":44},"root",[45,54,68,75,105,111,138,144,171,561,567],{"type":46,"tag":47,"props":48,"children":50},"element","h1",{"id":49},"liberate-a-website-into-studio",[51],{"type":52,"value":53},"text","Liberate a website into Studio",{"type":46,"tag":55,"props":56,"children":57},"p",{},[58,60,66],{"type":52,"value":59},"This skill is only a ",{"type":46,"tag":61,"props":62,"children":63},"strong",{},[64],{"type":52,"value":65},"redirect",{"type":52,"value":67},". The real, always-up-to-date pipeline lives in the Data Liberation engine's own skill. Do NOT re-plan or summarize the steps here — defer to the engine skill so its updates take effect automatically. Your job is just to (1) stand the engine up and (2) follow its skill, translating its tool calls into Studio's bridge.",{"type":46,"tag":69,"props":70,"children":72},"h2",{"id":71},"step-1-locate-the-engine",[73],{"type":52,"value":74},"Step 1 — Locate the engine",{"type":46,"tag":55,"props":76,"children":77},{},[78,80,87,89,95,97,103],{"type":52,"value":79},"Call the ",{"type":46,"tag":81,"props":82,"children":84},"code",{"className":83},[],[85],{"type":52,"value":86},"data_liberation",{"type":52,"value":88}," tool with ",{"type":46,"tag":81,"props":90,"children":92},{"className":91},[],[93],{"type":52,"value":94},"{ tool: \"setup\" }",{"type":52,"value":96},". It returns ",{"type":46,"tag":81,"props":98,"children":100},{"className":99},[],[101],{"type":52,"value":102},"{ engineDir, liberateSkill, skillsDir }",{"type":52,"value":104}," — the paths to the engine's skill files. The engine ships prebuilt with Studio, so this is instant — just proceed.",{"type":46,"tag":69,"props":106,"children":108},{"id":107},"step-2-load-the-engines-tool-catalog",[109],{"type":52,"value":110},"Step 2 — Load the engine's tool catalog",{"type":46,"tag":55,"props":112,"children":113},{},[114,116,121,123,129,131,136],{"type":52,"value":115},"Call ",{"type":46,"tag":81,"props":117,"children":119},{"className":118},[],[120],{"type":52,"value":86},{"type":52,"value":122}," with ",{"type":46,"tag":81,"props":124,"children":126},{"className":125},[],[127],{"type":52,"value":128},"{ tool: \"list\" }",{"type":52,"value":130}," to load the engine's full tool catalog (every tool name + its argument JSON-Schema). Treat that catalog as the ",{"type":46,"tag":61,"props":132,"children":133},{},[134],{"type":52,"value":135},"source of truth",{"type":52,"value":137}," for tool names and arguments — the engine skill names the tools to call, but the catalog tells you their exact arguments. If you are ever unsure of an argument, re-read the catalog rather than guessing.",{"type":46,"tag":69,"props":139,"children":141},{"id":140},"step-3-follow-the-engines-real-liberate-skill",[142],{"type":52,"value":143},"Step 3 — Follow the engine's real liberate skill",{"type":46,"tag":55,"props":145,"children":146},{},[147,153,155,161,163,169],{"type":46,"tag":81,"props":148,"children":150},{"className":149},[],[151],{"type":52,"value":152},"Read",{"type":52,"value":154}," the ",{"type":46,"tag":81,"props":156,"children":158},{"className":157},[],[159],{"type":52,"value":160},"liberateSkill",{"type":52,"value":162}," path from Step 1 (the engine's own ",{"type":46,"tag":81,"props":164,"children":166},{"className":165},[],[167],{"type":52,"value":168},"SKILL.md",{"type":52,"value":170},") and execute its workflow verbatim, applying these Studio bindings wherever it instructs you:",{"type":46,"tag":172,"props":173,"children":174},"ul",{},[175,230,271,390,443,473],{"type":46,"tag":176,"props":177,"children":178},"li",{},[179,184,186,192,193,199,201,206,207,213,215,221,223,228],{"type":46,"tag":61,"props":180,"children":181},{},[182],{"type":52,"value":183},"Engine tool call",{"type":52,"value":185}," — where it says \"call the ",{"type":46,"tag":81,"props":187,"children":189},{"className":188},[],[190],{"type":52,"value":191},"liberate_X",{"type":52,"value":88},{"type":46,"tag":81,"props":194,"children":196},{"className":195},[],[197],{"type":52,"value":198},"{…}",{"type":52,"value":200},"\", instead call Studio's ",{"type":46,"tag":81,"props":202,"children":204},{"className":203},[],[205],{"type":52,"value":86},{"type":52,"value":88},{"type":46,"tag":81,"props":208,"children":210},{"className":209},[],[211],{"type":52,"value":212},"{ tool: \"liberate_X\", args: {…} }",{"type":52,"value":214}," and read the returned text\u002FJSON as that tool's result. (",{"type":46,"tag":81,"props":216,"children":218},{"className":217},[],[219],{"type":52,"value":220},"args",{"type":52,"value":222}," is a JSON ",{"type":46,"tag":61,"props":224,"children":225},{},[226],{"type":52,"value":227},"object",{"type":52,"value":229},", never a stringified JSON.)",{"type":46,"tag":176,"props":231,"children":232},{},[233,238,240,246,248,254,256,261,263,269],{"type":46,"tag":61,"props":234,"children":235},{},[236],{"type":52,"value":237},"Sub-skill dispatch",{"type":52,"value":239}," — where it dispatches another skill (e.g. ",{"type":46,"tag":81,"props":241,"children":243},{"className":242},[],[244],{"type":52,"value":245},"replicate-with-blocks",{"type":52,"value":247}," \u002F ",{"type":46,"tag":81,"props":249,"children":251},{"className":250},[],[252],{"type":52,"value":253},"replicate-theme",{"type":52,"value":255},"), ",{"type":46,"tag":81,"props":257,"children":259},{"className":258},[],[260],{"type":52,"value":152},{"type":52,"value":262}," it under ",{"type":46,"tag":81,"props":264,"children":266},{"className":265},[],[267],{"type":52,"value":268},"engineDir\u002Fskills\u002F\u003Cname>\u002FSKILL.md",{"type":52,"value":270}," and continue inline with these same bindings.",{"type":46,"tag":176,"props":272,"children":273},{},[274,279,281,287,289,295,297,303,305,311,313,319,321,329,331,336,338,344,346,352,353,359,361,367,369,375,377,382,383,388],{"type":46,"tag":61,"props":275,"children":276},{},[277],{"type":52,"value":278},"Install & import",{"type":52,"value":280}," — follow the engine's install step (it documents both ",{"type":46,"tag":81,"props":282,"children":284},{"className":283},[],[285],{"type":52,"value":286},"liberate_preview",{"type":52,"value":288}," and ",{"type":46,"tag":81,"props":290,"children":292},{"className":291},[],[293],{"type":52,"value":294},"liberate_install_theme",{"type":52,"value":296}," + ",{"type":46,"tag":81,"props":298,"children":300},{"className":299},[],[301],{"type":52,"value":302},"liberate_import",{"type":52,"value":304},"); ",{"type":46,"tag":81,"props":306,"children":308},{"className":307},[],[309],{"type":52,"value":310},"\u002Fliberate",{"type":52,"value":312}," is the engine's ",{"type":46,"tag":314,"props":315,"children":316},"em",{},[317],{"type":52,"value":318},"standalone",{"type":52,"value":320}," context, so prefer ",{"type":46,"tag":61,"props":322,"children":323},{},[324],{"type":46,"tag":81,"props":325,"children":327},{"className":326},[],[328],{"type":52,"value":286},{"type":52,"value":330}," (one call: creates the Studio site, imports the WXR + media, runs WP-default cleanup, activates the theme). Two Studio specifics the engine can't know: (1) ",{"type":46,"tag":81,"props":332,"children":334},{"className":333},[],[335],{"type":52,"value":302},{"type":52,"value":337}," needs credentials — create an application password with ",{"type":46,"tag":81,"props":339,"children":341},{"className":340},[],[342],{"type":52,"value":343},"studio wp user application-password create",{"type":52,"value":345}," and pass it; (2) never point ",{"type":46,"tag":81,"props":347,"children":349},{"className":348},[],[350],{"type":52,"value":351},"studio wp import",{"type":52,"value":247},{"type":46,"tag":81,"props":354,"children":356},{"className":355},[],[357],{"type":52,"value":358},"wp eval-file",{"type":52,"value":360}," at the host ",{"type":46,"tag":81,"props":362,"children":364},{"className":363},[],[365],{"type":52,"value":366},"_liberations",{"type":52,"value":368}," path — Studio's PHP sandbox only reads inside the site (",{"type":46,"tag":81,"props":370,"children":372},{"className":371},[],[373],{"type":52,"value":374},"\u002Fwordpress\u002F...",{"type":52,"value":376},"), so let ",{"type":46,"tag":81,"props":378,"children":380},{"className":379},[],[381],{"type":52,"value":286},{"type":52,"value":247},{"type":46,"tag":81,"props":384,"children":386},{"className":385},[],[387],{"type":52,"value":302},{"type":52,"value":389}," do the import rather than hand-rolling it.",{"type":46,"tag":176,"props":391,"children":392},{},[393,398,400,405,407,412,414,420,422,427,428,433,435,441],{"type":46,"tag":61,"props":394,"children":395},{},[396],{"type":52,"value":397},"Don't skip the final QA",{"type":52,"value":399}," — it's nested a level deeper and easy to stop short of after a long run. The chosen sub-skill ends with a mandatory parity step: ",{"type":46,"tag":61,"props":401,"children":402},{},[403],{"type":52,"value":404},"blocks",{"type":52,"value":406}," → ",{"type":46,"tag":81,"props":408,"children":410},{"className":409},[],[411],{"type":52,"value":152},{"type":52,"value":413}," ",{"type":46,"tag":81,"props":415,"children":417},{"className":416},[],[418],{"type":52,"value":419},"engineDir\u002Fskills\u002Fdesign-qa\u002FSKILL.md",{"type":52,"value":421}," and complete its loop; ",{"type":46,"tag":61,"props":423,"children":424},{},[425],{"type":52,"value":426},"theme",{"type":52,"value":406},{"type":46,"tag":81,"props":429,"children":431},{"className":430},[],[432],{"type":52,"value":253},{"type":52,"value":434},"'s ",{"type":46,"tag":81,"props":436,"children":438},{"className":437},[],[439],{"type":52,"value":440},"liberate_compare",{"type":52,"value":442}," step. Run it fully; never substitute eyeballed screenshots, and honor the engine's honesty rule — no \"looks good \u002F matches\" without measured parity.",{"type":46,"tag":176,"props":444,"children":445},{},[446,455,457,463,465,471],{"type":46,"tag":61,"props":447,"children":448},{},[449],{"type":46,"tag":81,"props":450,"children":452},{"className":451},[],[453],{"type":52,"value":454},"liberate_blockify_wxr",{"type":52,"value":456}," — if it reports \"no platform recorded\", re-call with the platform from ",{"type":46,"tag":81,"props":458,"children":460},{"className":459},[],[461],{"type":52,"value":462},"liberate_detect",{"type":52,"value":464}," (e.g. ",{"type":46,"tag":81,"props":466,"children":468},{"className":467},[],[469],{"type":52,"value":470},"{ platform: \"wix\" }",{"type":52,"value":472},"); a no-op on platforms without a block recipe is expected, not a failure.",{"type":46,"tag":176,"props":474,"children":475},{},[476,489,491,497,499,504,506,512,514,520,522,528,530,536,537,543,545,551,553,559],{"type":46,"tag":61,"props":477,"children":478},{},[479,481,487],{"type":52,"value":480},"Timeouts (",{"type":46,"tag":81,"props":482,"children":484},{"className":483},[],[485],{"type":52,"value":486},"MCP error -32001",{"type":52,"value":488},") mean \"still working,\" not \"failed.\"",{"type":52,"value":490}," Any engine op can return ",{"type":46,"tag":81,"props":492,"children":494},{"className":493},[],[495],{"type":52,"value":496},"-32001",{"type":52,"value":498}," on the client side while it keeps running ",{"type":46,"tag":61,"props":500,"children":501},{},[502],{"type":52,"value":503},"inside the engine",{"type":52,"value":505}," — never treat it as a failure and never blindly re-invoke (a re-invoke often errors, e.g. ",{"type":46,"tag":81,"props":507,"children":509},{"className":508},[],[510],{"type":52,"value":511},"extraction already in progress",{"type":52,"value":513},"). For extraction\u002Freconstruct ops (",{"type":46,"tag":81,"props":515,"children":517},{"className":516},[],[518],{"type":52,"value":519},"liberate_extract",{"type":52,"value":521},", ",{"type":46,"tag":81,"props":523,"children":525},{"className":524},[],[526],{"type":52,"value":527},"liberate_screenshot",{"type":52,"value":529},", reconstruct), poll ",{"type":46,"tag":81,"props":531,"children":533},{"className":532},[],[534],{"type":52,"value":535},"liberate_status",{"type":52,"value":122},{"type":46,"tag":81,"props":538,"children":540},{"className":539},[],[541],{"type":52,"value":542},"{ outputDir }",{"type":52,"value":544}," until ",{"type":46,"tag":81,"props":546,"children":548},{"className":547},[],[549],{"type":52,"value":550},"running",{"type":52,"value":552}," is ",{"type":46,"tag":81,"props":554,"children":556},{"className":555},[],[557],{"type":52,"value":558},"false",{"type":52,"value":560},", then continue from the output artifacts. For any other op that times out, wait and re-check its output\u002Fstate before concluding it failed.",{"type":46,"tag":69,"props":562,"children":564},{"id":563},"reporting",[565],{"type":52,"value":566},"Reporting",{"type":46,"tag":55,"props":568,"children":569},{},[570],{"type":52,"value":571},"When the engine finishes, summarize its run report: the Studio site built into, the reconstruct path taken, counts (pages\u002Fposts\u002Fproducts\u002Fmedia), the parity\u002Fverdict, and anything flagged for manual attention.",{"items":573,"total":748},[574,593,610,624,631,646,660,675,692,702,717,733],{"slug":575,"name":575,"fn":576,"description":577,"org":578,"tags":579,"stars":25,"repoUrl":26,"updatedAt":592},"annotate","collect visual feedback with browser annotation tools","Open a browser with visual annotation tools. The user clicks elements on their site and leaves feedback — the agent reads annotations and makes changes. Use this when the user wants to point at specific elements to fix, tweak, or redesign.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[580,583,586,589],{"name":581,"slug":582,"type":15},"Frontend","frontend",{"name":584,"slug":585,"type":15},"Productivity","productivity",{"name":587,"slug":588,"type":15},"UX Copy","ux-copy",{"name":590,"slug":591,"type":15},"UX Design","ux-design","2026-05-06T05:40:01.516544",{"slug":594,"name":594,"fn":595,"description":596,"org":597,"tags":598,"stars":25,"repoUrl":26,"updatedAt":609},"block-content","write editable WordPress block markup","Write editable WordPress block markup for local Studio sites, including core\u002Fhtml limits, block-theme layout rules, full-width sections, validation, and skeleton-first page\u002FCSS recipes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[599,602,605,608],{"name":600,"slug":601,"type":15},"Block Editor","block-editor",{"name":603,"slug":604,"type":15},"CSS","css",{"name":606,"slug":607,"type":15},"HTML","html",{"name":17,"slug":18,"type":15},"2026-05-27T07:01:55.629681",{"slug":611,"name":611,"fn":612,"description":613,"org":614,"tags":615,"stars":25,"repoUrl":26,"updatedAt":623},"hosting-plans-helper","provide WordPress.com hosting plan information","Answer WordPress.com plan, pricing, upgrade, and feature-tier questions (plan names, what each tier unlocks — plugins, themes, custom code, SSH, hosting — and current prices) from authoritative live data. Load before answering ANY plan, pricing, or feature-gating question; never answer these from memory.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[616,619,622],{"name":617,"slug":618,"type":15},"Pricing","pricing",{"name":620,"slug":621,"type":15},"Reference","reference",{"name":17,"slug":18,"type":15},"2026-07-02T07:42:33.654791",{"slug":4,"name":4,"fn":5,"description":6,"org":625,"tags":626,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[627,628,629,630],{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"slug":632,"name":632,"fn":633,"description":634,"org":635,"tags":636,"stars":25,"repoUrl":26,"updatedAt":645},"need-for-speed","run frontend performance audits for WordPress sites","Run a frontend performance audit on a WordPress site and get actionable optimization recommendations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[637,640,641,644],{"name":638,"slug":639,"type":15},"Audit","audit",{"name":581,"slug":582,"type":15},{"name":642,"slug":643,"type":15},"Performance","performance",{"name":17,"slug":18,"type":15},"2026-05-06T05:40:06.433267",{"slug":647,"name":647,"fn":648,"description":649,"org":650,"tags":651,"stars":25,"repoUrl":26,"updatedAt":659},"plugin-recommendations","recommend WordPress plugins for site features","Choose recommended plugins and plugin-provided blocks for features core WordPress blocks do not cover - ecommerce (WooCommerce), forms and newsletters (Jetpack), online courses and quizzes (Sensei LMS), polls, surveys and ratings (Crowdsignal), spam protection (Akismet) - while keeping generated content editable and avoiding raw HTML fallbacks. Any request to sell products or build a shop, store, or storefront requires WooCommerce with products.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[652,655,658],{"name":653,"slug":654,"type":15},"Content Creation","content-creation",{"name":656,"slug":657,"type":15},"Plugin Development","plugin-development",{"name":17,"slug":18,"type":15},"2026-05-27T07:01:58.249105",{"slug":661,"name":661,"fn":662,"description":663,"org":664,"tags":665,"stars":25,"repoUrl":26,"updatedAt":674},"rank-me-up","run on-page SEO audits for WordPress sites","Run an on-page SEO audit on a WordPress site and get actionable recommendations to improve search visibility.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[666,667,670,673],{"name":638,"slug":639,"type":15},{"name":668,"slug":669,"type":15},"Marketing","marketing",{"name":671,"slug":672,"type":15},"SEO","seo",{"name":17,"slug":18,"type":15},"2026-05-06T05:40:05.196367",{"slug":676,"name":676,"fn":677,"description":678,"org":679,"tags":680,"stars":25,"repoUrl":26,"updatedAt":691},"site-spec","gather specifications for new WordPress sites","Gather the site name and layout preference before building a WordPress site. Run this before creating any new site.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[681,684,687,690],{"name":682,"slug":683,"type":15},"Design","design",{"name":685,"slug":686,"type":15},"Product Management","product-management",{"name":688,"slug":689,"type":15},"Specs","specs",{"name":17,"slug":18,"type":15},"2026-05-06T05:40:02.739409",{"slug":693,"name":693,"fn":694,"description":695,"org":696,"tags":697,"stars":25,"repoUrl":26,"updatedAt":701},"studio-cli","manage local WordPress sites with Studio CLI","Use the Studio CLI to manage local WordPress sites, authentication, and preview sites. Invoke this skill when you need to run Studio CLI commands, manage sites, or troubleshoot site issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[698,700],{"name":699,"slug":32,"type":15},"CLI",{"name":17,"slug":18,"type":15},"2026-04-06T18:02:57.150231",{"slug":703,"name":703,"fn":704,"description":705,"org":706,"tags":707,"stars":25,"repoUrl":26,"updatedAt":716},"taxonomist","optimize WordPress category taxonomy","Analyze and optimize a WordPress site's category taxonomy. Exports all posts, uses AI to suggest an improved category structure — merging duplicates, retiring dead categories, creating missing ones, writing descriptions, and re-categorizing posts. Run this when the user wants to clean up or improve their categories.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[708,711,714,715],{"name":709,"slug":710,"type":15},"Content Strategy","content-strategy",{"name":712,"slug":713,"type":15},"Data Cleaning","data-cleaning",{"name":671,"slug":672,"type":15},{"name":17,"slug":18,"type":15},"2026-05-06T05:40:03.966799",{"slug":718,"name":718,"fn":719,"description":720,"org":721,"tags":722,"stars":25,"repoUrl":26,"updatedAt":732},"visual-design","plan and execute visual design direction","Plan and execute high-quality visual direction for site creation, redesign, layout, typography, color, motion, and visual polish.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[723,726,727,730],{"name":724,"slug":725,"type":15},"Animation","animation",{"name":682,"slug":683,"type":15},{"name":728,"slug":729,"type":15},"Typography","typography",{"name":731,"slug":718,"type":15},"Visual Design","2026-07-24T05:40:57.887452",{"slug":734,"name":734,"fn":735,"description":736,"org":737,"tags":738,"stars":25,"repoUrl":26,"updatedAt":747},"visual-polish","verify and polish website visual design","Verify and polish a built or redesigned site by diagnosing rendered-DOM issues against intent and fixing them in a planned, batched screenshot-and-fix loop.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[739,742,743,746],{"name":740,"slug":741,"type":15},"Debugging","debugging",{"name":581,"slug":582,"type":15},{"name":744,"slug":745,"type":15},"Screenshots","screenshots",{"name":731,"slug":718,"type":15},"2026-06-06T07:09:59.809812",81,{"items":750,"total":798},[751,758,765,771,778,785,791],{"slug":575,"name":575,"fn":576,"description":577,"org":752,"tags":753,"stars":25,"repoUrl":26,"updatedAt":592},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[754,755,756,757],{"name":581,"slug":582,"type":15},{"name":584,"slug":585,"type":15},{"name":587,"slug":588,"type":15},{"name":590,"slug":591,"type":15},{"slug":594,"name":594,"fn":595,"description":596,"org":759,"tags":760,"stars":25,"repoUrl":26,"updatedAt":609},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[761,762,763,764],{"name":600,"slug":601,"type":15},{"name":603,"slug":604,"type":15},{"name":606,"slug":607,"type":15},{"name":17,"slug":18,"type":15},{"slug":611,"name":611,"fn":612,"description":613,"org":766,"tags":767,"stars":25,"repoUrl":26,"updatedAt":623},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[768,769,770],{"name":617,"slug":618,"type":15},{"name":620,"slug":621,"type":15},{"name":17,"slug":18,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":772,"tags":773,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[774,775,776,777],{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"slug":632,"name":632,"fn":633,"description":634,"org":779,"tags":780,"stars":25,"repoUrl":26,"updatedAt":645},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[781,782,783,784],{"name":638,"slug":639,"type":15},{"name":581,"slug":582,"type":15},{"name":642,"slug":643,"type":15},{"name":17,"slug":18,"type":15},{"slug":647,"name":647,"fn":648,"description":649,"org":786,"tags":787,"stars":25,"repoUrl":26,"updatedAt":659},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[788,789,790],{"name":653,"slug":654,"type":15},{"name":656,"slug":657,"type":15},{"name":17,"slug":18,"type":15},{"slug":661,"name":661,"fn":662,"description":663,"org":792,"tags":793,"stars":25,"repoUrl":26,"updatedAt":674},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[794,795,796,797],{"name":638,"slug":639,"type":15},{"name":668,"slug":669,"type":15},{"name":671,"slug":672,"type":15},{"name":17,"slug":18,"type":15},13]