[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-wix-rp-execute-setup":3,"mdc-r82pk7-key":31,"related-repo-wix-rp-execute-setup":1135,"related-org-wix-rp-execute-setup":1216},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":29,"mdContent":30},"rp-execute-setup","provision Wix site setup for migration","Verifies and provisions Wix-side setup required before import. Use after codegen when setup-requirements.md must be validated or executed against the target site.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"wix","Wix","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fwix.jpg",[12,14,17],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"Migration","migration",{"name":18,"slug":19,"type":13},"Deployment","deployment",23,"https:\u002F\u002Fgithub.com\u002Fwix\u002Fskills","2026-07-01T08:08:04.475894",null,28,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":28},[],"Wix Skills","https:\u002F\u002Fgithub.com\u002Fwix\u002Fskills\u002Ftree\u002FHEAD\u002Freplatform\u002Frp-execute-setup","---\nname: rp-execute-setup\ndescription: >-\n  Verifies and provisions Wix-side setup required before import. Use after codegen when\n  setup-requirements.md must be validated or executed against the target site.\n---\n\n# rp-execute-setup\n\nVerify that required Wix-side setup exists and is ready for import.\n\n## Purpose\n\nThis skill validates the prerequisites discovered by `rp-setup-discovery`. It can also drive the setup work when the environment and permissions allow it.\n\n## Required inputs\n\n- `migrations\u002F\u003Cproject>\u002Fsetup-requirements.md`\n- `migrations\u002F\u003Cproject>\u002Fconfig\u002Fwix.env` or equivalent environment values\n- access to the target Wix environment or to exported evidence from that environment\n\n## Config\n\nPrefer project-local config over ad hoc shell state. `config\u002Fwix.env` should exist before\nsetup verification\u002Fprovisioning and contain:\n\n```bash\nWIX_SITE_ID=\nWIX_AUTH_TOKEN=\n```\n\nIf either required value is missing after loading config plus process env, halt to\nneeds-user with the missing key name. Never print the token.\n\nTreat `migrations\u002F\u003Cproject>\u002Fconfig\u002F*.env` as secret-bearing once they may contain real\nvalues. Do not verify them with whole-file reads that echo contents into tool output.\nOnly check existence plus `present` \u002F `blank` \u002F `missing` status for required keys.\n\n## Workflow\n\n1. Resolve the active project.\n2. Read the setup requirements artifact.\n3. Verify each required app, collection, schema, field, and permission.\n4. Record pass, fail, or blocked status for each item.\n5. If execution is allowed, perform missing setup steps carefully and re-verify.\n6. Save the verification results.\n\n## Provisioning — exhaust programmatic options before declaring anything \"manual\"\n\nDefault to provisioning via API. Do **not** label a requirement \"manual\" or \"owner\naction\" until you have confirmed no API can do it.\n\n> **Transport (interim decision):** setup provisioning writes — app installs, Wix Data\n> enablement, collection\u002Ffield creation — **may be performed by the agent via the Wix MCP**\n> (`CallWixSiteAPI`) for now. This differs from **import**, which must run the generated\n> script and never use MCP as its write transport (`rp-execute-import` → \"Execute the\n> generated scripts — never an agentic MCP flow\"). The reason setup is treated differently:\n> it's a small, finite, mostly one-time set of calls with little per-project logic (the\n> variance is *which* apps\u002Fcollections — data, not code), not a bulk restartable pipeline.\n> This is an interim choice; other options (e.g. a shared, parameterized provisioner library\n> in `rp-target-wix` driven by `setup-requirements.md`) are still under discussion. The\n> approval gate is unchanged: no setup write before the user accepts the execution plan.\n\nIf the Wix MCP \u002F `CallWixSiteAPI` transport expected for setup verification\u002Fprovisioning\nis missing from the runtime, treat that as a prerequisite gap before assuming you must\nwork blind:\n\n- first try to ensure the Wix MCP is installed\u002Fconnected in the current runtime\n- if the environment supports connector\u002Fplugin install flows, use them\n- otherwise halt to needs-user with exact install\u002Fconnect instructions for the Wix MCP and\n  explain which setup verification\u002Fprovisioning capabilities are blocked without it\n\nOnly proceed in a docs-only\u002Fread-only posture when the MCP is genuinely unavailable and\nthe step can still produce useful non-destructive output.\n\nConcrete mechanisms:\n\n- **Installing \u002F enabling Wix apps (Blog, Members, etc.) IS automatable.** Use the\n  App Installation API:\n  1. Pre-check with `POST \u002Fapps-installer-service\u002Fv1\u002Fapp-instance\u002Fis-permitted-to-install`\n     (read-only) to see whether the identity may install the app.\n  2. If permitted, install with `POST \u002Fapps-installer-service\u002Fv1\u002Fapp-instance\u002Finstall`.\n     Body (all fields required — confirmed by live 400s): `{ appInstance: { appDefId,\n     enabled: true }, tenant: { tenantType: \"SITE\", id: \u003CsiteId> }, installType:\n     \"INSTALL_TYPE_SITE\", appsInstallOptions: {} }`. (The `is-permitted-to-install`\n     pre-check uses a *different*, oneof-based body and is informational only — if its\n     validation fights you, skip it and rely on `\u002Finstall`.)\n  3. List current state with `GET \u002Fapps-installer-service\u002Fv1\u002Fapp-instances`.\n  - **Ground `appDefId` from the official \"Apps Created by Wix\" table**\n    (`\u002Fdocs\u002Fapi-reference\u002Farticles\u002Fwork-with-wix-apis\u002Fplatform\u002Fabout-apps-created-by-wix`),\n    NOT from a docs *example* — e.g. the install-app example uses\n    `1380b703-…`, which is **Wix eCommerce**, not Blog. Installing the wrong app on a\n    live site is a real hazard; verify the ID maps to the app you intend.\n- **Wix Data \u002F CMS collections (the `WDE0110: Wix Code not enabled` case).** Enable Wix\n  Data by **installing the Wix Data app `appDefId e593b0bd-b783-45b8-97c2-873d42aacaf4`**\n  via the App Installation API (same `\u002Finstall` body shape as any other app; it also\n  auto-installs a dependency app `1a711f05-2040-47df-a9f0-4f9cddb4c3c6`). Once installed,\n  plain REST `POST \u002Fwix-data\u002Fv2\u002Fcollections` creates **NATIVE** collections with no\n  `WDE0110` — no code editor toggle, no custom app needed. **Verified live 2026-06-10**\n  on a fresh free site (install → 200; collection create → 200 `collectionType: NATIVE`).\n  - This is the preferred path. The older data-collections-extension app (authoring a\n    custom app that declares collections, FR-005) is now a **fallback** — only needed if\n    you must declare collection schemas at install time, and it still can't express\n    `REFERENCE` fields (FR-004; add those after install via `create-field`).\n  - Note: the standalone \"Wix CMS\" app (`appDefId 675bbcef-…`) is **not** installable\n    (`is-permitted-to-install` → `false`) — do **not** use it; use `e593b0bd-…`.\n- **Import crosswalk collection (idempotency, FR-010).** Native blog\u002FCMS entities have no\n  client-settable source id and Wix rewrites slugs, so a re-run can't dedupe without a\n  side table. After enabling Wix Data, provision a native **`ImportCrosswalk`** collection\n  (`POST \u002Fwix-data\u002Fv2\u002Fcollections`) with fields `entityType` (TEXT), `sourceId` (TEXT),\n  `targetId` (TEXT), `targetType` (TEXT). The generated importer seeds from it\n  (`queryAllDataItems`) before writing and records each created entity, so continues\u002Fre-runs\n  skip done records instead of creating duplicates. Provision this whenever the plan writes\n  native entities that must be idempotent.\n  If upstream artifacts still call this `MigrationRefs`, normalize them here rather than\n  creating both collections.\n- **Genuinely manual (no API exists):** upgrading the storage plan, generating\n  external-system credentials (e.g. a WordPress Application Password), and\n  account-level billing. These are the only categories that may be reported as manual —\n  and only after confirming no API covers them.\n\n## Artifact to create or update\n\n- `migrations\u002F\u003Cproject>\u002Fsetup-verification.md`\n\n## Verification output format\n\nFor each requirement capture:\n\n- requirement name\n- expected state\n- observed state\n- status: passed, failed, blocked\n- remediation needed\n\n## Optional media reachability verification\n\nWhen the migration includes media import by source URL, check whether discovered media\nURLs are publicly reachable by Wix. If the source URL is `localhost`, `127.0.0.1`, or a\nprivate-only host, mark **media import** as `blocked` or `deferred`, but do not block\nunrelated non-media entities. This is optional setup and, as far as we know today, affects\nonly Wix Media import.\n\nRecord the user's chosen path in `setup-verification.md`:\n\n- **Tunnel media URLs:** ask the user to expose the source through a public HTTPS tunnel,\n  then use that URL for `WP_BASE_URL` \u002F `SOURCE_URL` or rewrite media URLs to that base.\n- **Skip\u002Fdefer media:** proceed only if the execution plan clearly says media and any\n  media-dependent references (hero images, galleries, downloads) will be skipped or\n  deferred.\n\nNgrok quick setup for macOS:\n\n```bash\nbrew install ngrok\nngrok config add-authtoken \"\u003CYOUR_AUTHTOKEN>\"\nngrok http 8090\nexport WP_BASE_URL=https:\u002F\u002F\u003Cid>.ngrok-free.app\n```\n\n## Runtime policy\n\nSplit this skill's work by side effect:\n\n- **Verification is read-only** — checking what's installed, what's missing, and what's\n  genuinely manual. It runs **before** the execution-plan acceptance gate and feeds the\n  plan.\n- **Provisioning writes** — installing apps, enabling Wix Data (via the data-collections\n  enabler), creating collections, adding fields — happen **only after** the user accepts\n  the execution plan. **No site write before acceptance.** Once accepted, the \"Migrate\"\n  consent covers the individual writes, so don't re-prompt per app\u002Fcollection. Halt to\n  needs-user only for genuinely manual items (storage-plan upgrade) or a\n  missing\u002Finvalid credential.\n\n## Guardrails\n\n- Never report setup as complete without evidence.\n- Before marking an item blocked or manual, confirm no API can perform it (see\n  Provisioning above). Reserve \"manual\" for storage\u002Fbilling\u002Fexternal-credential steps.\n- If credentials or permissions are genuinely missing, mark the item blocked and state\n  the exact API that was refused and why.\n- Do not start import execution from this skill.\n",{"data":32,"body":33},{"name":4,"description":6},{"type":34,"children":35},"root",[36,43,49,56,70,76,106,112,125,167,172,208,214,248,254,267,335,347,365,370,375,758,764,776,782,787,815,821,865,878,916,921,1045,1051,1056,1100,1106,1129],{"type":37,"tag":38,"props":39,"children":40},"element","h1",{"id":4},[41],{"type":42,"value":4},"text",{"type":37,"tag":44,"props":45,"children":46},"p",{},[47],{"type":42,"value":48},"Verify that required Wix-side setup exists and is ready for import.",{"type":37,"tag":50,"props":51,"children":53},"h2",{"id":52},"purpose",[54],{"type":42,"value":55},"Purpose",{"type":37,"tag":44,"props":57,"children":58},{},[59,61,68],{"type":42,"value":60},"This skill validates the prerequisites discovered by ",{"type":37,"tag":62,"props":63,"children":65},"code",{"className":64},[],[66],{"type":42,"value":67},"rp-setup-discovery",{"type":42,"value":69},". It can also drive the setup work when the environment and permissions allow it.",{"type":37,"tag":50,"props":71,"children":73},{"id":72},"required-inputs",[74],{"type":42,"value":75},"Required inputs",{"type":37,"tag":77,"props":78,"children":79},"ul",{},[80,90,101],{"type":37,"tag":81,"props":82,"children":83},"li",{},[84],{"type":37,"tag":62,"props":85,"children":87},{"className":86},[],[88],{"type":42,"value":89},"migrations\u002F\u003Cproject>\u002Fsetup-requirements.md",{"type":37,"tag":81,"props":91,"children":92},{},[93,99],{"type":37,"tag":62,"props":94,"children":96},{"className":95},[],[97],{"type":42,"value":98},"migrations\u002F\u003Cproject>\u002Fconfig\u002Fwix.env",{"type":42,"value":100}," or equivalent environment values",{"type":37,"tag":81,"props":102,"children":103},{},[104],{"type":42,"value":105},"access to the target Wix environment or to exported evidence from that environment",{"type":37,"tag":50,"props":107,"children":109},{"id":108},"config",[110],{"type":42,"value":111},"Config",{"type":37,"tag":44,"props":113,"children":114},{},[115,117,123],{"type":42,"value":116},"Prefer project-local config over ad hoc shell state. ",{"type":37,"tag":62,"props":118,"children":120},{"className":119},[],[121],{"type":42,"value":122},"config\u002Fwix.env",{"type":42,"value":124}," should exist before\nsetup verification\u002Fprovisioning and contain:",{"type":37,"tag":126,"props":127,"children":132},"pre",{"className":128,"code":129,"language":130,"meta":131,"style":131},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","WIX_SITE_ID=\nWIX_AUTH_TOKEN=\n","bash","",[133],{"type":37,"tag":62,"props":134,"children":135},{"__ignoreMap":131},[136,154],{"type":37,"tag":137,"props":138,"children":141},"span",{"class":139,"line":140},"line",1,[142,148],{"type":37,"tag":137,"props":143,"children":145},{"style":144},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[146],{"type":42,"value":147},"WIX_SITE_ID",{"type":37,"tag":137,"props":149,"children":151},{"style":150},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[152],{"type":42,"value":153},"=\n",{"type":37,"tag":137,"props":155,"children":157},{"class":139,"line":156},2,[158,163],{"type":37,"tag":137,"props":159,"children":160},{"style":144},[161],{"type":42,"value":162},"WIX_AUTH_TOKEN",{"type":37,"tag":137,"props":164,"children":165},{"style":150},[166],{"type":42,"value":153},{"type":37,"tag":44,"props":168,"children":169},{},[170],{"type":42,"value":171},"If either required value is missing after loading config plus process env, halt to\nneeds-user with the missing key name. Never print the token.",{"type":37,"tag":44,"props":173,"children":174},{},[175,177,183,185,191,193,199,200,206],{"type":42,"value":176},"Treat ",{"type":37,"tag":62,"props":178,"children":180},{"className":179},[],[181],{"type":42,"value":182},"migrations\u002F\u003Cproject>\u002Fconfig\u002F*.env",{"type":42,"value":184}," as secret-bearing once they may contain real\nvalues. Do not verify them with whole-file reads that echo contents into tool output.\nOnly check existence plus ",{"type":37,"tag":62,"props":186,"children":188},{"className":187},[],[189],{"type":42,"value":190},"present",{"type":42,"value":192}," \u002F ",{"type":37,"tag":62,"props":194,"children":196},{"className":195},[],[197],{"type":42,"value":198},"blank",{"type":42,"value":192},{"type":37,"tag":62,"props":201,"children":203},{"className":202},[],[204],{"type":42,"value":205},"missing",{"type":42,"value":207}," status for required keys.",{"type":37,"tag":50,"props":209,"children":211},{"id":210},"workflow",[212],{"type":42,"value":213},"Workflow",{"type":37,"tag":215,"props":216,"children":217},"ol",{},[218,223,228,233,238,243],{"type":37,"tag":81,"props":219,"children":220},{},[221],{"type":42,"value":222},"Resolve the active project.",{"type":37,"tag":81,"props":224,"children":225},{},[226],{"type":42,"value":227},"Read the setup requirements artifact.",{"type":37,"tag":81,"props":229,"children":230},{},[231],{"type":42,"value":232},"Verify each required app, collection, schema, field, and permission.",{"type":37,"tag":81,"props":234,"children":235},{},[236],{"type":42,"value":237},"Record pass, fail, or blocked status for each item.",{"type":37,"tag":81,"props":239,"children":240},{},[241],{"type":42,"value":242},"If execution is allowed, perform missing setup steps carefully and re-verify.",{"type":37,"tag":81,"props":244,"children":245},{},[246],{"type":42,"value":247},"Save the verification results.",{"type":37,"tag":50,"props":249,"children":251},{"id":250},"provisioning-exhaust-programmatic-options-before-declaring-anything-manual",[252],{"type":42,"value":253},"Provisioning — exhaust programmatic options before declaring anything \"manual\"",{"type":37,"tag":44,"props":255,"children":256},{},[257,259,265],{"type":42,"value":258},"Default to provisioning via API. Do ",{"type":37,"tag":260,"props":261,"children":262},"strong",{},[263],{"type":42,"value":264},"not",{"type":42,"value":266}," label a requirement \"manual\" or \"owner\naction\" until you have confirmed no API can do it.",{"type":37,"tag":268,"props":269,"children":270},"blockquote",{},[271],{"type":37,"tag":44,"props":272,"children":273},{},[274,279,281,286,288,294,296,301,303,309,311,317,319,325,327,333],{"type":37,"tag":260,"props":275,"children":276},{},[277],{"type":42,"value":278},"Transport (interim decision):",{"type":42,"value":280}," setup provisioning writes — app installs, Wix Data\nenablement, collection\u002Ffield creation — ",{"type":37,"tag":260,"props":282,"children":283},{},[284],{"type":42,"value":285},"may be performed by the agent via the Wix MCP",{"type":42,"value":287},"\n(",{"type":37,"tag":62,"props":289,"children":291},{"className":290},[],[292],{"type":42,"value":293},"CallWixSiteAPI",{"type":42,"value":295},") for now. This differs from ",{"type":37,"tag":260,"props":297,"children":298},{},[299],{"type":42,"value":300},"import",{"type":42,"value":302},", which must run the generated\nscript and never use MCP as its write transport (",{"type":37,"tag":62,"props":304,"children":306},{"className":305},[],[307],{"type":42,"value":308},"rp-execute-import",{"type":42,"value":310}," → \"Execute the\ngenerated scripts — never an agentic MCP flow\"). The reason setup is treated differently:\nit's a small, finite, mostly one-time set of calls with little per-project logic (the\nvariance is ",{"type":37,"tag":312,"props":313,"children":314},"em",{},[315],{"type":42,"value":316},"which",{"type":42,"value":318}," apps\u002Fcollections — data, not code), not a bulk restartable pipeline.\nThis is an interim choice; other options (e.g. a shared, parameterized provisioner library\nin ",{"type":37,"tag":62,"props":320,"children":322},{"className":321},[],[323],{"type":42,"value":324},"rp-target-wix",{"type":42,"value":326}," driven by ",{"type":37,"tag":62,"props":328,"children":330},{"className":329},[],[331],{"type":42,"value":332},"setup-requirements.md",{"type":42,"value":334},") are still under discussion. The\napproval gate is unchanged: no setup write before the user accepts the execution plan.",{"type":37,"tag":44,"props":336,"children":337},{},[338,340,345],{"type":42,"value":339},"If the Wix MCP \u002F ",{"type":37,"tag":62,"props":341,"children":343},{"className":342},[],[344],{"type":42,"value":293},{"type":42,"value":346}," transport expected for setup verification\u002Fprovisioning\nis missing from the runtime, treat that as a prerequisite gap before assuming you must\nwork blind:",{"type":37,"tag":77,"props":348,"children":349},{},[350,355,360],{"type":37,"tag":81,"props":351,"children":352},{},[353],{"type":42,"value":354},"first try to ensure the Wix MCP is installed\u002Fconnected in the current runtime",{"type":37,"tag":81,"props":356,"children":357},{},[358],{"type":42,"value":359},"if the environment supports connector\u002Fplugin install flows, use them",{"type":37,"tag":81,"props":361,"children":362},{},[363],{"type":42,"value":364},"otherwise halt to needs-user with exact install\u002Fconnect instructions for the Wix MCP and\nexplain which setup verification\u002Fprovisioning capabilities are blocked without it",{"type":37,"tag":44,"props":366,"children":367},{},[368],{"type":42,"value":369},"Only proceed in a docs-only\u002Fread-only posture when the MCP is genuinely unavailable and\nthe step can still produce useful non-destructive output.",{"type":37,"tag":44,"props":371,"children":372},{},[373],{"type":42,"value":374},"Concrete mechanisms:",{"type":37,"tag":77,"props":376,"children":377},{},[378,511,673,748],{"type":37,"tag":81,"props":379,"children":380},{},[381,386,388,461],{"type":37,"tag":260,"props":382,"children":383},{},[384],{"type":42,"value":385},"Installing \u002F enabling Wix apps (Blog, Members, etc.) IS automatable.",{"type":42,"value":387}," Use the\nApp Installation API:\n",{"type":37,"tag":215,"props":389,"children":390},{},[391,404,448],{"type":37,"tag":81,"props":392,"children":393},{},[394,396,402],{"type":42,"value":395},"Pre-check with ",{"type":37,"tag":62,"props":397,"children":399},{"className":398},[],[400],{"type":42,"value":401},"POST \u002Fapps-installer-service\u002Fv1\u002Fapp-instance\u002Fis-permitted-to-install",{"type":42,"value":403},"\n(read-only) to see whether the identity may install the app.",{"type":37,"tag":81,"props":405,"children":406},{},[407,409,415,417,423,425,431,433,438,440,446],{"type":42,"value":408},"If permitted, install with ",{"type":37,"tag":62,"props":410,"children":412},{"className":411},[],[413],{"type":42,"value":414},"POST \u002Fapps-installer-service\u002Fv1\u002Fapp-instance\u002Finstall",{"type":42,"value":416},".\nBody (all fields required — confirmed by live 400s): ",{"type":37,"tag":62,"props":418,"children":420},{"className":419},[],[421],{"type":42,"value":422},"{ appInstance: { appDefId, enabled: true }, tenant: { tenantType: \"SITE\", id: \u003CsiteId> }, installType: \"INSTALL_TYPE_SITE\", appsInstallOptions: {} }",{"type":42,"value":424},". (The ",{"type":37,"tag":62,"props":426,"children":428},{"className":427},[],[429],{"type":42,"value":430},"is-permitted-to-install",{"type":42,"value":432},"\npre-check uses a ",{"type":37,"tag":312,"props":434,"children":435},{},[436],{"type":42,"value":437},"different",{"type":42,"value":439},", oneof-based body and is informational only — if its\nvalidation fights you, skip it and rely on ",{"type":37,"tag":62,"props":441,"children":443},{"className":442},[],[444],{"type":42,"value":445},"\u002Finstall",{"type":42,"value":447},".)",{"type":37,"tag":81,"props":449,"children":450},{},[451,453,459],{"type":42,"value":452},"List current state with ",{"type":37,"tag":62,"props":454,"children":456},{"className":455},[],[457],{"type":42,"value":458},"GET \u002Fapps-installer-service\u002Fv1\u002Fapp-instances",{"type":42,"value":460},".",{"type":37,"tag":77,"props":462,"children":463},{},[464],{"type":37,"tag":81,"props":465,"children":466},{},[467,480,481,487,489,494,496,502,504,509],{"type":37,"tag":260,"props":468,"children":469},{},[470,472,478],{"type":42,"value":471},"Ground ",{"type":37,"tag":62,"props":473,"children":475},{"className":474},[],[476],{"type":42,"value":477},"appDefId",{"type":42,"value":479}," from the official \"Apps Created by Wix\" table",{"type":42,"value":287},{"type":37,"tag":62,"props":482,"children":484},{"className":483},[],[485],{"type":42,"value":486},"\u002Fdocs\u002Fapi-reference\u002Farticles\u002Fwork-with-wix-apis\u002Fplatform\u002Fabout-apps-created-by-wix",{"type":42,"value":488},"),\nNOT from a docs ",{"type":37,"tag":312,"props":490,"children":491},{},[492],{"type":42,"value":493},"example",{"type":42,"value":495}," — e.g. the install-app example uses\n",{"type":37,"tag":62,"props":497,"children":499},{"className":498},[],[500],{"type":42,"value":501},"1380b703-…",{"type":42,"value":503},", which is ",{"type":37,"tag":260,"props":505,"children":506},{},[507],{"type":42,"value":508},"Wix eCommerce",{"type":42,"value":510},", not Blog. Installing the wrong app on a\nlive site is a real hazard; verify the ID maps to the app you intend.",{"type":37,"tag":81,"props":512,"children":513},{},[514,527,529,540,542,547,549,555,557,563,565,570,572,578,580,585,587,593,595],{"type":37,"tag":260,"props":515,"children":516},{},[517,519,525],{"type":42,"value":518},"Wix Data \u002F CMS collections (the ",{"type":37,"tag":62,"props":520,"children":522},{"className":521},[],[523],{"type":42,"value":524},"WDE0110: Wix Code not enabled",{"type":42,"value":526}," case).",{"type":42,"value":528}," Enable Wix\nData by ",{"type":37,"tag":260,"props":530,"children":531},{},[532,534],{"type":42,"value":533},"installing the Wix Data app ",{"type":37,"tag":62,"props":535,"children":537},{"className":536},[],[538],{"type":42,"value":539},"appDefId e593b0bd-b783-45b8-97c2-873d42aacaf4",{"type":42,"value":541},"\nvia the App Installation API (same ",{"type":37,"tag":62,"props":543,"children":545},{"className":544},[],[546],{"type":42,"value":445},{"type":42,"value":548}," body shape as any other app; it also\nauto-installs a dependency app ",{"type":37,"tag":62,"props":550,"children":552},{"className":551},[],[553],{"type":42,"value":554},"1a711f05-2040-47df-a9f0-4f9cddb4c3c6",{"type":42,"value":556},"). Once installed,\nplain REST ",{"type":37,"tag":62,"props":558,"children":560},{"className":559},[],[561],{"type":42,"value":562},"POST \u002Fwix-data\u002Fv2\u002Fcollections",{"type":42,"value":564}," creates ",{"type":37,"tag":260,"props":566,"children":567},{},[568],{"type":42,"value":569},"NATIVE",{"type":42,"value":571}," collections with no\n",{"type":37,"tag":62,"props":573,"children":575},{"className":574},[],[576],{"type":42,"value":577},"WDE0110",{"type":42,"value":579}," — no code editor toggle, no custom app needed. ",{"type":37,"tag":260,"props":581,"children":582},{},[583],{"type":42,"value":584},"Verified live 2026-06-10",{"type":42,"value":586},"\non a fresh free site (install → 200; collection create → 200 ",{"type":37,"tag":62,"props":588,"children":590},{"className":589},[],[591],{"type":42,"value":592},"collectionType: NATIVE",{"type":42,"value":594},").\n",{"type":37,"tag":77,"props":596,"children":597},{},[598,626],{"type":37,"tag":81,"props":599,"children":600},{},[601,603,608,610,616,618,624],{"type":42,"value":602},"This is the preferred path. The older data-collections-extension app (authoring a\ncustom app that declares collections, FR-005) is now a ",{"type":37,"tag":260,"props":604,"children":605},{},[606],{"type":42,"value":607},"fallback",{"type":42,"value":609}," — only needed if\nyou must declare collection schemas at install time, and it still can't express\n",{"type":37,"tag":62,"props":611,"children":613},{"className":612},[],[614],{"type":42,"value":615},"REFERENCE",{"type":42,"value":617}," fields (FR-004; add those after install via ",{"type":37,"tag":62,"props":619,"children":621},{"className":620},[],[622],{"type":42,"value":623},"create-field",{"type":42,"value":625},").",{"type":37,"tag":81,"props":627,"children":628},{},[629,631,637,639,643,645,650,652,658,660,664,666,672],{"type":42,"value":630},"Note: the standalone \"Wix CMS\" app (",{"type":37,"tag":62,"props":632,"children":634},{"className":633},[],[635],{"type":42,"value":636},"appDefId 675bbcef-…",{"type":42,"value":638},") is ",{"type":37,"tag":260,"props":640,"children":641},{},[642],{"type":42,"value":264},{"type":42,"value":644}," installable\n(",{"type":37,"tag":62,"props":646,"children":648},{"className":647},[],[649],{"type":42,"value":430},{"type":42,"value":651}," → ",{"type":37,"tag":62,"props":653,"children":655},{"className":654},[],[656],{"type":42,"value":657},"false",{"type":42,"value":659},") — do ",{"type":37,"tag":260,"props":661,"children":662},{},[663],{"type":42,"value":264},{"type":42,"value":665}," use it; use ",{"type":37,"tag":62,"props":667,"children":669},{"className":668},[],[670],{"type":42,"value":671},"e593b0bd-…",{"type":42,"value":460},{"type":37,"tag":81,"props":674,"children":675},{},[676,681,683,692,694,699,701,707,709,715,717,723,724,730,732,738,740,746],{"type":37,"tag":260,"props":677,"children":678},{},[679],{"type":42,"value":680},"Import crosswalk collection (idempotency, FR-010).",{"type":42,"value":682}," Native blog\u002FCMS entities have no\nclient-settable source id and Wix rewrites slugs, so a re-run can't dedupe without a\nside table. After enabling Wix Data, provision a native ",{"type":37,"tag":260,"props":684,"children":685},{},[686],{"type":37,"tag":62,"props":687,"children":689},{"className":688},[],[690],{"type":42,"value":691},"ImportCrosswalk",{"type":42,"value":693}," collection\n(",{"type":37,"tag":62,"props":695,"children":697},{"className":696},[],[698],{"type":42,"value":562},{"type":42,"value":700},") with fields ",{"type":37,"tag":62,"props":702,"children":704},{"className":703},[],[705],{"type":42,"value":706},"entityType",{"type":42,"value":708}," (TEXT), ",{"type":37,"tag":62,"props":710,"children":712},{"className":711},[],[713],{"type":42,"value":714},"sourceId",{"type":42,"value":716}," (TEXT),\n",{"type":37,"tag":62,"props":718,"children":720},{"className":719},[],[721],{"type":42,"value":722},"targetId",{"type":42,"value":708},{"type":37,"tag":62,"props":725,"children":727},{"className":726},[],[728],{"type":42,"value":729},"targetType",{"type":42,"value":731}," (TEXT). The generated importer seeds from it\n(",{"type":37,"tag":62,"props":733,"children":735},{"className":734},[],[736],{"type":42,"value":737},"queryAllDataItems",{"type":42,"value":739},") before writing and records each created entity, so continues\u002Fre-runs\nskip done records instead of creating duplicates. Provision this whenever the plan writes\nnative entities that must be idempotent.\nIf upstream artifacts still call this ",{"type":37,"tag":62,"props":741,"children":743},{"className":742},[],[744],{"type":42,"value":745},"MigrationRefs",{"type":42,"value":747},", normalize them here rather than\ncreating both collections.",{"type":37,"tag":81,"props":749,"children":750},{},[751,756],{"type":37,"tag":260,"props":752,"children":753},{},[754],{"type":42,"value":755},"Genuinely manual (no API exists):",{"type":42,"value":757}," upgrading the storage plan, generating\nexternal-system credentials (e.g. a WordPress Application Password), and\naccount-level billing. These are the only categories that may be reported as manual —\nand only after confirming no API covers them.",{"type":37,"tag":50,"props":759,"children":761},{"id":760},"artifact-to-create-or-update",[762],{"type":42,"value":763},"Artifact to create or update",{"type":37,"tag":77,"props":765,"children":766},{},[767],{"type":37,"tag":81,"props":768,"children":769},{},[770],{"type":37,"tag":62,"props":771,"children":773},{"className":772},[],[774],{"type":42,"value":775},"migrations\u002F\u003Cproject>\u002Fsetup-verification.md",{"type":37,"tag":50,"props":777,"children":779},{"id":778},"verification-output-format",[780],{"type":42,"value":781},"Verification output format",{"type":37,"tag":44,"props":783,"children":784},{},[785],{"type":42,"value":786},"For each requirement capture:",{"type":37,"tag":77,"props":788,"children":789},{},[790,795,800,805,810],{"type":37,"tag":81,"props":791,"children":792},{},[793],{"type":42,"value":794},"requirement name",{"type":37,"tag":81,"props":796,"children":797},{},[798],{"type":42,"value":799},"expected state",{"type":37,"tag":81,"props":801,"children":802},{},[803],{"type":42,"value":804},"observed state",{"type":37,"tag":81,"props":806,"children":807},{},[808],{"type":42,"value":809},"status: passed, failed, blocked",{"type":37,"tag":81,"props":811,"children":812},{},[813],{"type":42,"value":814},"remediation needed",{"type":37,"tag":50,"props":816,"children":818},{"id":817},"optional-media-reachability-verification",[819],{"type":42,"value":820},"Optional media reachability verification",{"type":37,"tag":44,"props":822,"children":823},{},[824,826,832,834,840,842,847,849,855,857,863],{"type":42,"value":825},"When the migration includes media import by source URL, check whether discovered media\nURLs are publicly reachable by Wix. If the source URL is ",{"type":37,"tag":62,"props":827,"children":829},{"className":828},[],[830],{"type":42,"value":831},"localhost",{"type":42,"value":833},", ",{"type":37,"tag":62,"props":835,"children":837},{"className":836},[],[838],{"type":42,"value":839},"127.0.0.1",{"type":42,"value":841},", or a\nprivate-only host, mark ",{"type":37,"tag":260,"props":843,"children":844},{},[845],{"type":42,"value":846},"media import",{"type":42,"value":848}," as ",{"type":37,"tag":62,"props":850,"children":852},{"className":851},[],[853],{"type":42,"value":854},"blocked",{"type":42,"value":856}," or ",{"type":37,"tag":62,"props":858,"children":860},{"className":859},[],[861],{"type":42,"value":862},"deferred",{"type":42,"value":864},", but do not block\nunrelated non-media entities. This is optional setup and, as far as we know today, affects\nonly Wix Media import.",{"type":37,"tag":44,"props":866,"children":867},{},[868,870,876],{"type":42,"value":869},"Record the user's chosen path in ",{"type":37,"tag":62,"props":871,"children":873},{"className":872},[],[874],{"type":42,"value":875},"setup-verification.md",{"type":42,"value":877},":",{"type":37,"tag":77,"props":879,"children":880},{},[881,906],{"type":37,"tag":81,"props":882,"children":883},{},[884,889,891,897,898,904],{"type":37,"tag":260,"props":885,"children":886},{},[887],{"type":42,"value":888},"Tunnel media URLs:",{"type":42,"value":890}," ask the user to expose the source through a public HTTPS tunnel,\nthen use that URL for ",{"type":37,"tag":62,"props":892,"children":894},{"className":893},[],[895],{"type":42,"value":896},"WP_BASE_URL",{"type":42,"value":192},{"type":37,"tag":62,"props":899,"children":901},{"className":900},[],[902],{"type":42,"value":903},"SOURCE_URL",{"type":42,"value":905}," or rewrite media URLs to that base.",{"type":37,"tag":81,"props":907,"children":908},{},[909,914],{"type":37,"tag":260,"props":910,"children":911},{},[912],{"type":42,"value":913},"Skip\u002Fdefer media:",{"type":42,"value":915}," proceed only if the execution plan clearly says media and any\nmedia-dependent references (hero images, galleries, downloads) will be skipped or\ndeferred.",{"type":37,"tag":44,"props":917,"children":918},{},[919],{"type":42,"value":920},"Ngrok quick setup for macOS:",{"type":37,"tag":126,"props":922,"children":924},{"className":128,"code":923,"language":130,"meta":131,"style":131},"brew install ngrok\nngrok config add-authtoken \"\u003CYOUR_AUTHTOKEN>\"\nngrok http 8090\nexport WP_BASE_URL=https:\u002F\u002F\u003Cid>.ngrok-free.app\n",[925],{"type":37,"tag":62,"props":926,"children":927},{"__ignoreMap":131},[928,948,981,1000],{"type":37,"tag":137,"props":929,"children":930},{"class":139,"line":140},[931,937,943],{"type":37,"tag":137,"props":932,"children":934},{"style":933},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[935],{"type":42,"value":936},"brew",{"type":37,"tag":137,"props":938,"children":940},{"style":939},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[941],{"type":42,"value":942}," install",{"type":37,"tag":137,"props":944,"children":945},{"style":939},[946],{"type":42,"value":947}," ngrok\n",{"type":37,"tag":137,"props":949,"children":950},{"class":139,"line":156},[951,956,961,966,971,976],{"type":37,"tag":137,"props":952,"children":953},{"style":933},[954],{"type":42,"value":955},"ngrok",{"type":37,"tag":137,"props":957,"children":958},{"style":939},[959],{"type":42,"value":960}," config",{"type":37,"tag":137,"props":962,"children":963},{"style":939},[964],{"type":42,"value":965}," add-authtoken",{"type":37,"tag":137,"props":967,"children":968},{"style":150},[969],{"type":42,"value":970}," \"",{"type":37,"tag":137,"props":972,"children":973},{"style":939},[974],{"type":42,"value":975},"\u003CYOUR_AUTHTOKEN>",{"type":37,"tag":137,"props":977,"children":978},{"style":150},[979],{"type":42,"value":980},"\"\n",{"type":37,"tag":137,"props":982,"children":984},{"class":139,"line":983},3,[985,989,994],{"type":37,"tag":137,"props":986,"children":987},{"style":933},[988],{"type":42,"value":955},{"type":37,"tag":137,"props":990,"children":991},{"style":939},[992],{"type":42,"value":993}," http",{"type":37,"tag":137,"props":995,"children":997},{"style":996},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[998],{"type":42,"value":999}," 8090\n",{"type":37,"tag":137,"props":1001,"children":1003},{"class":139,"line":1002},4,[1004,1010,1015,1020,1025,1030,1035,1040],{"type":37,"tag":137,"props":1005,"children":1007},{"style":1006},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1008],{"type":42,"value":1009},"export",{"type":37,"tag":137,"props":1011,"children":1012},{"style":144},[1013],{"type":42,"value":1014}," WP_BASE_URL",{"type":37,"tag":137,"props":1016,"children":1017},{"style":150},[1018],{"type":42,"value":1019},"=",{"type":37,"tag":137,"props":1021,"children":1022},{"style":144},[1023],{"type":42,"value":1024},"https:\u002F\u002F",{"type":37,"tag":137,"props":1026,"children":1027},{"style":150},[1028],{"type":42,"value":1029},"\u003C",{"type":37,"tag":137,"props":1031,"children":1032},{"style":144},[1033],{"type":42,"value":1034},"id",{"type":37,"tag":137,"props":1036,"children":1037},{"style":150},[1038],{"type":42,"value":1039},">",{"type":37,"tag":137,"props":1041,"children":1042},{"style":144},[1043],{"type":42,"value":1044},".ngrok-free.app\n",{"type":37,"tag":50,"props":1046,"children":1048},{"id":1047},"runtime-policy",[1049],{"type":42,"value":1050},"Runtime policy",{"type":37,"tag":44,"props":1052,"children":1053},{},[1054],{"type":42,"value":1055},"Split this skill's work by side effect:",{"type":37,"tag":77,"props":1057,"children":1058},{},[1059,1076],{"type":37,"tag":81,"props":1060,"children":1061},{},[1062,1067,1069,1074],{"type":37,"tag":260,"props":1063,"children":1064},{},[1065],{"type":42,"value":1066},"Verification is read-only",{"type":42,"value":1068}," — checking what's installed, what's missing, and what's\ngenuinely manual. It runs ",{"type":37,"tag":260,"props":1070,"children":1071},{},[1072],{"type":42,"value":1073},"before",{"type":42,"value":1075}," the execution-plan acceptance gate and feeds the\nplan.",{"type":37,"tag":81,"props":1077,"children":1078},{},[1079,1084,1086,1091,1093,1098],{"type":37,"tag":260,"props":1080,"children":1081},{},[1082],{"type":42,"value":1083},"Provisioning writes",{"type":42,"value":1085}," — installing apps, enabling Wix Data (via the data-collections\nenabler), creating collections, adding fields — happen ",{"type":37,"tag":260,"props":1087,"children":1088},{},[1089],{"type":42,"value":1090},"only after",{"type":42,"value":1092}," the user accepts\nthe execution plan. ",{"type":37,"tag":260,"props":1094,"children":1095},{},[1096],{"type":42,"value":1097},"No site write before acceptance.",{"type":42,"value":1099}," Once accepted, the \"Migrate\"\nconsent covers the individual writes, so don't re-prompt per app\u002Fcollection. Halt to\nneeds-user only for genuinely manual items (storage-plan upgrade) or a\nmissing\u002Finvalid credential.",{"type":37,"tag":50,"props":1101,"children":1103},{"id":1102},"guardrails",[1104],{"type":42,"value":1105},"Guardrails",{"type":37,"tag":77,"props":1107,"children":1108},{},[1109,1114,1119,1124],{"type":37,"tag":81,"props":1110,"children":1111},{},[1112],{"type":42,"value":1113},"Never report setup as complete without evidence.",{"type":37,"tag":81,"props":1115,"children":1116},{},[1117],{"type":42,"value":1118},"Before marking an item blocked or manual, confirm no API can perform it (see\nProvisioning above). Reserve \"manual\" for storage\u002Fbilling\u002Fexternal-credential steps.",{"type":37,"tag":81,"props":1120,"children":1121},{},[1122],{"type":42,"value":1123},"If credentials or permissions are genuinely missing, mark the item blocked and state\nthe exact API that was refused and why.",{"type":37,"tag":81,"props":1125,"children":1126},{},[1127],{"type":42,"value":1128},"Do not start import execution from this skill.",{"type":37,"tag":1130,"props":1131,"children":1132},"style",{},[1133],{"type":42,"value":1134},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1136,"total":1215},[1137,1151,1162,1168,1183,1193,1204],{"slug":1138,"name":1138,"fn":1139,"description":1140,"org":1141,"tags":1142,"stars":20,"repoUrl":21,"updatedAt":1150},"rp-discovery","discover source platform schema for migration","Discovers and documents the source platform schema (entities, fields, relationships) for a migration project. Use when capturing source structure before mapping to Wix.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1143,1146,1149],{"name":1144,"slug":1145,"type":13},"Data Modeling","data-modeling",{"name":1147,"slug":1148,"type":13},"Documentation","documentation",{"name":15,"slug":16,"type":13},"2026-07-01T08:08:08.302261",{"slug":308,"name":308,"fn":1152,"description":1153,"org":1154,"tags":1155,"stars":20,"repoUrl":21,"updatedAt":1161},"execute migration pipelines to Wix","Runs the generated extract\u002Fimport pipeline and records execution results. Use when setup and codegen are complete and the user has approved the execution plan.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1156,1159,1160],{"name":1157,"slug":1158,"type":13},"Data Pipeline","data-pipeline",{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},"2026-07-01T08:08:07.038962",{"slug":4,"name":4,"fn":5,"description":6,"org":1163,"tags":1164,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1165,1166,1167],{"name":18,"slug":19,"type":13},{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"slug":1169,"name":1169,"fn":1170,"description":1171,"org":1172,"tags":1173,"stars":20,"repoUrl":21,"updatedAt":1182},"rp-import-codegen","generate migration code for Wix","Generates migration readers, transforms, and Wix writers from schema and mapping artifacts. Use when producing runnable extract\u002Fimport code under the migration project.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1174,1177,1180,1181],{"name":1175,"slug":1176,"type":13},"Automation","automation",{"name":1178,"slug":1179,"type":13},"Data Engineering","data-engineering",{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},"2026-07-01T08:08:05.755188",{"slug":1184,"name":1184,"fn":1185,"description":1186,"org":1187,"tags":1188,"stars":20,"repoUrl":21,"updatedAt":1192},"rp-mapper","map source entities to Wix targets","Maps discovered source entities and fields to Wix targets and documents lossiness. Use when creating mapping-plan.md and mapping-summary.md after discovery.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1189,1190,1191],{"name":1144,"slug":1145,"type":13},{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},"2026-07-01T08:08:01.958081",{"slug":1194,"name":1194,"fn":1195,"description":1196,"org":1197,"tags":1198,"stars":20,"repoUrl":21,"updatedAt":1203},"rp-orchestration","orchestrate Wix site migrations","Routes RePlatform source-to-Wix migrations to the next workflow step by inspecting migration project artifacts. Use when starting, continuing, or recovering a migration run.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1199,1200,1201,1202],{"name":1175,"slug":1176,"type":13},{"name":18,"slug":19,"type":13},{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},"2026-07-01T08:08:09.570887",{"slug":67,"name":67,"fn":1205,"description":1206,"org":1207,"tags":1208,"stars":20,"repoUrl":21,"updatedAt":1214},"set up Wix environment prerequisites","Derives Wix environment prerequisites (apps, collections, schemas) from an approved mapping plan. Use after mapping review and before import code generation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1209,1212,1213],{"name":1210,"slug":1211,"type":13},"Configuration","configuration",{"name":1144,"slug":1145,"type":13},{"name":9,"slug":8,"type":13},"2026-07-01T08:07:59.413698",16,{"items":1217,"total":1339},[1218,1224,1230,1236,1243,1249,1256,1262,1279,1292,1309,1321],{"slug":1138,"name":1138,"fn":1139,"description":1140,"org":1219,"tags":1220,"stars":20,"repoUrl":21,"updatedAt":1150},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1221,1222,1223],{"name":1144,"slug":1145,"type":13},{"name":1147,"slug":1148,"type":13},{"name":15,"slug":16,"type":13},{"slug":308,"name":308,"fn":1152,"description":1153,"org":1225,"tags":1226,"stars":20,"repoUrl":21,"updatedAt":1161},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1227,1228,1229],{"name":1157,"slug":1158,"type":13},{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"slug":4,"name":4,"fn":5,"description":6,"org":1231,"tags":1232,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1233,1234,1235],{"name":18,"slug":19,"type":13},{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"slug":1169,"name":1169,"fn":1170,"description":1171,"org":1237,"tags":1238,"stars":20,"repoUrl":21,"updatedAt":1182},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1239,1240,1241,1242],{"name":1175,"slug":1176,"type":13},{"name":1178,"slug":1179,"type":13},{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"slug":1184,"name":1184,"fn":1185,"description":1186,"org":1244,"tags":1245,"stars":20,"repoUrl":21,"updatedAt":1192},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1246,1247,1248],{"name":1144,"slug":1145,"type":13},{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"slug":1194,"name":1194,"fn":1195,"description":1196,"org":1250,"tags":1251,"stars":20,"repoUrl":21,"updatedAt":1203},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1252,1253,1254,1255],{"name":1175,"slug":1176,"type":13},{"name":18,"slug":19,"type":13},{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"slug":67,"name":67,"fn":1205,"description":1206,"org":1257,"tags":1258,"stars":20,"repoUrl":21,"updatedAt":1214},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1259,1260,1261],{"name":1210,"slug":1211,"type":13},{"name":1144,"slug":1145,"type":13},{"name":9,"slug":8,"type":13},{"slug":1263,"name":1263,"fn":1264,"description":1265,"org":1266,"tags":1267,"stars":20,"repoUrl":21,"updatedAt":1278},"rp-source-wordpress","capture data from WordPress and WooCommerce","WordPress and WooCommerce source adapter: REST capture, auth, pagination, and read contract for codegen. Use when the source platform is WordPress or WooCommerce.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1268,1269,1272,1275],{"name":1178,"slug":1179,"type":13},{"name":1270,"slug":1271,"type":13},"REST API","rest-api",{"name":1273,"slug":1274,"type":13},"WooCommerce","woocommerce",{"name":1276,"slug":1277,"type":13},"WordPress","wordpress","2026-07-01T08:08:00.69949",{"slug":324,"name":324,"fn":1280,"description":1281,"org":1282,"tags":1283,"stars":20,"repoUrl":21,"updatedAt":1291},"validate Wix API write operations","Wix target adapter with verified write primitives (wix-writers.js) and contract tests. Use when vendoring Wix writers, validating API shapes, or Wix provisioning mechanics.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1284,1287,1290],{"name":1285,"slug":1286,"type":13},"API Development","api-development",{"name":1288,"slug":1289,"type":13},"Testing","testing",{"name":9,"slug":8,"type":13},"2026-07-01T08:08:03.226054",{"slug":1293,"name":1293,"fn":1294,"description":1295,"org":1296,"tags":1297,"stars":20,"repoUrl":21,"updatedAt":1308},"wix-app","build Wix CLI app extensions","Build and review Wix CLI app extensions — dashboard pages, modals, plugins, menu plugins, custom element widgets, Editor React components, site plugins, embedded scripts, backend APIs, backend events, service plugins, data collections, and App Market readiness. Use when building ANY feature or extension for a Wix CLI app or preparing a Wix app for App Market review. Triggers on: add, build, create, implement, help me, dashboard, widget, plugin, backend, API, event, collection, embedded script, service plugin, Editor React component, checkout, shipping, tax, discount, SPI, CMS, schema, tracking, popup, admin panel, menu item, modal, validate, test, verify, register extension, App Market, app review, submission readiness.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1298,1301,1304,1307],{"name":1299,"slug":1300,"type":13},"Backend","backend",{"name":1302,"slug":1303,"type":13},"CLI","cli",{"name":1305,"slug":1306,"type":13},"Frontend","frontend",{"name":9,"slug":8,"type":13},"2026-04-16T04:58:00.157961",{"slug":1310,"name":1310,"fn":1311,"description":1312,"org":1313,"tags":1314,"stars":20,"repoUrl":21,"updatedAt":1320},"wix-auth","authenticate with Wix APIs","Authenticate with Wix to obtain an access token for calling Wix APIs. Use when an agent needs a valid Wix access token and has none, or when the stored token is expired.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1315,1316,1319],{"name":1285,"slug":1286,"type":13},{"name":1317,"slug":1318,"type":13},"Auth","auth",{"name":9,"slug":8,"type":13},"2026-07-07T06:47:46.95263",{"slug":1322,"name":1322,"fn":1323,"description":1324,"org":1325,"tags":1326,"stars":20,"repoUrl":21,"updatedAt":1338},"wix-design-system","build UIs with Wix Design System","Wix Design System component reference. Use when building UI with @wix\u002Fdesign-system, choosing components, checking props and examples, or writing tests with component testkits. Triggers on \"what component\", \"how do I make\", \"WDS\", \"show me props\", \"testkit\", \"driver\", or component names like Button, Card, Modal, Box, Text.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1327,1330,1333,1334,1337],{"name":1328,"slug":1329,"type":13},"Design","design",{"name":1331,"slug":1332,"type":13},"Design System","design-system",{"name":1305,"slug":1306,"type":13},{"name":1335,"slug":1336,"type":13},"UI Components","ui-components",{"name":9,"slug":8,"type":13},"2026-04-29T05:33:44.561687",17]