@wix/agent-skills 1.35.1 → 1.36.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (820) hide show
  1. package/package.json +8 -3
  2. package/skills/wix-app/references/CODE_QUALITY.md +1 -1
  3. package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +27 -29
  4. package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +1 -1
  5. package/skills/wix-app/references/editor-react-component/COMPONENT-CONTRACT.md +26 -25
  6. package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +12 -42
  7. package/skills/wix-app/references/editor-react-component/DESIGN-STATES.md +9 -20
  8. package/skills/wix-app/references/editor-react-component/MANIFEST-ERRORS.md +5 -4
  9. package/skills/wix-app/references/editor-react-component/PARTS.md +1 -1
  10. package/skills/wix-app/references/editor-react-component/PROPS-VS-CSS.md +1 -1
  11. package/skills/wix-app/references/editor-react-component/VECTOR-ART.md +95 -0
  12. package/skills/wix-app/references/editor-react-component/VISUAL-QUALITY.md +39 -0
  13. package/skills/wix-docs/references/CALLING.md +1 -1
  14. package/skills/wix-headless-kit/guides/api-run.md +1 -1
  15. package/skills/wix-headless-kit/install/pins.json +1 -1
  16. package/skills/wix-headless-templates/blog/seed/seed-blog.mjs +1 -1
  17. package/skills/wix-headless-templates/donations/app/wix/donations/campaigns.ts +0 -1
  18. package/skills/wix-headless-templates/donations/app/wix/donations/donate.ts +1 -1
  19. package/skills/wix-headless-templates/donations/project/src/wix/donations/campaigns.ts +0 -1
  20. package/skills/wix-headless-templates/donations/project/src/wix/donations/donate.ts +1 -1
  21. package/skills/wix-headless-templates/donations/rest/campaigns.ts +0 -1
  22. package/skills/wix-headless-templates/donations/rest/donate.ts +1 -1
  23. package/skills/wix-headless-templates/events/seed/seed-events.mjs +1 -1
  24. package/skills/wix-headless-templates/faq/INSTRUCTIONS.md +1 -1
  25. package/skills/wix-headless-templates/faq/app/wix/faq/faq.ts +2 -2
  26. package/skills/wix-headless-templates/faq/project/src/wix/faq/faq.ts +2 -2
  27. package/skills/wix-headless-templates/faq/rest/faq.ts +2 -2
  28. package/skills/wix-headless-templates/faq/seed/SEED.md +1 -1
  29. package/skills/wix-headless-templates/faq/seed/read-site.mjs +1 -1
  30. package/skills/wix-headless-templates/faq/seed/seed-faq.mjs +5 -5
  31. package/skills/wix-headless-templates/forms/app/wix/forms/forms.ts +2 -2
  32. package/skills/wix-headless-templates/forms/app/wix/forms/submissions.ts +2 -2
  33. package/skills/wix-headless-templates/forms/project/src/wix/forms/forms.ts +2 -2
  34. package/skills/wix-headless-templates/forms/project/src/wix/forms/submissions.ts +2 -2
  35. package/skills/wix-headless-templates/members/seed/read-site.mjs +1 -1
  36. package/skills/wix-headless-templates/pricing-plans/app/wix/pricing-plans/plan-access.ts +1 -1
  37. package/skills/wix-headless-templates/pricing-plans/project/src/wix/pricing-plans/plan-access.ts +1 -1
  38. package/skills/wix-headless-templates/pricing-plans/rest/plan-access.ts +1 -1
  39. package/skills/wix-headless-templates/restaurants/app/wix/restaurants/menu.ts +0 -1
  40. package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/menu.ts +0 -1
  41. package/skills/wix-headless-templates/restaurants/rest/menu.ts +0 -1
  42. package/skills/wix-headless-templates/shared/rest/client.ts +1 -1
  43. package/skills/wix-headless-templates/shared/seed/site.mjs +2 -1
  44. package/skills/wix-manage/SKILL.md +3 -3
  45. package/skills/wix-manage/references/cms/cms-data-items-crud.md +78 -1
  46. package/skills/wix-manage/references/google-ads/create-performance-max-campaign.md +11 -11
  47. package/skills/wix-manage/references/google-ads/get-campaign-suggestions.md +0 -1
  48. package/skills/wix-manage/references/google-ads/install-and-create-account.md +0 -1
  49. package/skills/wix-manage/references/marketing/create-and-publish-social-post.md +20 -51
  50. package/skills/wix-manage/references/marketing/generate-and-publish-marketing-plan.md +4 -4
  51. package/skills/wix-manage/references/rich-content/ricos-converter-service.md +1 -1
  52. package/skills/wix-base44-connector/SKILL.md +0 -437
  53. package/skills/wix-base44-connector/references/CAPABILITY_MAP.md +0 -78
  54. package/skills/wix-base44-connector/scripts/utils.cjs +0 -466
  55. package/skills/wix-export/SKILL.md +0 -83
  56. package/skills/wix-harmony-editor/.publish-manifest.json +0 -8
  57. package/skills/wix-harmony-editor/COPY-SITE.md +0 -494
  58. package/skills/wix-harmony-editor/SKILL.md +0 -317
  59. package/skills/wix-harmony-editor/scripts/copy/build-description.mjs +0 -249
  60. package/skills/wix-harmony-editor/scripts/copy/check-description.mjs +0 -225
  61. package/skills/wix-harmony-editor/scripts/copy/check-mirror.mjs +0 -89
  62. package/skills/wix-harmony-editor/scripts/copy/compare-preview.mjs +0 -76
  63. package/skills/wix-harmony-editor/scripts/copy/deploy-description.mjs +0 -212
  64. package/skills/wix-harmony-editor/scripts/copy/desc-hash.mjs +0 -44
  65. package/skills/wix-harmony-editor/scripts/copy/editor-run.mjs +0 -45
  66. package/skills/wix-harmony-editor/scripts/copy/export-page.mjs +0 -53
  67. package/skills/wix-harmony-editor/scripts/copy/find-interactions.mjs +0 -76
  68. package/skills/wix-harmony-editor/scripts/copy/hide-scrollbars.mjs +0 -16
  69. package/skills/wix-harmony-editor/scripts/copy/import-media.mjs +0 -150
  70. package/skills/wix-harmony-editor/scripts/copy/link-url.mjs +0 -27
  71. package/skills/wix-harmony-editor/scripts/copy/lint-api.mjs +0 -56
  72. package/skills/wix-harmony-editor/scripts/copy/measure-source.mjs +0 -211
  73. package/skills/wix-harmony-editor/scripts/copy/merge-mirrors.mjs +0 -29
  74. package/skills/wix-harmony-editor/scripts/copy/mirror-site.mjs +0 -92
  75. package/skills/wix-harmony-editor/scripts/copy/mobile-stage.mjs +0 -56
  76. package/skills/wix-harmony-editor/scripts/copy/preview-widths.mjs +0 -73
  77. package/skills/wix-harmony-editor/scripts/copy/render-plate.mjs +0 -67
  78. package/skills/wix-harmony-editor/scripts/copy/serve-mirror.mjs +0 -102
  79. package/skills/wix-harmony-editor/scripts/copy/snapshot-capabilities.mjs +0 -40
  80. package/skills/wix-harmony-editor/scripts/copy/split-sections.mjs +0 -191
  81. package/skills/wix-harmony-editor/scripts/copy/upload-media-manager.mjs +0 -61
  82. package/skills/wix-harmony-editor/scripts/launch.sh +0 -359
  83. package/skills/wix-headless/SKILL.md +0 -151
  84. package/skills/wix-headless/references/AI_FEATURES.md +0 -178
  85. package/skills/wix-headless/references/CAPABILITIES.md +0 -117
  86. package/skills/wix-headless/references/CONTENT.md +0 -36
  87. package/skills/wix-headless/references/DESIGN.md +0 -55
  88. package/skills/wix-headless/references/DISCOVERY.md +0 -80
  89. package/skills/wix-headless/references/DOC_DISCOVERY.md +0 -43
  90. package/skills/wix-headless/references/FEEDBACK.md +0 -129
  91. package/skills/wix-headless/references/IMAGE_GENERATION.md +0 -80
  92. package/skills/wix-headless/references/SDK_HANDOFF.md +0 -108
  93. package/skills/wix-headless/references/SEED.md +0 -74
  94. package/skills/wix-headless/references/SETUP.md +0 -60
  95. package/skills/wix-headless/references/astro.md +0 -98
  96. package/skills/wix-headless/references/inline-recipes/experience-donations.md +0 -102
  97. package/skills/wix-headless/references/inline-recipes/experience-store.md +0 -49
  98. package/skills/wix-headless/references/inline-recipes/how-to-code-a-blog.md +0 -196
  99. package/skills/wix-headless/references/inline-recipes/how-to-code-a-store.md +0 -590
  100. package/skills/wix-headless/references/inline-recipes/how-to-code-bookings.md +0 -279
  101. package/skills/wix-headless/references/inline-recipes/how-to-code-cms.md +0 -163
  102. package/skills/wix-headless/references/inline-recipes/how-to-code-donations.md +0 -146
  103. package/skills/wix-headless/references/inline-recipes/how-to-code-events.md +0 -203
  104. package/skills/wix-headless/references/inline-recipes/how-to-code-forms.md +0 -696
  105. package/skills/wix-headless/references/inline-recipes/how-to-code-members-astro.md +0 -124
  106. package/skills/wix-headless/references/inline-recipes/how-to-code-members-custom-login.md +0 -160
  107. package/skills/wix-headless/references/inline-recipes/how-to-code-members-non-astro.md +0 -118
  108. package/skills/wix-headless/references/inline-recipes/how-to-code-portfolio.md +0 -132
  109. package/skills/wix-headless/references/inline-recipes/how-to-code-pricing-plans.md +0 -126
  110. package/skills/wix-headless/references/inline-recipes/how-to-code-rentals.md +0 -254
  111. package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-orders.md +0 -191
  112. package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-reservations.md +0 -213
  113. package/skills/wix-headless/references/inline-recipes/how-to-code-restaurants.md +0 -161
  114. package/skills/wix-headless/references/inline-recipes/setup-blog.md +0 -175
  115. package/skills/wix-headless/references/inline-recipes/setup-bookings.md +0 -232
  116. package/skills/wix-headless/references/inline-recipes/setup-cms.md +0 -200
  117. package/skills/wix-headless/references/inline-recipes/setup-donations.md +0 -15
  118. package/skills/wix-headless/references/inline-recipes/setup-events.md +0 -196
  119. package/skills/wix-headless/references/inline-recipes/setup-forms.md +0 -288
  120. package/skills/wix-headless/references/inline-recipes/setup-online-store.md +0 -214
  121. package/skills/wix-headless/references/inline-recipes/setup-portfolio.md +0 -155
  122. package/skills/wix-headless/references/inline-recipes/setup-pricing-plans.md +0 -229
  123. package/skills/wix-headless/references/inline-recipes/setup-rentals.md +0 -254
  124. package/skills/wix-headless/references/inline-recipes/setup-restaurant-experiences.md +0 -73
  125. package/skills/wix-headless/references/inline-recipes/setup-restaurant-orders.md +0 -197
  126. package/skills/wix-headless/references/inline-recipes/setup-restaurant-reservations.md +0 -136
  127. package/skills/wix-headless/references/inline-recipes/setup-restaurants.md +0 -152
  128. package/skills/wix-headless/references/managed/AUTHENTICATION.md +0 -71
  129. package/skills/wix-headless/references/managed/CONNECT.md +0 -74
  130. package/skills/wix-headless/references/managed/CREATE.md +0 -149
  131. package/skills/wix-headless/references/managed/DEPLOYMENT.md +0 -104
  132. package/skills/wix-headless/references/non-astro.md +0 -59
  133. package/skills/wix-headless/references/self-managed/AUTHENTICATION.md +0 -22
  134. package/skills/wix-headless/references/self-managed/DEPLOYMENT.md +0 -15
  135. package/skills/wix-headless/references/stripe/AUTHENTICATION.md +0 -55
  136. package/skills/wix-headless/references/stripe/DEPLOYMENT.md +0 -71
  137. package/skills/wix-headless/scripts/bootstrap.mjs +0 -156
  138. package/skills/wix-headless-replatform/.publish-manifest.json +0 -8
  139. package/skills/wix-headless-replatform/SKILL.md +0 -116
  140. package/skills/wix-headless-replatform/agents/openai.yaml +0 -6
  141. package/skills/wix-headless-replatform/references/control-and-visual-fidelity-contract.md +0 -43
  142. package/skills/wix-headless-replatform/references/extraction-schema.md +0 -187
  143. package/skills/wix-headless-replatform/references/interaction-runtime-contract.md +0 -137
  144. package/skills/wix-headless-replatform/references/layout-blueprint-contract.md +0 -41
  145. package/skills/wix-headless-replatform/references/output-contract.md +0 -93
  146. package/skills/wix-headless-replatform/references/post-build-gap-contract.md +0 -125
  147. package/skills/wix-headless-replatform/references/qa-checklist.md +0 -83
  148. package/skills/wix-headless-replatform/references/safety.md +0 -19
  149. package/skills/wix-headless-replatform/references/ui-normalization-contract.md +0 -70
  150. package/skills/wix-headless-replatform/references/workflow.md +0 -157
  151. package/skills/wix-headless-replatform/registry/README.md +0 -20
  152. package/skills/wix-headless-replatform/registry/approvals/button/shadcn-default-ac60ef5.json +0 -28
  153. package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/button.tsx +0 -54
  154. package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/capabilities.json +0 -60
  155. package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/contract.md +0 -48
  156. package/skills/wix-headless-replatform/registry/licenses/shadcn-ui-ac60ef5-MIT.txt +0 -21
  157. package/skills/wix-headless-replatform/registry/registry.json +0 -36
  158. package/skills/wix-headless-replatform/resources/rp-facelift/SKILL.md +0 -32
  159. package/skills/wix-headless-replatform/resources/rp-project-context/SKILL.md +0 -62
  160. package/skills/wix-headless-replatform/resources/rp-qa-gap-loop/SKILL.md +0 -64
  161. package/skills/wix-headless-replatform/resources/rp-source-evidence/SKILL.md +0 -42
  162. package/skills/wix-headless-replatform/resources/rp-ui-implementation/SKILL.md +0 -73
  163. package/skills/wix-headless-replatform/schemas/build-plan.schema.json +0 -10
  164. package/skills/wix-headless-replatform/schemas/candidate.schema.json +0 -19
  165. package/skills/wix-headless-replatform/schemas/common.schema.json +0 -33
  166. package/skills/wix-headless-replatform/schemas/decision-patch.schema.json +0 -10
  167. package/skills/wix-headless-replatform/schemas/decision-request.schema.json +0 -10
  168. package/skills/wix-headless-replatform/schemas/extraction-gap.schema.json +0 -28
  169. package/skills/wix-headless-replatform/schemas/extraction-manifest.schema.json +0 -34
  170. package/skills/wix-headless-replatform/schemas/final-report.schema.json +0 -10
  171. package/skills/wix-headless-replatform/schemas/foundation.schema.json +0 -11
  172. package/skills/wix-headless-replatform/schemas/metadata.schema.json +0 -11
  173. package/skills/wix-headless-replatform/schemas/observation-packet.schema.json +0 -17
  174. package/skills/wix-headless-replatform/schemas/page-capture.schema.json +0 -11
  175. package/skills/wix-headless-replatform/schemas/page-resolution.schema.json +0 -33
  176. package/skills/wix-headless-replatform/schemas/shared-chrome.schema.json +0 -11
  177. package/skills/wix-headless-replatform/schemas/unit.schema.json +0 -40
  178. package/skills/wix-headless-replatform/scripts/assemble-extraction.mjs +0 -844
  179. package/skills/wix-headless-replatform/scripts/benchmark-extraction.mjs +0 -163
  180. package/skills/wix-headless-replatform/scripts/browser-extraction-preflight.mjs +0 -42
  181. package/skills/wix-headless-replatform/scripts/build-extracted-homepage.mjs +0 -228
  182. package/skills/wix-headless-replatform/scripts/clear-wix-starter.mjs +0 -87
  183. package/skills/wix-headless-replatform/scripts/create-wix-project.mjs +0 -505
  184. package/skills/wix-headless-replatform/scripts/discover-urls.mjs +0 -142
  185. package/skills/wix-headless-replatform/scripts/extract-assets.mjs +0 -140
  186. package/skills/wix-headless-replatform/scripts/extract-design-system.mjs +0 -637
  187. package/skills/wix-headless-replatform/scripts/extract-interactions.mjs +0 -1903
  188. package/skills/wix-headless-replatform/scripts/extract-page.mjs +0 -2461
  189. package/skills/wix-headless-replatform/scripts/extract-seo.mjs +0 -25
  190. package/skills/wix-headless-replatform/scripts/extract-tokens.mjs +0 -63
  191. package/skills/wix-headless-replatform/scripts/finalize-extraction-report.mjs +0 -126
  192. package/skills/wix-headless-replatform/scripts/finalize-gap-review.mjs +0 -180
  193. package/skills/wix-headless-replatform/scripts/finalize-gap-review.test.mjs +0 -98
  194. package/skills/wix-headless-replatform/scripts/finalize-migration-website.mjs +0 -103
  195. package/skills/wix-headless-replatform/scripts/generate-control-state-contract.mjs +0 -176
  196. package/skills/wix-headless-replatform/scripts/generate-design-md.mjs +0 -261
  197. package/skills/wix-headless-replatform/scripts/generate-extraction-validators.mjs +0 -25
  198. package/skills/wix-headless-replatform/scripts/generate-invoice-download-backend.mjs +0 -342
  199. package/skills/wix-headless-replatform/scripts/generate-layout-blueprint.mjs +0 -140
  200. package/skills/wix-headless-replatform/scripts/generate-repeater-cms.mjs +0 -22
  201. package/skills/wix-headless-replatform/scripts/generate-route-plan.mjs +0 -143
  202. package/skills/wix-headless-replatform/scripts/generate-scene-contract.mjs +0 -288
  203. package/skills/wix-headless-replatform/scripts/generate-ui-normalization.mjs +0 -266
  204. package/skills/wix-headless-replatform/scripts/generate-visual-assets.mjs +0 -111
  205. package/skills/wix-headless-replatform/scripts/lib/browser-tooling.mjs +0 -570
  206. package/skills/wix-headless-replatform/scripts/lib/common.mjs +0 -329
  207. package/skills/wix-headless-replatform/scripts/lib/component-capabilities.mjs +0 -121
  208. package/skills/wix-headless-replatform/scripts/lib/component-registry.mjs +0 -282
  209. package/skills/wix-headless-replatform/scripts/lib/content-boundary.mjs +0 -61
  210. package/skills/wix-headless-replatform/scripts/lib/extraction-contract.mjs +0 -374
  211. package/skills/wix-headless-replatform/scripts/lib/extraction-detectors.mjs +0 -243
  212. package/skills/wix-headless-replatform/scripts/lib/extraction-validators.generated.mjs +0 -1139
  213. package/skills/wix-headless-replatform/scripts/lib/font-contract.mjs +0 -326
  214. package/skills/wix-headless-replatform/scripts/lib/frontend-automation-state.mjs +0 -184
  215. package/skills/wix-headless-replatform/scripts/lib/gap-analysis.mjs +0 -396
  216. package/skills/wix-headless-replatform/scripts/lib/html-extract.mjs +0 -168
  217. package/skills/wix-headless-replatform/scripts/lib/interaction-bootstrap.mjs +0 -10
  218. package/skills/wix-headless-replatform/scripts/lib/interaction-runtime.mjs +0 -194
  219. package/skills/wix-headless-replatform/scripts/lib/interaction-timeline.mjs +0 -348
  220. package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/classifiers.mjs +0 -141
  221. package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/geometry.mjs +0 -43
  222. package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/vocabulary.mjs +0 -18
  223. package/skills/wix-headless-replatform/scripts/lib/ui-normalization.css +0 -64
  224. package/skills/wix-headless-replatform/scripts/optimize-svg.mjs +0 -31
  225. package/skills/wix-headless-replatform/scripts/post-build-gap.mjs +0 -358
  226. package/skills/wix-headless-replatform/scripts/provision-repeater-cms.mjs +0 -25
  227. package/skills/wix-headless-replatform/scripts/record-gap-decision.mjs +0 -39
  228. package/skills/wix-headless-replatform/scripts/replay-extraction.mjs +0 -107
  229. package/skills/wix-headless-replatform/scripts/resolve-home-page.mjs +0 -96
  230. package/skills/wix-headless-replatform/scripts/site-clone.mjs +0 -658
  231. package/skills/wix-headless-replatform/scripts/validate-font-contract.mjs +0 -29
  232. package/skills/wix-headless-replatform/scripts/verify-interactions.mjs +0 -669
  233. package/skills/wix-headless-replatform/scripts/visual-qa.mjs +0 -370
  234. package/skills/wix-import/SKILL.md +0 -90
  235. package/skills/wix-replatform/.publish-manifest.json +0 -8
  236. package/skills/wix-replatform/CLI.md +0 -162
  237. package/skills/wix-replatform/README.md +0 -52
  238. package/skills/wix-replatform/SKILL.md +0 -238
  239. package/skills/wix-replatform/console/account.css +0 -1
  240. package/skills/wix-replatform/console/app.css +0 -1
  241. package/skills/wix-replatform/console/app.js +0 -117
  242. package/skills/wix-replatform/console/index.html +0 -4
  243. package/skills/wix-replatform/console/json.css +0 -11
  244. package/skills/wix-replatform/lib/agent-adapters/index.js +0 -71
  245. package/skills/wix-replatform/lib/app-page-routing.js +0 -75
  246. package/skills/wix-replatform/lib/artifact-freshness.js +0 -225
  247. package/skills/wix-replatform/lib/blocked-data-requests.js +0 -427
  248. package/skills/wix-replatform/lib/census-reconciliation.js +0 -426
  249. package/skills/wix-replatform/lib/completion-report.js +0 -1580
  250. package/skills/wix-replatform/lib/config-env.js +0 -133
  251. package/skills/wix-replatform/lib/confirmed-pictures.js +0 -212
  252. package/skills/wix-replatform/lib/dependency-readiness.js +0 -423
  253. package/skills/wix-replatform/lib/dependency-recovery.js +0 -21
  254. package/skills/wix-replatform/lib/destination-choice.js +0 -163
  255. package/skills/wix-replatform/lib/destination-handoff.js +0 -62
  256. package/skills/wix-replatform/lib/destination-http.js +0 -81
  257. package/skills/wix-replatform/lib/destination-route.js +0 -98
  258. package/skills/wix-replatform/lib/destination.js +0 -919
  259. package/skills/wix-replatform/lib/discovered-census.js +0 -231
  260. package/skills/wix-replatform/lib/discovered-set-status.js +0 -255
  261. package/skills/wix-replatform/lib/document-url-guard.js +0 -203
  262. package/skills/wix-replatform/lib/entity-qa-attestation.js +0 -339
  263. package/skills/wix-replatform/lib/entity-verification.js +0 -18
  264. package/skills/wix-replatform/lib/execution-capability.js +0 -120
  265. package/skills/wix-replatform/lib/execution-log.js +0 -170
  266. package/skills/wix-replatform/lib/execution-manifest.js +0 -203
  267. package/skills/wix-replatform/lib/execution-state.js +0 -195
  268. package/skills/wix-replatform/lib/expectations-ledger.js +0 -96
  269. package/skills/wix-replatform/lib/generated-plugin-handoff.js +0 -140
  270. package/skills/wix-replatform/lib/import-readiness-contract.js +0 -23
  271. package/skills/wix-replatform/lib/import-recovery.js +0 -1107
  272. package/skills/wix-replatform/lib/imported-redirect-targets.js +0 -608
  273. package/skills/wix-replatform/lib/internal-link-reconciliation.js +0 -166
  274. package/skills/wix-replatform/lib/link-audit.js +0 -173
  275. package/skills/wix-replatform/lib/link-census.js +0 -194
  276. package/skills/wix-replatform/lib/link-plan.js +0 -148
  277. package/skills/wix-replatform/lib/link-verification.js +0 -274
  278. package/skills/wix-replatform/lib/link-write-journal.js +0 -42
  279. package/skills/wix-replatform/lib/local-state.js +0 -1481
  280. package/skills/wix-replatform/lib/member-completion.js +0 -658
  281. package/skills/wix-replatform/lib/member-crosswalk.js +0 -69
  282. package/skills/wix-replatform/lib/member-outcome-registry.js +0 -265
  283. package/skills/wix-replatform/lib/migration-completion.js +0 -311
  284. package/skills/wix-replatform/lib/operator-identity.js +0 -47
  285. package/skills/wix-replatform/lib/orchestration-decisions.js +0 -248
  286. package/skills/wix-replatform/lib/orchestration-preflight.js +0 -525
  287. package/skills/wix-replatform/lib/orchestration-router.js +0 -698
  288. package/skills/wix-replatform/lib/orchestration-state.js +0 -631
  289. package/skills/wix-replatform/lib/order-reference-readiness.js +0 -30
  290. package/skills/wix-replatform/lib/payments-outcome-registry.js +0 -200
  291. package/skills/wix-replatform/lib/plugin-cms-fallback.js +0 -618
  292. package/skills/wix-replatform/lib/preservation-approval-stamp.js +0 -54
  293. package/skills/wix-replatform/lib/product-media-deferral.js +0 -96
  294. package/skills/wix-replatform/lib/progress-log.js +0 -240
  295. package/skills/wix-replatform/lib/progress-log.sh +0 -140
  296. package/skills/wix-replatform/lib/read-back-approval.js +0 -184
  297. package/skills/wix-replatform/lib/read-back-comparison.js +0 -136
  298. package/skills/wix-replatform/lib/read-back-contract.js +0 -243
  299. package/skills/wix-replatform/lib/read-back-extract.js +0 -118
  300. package/skills/wix-replatform/lib/read-back-gate.js +0 -734
  301. package/skills/wix-replatform/lib/read-back-reads.js +0 -94
  302. package/skills/wix-replatform/lib/read-back-state.js +0 -107
  303. package/skills/wix-replatform/lib/read-back-summary.js +0 -81
  304. package/skills/wix-replatform/lib/rerun-conflicts.js +0 -334
  305. package/skills/wix-replatform/lib/run-controller.js +0 -401
  306. package/skills/wix-replatform/lib/seo-outcome-registry.js +0 -45
  307. package/skills/wix-replatform/lib/setup-verification.js +0 -148
  308. package/skills/wix-replatform/lib/source-access.js +0 -231
  309. package/skills/wix-replatform/lib/source-coverage.js +0 -1130
  310. package/skills/wix-replatform/lib/source-secrets.js +0 -277
  311. package/skills/wix-replatform/lib/structured-link-patch.js +0 -59
  312. package/skills/wix-replatform/lib/task-state.js +0 -110
  313. package/skills/wix-replatform/lib/url-preservation-report.js +0 -319
  314. package/skills/wix-replatform/lib/url-preservation-state.js +0 -739
  315. package/skills/wix-replatform/lib/url-redirect-plan.js +0 -728
  316. package/skills/wix-replatform/lib/url-verification.js +0 -315
  317. package/skills/wix-replatform/lib/user-action-effects.js +0 -42
  318. package/skills/wix-replatform/lib/user-actions.js +0 -264
  319. package/skills/wix-replatform/lib/website-handoff.js +0 -1220
  320. package/skills/wix-replatform/lib/wix-client-callers.js +0 -54
  321. package/skills/wix-replatform/lib/wix-dashboard-url.js +0 -35
  322. package/skills/wix-replatform/lib/write-verification-state.js +0 -92
  323. package/skills/wix-replatform/lib/write-verification.js +0 -274
  324. package/skills/wix-replatform/resources/rp-destination/SKILL.md +0 -137
  325. package/skills/wix-replatform/resources/rp-discovery/SKILL.md +0 -357
  326. package/skills/wix-replatform/resources/rp-discovery/scripts/promote-source-coverage.js +0 -47
  327. package/skills/wix-replatform/resources/rp-execute-import/SKILL.md +0 -1369
  328. package/skills/wix-replatform/resources/rp-execute-import/scripts/shipping-estimate-audit.js +0 -70
  329. package/skills/wix-replatform/resources/rp-execute-setup/SKILL.md +0 -482
  330. package/skills/wix-replatform/resources/rp-execute-setup/scripts/execute-setup.js +0 -442
  331. package/skills/wix-replatform/resources/rp-execute-setup/scripts/mint-token.sh +0 -64
  332. package/skills/wix-replatform/resources/rp-execution-policy/SKILL.md +0 -112
  333. package/skills/wix-replatform/resources/rp-execution-policy/lib/coupon-currency-plan-report.js +0 -143
  334. package/skills/wix-replatform/resources/rp-execution-policy/lib/payments-report.js +0 -244
  335. package/skills/wix-replatform/resources/rp-import-codegen/SKILL.md +0 -3158
  336. package/skills/wix-replatform/resources/rp-mapper/SKILL.md +0 -947
  337. package/skills/wix-replatform/resources/rp-mapper/lib/mapping-resolve.js +0 -217
  338. package/skills/wix-replatform/resources/rp-mapper/lib/structure-bridge-planning.js +0 -303
  339. package/skills/wix-replatform/resources/rp-mapper/scripts/coverage-reconcile.js +0 -88
  340. package/skills/wix-replatform/resources/rp-mapper/scripts/resolve-mapping.js +0 -148
  341. package/skills/wix-replatform/resources/rp-mapper/wix-business-solutions-taxonomy.md +0 -378
  342. package/skills/wix-replatform/resources/rp-preflight/SKILL.md +0 -40
  343. package/skills/wix-replatform/resources/rp-project-intake/SKILL.md +0 -55
  344. package/skills/wix-replatform/resources/rp-quick-runtime/SKILL.md +0 -60
  345. package/skills/wix-replatform/resources/rp-quick-runtime/lib/import-progress.js +0 -89
  346. package/skills/wix-replatform/resources/rp-quick-runtime/lib/limit-recovery.js +0 -36
  347. package/skills/wix-replatform/resources/rp-quick-shopify/SKILL.md +0 -123
  348. package/skills/wix-replatform/resources/rp-quick-shopify/quick-mode.json +0 -124
  349. package/skills/wix-replatform/resources/rp-quick-shopify/scripts/quick-mode.js +0 -522
  350. package/skills/wix-replatform/resources/rp-quick-woocommerce/SKILL.md +0 -56
  351. package/skills/wix-replatform/resources/rp-quick-woocommerce/quick-mode.json +0 -91
  352. package/skills/wix-replatform/resources/rp-quick-woocommerce/scripts/quick-mode.js +0 -255
  353. package/skills/wix-replatform/resources/rp-setup-discovery/SKILL.md +0 -253
  354. package/skills/wix-replatform/resources/rp-setup-discovery/scripts/quick-setup-plan.js +0 -44
  355. package/skills/wix-replatform/resources/rp-source-csv/SKILL.md +0 -481
  356. package/skills/wix-replatform/resources/rp-source-csv/lib/canonical-record.js +0 -136
  357. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fileset.js +0 -0
  358. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fingerprint.js +0 -310
  359. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-layout.js +0 -1081
  360. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-parse.js +0 -618
  361. package/skills/wix-replatform/resources/rp-source-csv/scripts/csv-discovery.js +0 -969
  362. package/skills/wix-replatform/resources/rp-source-csv/source-schema.example.json +0 -196
  363. package/skills/wix-replatform/resources/rp-source-csv/vendors/bigcommerce.json +0 -66
  364. package/skills/wix-replatform/resources/rp-source-csv/vendors/magento.json +0 -60
  365. package/skills/wix-replatform/resources/rp-source-csv/vendors/shopify.json +0 -95
  366. package/skills/wix-replatform/resources/rp-source-csv/vendors/woocommerce.json +0 -82
  367. package/skills/wix-replatform/resources/rp-source-inputs/SKILL.md +0 -66
  368. package/skills/wix-replatform/resources/rp-source-sfcc/SKILL.md +0 -153
  369. package/skills/wix-replatform/resources/rp-source-shopify/SKILL.md +0 -394
  370. package/skills/wix-replatform/resources/rp-source-shopify/lib/discovery-reads.js +0 -200
  371. package/skills/wix-replatform/resources/rp-source-shopify/lib/import-findings.js +0 -34
  372. package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-bulk-sqlite-worker.js +0 -44
  373. package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-bulk.js +0 -1470
  374. package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-cli.js +0 -446
  375. package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-gift-cards.js +0 -474
  376. package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-protected-fields.js +0 -879
  377. package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-session.js +0 -426
  378. package/skills/wix-replatform/resources/rp-source-shopify/queries/articles.graphql +0 -24
  379. package/skills/wix-replatform/resources/rp-source-shopify/queries/blogs.graphql +0 -18
  380. package/skills/wix-replatform/resources/rp-source-shopify/queries/collections.graphql +0 -40
  381. package/skills/wix-replatform/resources/rp-source-shopify/queries/customers.graphql +0 -76
  382. package/skills/wix-replatform/resources/rp-source-shopify/queries/delivery-profiles.graphql +0 -51
  383. package/skills/wix-replatform/resources/rp-source-shopify/queries/discounts.graphql +0 -35
  384. package/skills/wix-replatform/resources/rp-source-shopify/queries/files.graphql +0 -20
  385. package/skills/wix-replatform/resources/rp-source-shopify/queries/gift-cards.graphql +0 -18
  386. package/skills/wix-replatform/resources/rp-source-shopify/queries/inventory.graphql +0 -31
  387. package/skills/wix-replatform/resources/rp-source-shopify/queries/locations.graphql +0 -21
  388. package/skills/wix-replatform/resources/rp-source-shopify/queries/menus.graphql +0 -21
  389. package/skills/wix-replatform/resources/rp-source-shopify/queries/metaobjects.graphql +0 -30
  390. package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-core.graphql +0 -150
  391. package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-fulfillments.graphql +0 -36
  392. package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-refunds.graphql +0 -48
  393. package/skills/wix-replatform/resources/rp-source-shopify/queries/pages.graphql +0 -20
  394. package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-address.graphql +0 -8
  395. package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-email.graphql +0 -6
  396. package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-name.graphql +0 -8
  397. package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-phone.graphql +0 -8
  398. package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-address.graphql +0 -12
  399. package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-email.graphql +0 -6
  400. package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-name.graphql +0 -13
  401. package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-phone.graphql +0 -13
  402. package/skills/wix-replatform/resources/rp-source-shopify/queries/products.graphql +0 -73
  403. package/skills/wix-replatform/resources/rp-source-shopify/queries/url-redirects.graphql +0 -13
  404. package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-discovery.js +0 -693
  405. package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-extract.js +0 -283
  406. package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-gift-card-remedy.js +0 -191
  407. package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-session-check.js +0 -115
  408. package/skills/wix-replatform/resources/rp-source-shopify/source-schema.example.json +0 -201
  409. package/skills/wix-replatform/resources/rp-source-wordpress/PLUGIN-READ-PLANS.md +0 -146
  410. package/skills/wix-replatform/resources/rp-source-wordpress/SKILL.md +0 -970
  411. package/skills/wix-replatform/resources/rp-source-wordpress/lib/blocked-data-handlers.js +0 -73
  412. package/skills/wix-replatform/resources/rp-source-wordpress/lib/checkout-field-csv-parser.js +0 -115
  413. package/skills/wix-replatform/resources/rp-source-wordpress/lib/checkout-field-csv-parser.test-fixture.js +0 -91
  414. package/skills/wix-replatform/resources/rp-source-wordpress/lib/coupon-discovery.js +0 -440
  415. package/skills/wix-replatform/resources/rp-source-wordpress/lib/currency-gate.js +0 -125
  416. package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-source-keys.js +0 -252
  417. package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-source-keys.json +0 -183
  418. package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-summary.mjs +0 -333
  419. package/skills/wix-replatform/resources/rp-source-wordpress/lib/invoice-discovery.js +0 -426
  420. package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-disposition.js +0 -400
  421. package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-entity-read-plan.js +0 -633
  422. package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-knowledge.js +0 -1127
  423. package/skills/wix-replatform/resources/rp-source-wordpress/lib/refund-corroboration.js +0 -194
  424. package/skills/wix-replatform/resources/rp-source-wordpress/lib/refund-corroboration.json +0 -100
  425. package/skills/wix-replatform/resources/rp-source-wordpress/lib/sampled-ids-batch.js +0 -157
  426. package/skills/wix-replatform/resources/rp-source-wordpress/lib/secret-value-guard.js +0 -234
  427. package/skills/wix-replatform/resources/rp-source-wordpress/lib/store-currency.js +0 -101
  428. package/skills/wix-replatform/resources/rp-source-wordpress/lib/structure-bridge-reader.js +0 -755
  429. package/skills/wix-replatform/resources/rp-source-wordpress/lib/wix-wp-plugin-v2-client.js +0 -1074
  430. package/skills/wix-replatform/resources/rp-source-wordpress/lib/wix-wp-plugin-v2-client.test-fixture.js +0 -149
  431. package/skills/wix-replatform/resources/rp-source-wordpress/lib/woo-inventory.js +0 -25
  432. package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-http.js +0 -444
  433. package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-image-url.js +0 -186
  434. package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-plugin-detect.js +0 -1422
  435. package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-redirect-sources.js +0 -343
  436. package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-route-classifier.js +0 -680
  437. package/skills/wix-replatform/resources/rp-source-wordpress/lib/yoast-product-seo-evidence.js +0 -272
  438. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/README.md +0 -373
  439. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/advanced-custom-fields.json +0 -101
  440. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/back-in-stock-notifier-for-woocommerce.json +0 -81
  441. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/capabilities-pending-decision.json +0 -128
  442. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/cms-fallback-eligible.json +0 -18
  443. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/contact-form-7.json +0 -104
  444. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/facebook-for-woocommerce.json +0 -44
  445. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/fingerprint-aliases.json +0 -49
  446. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/free-gifts-for-woocommerce.json +0 -94
  447. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/index.json +0 -863
  448. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/mailpoet.json +0 -52
  449. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/membership-for-woocommerce.json +0 -161
  450. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/mwb-bookings-for-woocommerce.json +0 -180
  451. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/no-migration-needed.json +0 -286
  452. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/pricing-deals-for-woocommerce.json +0 -79
  453. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/product-extras-for-woocommerce.json +0 -120
  454. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/pw-woocommerce-gift-cards.json +0 -128
  455. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/requires-development.json +0 -88
  456. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/seo-by-rank-math.json +0 -80
  457. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/seriously-simple-podcasting.json +0 -46
  458. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/strong-testimonials.json +0 -55
  459. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/subscriptions-for-woocommerce.json +0 -99
  460. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/tablepress.json +0 -55
  461. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/the-events-calendar.json +0 -160
  462. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/ti-woocommerce-wishlist.json +0 -81
  463. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-checkout-field-editor-pro.json +0 -60
  464. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-discount-rules.json +0 -74
  465. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-product-bundle.json +0 -75
  466. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-gift-cards.json +0 -60
  467. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-other-payment-gateway.json +0 -44
  468. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-pdf-invoices-packing-slips.json +0 -57
  469. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-product-addon.json +0 -141
  470. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-progressive-discounts.json +0 -54
  471. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wordpress-seo.json +0 -158
  472. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wpc-composite-products.json +0 -97
  473. package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wpforms-lite.json +0 -86
  474. package/skills/wix-replatform/resources/rp-source-wordpress/scripts/capture-store-settings.js +0 -90
  475. package/skills/wix-replatform/resources/rp-source-wordpress/scripts/plugin-knowledge-validate.js +0 -51
  476. package/skills/wix-replatform/resources/rp-source-wordpress/scripts/plugin-knowledge.js +0 -103
  477. package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-discovery.js +0 -2409
  478. package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-plugin-inventory.js +0 -273
  479. package/skills/wix-replatform/resources/rp-source-wordpress/secret-value-patterns.v1.json +0 -11
  480. package/skills/wix-replatform/resources/rp-source-wordpress/source-schema.example.json +0 -71
  481. package/skills/wix-replatform/resources/rp-source-wordpress/sub-parts.json +0 -13
  482. package/skills/wix-replatform/resources/rp-target-wix/SKILL.md +0 -1046
  483. package/skills/wix-replatform/resources/rp-target-wix/app-page-routing-capabilities.json +0 -36
  484. package/skills/wix-replatform/resources/rp-target-wix/domains/README.md +0 -57
  485. package/skills/wix-replatform/resources/rp-target-wix/domains/SERVICE-PLUGINS.md +0 -322
  486. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/docs-survey.json +0 -70
  487. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/domain.json +0 -29
  488. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/category.json +0 -71
  489. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/comment.json +0 -83
  490. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/post.json +0 -95
  491. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/tag.json +0 -66
  492. package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/docs-survey.json +0 -332
  493. package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/domain.json +0 -75
  494. package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/booking.json +0 -181
  495. package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/service-add-on.json +0 -130
  496. package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/service.json +0 -180
  497. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/docs-survey.json +0 -161
  498. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/domain.json +0 -25
  499. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/collection.json +0 -67
  500. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/data-item.json +0 -75
  501. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/reference.json +0 -41
  502. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/docs-survey.json +0 -204
  503. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/domain.json +0 -27
  504. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/contact.json +0 -275
  505. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/email-subscription.json +0 -105
  506. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/label.json +0 -77
  507. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/docs-survey.json +0 -306
  508. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/domain.json +0 -44
  509. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/delivery-profile.json +0 -171
  510. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/discount-rule.json +0 -182
  511. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-applied-discount.json +0 -129
  512. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-invoice-document.json +0 -192
  513. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item-options.json +0 -123
  514. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item.json +0 -85
  515. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-merchant-note.json +0 -112
  516. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-payment.json +0 -191
  517. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-refund.json +0 -164
  518. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order.json +0 -462
  519. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/pickup-location.json +0 -122
  520. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/shipping-option.json +0 -98
  521. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/wishlist-item.json +0 -86
  522. package/skills/wix-replatform/resources/rp-target-wix/domains/events/docs-survey.json +0 -128
  523. package/skills/wix-replatform/resources/rp-target-wix/domains/events/domain.json +0 -38
  524. package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/category.json +0 -73
  525. package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/event.json +0 -107
  526. package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/registration-form.json +0 -89
  527. package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/rsvp.json +0 -118
  528. package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/ticket-definition.json +0 -93
  529. package/skills/wix-replatform/resources/rp-target-wix/domains/forms/docs-survey.json +0 -86
  530. package/skills/wix-replatform/resources/rp-target-wix/domains/forms/domain.json +0 -56
  531. package/skills/wix-replatform/resources/rp-target-wix/domains/forms/entities/form-submission.json +0 -121
  532. package/skills/wix-replatform/resources/rp-target-wix/domains/forms/entities/form.json +0 -134
  533. package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/docs-survey.json +0 -41
  534. package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/domain.json +0 -50
  535. package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/entities/gift-card-product.json +0 -87
  536. package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/entities/gift-card.json +0 -130
  537. package/skills/wix-replatform/resources/rp-target-wix/domains/index.json +0 -1418
  538. package/skills/wix-replatform/resources/rp-target-wix/domains/media/docs-survey.json +0 -41
  539. package/skills/wix-replatform/resources/rp-target-wix/domains/media/domain.json +0 -24
  540. package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-file.json +0 -75
  541. package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-folder.json +0 -71
  542. package/skills/wix-replatform/resources/rp-target-wix/domains/members/docs-survey.json +0 -119
  543. package/skills/wix-replatform/resources/rp-target-wix/domains/members/domain.json +0 -23
  544. package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/badge.json +0 -71
  545. package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/custom-field.json +0 -82
  546. package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member-about.json +0 -77
  547. package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member.json +0 -205
  548. package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/docs-survey.json +0 -41
  549. package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/domain.json +0 -46
  550. package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/entities/plan-order.json +0 -137
  551. package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/entities/plan.json +0 -133
  552. package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/docs-survey.json +0 -7
  553. package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/domain.json +0 -36
  554. package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/amazon-shop-connect.json +0 -71
  555. package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/ebay-shop-connect.json +0 -67
  556. package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/google-youtube-connect.json +0 -72
  557. package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/meta-catalog-connect.json +0 -74
  558. package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/pinterest-catalog-connect.json +0 -69
  559. package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/tiktok-catalog-connect.json +0 -61
  560. package/skills/wix-replatform/resources/rp-target-wix/domains/schema.json +0 -111
  561. package/skills/wix-replatform/resources/rp-target-wix/domains/seo/docs-survey.json +0 -109
  562. package/skills/wix-replatform/resources/rp-target-wix/domains/seo/domain.json +0 -73
  563. package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/item-seo-tags.json +0 -148
  564. package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/seo-pattern.json +0 -91
  565. package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/site-seo-tags.json +0 -79
  566. package/skills/wix-replatform/resources/rp-target-wix/domains/site/docs-survey.json +0 -32
  567. package/skills/wix-replatform/resources/rp-target-wix/domains/site/domain.json +0 -49
  568. package/skills/wix-replatform/resources/rp-target-wix/domains/site/entities/business-contact.json +0 -103
  569. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/docs-survey.json +0 -203
  570. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/domain.json +0 -42
  571. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/back-in-stock-request.json +0 -119
  572. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/brand.json +0 -111
  573. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/category.json +0 -81
  574. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/coupon.json +0 -241
  575. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/inventory-item.json +0 -118
  576. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-customization.json +0 -111
  577. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-tag.json +0 -79
  578. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product.json +0 -221
  579. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/promotion.json +0 -84
  580. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/review.json +0 -178
  581. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/subscription-product.json +0 -87
  582. package/skills/wix-replatform/resources/rp-target-wix/domains/tax/docs-survey.json +0 -106
  583. package/skills/wix-replatform/resources/rp-target-wix/domains/tax/domain.json +0 -64
  584. package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/manual-tax-mapping.json +0 -119
  585. package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-group.json +0 -94
  586. package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-region.json +0 -113
  587. package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-settings.json +0 -65
  588. package/skills/wix-replatform/resources/rp-target-wix/lib/audit-summary.js +0 -64
  589. package/skills/wix-replatform/resources/rp-target-wix/lib/blog-author-attribution.js +0 -165
  590. package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-client.js +0 -60
  591. package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-duplicates.js +0 -201
  592. package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-ledger.js +0 -306
  593. package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-report.js +0 -229
  594. package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-stage.js +0 -55
  595. package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build.js +0 -715
  596. package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-media.js +0 -567
  597. package/skills/wix-replatform/resources/rp-target-wix/lib/bulk-results.js +0 -73
  598. package/skills/wix-replatform/resources/rp-target-wix/lib/contact-extended-fields.js +0 -194
  599. package/skills/wix-replatform/resources/rp-target-wix/lib/contact-import.js +0 -133
  600. package/skills/wix-replatform/resources/rp-target-wix/lib/contract-ledger.js +0 -150
  601. package/skills/wix-replatform/resources/rp-target-wix/lib/coupon-redemption-drift.js +0 -491
  602. package/skills/wix-replatform/resources/rp-target-wix/lib/customer-member.js +0 -104
  603. package/skills/wix-replatform/resources/rp-target-wix/lib/data-extension-schema.js +0 -673
  604. package/skills/wix-replatform/resources/rp-target-wix/lib/domain-knowledge.js +0 -835
  605. package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-balance-reconciliation.js +0 -119
  606. package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-build.js +0 -566
  607. package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-redemption-build.js +0 -249
  608. package/skills/wix-replatform/resources/rp-target-wix/lib/ndjson.js +0 -260
  609. package/skills/wix-replatform/resources/rp-target-wix/lib/order-applied-discount-build.js +0 -63
  610. package/skills/wix-replatform/resources/rp-target-wix/lib/order-buyer.js +0 -187
  611. package/skills/wix-replatform/resources/rp-target-wix/lib/order-channel-build.js +0 -64
  612. package/skills/wix-replatform/resources/rp-target-wix/lib/order-history.js +0 -1027
  613. package/skills/wix-replatform/resources/rp-target-wix/lib/order-invoice-contract.js +0 -90
  614. package/skills/wix-replatform/resources/rp-target-wix/lib/order-payment-mapping.js +0 -420
  615. package/skills/wix-replatform/resources/rp-target-wix/lib/pricing-plan-definition.js +0 -177
  616. package/skills/wix-replatform/resources/rp-target-wix/lib/product-import.js +0 -151
  617. package/skills/wix-replatform/resources/rp-target-wix/lib/product-seo.js +0 -723
  618. package/skills/wix-replatform/resources/rp-target-wix/lib/seo-redirects.js +0 -353
  619. package/skills/wix-replatform/resources/rp-target-wix/lib/shipping-build.js +0 -1437
  620. package/skills/wix-replatform/resources/rp-target-wix/lib/shipping-option-stage.js +0 -354
  621. package/skills/wix-replatform/resources/rp-target-wix/lib/store-config-build.js +0 -134
  622. package/skills/wix-replatform/resources/rp-target-wix/lib/stores-category-attach.js +0 -221
  623. package/skills/wix-replatform/resources/rp-target-wix/lib/stores-inventory.js +0 -248
  624. package/skills/wix-replatform/resources/rp-target-wix/lib/stores-verification.js +0 -321
  625. package/skills/wix-replatform/resources/rp-target-wix/lib/tax-build.js +0 -231
  626. package/skills/wix-replatform/resources/rp-target-wix/lib/url-mapper-transport.js +0 -28
  627. package/skills/wix-replatform/resources/rp-target-wix/lib/value-utils.js +0 -14
  628. package/skills/wix-replatform/resources/rp-target-wix/lib/variant-correlation.js +0 -34
  629. package/skills/wix-replatform/resources/rp-target-wix/lib/wix-build.js +0 -388
  630. package/skills/wix-replatform/resources/rp-target-wix/lib/wix-target-spec.js +0 -255
  631. package/skills/wix-replatform/resources/rp-target-wix/lib/wix-writers.js +0 -6041
  632. package/skills/wix-replatform/resources/rp-target-wix/lib/write-verification.js +0 -3
  633. package/skills/wix-replatform/resources/rp-target-wix/scripts/docs-survey-sync.js +0 -150
  634. package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js +0 -69
  635. package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge.js +0 -100
  636. package/skills/wix-replatform/resources/rp-target-wix/scripts/verify-stores.js +0 -112
  637. package/skills/wix-replatform/resources/rp-telemetry/SKILL.md +0 -484
  638. package/skills/wix-replatform/resources/rp-telemetry/lib/bi-sink.js +0 -318
  639. package/skills/wix-replatform/resources/rp-telemetry/lib/telemetry-recorder.js +0 -2831
  640. package/skills/wix-replatform/resources/rp-telemetry/lib/transcript-digest.js +0 -318
  641. package/skills/wix-replatform/resources/rp-telemetry/scripts/meter-from-audit.js +0 -83
  642. package/skills/wix-replatform/resources/rp-telemetry/scripts/rp-telemetry.js +0 -243
  643. package/skills/wix-replatform/resources/rp-website-continuation/SKILL.md +0 -94
  644. package/skills/wix-replatform/scripts/artifact-freshness.js +0 -76
  645. package/skills/wix-replatform/scripts/census-reconciliation.js +0 -25
  646. package/skills/wix-replatform/scripts/cms-fallback.js +0 -89
  647. package/skills/wix-replatform/scripts/discovered-census.js +0 -26
  648. package/skills/wix-replatform/scripts/discovered-set-status.js +0 -33
  649. package/skills/wix-replatform/scripts/entity-qa-attestation.js +0 -130
  650. package/skills/wix-replatform/scripts/execution-health-check.js +0 -415
  651. package/skills/wix-replatform/scripts/execution-manifest-validate.js +0 -43
  652. package/skills/wix-replatform/scripts/execution-state-prepare.js +0 -128
  653. package/skills/wix-replatform/scripts/expectations-ledger.js +0 -44
  654. package/skills/wix-replatform/scripts/import-contract-verify.js +0 -183
  655. package/skills/wix-replatform/scripts/internal-link-audit.js +0 -90
  656. package/skills/wix-replatform/scripts/item-seo-tags-verify.js +0 -205
  657. package/skills/wix-replatform/scripts/migration-completion.js +0 -76
  658. package/skills/wix-replatform/scripts/orchestration-preflight.js +0 -67
  659. package/skills/wix-replatform/scripts/orchestration-route.js +0 -77
  660. package/skills/wix-replatform/scripts/orchestration-state.js +0 -381
  661. package/skills/wix-replatform/scripts/read-back-gate.js +0 -175
  662. package/skills/wix-replatform/scripts/replatform-console.js +0 -146
  663. package/skills/wix-replatform/scripts/replatform.js +0 -436
  664. package/skills/wix-replatform/scripts/source-secrets.js +0 -77
  665. package/skills/wix-replatform/scripts/url-redirects.js +0 -286
  666. package/skills/wix-replatform/scripts/user-action.js +0 -58
  667. package/skills/wix-replatform/scripts/website-handoff-generate.js +0 -64
  668. package/skills/wix-replatform/scripts/wix-dashboard-url.js +0 -54
  669. package/skills/wix-replatform/scripts/wix-destination.js +0 -143
  670. package/skills/wix-replatform/scripts/wix-headless-scaffold.js +0 -762
  671. package/skills/wix-vibe-headless/SKILL.md +0 -183
  672. package/skills/wix-vibe-headless/install/deploy.cjs +0 -221
  673. package/skills/wix-vibe-headless/install/pin-agents-md.cjs +0 -35
  674. package/skills/wix-vibe-headless/platforms/README.md +0 -26
  675. package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed-with-install.md +0 -127
  676. package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed.md +0 -121
  677. package/skills/wix-vibe-headless/platforms/base44-ecom-light.md +0 -87
  678. package/skills/wix-vibe-headless/platforms/base44.md +0 -148
  679. package/skills/wix-vibe-headless/platforms/generic.md +0 -132
  680. package/skills/wix-vibe-headless/references/_shared/nav/nav.tanstack.js +0 -30
  681. package/skills/wix-vibe-headless/references/_shared/routing.md +0 -86
  682. package/skills/wix-vibe-headless/references/blog/INSTRUCTIONS.md +0 -270
  683. package/skills/wix-vibe-headless/references/blog/app/components/PostCard.jsx +0 -43
  684. package/skills/wix-vibe-headless/references/blog/app/components/PostChips.jsx +0 -25
  685. package/skills/wix-vibe-headless/references/blog/app/components/PostGrid.jsx +0 -15
  686. package/skills/wix-vibe-headless/references/blog/app/context/TaxonomyContext.jsx +0 -35
  687. package/skills/wix-vibe-headless/references/blog/app/hooks/usePostDetail.js +0 -38
  688. package/skills/wix-vibe-headless/references/blog/app/pages/Blog.jsx +0 -40
  689. package/skills/wix-vibe-headless/references/blog/app/pages/CategoryPage.jsx +0 -54
  690. package/skills/wix-vibe-headless/references/blog/app/pages/PostDetail.jsx +0 -65
  691. package/skills/wix-vibe-headless/references/blog/app/pages/TagPage.jsx +0 -50
  692. package/skills/wix-vibe-headless/references/blog/app/rest/wix-blog.js +0 -217
  693. package/skills/wix-vibe-headless/references/blog/seed/SEED.md +0 -99
  694. package/skills/wix-vibe-headless/references/blog/seed/seed-blog.cjs +0 -269
  695. package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +0 -342
  696. package/skills/wix-vibe-headless/references/bookings/app/components/BookingForm.jsx +0 -65
  697. package/skills/wix-vibe-headless/references/bookings/app/components/RentalDurationPicker.jsx +0 -67
  698. package/skills/wix-vibe-headless/references/bookings/app/components/ServiceCard.jsx +0 -47
  699. package/skills/wix-vibe-headless/references/bookings/app/components/ServiceGrid.jsx +0 -13
  700. package/skills/wix-vibe-headless/references/bookings/app/components/SlotPicker.jsx +0 -126
  701. package/skills/wix-vibe-headless/references/bookings/app/hooks/useRentalDuration.js +0 -128
  702. package/skills/wix-vibe-headless/references/bookings/app/hooks/useServiceDetail.js +0 -110
  703. package/skills/wix-vibe-headless/references/bookings/app/hooks/useServices.js +0 -58
  704. package/skills/wix-vibe-headless/references/bookings/app/lib/serviceFacts.js +0 -95
  705. package/skills/wix-vibe-headless/references/bookings/app/pages/ServiceDetail.jsx +0 -94
  706. package/skills/wix-vibe-headless/references/bookings/app/pages/Services.jsx +0 -89
  707. package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-checkout.js +0 -148
  708. package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-rentals.js +0 -250
  709. package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-services.js +0 -300
  710. package/skills/wix-vibe-headless/references/bookings/seed/SEED.md +0 -154
  711. package/skills/wix-vibe-headless/references/bookings/seed/seed-bookings.cjs +0 -333
  712. package/skills/wix-vibe-headless/references/bookings/seed/seed-rentals.cjs +0 -267
  713. package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +0 -178
  714. package/skills/wix-vibe-headless/references/cms/app/collection.config.js +0 -31
  715. package/skills/wix-vibe-headless/references/cms/app/lib/wixImage.js +0 -18
  716. package/skills/wix-vibe-headless/references/cms/app/rest/wix-cms.js +0 -231
  717. package/skills/wix-vibe-headless/references/cms/seed/SEED.md +0 -145
  718. package/skills/wix-vibe-headless/references/donations/INSTRUCTIONS.md +0 -88
  719. package/skills/wix-vibe-headless/references/donations/app/rest/wix-donations.js +0 -112
  720. package/skills/wix-vibe-headless/references/donations/seed/SEED.md +0 -11
  721. package/skills/wix-vibe-headless/references/donations/tests/donations.test.mjs +0 -258
  722. package/skills/wix-vibe-headless/references/events/INSTRUCTIONS.md +0 -267
  723. package/skills/wix-vibe-headless/references/events/app/components/CategoryFilter.jsx +0 -23
  724. package/skills/wix-vibe-headless/references/events/app/components/EventCard.jsx +0 -43
  725. package/skills/wix-vibe-headless/references/events/app/components/EventGrid.jsx +0 -13
  726. package/skills/wix-vibe-headless/references/events/app/components/EventRegistration.jsx +0 -29
  727. package/skills/wix-vibe-headless/references/events/app/components/RsvpForm.jsx +0 -57
  728. package/skills/wix-vibe-headless/references/events/app/components/TicketPicker.jsx +0 -78
  729. package/skills/wix-vibe-headless/references/events/app/hooks/useEventDetail.js +0 -27
  730. package/skills/wix-vibe-headless/references/events/app/hooks/useEventsList.js +0 -54
  731. package/skills/wix-vibe-headless/references/events/app/hooks/useRsvpForm.js +0 -40
  732. package/skills/wix-vibe-headless/references/events/app/hooks/useTicketing.js +0 -81
  733. package/skills/wix-vibe-headless/references/events/app/pages/EventDetail.jsx +0 -48
  734. package/skills/wix-vibe-headless/references/events/app/pages/Events.jsx +0 -36
  735. package/skills/wix-vibe-headless/references/events/app/rest/wix-events-browse.js +0 -136
  736. package/skills/wix-vibe-headless/references/events/app/rest/wix-events-registration.js +0 -187
  737. package/skills/wix-vibe-headless/references/events/seed/SEED.md +0 -103
  738. package/skills/wix-vibe-headless/references/events/seed/seed-events.cjs +0 -251
  739. package/skills/wix-vibe-headless/references/forms/INSTRUCTIONS.md +0 -487
  740. package/skills/wix-vibe-headless/references/forms/app/hooks/useWixForm.js +0 -425
  741. package/skills/wix-vibe-headless/references/forms/app/lib/wix-form-schema-utils.js +0 -187
  742. package/skills/wix-vibe-headless/references/forms/app/rest/wix-forms-submissions.js +0 -238
  743. package/skills/wix-vibe-headless/references/forms/app/rest/wix-forms.js +0 -108
  744. package/skills/wix-vibe-headless/references/forms/seed/SEED.md +0 -1836
  745. package/skills/wix-vibe-headless/references/members/INSTRUCTIONS.md +0 -328
  746. package/skills/wix-vibe-headless/references/members/app/components/LoginForm.jsx +0 -101
  747. package/skills/wix-vibe-headless/references/members/app/components/MemberMenu.jsx +0 -33
  748. package/skills/wix-vibe-headless/references/members/app/components/RequireAuth.jsx +0 -21
  749. package/skills/wix-vibe-headless/references/members/app/components/SocialButtons.jsx +0 -29
  750. package/skills/wix-vibe-headless/references/members/app/context/MemberContext.jsx +0 -54
  751. package/skills/wix-vibe-headless/references/members/app/hooks/useLoginForm.js +0 -77
  752. package/skills/wix-vibe-headless/references/members/app/pages/Account.jsx +0 -36
  753. package/skills/wix-vibe-headless/references/members/app/pages/Callback.jsx +0 -32
  754. package/skills/wix-vibe-headless/references/members/app/pages/Login.jsx +0 -35
  755. package/skills/wix-vibe-headless/references/members/app/rest/wix-members-auth.js +0 -390
  756. package/skills/wix-vibe-headless/references/members/install/Register.jsx +0 -22
  757. package/skills/wix-vibe-headless/references/members/seed/SEED.md +0 -21
  758. package/skills/wix-vibe-headless/references/portfolio/INSTRUCTIONS.md +0 -270
  759. package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionCard.jsx +0 -31
  760. package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionGrid.jsx +0 -15
  761. package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectCard.jsx +0 -39
  762. package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectGrid.jsx +0 -15
  763. package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectMedia.jsx +0 -29
  764. package/skills/wix-vibe-headless/references/portfolio/app/hooks/useCollectionProjects.js +0 -35
  765. package/skills/wix-vibe-headless/references/portfolio/app/hooks/usePortfolioGallery.js +0 -27
  766. package/skills/wix-vibe-headless/references/portfolio/app/hooks/useProjectDetail.js +0 -25
  767. package/skills/wix-vibe-headless/references/portfolio/app/pages/CollectionPage.jsx +0 -39
  768. package/skills/wix-vibe-headless/references/portfolio/app/pages/Portfolio.jsx +0 -27
  769. package/skills/wix-vibe-headless/references/portfolio/app/pages/ProjectDetail.jsx +0 -60
  770. package/skills/wix-vibe-headless/references/portfolio/app/rest/wix-portfolio.js +0 -223
  771. package/skills/wix-vibe-headless/references/portfolio/seed/SEED.md +0 -90
  772. package/skills/wix-vibe-headless/references/portfolio/seed/seed-portfolio.cjs +0 -236
  773. package/skills/wix-vibe-headless/references/pricing-plans/INSTRUCTIONS.md +0 -280
  774. package/skills/wix-vibe-headless/references/pricing-plans/app/components/OrderCard.jsx +0 -35
  775. package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanCard.jsx +0 -48
  776. package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanGrid.jsx +0 -16
  777. package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanPrice.jsx +0 -35
  778. package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/useMyPlans.js +0 -25
  779. package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlanDetail.js +0 -28
  780. package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlans.js +0 -30
  781. package/skills/wix-vibe-headless/references/pricing-plans/app/pages/MyPlans.jsx +0 -30
  782. package/skills/wix-vibe-headless/references/pricing-plans/app/pages/PlanDetail.jsx +0 -53
  783. package/skills/wix-vibe-headless/references/pricing-plans/app/pages/Plans.jsx +0 -28
  784. package/skills/wix-vibe-headless/references/pricing-plans/app/rest/wix-pricing-plans.js +0 -157
  785. package/skills/wix-vibe-headless/references/pricing-plans/seed/SEED.md +0 -82
  786. package/skills/wix-vibe-headless/references/pricing-plans/seed/seed-pricing-plans.cjs +0 -251
  787. package/skills/wix-vibe-headless/references/rentals/INSTRUCTIONS.md +0 -13
  788. package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +0 -290
  789. package/skills/wix-vibe-headless/references/restaurants/app/components/ItemDialog.jsx +0 -81
  790. package/skills/wix-vibe-headless/references/restaurants/app/components/MenuItemCard.jsx +0 -71
  791. package/skills/wix-vibe-headless/references/restaurants/app/components/MenuList.jsx +0 -43
  792. package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartButton.jsx +0 -21
  793. package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartDrawer.jsx +0 -72
  794. package/skills/wix-vibe-headless/references/restaurants/app/context/OrderCartContext.jsx +0 -66
  795. package/skills/wix-vibe-headless/references/restaurants/app/hooks/useItemOrder.js +0 -32
  796. package/skills/wix-vibe-headless/references/restaurants/app/hooks/useReservation.js +0 -73
  797. package/skills/wix-vibe-headless/references/restaurants/app/pages/Menu.jsx +0 -28
  798. package/skills/wix-vibe-headless/references/restaurants/app/pages/Reservations.jsx +0 -102
  799. package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-menu.js +0 -224
  800. package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-ordering.js +0 -218
  801. package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-reservations.js +0 -107
  802. package/skills/wix-vibe-headless/references/restaurants/seed/SEED.md +0 -176
  803. package/skills/wix-vibe-headless/references/restaurants/seed/seed-restaurants.cjs +0 -452
  804. package/skills/wix-vibe-headless/references/shared/app/components/WixManageBanner.jsx +0 -56
  805. package/skills/wix-vibe-headless/references/shared/app/lib/nav.js +0 -9
  806. package/skills/wix-vibe-headless/references/shared/app/rest/wix-client.js +0 -185
  807. package/skills/wix-vibe-headless/references/shared/app/rest/wix-config.js +0 -8
  808. package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +0 -471
  809. package/skills/wix-vibe-headless/references/storefront/app/components/CartButton.jsx +0 -20
  810. package/skills/wix-vibe-headless/references/storefront/app/components/CartDrawer.jsx +0 -167
  811. package/skills/wix-vibe-headless/references/storefront/app/context/CartContext.jsx +0 -83
  812. package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductCard.js +0 -104
  813. package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductDetail.js +0 -163
  814. package/skills/wix-vibe-headless/references/storefront/app/hooks/useShop.js +0 -83
  815. package/skills/wix-vibe-headless/references/storefront/app/hooks/useVariantOptions.js +0 -76
  816. package/skills/wix-vibe-headless/references/storefront/app/lib/storeImage.js +0 -64
  817. package/skills/wix-vibe-headless/references/storefront/app/rest/wix-store-cart.js +0 -176
  818. package/skills/wix-vibe-headless/references/storefront/app/rest/wix-store-catalog.js +0 -218
  819. package/skills/wix-vibe-headless/references/storefront/seed/SEED.md +0 -174
  820. package/skills/wix-vibe-headless/references/storefront/seed/seed-store.cjs +0 -546
