1{2 "schemaVersion": 1,3 "description": "Nothing-to-move verdicts, in two tiers.\n\n`hints[]` — a flat slug lookup for plugins that need no data migration at all, where a full profile would be dead weight. A hit here is strong evidence the agent confirms at classification, never the answer by itself. Without this list, a caching or SMTP plugin whose data we cannot read is reported as potential data loss — which is both wrong and alarming. Keyed by plugin directory slug; a slug with a full profile may not appear here.\n\n`capabilities[]` — the human-signed per-capability register, for PROFILED plugins the slug list cannot reach. This is the only way a profiled capability reaches the no-need-to-migrate status (basis: decision); without it a decided capability re-lands as pending on every run. It is not an impossibility verdict (that is requires-development.json) — it says the outcome exists in Wix or was never data — but it is still a decision about what the customer does not get, so it carries decidedBy + decidedOn and validation rejects an unsigned entry. Mutually exclusive with requires-development.json and capabilities-pending-decision.json, and rejected once a Wix target entity claims the capability.\n\n`coreCovered[]` — plugins whose data the adapter's core reader already moves (WooCommerce via wc/v3). The per-plugin row is migration-planned with basis core-reader only when this run read one of `coreNamespaces`; otherwise the plugin stays pending. It adds no capability decision: the core entities are their own census rows.\n\n`toolkitPlugins[]` — this skill's own plugins on the source site. Left out of the plugin report and counted in statusInvariant.toolkitExcluded. Signed.",
5 "platform-does-it": "Wix provides this capability natively; drop the plugin and keep the behaviour.",
6 "not-needed": "Development, hosting or licensing tooling with no role after migration; it was never data.",
7 "reconfigure-in-wix": "A setting or rule you set up once in Wix rather than data to move."
8 },
9 "capabilities": [],
10 "hints": [
11 {
12 "slug": "nextend-facebook-connect",
13 "reason": "reconfigure-in-wix",
14 "does": "Social login buttons (Nextend Social Login): Facebook, Google, X/Twitter free; more providers in Pro",
15 "replacedBy": "Wix native member social login: enable the matching Google/Facebook toggles in dashboard Signup & Login settings (default form only). No settings API exists (members docs-survey 2026-08-16) — manual setup step. Fidelity: enable only the providers the source actually had enabled (detect from wp-login.php button render, not stylesheet class names). Providers beyond Google/Facebook are reportable loss; an org-restricted OAuth client is a different capability — see members.domain-restricted-login in capabilities-pending-decision.json.",
16 "provenance": "observed"
17 },
18 {
19 "slug": "akismet",
20 "reason": "platform-does-it",
21 "does": "Comment and form spam protection",
22 "replacedBy": "Wix Forms and comments include spam protection.",
23 "provenance": "observed"
24 },
25 {
26 "slug": "wp-rocket",
27 "reason": "platform-does-it",
28 "does": "Page caching and performance tuning",
29 "replacedBy": "Wix handles caching and delivery for you.",
30 "provenance": "observed"
31 },
32 {
33 "slug": "redis-cache-pro",
34 "reason": "platform-does-it",
35 "does": "Redis object caching",
36 "replacedBy": "Managed by Wix infrastructure.",
37 "provenance": "observed"
38 },
39 {
40 "slug": "cloudflare-helper",
41 "reason": "platform-does-it",
42 "does": "Purges the Cloudflare cache",
43 "replacedBy": "Wix serves through its own CDN.",
44 "provenance": "observed"
45 },
46 {
47 "slug": "webp-express",
48 "reason": "platform-does-it",
49 "does": "Serves images in WebP format",
50 "replacedBy": "Wix converts and serves optimised images automatically.",
51 "provenance": "observed"
52 },
53 {
54 "slug": "imagify",
55 "reason": "platform-does-it",
56 "does": "Compresses images",
57 "replacedBy": "Image optimisation is part of Wix media.",
58 "provenance": "observed"
59 },
60 {
61 "slug": "ssl-insecure-content-fixer",
62 "reason": "platform-does-it",
63 "does": "Fixes mixed HTTP and HTTPS content",
64 "replacedBy": "Wix is HTTPS end to end, so the problem disappears.",
65 "provenance": "observed"
66 },
67 {
68 "slug": "wp-mail-smtp",
69 "reason": "platform-does-it",
70 "does": "Sends site email through an SMTP provider",
154 "does": "Backs up and exports the whole site",
155 "replacedBy": "Wix keeps site history itself. Useful during migration though: it can produce a full export including data the REST API does not expose.",
156 "provenance": "observed"
157 },
158 {
159 "slug": "woocommerce-legacy-rest-api",
160 "reason": "not-needed",
161 "does": "Re-enables the older WooCommerce API versions",
162 "replacedBy": "This is why the old API versions appear on the site; we read the current one.",
163 "provenance": "observed"
164 },
165 {
166 "slug": "woo-update-manager",
167 "reason": "not-needed",
168 "does": "Manages licences and plugin updates",
169 "replacedBy": "No role after the move.",
170 "provenance": "observed"
171 },
172 {
173 "slug": "health-check",
174 "reason": "not-needed",
175 "does": "WordPress diagnostics",
176 "replacedBy": "No role after the move.",
177 "provenance": "observed"
178 },
179 {
180 "slug": "wp-rollback",
181 "reason": "not-needed",
182 "does": "Rolls plugins back to an earlier version",
183 "replacedBy": "No role after the move.",
184 "provenance": "observed"
185 },
186 {
187 "slug": "heartbeat-control",
188 "reason": "not-needed",
189 "does": "Throttles WordPress admin polling",
190 "replacedBy": "A WordPress-specific performance workaround.",
191 "provenance": "observed"
192 },
193 {
194 "slug": "regenerate-thumbnails",
195 "reason": "not-needed",
196 "does": "Rebuilds image thumbnail sizes",
197 "replacedBy": "Wix generates its own image renditions.",
198 "provenance": "observed"
199 },
200 {
201 "slug": "loco-translate",
202 "reason": "not-needed",
203 "does": "Translates plugin and theme interface strings",
204 "replacedBy": "Interface strings, not your content.",
205 "provenance": "observed"
206 },
207 {
208 "slug": "user-role-editor",
209 "reason": "not-needed",
210 "does": "Edits WordPress user roles and permissions",
211 "replacedBy": "WordPress roles do not map to Wix permissions; set those up fresh.",
212 "provenance": "observed"
213 },
214 {
215 "slug": "log-emails",
216 "reason": "not-needed",
217 "does": "Logs outgoing email",
218 "replacedBy": "An operational log rather than business data.",
219 "provenance": "observed"
220 },
221 {
222 "slug": "so-css",
223 "reason": "not-needed",
224 "does": "Custom CSS editor",
225 "replacedBy": "Theme styling; the storefront is rebuilt in Wix regardless.",
232 "replacedBy": "The SKUs it generated live on the products and migrate with them.",
233 "provenance": "observed"
234 },
235 {
236 "slug": "sku-for-woocommerce",
237 "reason": "not-needed",
238 "does": "Generates product SKUs",
239 "replacedBy": "The SKUs it generated live on the products and migrate with them.",
240 "provenance": "observed"
241 },
242 {
243 "slug": "woo-order-note-templates-old",
244 "reason": "not-needed",
245 "does": "Canned order note templates",
246 "replacedBy": "Staff convenience text, not customer data.",
247 "provenance": "observed"
248 },
249 {
250 "slug": "woocommerce-email-test",
251 "reason": "not-needed",
252 "does": "Sends test emails",
253 "replacedBy": "A testing tool.",
254 "provenance": "observed"
255 },
256 {
257 "slug": "wp-theme-plugin-download",
258 "reason": "not-needed",
259 "does": "Downloads theme and plugin files",
260 "replacedBy": "A developer utility.",
261 "provenance": "observed"
262 },
263 {
264 "slug": "query-monitor",
265 "reason": "not-needed",
266 "does": "Developer debugging panel",
267 "replacedBy": "A development tool.",
268 "provenance": "expected:not-yet-observed"
269 },
270 {
271 "slug": "duplicate-post",
272 "reason": "not-needed",
273 "does": "Duplicates posts and products",
274 "replacedBy": "An authoring convenience.",
275 "provenance": "expected:not-yet-observed"
276 },
277 {
278 "slug": "woo-cart-abandonment-recovery",
279 "reason": "platform-does-it",
280 "does": "Cart Abandonment Recovery for WooCommerce: records abandoned checkouts in its own table (cartflows_ca_cart_abandonment) and sends recovery email sequences",
281 "replacedBy": "Wix eCommerce captures abandoned checkouts natively from launch onward, and Wix Automations sends the recovery mail — so the capability is not lost going forward. What cannot move is the HISTORY: there is no way to write a historical AbandonedCheckout (see requires-development commerce.abandoned-carts). Do not attempt to backfill it by recreating carts; that produces no historical abandoned checkouts. If the owner wants the abandoned-cart PEOPLE as contacts, that is a separate, explicitly-approved crm/contact import, email only and never a marketing subscription.",
282 "provenance": "observed"
283 },
284 {
285 "slug": "woo-order-export-lite",
286 "reason": "not-needed",
287 "does": "Advanced Order Export: exports orders to CSV/Excel for admins",
288 "replacedBy": "Orders are imported to Wix; Wix Stores exports orders from the dashboard.",
378 "does": "WP Rocket add-on that turns off Google Fonts optimization",
379 "replacedBy": "Wix handles fonts, caching and delivery for you.",
380 "provenance": "observed"
381 },
382 {
383 "slug": "classic-editor",
384 "reason": "not-needed",
385 "does": "Restores the old WordPress post editor",
386 "replacedBy": "Nothing in Wix needs it; it was a tool for running the old site.",
387 "provenance": "observed"
388 },
389 {
390 "slug": "wordpress-page-widget",
391 "reason": "not-needed",
392 "does": "Places widgets on pages (layout only)",
393 "replacedBy": "Page layout is rebuilt with the new site; there is no data to move.",
394 "provenance": "observed"
395 },
396 {
397 "slug": "nps-survey",
398 "reason": "not-needed",
399 "does": "Admin onboarding survey (NPS) shown in wp-admin",
400 "replacedBy": "Nothing in Wix needs it; it was a tool for running the old site.",
401 "provenance": "observed"
402 },
403 {
404 "slug": "smtp-amazon-ses",
405 "reason": "platform-does-it",
406 "does": "Sends site email through Amazon SES (SMTP)",
407 "replacedBy": "Wix sends site and store emails itself.",
408 "provenance": "observed"
409 }
410 ],
411 "policy": "Grow from real runs: add a hint when a real migration surfaces the plugin as unresolved. `provenance` records whether we have actually seen the plugin or added it by expectation, so the unobserved entries stay visible and reviewable rather than accumulating silently.",
412 "coreCovered": [
413 {
414 "slug": "woocommerce",
415 "displayName": "WooCommerce",
416 "does": "The store itself: products, orders, customers, coupons, shipping and taxes.",
417 "coreNamespaces": [
418 "wc/v3"
419 ],
420 "provenance": "observed"
421 }
422 ],
423 "toolkitPlugins": [
424 {
425 "slug": "wix-wp-plugin-v2",
426 "does": "The Wix migration bridge this skill installs to read plugin tables. Not the merchant's plugin.",