@@ -1,241 +0,0 @@
1
- {
2
- "schemaVersion": 1,
3
- "domain": "stores",
4
- "entity": "coupon",
5
- "displayName": "Stores Coupon",
6
- "capability": "commerce.coupons",
7
- "target": {
8
- "classification": "native-plus-cms",
9
- "nativeEntity": "Stores Coupon",
10
- "verifiedFqdn": null,
11
- "idPolicy": "server-assigned",
12
- "crosswalkRequired": true
13
- },
14
- "dependsOn": [],
15
- "sourceAliases": [
16
- {
17
- "sourceSystem": "woocommerce",
18
- "sourceEntity": "coupon",
19
- "routes": [
20
- "/wc/v3/coupons"
21
- ],
22
- "confidence": "high"
23
- },
24
- {
25
- "sourceSystem": "wix",
26
- "sourceEntity": "coupon",
27
- "routes": [
28
- "Coupons API"
29
- ],
30
- "confidence": "high"
31
- }
32
- ],
33
- "preferredWrite": {
34
- "surface": "Coupons",
35
- "endpoint": "POST /stores/v2/coupons",
36
- "writerId": "createCoupon",
37
- "verification": "verified-live",
38
- "importSafe": true,
39
- "bulk": true
40
- },
41
- "fallbacks": [
42
- {
43
- "classification": "cms",
44
- "when": "Use for unsupported source constraints, audit detail, or manual setup notes."
45
- }
46
- ],
47
- "reliability": {
48
- "status": "partially-reliable",
49
- "flags": [
50
- "IMPORT_UNRELIABLE"
51
- ]
52
- },
53
- "pitfalls": [
54
- {
55
- "code": "constraint-coverage",
56
- "severity": "warning",
57
- "summary": "Source coupon constraints may be narrower or differently modeled in Wix."
58
- },
59
- {
60
- "code": "name-is-required-separately-from-code",
61
- "severity": "blocker",
62
- "summary": "VERIFIED live 2026-08-12: `name` is a required field distinct from `code` — omitting it 400s \"name.trim must not be empty\". A source coupon with no separate display name can default `name` to its `code`."
63
- },
64
- {
65
- "code": "starttime-required-despite-looking-optional",
66
- "severity": "blocker",
67
- "summary": "VERIFIED live: omitting `startTime` does not mean \"no start restriction\" — Wix's own default resolves to epoch 0, which the API then rejects (\"date with value 0 got 0, expected more than 0\"). Always send an explicit startTime (the source coupon's creation date, or now if unavailable)."
68
- },
69
- {
70
- "code": "starttime-and-expirationtime-are-epoch-milliseconds-not-iso",
71
- "severity": "blocker",
72
- "summary": "VERIFIED live 2026-09-02: `startTime` and `expirationTime` are epoch MILLISECONDS (a number, or a decimal string), not ISO-8601. An ISO string returns 400 `{\"message\":\"Not a numeric value\"}` — no field name, no hint that a date is the problem, and it reads like a bad amount. Epoch SECONDS returns \"Invalid coupon field\". lib/wix-writers.js's normalizeCouponSpecification already converts via toEpochMilliseconds, so callers going through createCoupon are safe; anything hand-rolling the payload must convert. This one costs an hour if you go looking at the amount fields first."
73
- },
74
- {
75
- "code": "non-freeshipping-requires-scope-or-minimum",
76
- "severity": "blocker",
77
- "summary": "VERIFIED live: any non-FreeShipping coupon (percentOffRate/moneyOffAmount/fixedPriceAmount) without a `scope` AND without `minimumSubtotal > 0` 400s \"When scope or minimumSubtotal is not used - only FreeShipping coupon is allowed\". This does NOT mean an unrestricted coupon is unmappable — see storewide-scope-is-valid-and-needs-no-group. Reach for a nominal minimumSubtotal only when a storewide scope is wrong for the source coupon; it is a substitution and must be recorded as a mapping gap, and a real-looking invented minimum is never acceptable."
78
- },
79
- {
80
- "code": "storewide-scope-is-valid-and-needs-no-group",
81
- "severity": "info",
82
- "summary": "VERIFIED live: `scope: {namespace: \"stores\"}` — no `group`, no `entityId` — is a valid STOREWIDE scope and satisfies the scope-or-minimumSubtotal rule above on its own. This is the faithful mapping for a source coupon with no product restriction and no minimum spend: nothing is invented, no synthetic minimum, no synthetic all-categories list. Earlier guidance here reached for a nominal minimumSubtotal, and a multi-category scope is not dashboard-renderable, so neither substitute is needed or wanted. Server-side enumeration, from the error text on an unknown group name: namespace=stores with group empty | product | collection, each valid for BuyXGetY and for MoneyOff/PercentOff/FixedPrice; plus namespace=forms with group empty | form for MoneyOff/PercentOff. THE ENUMERATION IS OF PAIRS, NOT OF TWO INDEPENDENT LISTS -- five of them, all accepted: namespace `stores` with NO group (storewide); `stores` + group `product`; `stores` + group `collection`; namespace `forms` with NO group (a forms-wide coupon, an accepted pair in its own right and NOT the same case as `forms` + `form`); and `forms` + group `form`. Both no-group rows are reachable, so \"no group\" is never on its own a reason to refuse. A group row also carries `entityId`. `stores` pairs cover BuyXGetY, MoneyOff, PercentOff and FixedPrice; `forms` pairs cover MoneyOff and PercentOff. MEASURED: OMITTING `namespace` is rejected 400 `The provided combination of scope and coupon type is invalid. Provided combination: namespace=, group=<product|collection>, entityId=<id>` -- a message that NAMES NO MISSING FIELD and reads as a type/scope incompatibility, so the defect is routinely mistaken for a platform limitation and the coupons abandoned as unmigratable. On an error of that shape, check for an empty `namespace` FIRST. The namespace is DERIVED from the group name, never defaulted to a constant: `product` and `collection` pair only with `stores`, `form` only with `forms`, so a flat `stores` constant manufactures the invalid pair `{namespace: stores, group: form}`. `category` is NOT in the enumeration -- it is a source platform's word for what the target calls `collection`. The writer refuses an unenumerated group name, a group with no name, a group with no `entityId`, and a namespace/group pair that is not on the list above, naming the field, the value received and the accepted values. It does NOT translate a source platform's vocabulary: the mapper owns that, and a silent rewrite in the writer hides the caller's bug. A refusal THROWS -- it never drops the bad scope, because a dropped scope produces a storewide coupon, which is more generous than the merchant published."
83
- },
84
- {
85
- "code": "product-scope-requires-a-visible-product",
86
- "severity": "blocker",
87
- "summary": "MEASURED live, and this pitfall previously blamed Catalog V3, which was WRONG — the wrong version causes coupons that import fine to be abandoned as gaps. `scope.group = {name: \"product\", entityId: <id>}` returns 400 \"entityId '<id>' not found\" when the product has `visible: false`, and succeeds when it is visible. That is a visibility rule reported as a missing-id error: the id exists and GET /stores/v3/products/<id> returns 200 for it. Catalog V3 is not involved — V3 product ids resolve. Controlled test: every hidden product was rejected and every visible one accepted. The wrong version came from generalising one failing product that happened to be hidden. `group = {name: \"collection\", entityId: <V3 category id>}` also resolves and returns displayData with the category name and image. PRACTICAL RULE: read `visible` on the crosswalked product before scoping. If it is hidden, report the coupon — do NOT widen it to storewide, which is more generous than the source and the same defect class as dropping the restriction. Making a product visible to admit a coupon is a storefront change and is the owner's decision, never an importer's. Do NOT offer `active: false` as a way around this — the scope is validated at creation, so an inactive coupon on a hidden product is rejected identically. See an-inactive-coupon-is-validated-exactly-like-an-active-one. ENFORCED IN THE WRITER: `ensureCoupon` takes the caller's visibility verdict as `scopeTarget`, in three states. `{visible: false}` on a scoped coupon sends NO request -- the coupon is refused whole and reported `coupon-scope-target-hidden`, carrying the code, the group name and the entityId, so the merchant can decide. `{visible: true}` writes. An OMITTED `scopeTarget` on a scoped coupon still writes, and the result is marked `coupon-scope-target-visibility-unchecked` -- an unchecked coupon must never be indistinguishable from a checked one, or a run reports as verified something nobody verified. That marker is NOT an error; it means the coupon may still fail live with `entityId not found`. The writer does not read the product's visibility itself, deliberately: the caller holds the crosswalk and has usually just read the product, and a per-coupon read would add a round trip per scoped coupon on a large import."
88
- },
89
- {
90
- "code": "writes-are-not-readable-immediately-and-absence-does-not-mean-failure",
91
- "severity": "blocker",
92
- "summary": "MEASURED live over a large coupon import. A successful write is not readable straight away, and while it is not readable it is indistinguishable from a write that never happened.\nBEHAVIOUR: (a) an offset-paginated query taken while the store is settling UNDER-COLLECTS, because rows shift between pages as they appear, so a sweep can report far fewer coupons than exist; (b) a response can carry a correct `totalResults` with the `coupons` array absent entirely; (c) an individual coupon stayed unreadable for FAR LONGER than the settle delay, during which GET by id 404d, an unfiltered query and a `specification.code` filter both returned nothing, and re-creating the code 400d \"already exists\".\nTHE TRAP: that last combination — absent AND already-taken — looks like conclusive proof the code was consumed with no object behind it. It is not. All of those symptoms share one cause, a read that has not caught up, so they are one observation and not four. No probe distinguishes lag from loss at the time.\nRECOVERY PROCEDURE: settle ~30s after the writes; page the full list TWICE and union by id; treat a code that is still absent as UNKNOWN, not lost — re-read it later, do not re-write it, do not escalate it to the vendor, and do not reissue a replacement code. Never conclude a write failed from a fresh read: doing so triggers a redundant write pass whose entire output is meaningless \"already exists\" errors."
93
- },
94
- {
95
- "code": "free-gift-coupons-are-a-lossy-mapping-the-gift-is-not-auto-added",
96
- "severity": "warning",
97
- "summary": "A source \"free gift\" coupon (e.g. WooCommerce `fgf_free_gift` / Smart Coupons, whose gifted product lives in plugin meta such as `_wt_free_product_ids` and NOT in `product_ids` — that field is what the buyer must BUY, which for a pure gift is empty) has a PARTIAL mapping, not an exact one. `percentOffRate: 100` scoped to the gifted product is accepted live and makes that product cost nothing.\nWHAT IS LOST: the source ADDS the giveaway product to the cart when the code is applied. A Wix percentage coupon only discounts an eligible item the buyer has already put in the cart. So a buyer who enters the code and does not add the gift themselves receives nothing — a silent behaviour change, not a rounding error.\nTHERE IS NO PLATFORM FALLBACK FOR THE AUTO-ADD. Nothing in Wix's service-plugin surface mutates a cart: every extension in domains/SERVICE-PLUGINS.md is called to RETURN a decision (eligible triggers, rates, fees, validations, tax) and none can insert a line item. Custom discount triggers in particular only decide eligibility from `lineItems[].quantity`. So the options are exactly two: import the coupon as the lossy 100%-off mapping AND tell the merchant the gift is no longer added automatically, or build custom storefront / app code outside the migration. Do not route this to a service plugin.\nTwo alternatives were tried and both 400: `buyXGetY: {x: 0, y: 1}` rejects x=0 (\"expected more than 0\"), so Wix BuyXGetY always demands a purchase and is lossy in the same direction; `fixedPriceAmount: 0` rejects a zero newPrice. A free-gift coupon naming no product, or offering a CHOICE of products, has no mapping at all — nothing to scope to, and Wix holds one scope group.\nWHOSE CALL IT IS: this is a warning, not a blocker, and the decision belongs to the merchant — surface the behaviour change and let them rule, do not withhold the coupon on your own judgement. A merchant may reasonably rule that a buyer adding the product and then entering a code IS the expected Wix shopping flow, and accept the mapping. Treat that as a possible outcome, not as a default to apply silently."
98
- },
99
- {
100
- "code": "buyxgety-is-a-real-coupon-type-not-only-a-discount-rule",
101
- "severity": "info",
102
- "summary": "VERIFIED live 2026-09-02: `buyXGetY: {x, y}` is a valid Stores COUPON type (`type: \"BuyXGetY\"` on read-back), distinct from an eCom Discount Rule's BUY_X_GET_Y. It requires a scope — storewide, product or collection, per the enumeration in storewide-scope-is-valid-and-needs-no-group — and `x` must be greater than 0. Useful when the source gates a BOGO behind a coupon CODE, which an automatic discount rule cannot express: ecom/discount-rule has no coupon trigger, so a code-gated BOGO belongs here and not there. Read-back returns `displayData` with the scoped product's name, image and formatted price, which is a cheap confirmation that the scope resolved to what you intended."
103
- },
104
- {
105
- "code": "limitedtooneitem-reads-back-true-regardless-of-what-is-sent",
106
- "severity": "warning",
107
- "summary": "READ-BACK DISCREPANCY, cause not established. `limitedToOneItem` returns `true` from query on every coupon regardless of what was sent, including on FreeShipping where it has no obvious meaning, and sending `false` explicitly does not change the read-back. Wix documents the field as controlling whether only the lowest-priced eligible item is discounted, and publishes request examples using `false`, so it is a real setting and this is NOT evidence that it is inert. Only the read path was tested; checkout behaviour was not. Send it explicitly to state intent, do not infer the effective value from a read-back, and verify at checkout before relying on either value. See https://dev.wix.com/docs/api-reference/business-solutions/coupons/coupons/functionality"
108
- },
109
- {
110
- "code": "appliestosubscriptions-default-depends-on-the-rest-of-the-payload",
111
- "severity": "warning",
112
- "summary": "VERIFIED live 2026-09-02: unsent, `appliesToSubscriptions` comes back `true` when a `scope` is present and `false` when only `minimumSubtotal` is. Two coupons meant to be equivalent therefore end up with different subscription behaviour depending on which branch of the scope-or-minimum rule they took. Always send it explicitly."
113
- },
114
- {
115
- "code": "stale-token-masquerades-as-a-missing-app-install",
116
- "severity": "warning",
117
- "summary": "VERIFIED live 2026-09-02: an expired token on the coupon surface returns 401 \"Coupons App is not installed or unauthorized\" — which reads as a setup problem and has previously been recorded as one. Re-mint the token (scripts/mint-token.sh) before concluding the Coupons app is missing."
118
- },
119
- {
120
- "code": "free-shipping-is-its-own-type-not-a-zero-percent-discount",
121
- "severity": "warning",
122
- "summary": "VERIFIED live: `freeShipping: true` is a distinct, valid coupon type exempt from the scope/minimumSubtotal requirement above. A source `free_shipping: true` flag (e.g. WooCommerce) must map to `freeShipping: true`, never to `percentOffRate: 0` — the latter creates a real, active, non-functional 0%-off coupon that does not actually grant free shipping."
123
- },
124
- {
125
- "code": "free-shipping-and-a-discount-amount-cannot-coexist-on-one-coupon",
126
- "severity": "warning",
127
- "summary": "A source coupon can set the free-shipping flag AND a discount amount at once; a Wix coupon cannot, because `freeShipping` is its own type and carries no value. One half has to go. DECISION: keep `freeShipping: true` and report the dropped amount, per coupon, with its code and value — the merchant re-creates a plain discount coupon in a minute, but the free-shipping behaviour has no other expression in Wix. Report both values so the call is reversible coupon by coupon; never drop either half silently. shipping-build.js's findFreeShippingCouponConflicts enumerates them from the source set."
128
- },
129
- {
130
- "code": "free-shipping-and-a-product-restriction-cannot-coexist-either",
131
- "severity": "warning",
132
- "summary": "SEPARATE from the dropped-amount conflict above, and easy to miss because it looks like the same pitfall. A `freeShipping: true` coupon carries NO scope group at all — it is exempt from the scope/minimumSubtotal rule, and that exemption cuts both ways: there is nowhere to put a product or collection restriction. So a source coupon that is BOTH free shipping AND restricted to one product cannot keep both halves, for a different reason than a dropped discount amount: the restriction has no field to live in.\nDECISION: report it, do NOT import it as unrestricted free shipping. Dropping the restriction grants free shipping on ANY order, which is more generous than the source — the same defect class as widening a product scope to storewide. This is the opposite call from the dropped-amount conflict above, where keeping the free shipping IS the faithful choice; here keeping it silently expands who gets it.\nWHY THIS MATTERS FOR COUNTING: a migration that fixes the product-scope visibility rule (see product-scope-requires-a-visible-product) will expect every product-scoped coupon to become importable. The free-shipping ones will not, and they are not a regression — they were never blocked by the scope rule. Count them separately before promising a number."
133
- },
134
- {
135
- "code": "an-inactive-coupon-is-validated-exactly-like-an-active-one",
136
- "severity": "warning",
137
- "summary": "MEASURED live: `active: false` relaxes NOTHING. A coupon scoped to a hidden product is rejected `400 entityId '<id>' not found` with `active: false` exactly as with `active: true`. The scope is validated when the coupon is CREATED, not when a buyer redeems it.\nWHY THIS COMES UP: `active: false` looks like the natural way to park a coupon whose scope target is not ready yet — import it now, switch it on once the merchant fixes the storefront. That does not work, and it is worth knowing before promising it to an owner, because the obvious workaround is the one that fails. The precondition has to be satisfied at write time: the product must be visible at the moment of the POST.\nWhat `active: false` IS good for is unchanged — a coupon that must exist on the target but must not be redeemable yet, where the scope is already valid."
138
- },
139
- {
140
- "code": "free-shipping-coupons-are-what-carry-a-coupon-gated-shipping-method",
141
- "severity": "info",
142
- "summary": "A source shipping zone can hold a free-shipping method gated on a coupon. That method has no delivery-config counterpart in Wix and produces nothing in the delivery profile — the coupons carrying the free-shipping flag are what implement it, and at checkout the buyer sees the normal delivery price with the coupon removing it. So the two domains are linked in one direction only: the shipping side must confirm such a coupon exists (in the source, or already on the target) before concluding, and must never create one itself. See ecom/delivery-profile's coupon-gated-free-shipping-is-not-a-delivery-setting pitfall."
143
- },
144
- {
145
- "code": "scope-and-minimumsubtotal-do-not-coexist",
146
- "severity": "warning",
147
- "summary": "VERIFIED LIVE 2026-09-05 (fresh site): a coupon sent with BOTH `scope: {namespace: 'stores'}` and `minimumSubtotal: 200` is accepted (200) and reads back with the scope and NO minimum -- the minimum is dropped silently, no error, no field in the response. So the scope-or-minimumSubtotal rule is effectively exclusive-or on the write. An unrestricted coupon with a minimum spend must be sent with `minimumSubtotal` and no scope (the minimum then round-trips); a product- or collection-scoped coupon cannot carry a minimum spend at all -- such a coupon is REFUSED (coupon-discovery.js: coupon-scope-unmappable, constraint scope-with-minimum), because written without the minimum it would be more generous than the merchant published. WRITE-SIDE ONLY: that a minimum-only coupon then REDEEMS storewide at checkout is inferred from the docs' scope-or-minimum rule, not observed -- no checkout test has run (review). Verify at checkout on the payments test site before describing it as settled."
148
- },
149
- {
150
- "code": "create-coupon-answers-id-only",
151
- "severity": "warning",
152
- "summary": "VERIFIED LIVE 2026-09-05: Create Coupon's response is `{ id }` -- the documented shape -- with no coupon object. A writer that reaches for `response.coupon.id` and falls back to a query by code is defeated by this entity's write-then-read lag (four of five creates on a fresh site read back nothing within ~2s), and reports a landed coupon as failed. `createCoupon` now takes `response.id` first; `ensureCoupon` accepts a string, an `{ id }` or an `{ coupon: { id } }`."
153
- },
154
- {
155
- "code": "past-expiration-accepted-inactive-round-trips",
156
- "severity": "info",
157
- "summary": "VERIFIED LIVE 2026-09-05: an `expirationTime` in the past is ACCEPTED on create and the coupon reads back with `expired: true` -- so expired source coupons import as records. `active: false` round-trips (an exhausted single-use source code imports inactive and stays so). `usageLimit: 1` and `limitPerCustomer: 1` both round-trip, so a per-customer cap IS expressible on the API despite the Coupons functionality article saying customers cannot be limited."
158
- },
159
- {
160
- "code": "update-coupon-works-but-only-with-a-minimal-specification",
161
- "severity": "blocker",
162
- "summary": "VERIFIED LIVE 2026-09-14 (throwaway coupons only, all deleted afterwards). Update Coupon works, and the ONLY thing that decides whether it writes is how much of the specification you send. WORKS: `PATCH /stores/v2/coupons/{id}` with `{specification: {active: false}}` -- ONLY the fields being changed -- plus a field mask. The mask may be `?fieldMask=active`, `?fieldMask.paths=active`, or body `fieldMask: {paths: ['active']}`; all three write. Paths are specification field NAMES (`active`, `tags`), with NO `specification.` prefix -- `specification.active` returns 500. `?fieldMask=active,tags` sets both in one call. FAILS LOUDLY: no field mask at all -> 400 \"Updating coupons: field mask is missing\" (`updateMask` is the wrong field name and gets the same 400); a bare-array `fieldMask: ['active']` -> 400 deserialize. `PUT /stores/v2/coupons/{id}` is 404 and there is no v3/ecom coupons surface. The documented REST example omits the field mask entirely and therefore does not work as printed (dev.wix.com update-a-coupon) -- the mask is required, as the parameter table says. See the sibling pitfall full-specification-patch-returns-200-and-writes-nothing for the dangerous case."
163
- },
164
- {
165
- "code": "full-specification-patch-returns-200-and-writes-nothing",
166
- "severity": "blocker",
167
- "summary": "MEASURED LIVE 2026-09-14 and it is the most expensive fact on this surface. `PATCH /stores/v2/coupons/{id}` with the coupon's WHOLE specification in the body alongside a narrow field mask (e.g. `fieldMask: {paths: ['active']}`) returns **200 with an empty body `{}` and writes NOTHING**. The same call with a specification carrying only `{active: false}` writes correctly. Controlled: five fresh coupons, one per request variant; the full-spec form left `active: true` at +15s, +45s and +150s, and the minimal form flipped it within ~18s. WHY IT IS A TRAP AND NOT A NUISANCE: spreading the coupon you just read into the update body is the obvious way to write one ('start from current state, change one field'), it is what every other Wix entity tolerates, and the response is a success. A repair pass built that way reports every coupon updated while every one is unchanged -- on bearer vouchers that is a false pass on money. The docs' own wording is the rule: 'Only the properties passed in the `specification` object will be updated', so passing everything and masking one field is self-contradicting input, and the API resolves it by doing nothing instead of erroring. PRACTICAL RULE: build the update body from the CHANGE, never from the current record (lib/coupon-redemption-drift.js buildRemedyRequest does exactly this and cannot emit the full spec), and never report a coupon mutation from its status code -- verify by read-back after a settle, per verifyRemedyApplied."
168
- },
169
- {
170
- "code": "wix-exposes-no-redemption-count-for-a-coupon",
171
- "severity": "blocker",
172
- "summary": "MEASURED LIVE 2026-09-14. There is NO readable usage/redemption count for a Wix coupon on any surface. `GET /stores/v2/coupons/{id}` and `POST /stores/v2/coupons/query` return the same object and it carries `usageLimit` (what was written) but none of `numberOfUsages`, `usageCount`, `numUses`, `redemptions`, `timesUsed` or `used`. No redemptions surface answers either: `/stores/v2/coupons/redemptions/query`, `/stores-reader/v2/coupons/query` and `/coupons/v1/redemptions/query` are all 404. CONSEQUENCE: \"has this coupon been redeemed on the target?\" is UNANSWERABLE. Any migration check on coupon redeemability can only compare SOURCE usage against the target's `active` flag, and only while the source is still the system of record -- after go-live, a coupon cashed on Wix is invisible to every check. Do not design a reconciliation, a report line or an acceptance gate that needs the target's own count. Combined with the immutable-`active` pitfall this is what makes write-time correctness the only correctness available on this entity."
173
- },
174
- {
175
- "code": "an-imported-order-does-not-consume-the-coupon-it-references",
176
- "severity": "warning",
177
- "summary": "MEASURED LIVE 2026-09-14, once against a throwaway coupon as a control and once against a single-use money voucher; both orders removed afterwards through Bulk Delete Imported Orders. `POST /ecom/v1/orders/import` with `appliedDiscounts[].coupon.id` is ACCEPTED and the id round-trips, but the coupon's state is byte-identical before and after at +10s, +30s and +60s -- the import does NOT consume a usage. WHY IT MATTERS: importing the historical order that spent a voucher looks like a free way to close that voucher on the target, and it is the obvious alternative to deleting it. It does not work. This is consistent with Import Order's documented no-side-effects contract (ecom/order.json), but it had to be measured because it removes the only remedy cheaper than delete. Note this cuts the reassuring way too: importing order history can never accidentally burn a live coupon."
178
- },
179
- {
180
- "code": "coupons-carry-a-real-tags-field",
181
- "severity": "info",
182
- "summary": "VERIFIED LIVE 2026-09-14. `specification.tags` is a real, validated field: `array<string>`, max 100 items, max 255 chars each (dev.wix.com update-a-coupon schema). It is settable at CREATE and updatable in place through the minimal-specification PATCH above (`?fieldMask=active,tags` sets both at once). It round-trips on read from both `GET /stores/v2/coupons/{id}` and the query, and it is editable from the Wix dashboard's coupon screen. `tags: [{name: 'x'}]` is rejected 400 \"Unexpected value for field tags\", so it is strings only. EVERYTHING ELSE IS SILENTLY DROPPED -- `labels`, `customFields`, `extendedFields`, `description`, and a body-level `tags` outside `specification` all return 200 and store nothing, so do not reach for them as a marker. USE: tag migrated coupons so the merchant can tell them from ones they authored; the vocabulary is frozen in code (Imported / Already_Used / Disabled_At_Source) because a tag cannot be corrected without another update and a casing variant is indistinguishable from the real tag in the dashboard."
183
- },
184
- {
185
- "code": "bulk-create-exists-but-one-bad-specification-fails-the-whole-batch",
186
- "severity": "blocker",
187
- "summary": "VERIFIED LIVE. `POST /stores/v2/bulk/coupons/create` exists and works. The body key is `specifications` (an array of coupon specifications) -- sending `coupons` returns a clear 400 naming the field. Max **100 per call**; 101 returns 400. The companion `POST /stores/v2/bulk/coupons/delete` takes `{ids: [...]}`, also 100 per call. There is NO bulk update: `/stores/v2/bulk/coupons/update` is 404, so changing anything on N existing coupons is N single PATCH calls. THE TRAP, MEASURED: a bulk create is **all-or-nothing, and its per-item errors lie**. A batch of five with ONE invalid specification (index 2) returned HTTP 200 with `totalFailures: 5` and the SAME error description on all five, including the four that were valid -- and none of the five was created. So a caller reading per-item errors concludes every specification was malformed when only one was, and a batch of 100 loses 100 coupons to one bad row. REQUIRED HANDLING: on any failure in a bulk create, do NOT trust the per-item errors and do NOT mark the batch's coupons as failed. Re-send the batch as individual creates to find the real culprit and let the rest land. Bulk delete behaves differently and correctly -- a non-existent id returns a per-id error while the rest of the batch succeeds -- so the two verbs must not be assumed to share failure semantics."
188
- },
189
- {
190
- "code": "bulk-create-omits-originalindex-for-the-first-item",
191
- "severity": "blocker",
192
- "summary": "VERIFIED LIVE, and it is the positional-correlation defect class that has already corrupted identity data on another entity. `POST /stores/v2/bulk/coupons/create` answers `{results: [{itemMetadata: {id, originalIndex, success, error}}], bulkActionMetadata: {...}}`. `originalIndex` is present on results 1..N-1 and **ABSENT on result 0** -- a protobuf zero-value omission, not a missing field. Code that reads `originalIndex` and treats `undefined` as \"cannot correlate\" mis-attributes the FIRST item of EVERY batch; code that defaults it to `-1` or skips the row silently drops one coupon per 100. REQUIRED HANDLING: read it as `originalIndex ?? 0`, and correlate by that index into the request array -- never by array position in `results`, and never by matching on code alone. Verify the count: results length must equal specifications length."
193
- },
194
- {
195
- "code": "bulk-create-silently-drops-tags",
196
- "severity": "blocker",
197
- "summary": "MEASURED LIVE, isolated: the same specification sent to `POST /stores/v2/coupons` round-trips `specification.tags`, and sent to `POST /stores/v2/bulk/coupons/create` reads back `tags: undefined`. Both return 200. Every other field in the same payload survives the batch, including `active: false`, so the loss is specific to `tags`. CONSEQUENCE: the batch create and a tagging requirement are mutually exclusive today. A batch that wrote a hundred untagged coupons is indistinguishable from success at the call site, and nothing on the coupon afterwards says which migration created it. REQUIRED HANDLING: write tagged coupons one at a time, or create them untagged in a batch and apply tags afterwards with the minimal-specification PATCH -- which costs one call per coupon and therefore removes most of the batch's advantage. `bulkCreateCoupons` refuses a specification carrying tags rather than letting the loss happen silently. This was found by importing a batch and reading it back; a mocked transport cannot reproduce a field the server discards, so unit tests passed throughout."
198
- },
199
- {
200
- "code": "an-omitted-usage-allowance-is-not-a-decision",
201
- "severity": "blocker",
202
- "summary": "NOT YET MEASURED, and that is the point. Both fields that decide whether a coupon can be spent are OPTIONAL on Create Coupon, and the target resolves each omission in the most expensive direction: an omitted `active` behaves as switched ON, and the target starts its own usage count at zero with nothing able to seed a prior redemption. An import that simply never mentioned either wrote already-spent single-use money vouchers to a live store, switched on, and got 200 for every one. What an omitted `usageLimit` actually does at redemption is INFERRED, not observed -- what has been measured is only that a STATED `usageLimit` round-trips. Until the measurement runs (write one coupon with no allowance on a disposable site, redeem the code, then try to redeem it a second time, and read the answer AT CHECKOUT -- no coupon read can answer it, see wix-exposes-no-redemption-count-for-a-coupon), no report, spec or document may call coupons imported without an allowance \"uncapped\" without saying in the same sentence that it is inferred from a missing field. REQUIRED HANDLING, which does not wait for that answer: the writer now REFUSES a create whose specification never decided redeemability. `active` must be present and boolean, and `usageLimit` must be a positive integer unless the directive `usageUnlimited: true` is present (`usageLimit: 0` is rejected by the target, so there is no sentinel number for unlimited). The refusal fires in `ensureCoupon`, `bulkCreateCoupons` and `normalizeCouponSpecification` before any network call, and `usageUnlimited` is stripped before the body is built -- it is a directive, never an API field. CREATE ONLY: an update must keep carrying only the fields being changed, see full-specification-patch-returns-200-and-writes-nothing."
203
- }
204
- ],
205
- "mappingGuidance": [
206
- "Prefer native coupons and record unsupported conditions as CMS shadow fields or setup gaps.",
207
- "Required fields beyond `code`: `name` (default to `code` if the source has no separate display name) and `startTime` (the source coupon's creation date, or now) — as epoch MILLISECONDS, not ISO.",
208
- "A source coupon with no product restriction and no minimum spend maps exactly: `scope: {namespace: \"stores\"}`. It is not a gap and needs no invented minimum.",
209
- "A source coupon restricted to a specific PRODUCT works, provided that product is `visible` on the target — a hidden one is rejected as a missing entityId. Check visibility before scoping; report the coupon rather than widening it. A category restriction maps to `group: {name: \"collection\"}` and works.",
210
- "Wix holds at most ONE scope group per coupon. A source coupon spanning several products or several categories, or carrying an exclusion list, does not fit and must be reported.",
211
- "A source \"free gift\" coupon is not automatically a gap, but it is not an exact mapping either: `percentOffRate: 100` scoped to the gifted product makes it free, and does NOT add it to the cart the way the source does. No service plugin can add it — record the lossiness and tell the merchant. The gifted product is usually in plugin meta, not in `product_ids`.",
212
- "The WooCommerce mapping lives in rp-source-wordpress/lib/coupon-discovery.js (mapCouponToWix) and the reconcile-then-create write in wix-writers.js ensureCoupon (Query Coupons by exact specification.code, paced and retried; zero matches creates, one reconciles, more is ambiguous). Import ALL published coupons and classify by redeemability; `usage_limit` 0/empty is UNLIMITED. An exhausted single-use code is imported `active: false` -- Wix's own usage count starts at zero, so an active import would make a fully-redeemed code redeemable again. `fgf_free_gift` and any unrecognised discount_type produce NO write and a coupon-type-unmappable line; a multi-product, multi-category or exclusion-bearing scope is coupon-scope-unmappable, never widened to the store, and so is any eligibility constraint Wix cannot hold (sale-item exclusion, maximum discount amount, email restriction, a minimum spend on a scoped coupon). Free-shipping wins over an amount, with the amount reported per coupon. Redeemability is a DECISION and the writer refuses a create that never took it: `active` must be present and boolean, and `usageLimit` a positive integer unless `usageUnlimited: true` states that the source imposes no limit. Hand-rolling a specification is what produced a live store full of already-spent vouchers; the mapper decides both fields from the source usage count.",
213
- "A bearer voucher (a fixed money amount, no scope, no minimum, `usage_limit: 1`) is a money instrument, and its redeemability must be decided at WRITE time, not from the discovery snapshot: a voucher spent at source between capture and write imports fully redeemable, because Wix starts its own usage count at zero and nothing ever seeds a prior redemption. It CAN be corrected afterwards -- Update Coupon flips `active` in place, provided the request carries only the changed fields (see update-coupon-works-but-only-with-a-minimal-specification) -- but the correction needs someone to notice, so write-time correctness is still the goal. Re-read usage immediately before writing each voucher, do not write one whose fresh read is unobtainable, and reconcile again at cutover -- the source keeps trading until then. lib/coupon-redemption-drift.js holds the classification, the remedy plan and the read-back verification.",
214
- "Write coupons through the bulk create (100 per call) rather than one at a time -- coupon volume on a WooCommerce source can be large and single creates cost one round trip each. Two rules make it safe, both measured and both blockers if ignored: a single invalid specification fails the WHOLE batch and reports the same error against every item in it, so any failure means re-sending that batch as individual creates rather than believing the per-item errors; and `originalIndex` is omitted on the first result, so correlate with `originalIndex ?? 0` into the request array and never by position in the response.",
215
- "⚠️ The batch create and tagging cannot be combined: the batch discards `tags` while returning 200 (see bulk-create-silently-drops-tags). Either write tagged coupons singly, or batch them untagged and tag each one afterwards with the minimal-specification PATCH. Choose deliberately and report which was used -- the fast path and the complete path are not the same path."
216
- ],
217
- "setupRequirements": [
218
- "Wix Stores app"
219
- ],
220
- "evidence": [
221
- {
222
- "type": "wix-docs",
223
- "url": "https://dev.wix.com/docs/api-reference/business-solutions/coupons/coupons/coupon-object",
224
- "note": "object page (docs-survey sweep 2026-08-11)"
225
- },
226
- {
227
- "type": "live-verification",
228
- "path": "anonymized-live-verification"
229
- },
230
- {
231
- "type": "live-run",
232
- "path": "anonymized-live-verification",
233
- "note": "Verified live: coupon create and query-back readback succeeded in safe mode."
234
- },
235
- {
236
- "type": "live-verification",
237
- "path": "tests/target-wix/coupon-plan-live-sentinel.js",
238
- "note": "2026-09-05, two fresh disposable sites created through POST /funnel/projects/v1/create: percent (storewide), fixed_cart with minimumSubtotal (no scope), expired (past expirationTime), exhausted (active:false), freeShipping -- all created, all readable by exact `specification.code` through Query Coupons after the settle lag, values round-trip as recorded in the pitfalls; a re-run of the same code reconciles through ensureCoupon and creates nothing; Delete Coupon 200."
239
- }
240
- ]
241
- }
@@ -1,118 +0,0 @@
1
- {
2
- "schemaVersion": 1,
3
- "domain": "stores",
4
- "entity": "inventory-item",
5
- "displayName": "Stores Inventory Item",
6
- "capability": "commerce.inventory",
7
- "target": {
8
- "classification": "native",
9
- "nativeEntity": "Stores Inventory Item",
10
- "verifiedFqdn": null,
11
- "idPolicy": "server-assigned",
12
- "crosswalkRequired": true
13
- },
14
- "dependsOn": [
15
- "stores/product"
16
- ],
17
- "sourceAliases": [
18
- {
19
- "sourceSystem": "woocommerce",
20
- "sourceEntity": "product_variation_inventory",
21
- "routes": [
22
- "/wc/v3/products",
23
- "/wc/v3/products/{productId}/variations"
24
- ],
25
- "confidence": "medium"
26
- },
27
- {
28
- "sourceSystem": "wix",
29
- "sourceEntity": "inventoryItem",
30
- "routes": [
31
- "Stores Inventory APIs"
32
- ],
33
- "confidence": "high"
34
- }
35
- ],
36
- "preferredWrite": {
37
- "surface": "Stores Inventory V3",
38
- "endpoint": "POST /stores/v3/bulk/inventory-items/create",
39
- "writerId": "reconcileInventory",
40
- "verification": "verified-live",
41
- "importSafe": true,
42
- "bulk": true
43
- },
44
- "fallbacks": [
45
- {
46
- "classification": "cms",
47
- "when": "Use for source stock history or multi-location detail not represented by the selected target inventory plan."
48
- }
49
- ],
50
- "reliability": {
51
- "status": "reliable",
52
- "flags": []
53
- },
54
- "pitfalls": [
55
- {
56
- "code": "product-first",
57
- "severity": "blocker",
58
- "summary": "Inventory requires target product and variant IDs."
59
- },
60
- {
61
- "code": "bis-side-effects",
62
- "severity": "warning",
63
- "summary": "Avoid stock transitions that trigger Back in Stock notifications on live stores."
64
- },
65
- {
66
- "code": "tracking-oneof",
67
- "severity": "blocker",
68
- "summary": "inStock and quantity are mutually exclusive. trackQuantity and availabilityStatus are read-only; do not send them to select tracking mode."
69
- },
70
- {
71
- "code": "inventory-completion-independent",
72
- "severity": "blocker",
73
- "summary": "A product receipt is not inventory verification. Preserve inventory gaps, failed writes and mismatched read-backs in a separate partial checkpoint and report."
74
- },
75
- {
76
- "code": "existing-preorder-policy",
77
- "severity": "blocker",
78
- "summary": "Reconciliation refuses existing enabled preorder settings instead of silently changing the merchant policy. Resolve the policy before updating stock."
79
- },
80
- {
81
- "code": "catalog-inventory-disagreement",
82
- "severity": "blocker",
83
- "summary": "Default-location Inventory and Catalog variant availability are separate reads. An inventory item can be correct while Catalog still marks the same variant unavailable. Require both to agree; bounded read retries may recover propagation, but never toggle stock to repair a disagreement."
84
- }
85
- ],
86
- "mappingGuidance": [
87
- "Use stores-inventory.js reconcileInventory with resolved product/variant IDs and an explicit expectedCount including source gaps. Reads are scoped to one resolved Stores location. Query before create; compare before accepting existing inventory; update with current id/revision and verify by read-back.",
88
- "Write exactly one tracking field: inStock (boolean) or quantity (integer 0\u201399999 for creation). trackQuantity is read-only and derived. Verify its value, exact stock value, identity and availabilityStatus.",
89
- "Initial bulk product creation can include variantsInfo.variants[].inventoryItem in the default location. Always verify inventory independently of product success; recover stock using existing product/variant IDs.",
90
- "Unknown source stock is a named mapping gap, never implicit availability. Backorders, preorders and shared stock allocation require explicit policy decisions. Do not duplicate pooled quantity across variants.",
91
- "Bulk results require originalIndex and complete accounting. A 409, partial bulk response, stale revision or unreadable write remains failed/unverified until a later read confirms the intended value. Use absolute updates, not increment/decrement operations for reruns.",
92
- "For default-location rows, reconcileInventory also reads each distinct Catalog product (at most four concurrent reads), matches exact variant IDs and verifies inventoryStatus.inStock and disabled preorder. Missing or conflicting Catalog state remains unverified even on no-write reruns. Non-default-location rows explicitly record Catalog verification as not applicable."
93
- ],
94
- "setupRequirements": [
95
- "Read Stores Locations in v3 catalog",
96
- "Read inventory in v3 catalog",
97
- "Inventory write in v3 catalog (create and update)",
98
- "Resolve one Stores location; verify read, create, update and read-back using the actual import token and approved canary; retain notification protection",
99
- "Read products in v3 catalog, including hidden products and variants (Product v3 read admin), for Catalog consistency verification"
100
- ],
101
- "evidence": [
102
- {
103
- "type": "wix-docs",
104
- "url": "https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/inventory-items-v3/inventory-item-object",
105
- "note": "object page (docs-survey sweep 2026-08-11)"
106
- },
107
- {
108
- "type": "wix-docs",
109
- "url": "https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/inventory-items-v3/bulk-update-inventory-items",
110
- "note": "Revisioned bulk update; live create/read/update/reconcile and inline stock verified with synthetic hidden products. Probe cleanup succeeded; no preorder or multi-location allocation claim."
111
- },
112
- {
113
- "type": "wix-docs",
114
- "url": "https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/products-v3/get-product",
115
- "note": "Default-location availability is checked against the exact Catalog variant as well as the inventory item; a persistent disagreement has been observed in read-only verification."
116
- }
117
- ]
118
- }
@@ -1,111 +0,0 @@
1
- {
2
- "schemaVersion": 1,
3
- "domain": "stores",
4
- "entity": "product-customization",
5
- "displayName": "Stores Product Customization",
6
- "capability": "commerce.product-addon-fields",
7
- "target": {
8
- "classification": "native",
9
- "nativeEntity": "Stores Customization",
10
- "verifiedFqdn": null,
11
- "idPolicy": "server-assigned",
12
- "crosswalkRequired": true
13
- },
14
- "dependsOn": [],
15
- "sourceAliases": [
16
- {
17
- "sourceSystem": "woocommerce",
18
- "sourceEntity": "addon-field-group",
19
- "routes": [
20
- "/ppom/v1/admin/field-groups/context"
21
- ],
22
- "confidence": "high"
23
- }
24
- ],
25
- "preferredWrite": {
26
- "surface": "Stores Catalog V3 Customizations",
27
- "endpoint": "POST /stores/v3/customizations",
28
- "writerId": null,
29
- "verification": "verified-live",
30
- "importSafe": true,
31
- "bulk": true
32
- },
33
- "reliability": {
34
- "status": "partially-reliable",
35
- "flags": []
36
- },
37
- "pitfalls": [
38
- {
39
- "code": "connected-modifier-must-restate-the-settings",
40
- "severity": "blocker",
41
- "summary": "Attaching an existing customization to a product by id ALONE fails. VERIFIED LIVE 2026-08-16: product.modifiers[] = [{ id: <customization GUID>, mandatory: false }] → 400 REQUIRED_ONE_OF_FIELD 'freeTextSettings or choicesSettings must not be empty', and adding freeTextSettings without a title → 400 MIN_LENGTH on modifiers[0].modifierSettings.freeTextSettings.title. A ConnectedModifier must restate name, modifierRenderType, and the full settings block (title included) next to the id. Note the field renames between the two surfaces: the standalone customization uses freeTextInput/customizationRenderType, the product-side modifier uses freeTextSettings/modifierRenderType — a transform that reuses the create payload verbatim will fail."
42
- },
43
- {
44
- "code": "inline-modifiers-mint-a-new-customization",
45
- "severity": "warning",
46
- "summary": "VERIFIED LIVE 2026-08-16: a product created with modifiers[] and NO id auto-creates a fresh reusable customization and returns its server-assigned id. Convenient for a single-pass write, but it mints one customization per product — a source add-on group shared by 200 products becomes 200 near-duplicate customizations unless the group is created once up front and attached by id. Create-then-attach is the correct path for shared groups."
47
- },
48
- {
49
- "code": "modifier-not-option",
50
- "severity": "warning",
51
- "summary": "Add-on plugin fields collect input without creating variants — author them as customizationType MODIFIER, never PRODUCT_OPTION (options create product variants that affect inventory, SKU, and pricing; docs read 2026-08-16). A wrong type multiplies the variant matrix and cannot be fixed in place (customizationType is immutable)."
52
- },
53
- {
54
- "code": "conditional-visibility-no-counterpart",
55
- "severity": "warning",
56
- "summary": "OPEN FIDELITY QUESTION: the Customization object carries no conditional-visibility mechanism (full request schema read 2026-08-16 — nothing rules-shaped). Source conditional rules (e.g. PPOM per-field conditions, per-variation _ppom_variation_meta_rules) need a field-by-field pairing at mapping time; expect reported loss unless a pairing is found."
57
- },
58
- {
59
- "code": "per-option-pricing-pairing-needed",
60
- "severity": "warning",
61
- "summary": "OPEN FIDELITY QUESTION: choices and free-text inputs carry defaultAddedPrice (decimal 0–999999999.99, maxScale 3 — docs read 2026-08-16), a plausible home for per-option add-on prices, but it is a DEFAULT on the reusable customization, not a per-product override. Field-by-field pairing needed at mapping time when the source prices the same option differently per product."
62
- },
63
- {
64
- "code": "file-upload-no-render-type",
65
- "severity": "warning",
66
- "summary": "OPEN FIDELITY QUESTION: customizationRenderType supports only FREE_TEXT, TEXT_CHOICES, SWATCH_CHOICES (enum read 2026-08-16). Source file-upload / image-cropper fields have no native render type — decide per field at mapping time (drop with ledger entry, or approximate); there is no customization-based carry for uploads."
67
- }
68
- ],
69
- "mappingGuidance": [
70
- "source add-on field groups (e.g. PPOM field groups) -> customization definitions, one customization per field — text inputs -> FREE_TEXT with freeTextInput (title required, <=100 chars; min/maxCharCount, max 500), choice fields -> TEXT_CHOICES with choicesSettings.choices[] (name <=50 chars, <=1000 choices), color swatches -> SWATCH_CHOICES (ONE_COLOR choices).",
71
- "Per-product attachment: the source's product-to-group assignment (e.g. PPOM _product_meta_id) -> the product's customization references — product.modifiers[] ConnectedModifier entries citing the created customization ids (customizationType MODIFIER), with mandatory per attachment. Create customizations first, crosswalk group id -> customization ids, then reference them on product create; inline modifier definitions on the product also auto-create reusable customization entities if a single-pass write is preferred (but see inline-modifiers-mint-a-new-customization before choosing that path).",
72
- "The ConnectedModifier entry must carry { id, name, modifierRenderType, mandatory, freeTextSettings|choicesSettings } — the id alone is rejected, and the settings block needs its own title (verified live 2026-08-16, see connected-modifier-must-restate-the-settings). Keep the restated values identical to the customization's own so the two surfaces do not drift.",
73
- "Customization name <=50 chars; the server-generated key is what eCommerce catalogReference.options uses — record created ids AND keys in the crosswalk so order-side mapping (ecom) can resolve them. Observed live 2026-08-16: on a plain-ASCII name the key is simply the name verbatim ('ZZZ Probe Engraving Text'), and the freeTextInput title gets its own separate key — do not assume the key is a slugified form, read it back."
74
- ],
75
- "setupRequirements": [
76
- "Wix Stores app"
77
- ],
78
- "evidence": [
79
- {
80
- "type": "wix-docs",
81
- "url": "https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/customizations-v3/customization-object",
82
- "note": "object page: id/key/name, customizationType PRODUCT_OPTION|MODIFIER, customizationRenderType FREE_TEXT|TEXT_CHOICES|SWATCH_CHOICES (read 2026-08-16)"
83
- },
84
- {
85
- "type": "wix-docs",
86
- "url": "https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/customizations-v3/create-customization",
87
- "note": "POST /stores/v3/customizations; full request schema: freeTextInput/choicesSettings one-of, defaultAddedPrice, choice constraints (read 2026-08-16)"
88
- },
89
- {
90
- "type": "wix-docs",
91
- "url": "https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/customizations-v3/introduction",
92
- "note": "options create variants, modifiers do not; standalone-then-assign vs inline auto-create; modifier deletion semantics (read 2026-08-16)"
93
- },
94
- {
95
- "type": "wix-docs",
96
- "url": "https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/products-v3/product-object",
97
- "note": "attachment surface: product.modifiers[] ConnectedModifier — id of a MODIFIER customization, mandatory flag, key (read 2026-08-16)"
98
- },
99
- {
100
- "type": "review-decision",
101
- "path": "anonymized-live-verification",
102
- "note": "commerce.product-addon-fields; resolves the stores docs-survey 2026-08-11 'revisit when an add-on plugin is profiled' note"
103
- },
104
- {
105
- "type": "live-run",
106
- "path": "anonymized-live-verification",
107
- "note": "Verified live: POST /stores/v3/customizations with { customizationType: MODIFIER, customizationRenderType: FREE_TEXT, freeTextInput: { title, minCharCount, maxCharCount, defaultAddedPrice } } → 200 with server-assigned id and key. Attaching it via product.modifiers[] took three attempts — id-only and id+settings-without-title both 400'd — and succeeded with id + name + modifierRenderType + full freeTextSettings; the created product read back the same customization id and key. A control product with an inline modifier and no id also succeeded and minted a SECOND customization. Both products and both customizations deleted afterwards (DELETE /stores/v3/customizations/{id} → 200, including the inline-minted one)."
108
- }
109
- ],
110
- "notes": "Authored 2026-08-16 from the approved mapping behavior. Promoted to verified-live 2026-08-16 by a create → attach → readback → delete probe on an anonymized verification environment; the ConnectedModifier restatement requirement and the inline-mints-a-duplicate behaviour were both discovered there. reliability is partially-reliable, not reliable: only MODIFIER/FREE_TEXT was exercised live — TEXT_CHOICES and SWATCH_CHOICES, bulk create (POST /stores/v3/customizations/bulk), and defaultAddedPrice's effect on order totals remain docs-only, and the three OPEN FIDELITY QUESTIONS below are unchanged by this probe. Pairs with ecom/order-line-item-options for the captured order-side values (commerce.order-addon-values)."
111
- }
@@ -1,79 +0,0 @@
1
- {
2
- "schemaVersion": 1,
3
- "domain": "stores",
4
- "entity": "product-tag",
5
- "displayName": "Stores Product Tag",
6
- "capability": "commerce.catalog-product-tag",
7
- "target": {
8
- "classification": "native",
9
- "nativeEntity": "Wix Tag",
10
- "verifiedFqdn": "wix.stores.catalog.v3.product",
11
- "idPolicy": "server-assigned",
12
- "crosswalkRequired": true
13
- },
14
- "dependsOn": [],
15
- "sourceAliases": [
16
- {
17
- "sourceSystem": "woocommerce",
18
- "sourceEntity": "product_tag",
19
- "routes": [
20
- "/wc/v3/products/tags"
21
- ],
22
- "confidence": "high"
23
- },
24
- {
25
- "sourceSystem": "wix",
26
- "sourceEntity": "productTag",
27
- "routes": [
28
- "Tags API scoped to product FQDN"
29
- ],
30
- "confidence": "high"
31
- }
32
- ],
33
- "preferredWrite": {
34
- "surface": "Tags",
35
- "endpoint": "POST /tags/v1/tags",
36
- "writerId": null,
37
- "verification": "verified-live",
38
- "importSafe": true,
39
- "bulk": false
40
- },
41
- "fallbacks": [
42
- {
43
- "classification": "cms",
44
- "when": "Use only for source tag metadata not represented by Wix Tags."
45
- }
46
- ],
47
- "reliability": {
48
- "status": "partially-reliable",
49
- "flags": []
50
- },
51
- "pitfalls": [
52
- {
53
- "code": "fqdn-required",
54
- "severity": "blocker",
55
- "summary": "Use the verified product FQDN and resolve tag IDs before attaching them to products."
56
- }
57
- ],
58
- "mappingGuidance": [
59
- "Create tags via the Tags API (product FQDN), then assign IDs on the product's tags.publicTags for a public source taxonomy (WooCommerce product tags are public) or tags.privateTags for internal-only tags.",
60
- "Source tag-archive URLs have no Wix equivalent; record each in the URL-preservation map with a redirect decision (category/search target or drop)."
61
- ],
62
- "setupRequirements": [
63
- "Wix Stores app"
64
- ],
65
- "evidence": [
66
-
67
- {
68
- "type": "wix-docs",
69
- "url": "https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/products-v3/product-object",
70
- "note": "Catalog V3 product object fields for publicTags and privateTags."
71
- },
72
- {
73
- "type": "live-run",
74
- "path": "anonymized-live-verification",
75
- "note": "Verified live: create + query-back readback, safe mode on — tags created via POST /tags/v1/tags + attach to variable product verified; the fqdn-required pitfall reproduced live (400 without fqdn) before the fix"
76
- }
77
- ],
78
- "notes": "The Catalog V3 product object carries tags.publicTags, visible to site members and visitors, and tags.privateTags, which are permission-gated and merchant-side. A public source taxonomy maps to publicTags; internal or organizational tags map to privateTags. Tag-archive pages and URLs do not exist on Wix by default, so only per-product tag visibility carries over."
79
- }