@wix/agent-skills 1.15.0 → 1.16.0

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 (355) hide show
  1. package/README.md +5 -1
  2. package/package.json +1 -1
  3. package/skills/wix-app/SKILL.md +4 -1
  4. package/skills/wix-app/references/APP_TOOLS.md +134 -0
  5. package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +1 -1
  6. package/skills/wix-app/references/DASHBOARD_PAGE.md +0 -10
  7. package/skills/wix-app/references/DATA_COLLECTION.md +6 -4
  8. package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +28 -7
  9. package/skills/wix-app/references/SERVICE_PLUGIN.md +12 -10
  10. package/skills/wix-app/references/STORES_VERSIONING.md +9 -211
  11. package/skills/wix-app/references/app-tools/TOOLS.md +75 -0
  12. package/skills/wix-app/references/backend-event/COMMON-EVENTS.md +5 -0
  13. package/skills/wix-app/references/dashboard-page/DASHBOARD_API.md +2 -2
  14. package/skills/wix-app/references/editor-react-component/A11Y-REVIEW-REFERENCE.md +172 -0
  15. package/skills/wix-app/references/editor-react-component/A11Y-REVIEW.md +138 -0
  16. package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +172 -0
  17. package/skills/wix-app/references/editor-react-component/BRANDED-COMPONENTS.md +29 -0
  18. package/skills/wix-app/references/editor-react-component/COMPONENT-API.md +1 -1
  19. package/skills/wix-app/references/editor-react-component/COMPONENT-PREVIEW.md +57 -0
  20. package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +33 -2
  21. package/skills/wix-app/references/editor-react-component/DESIGN-STATES.md +5 -3
  22. package/skills/wix-app/references/editor-react-component/DIRECTIONALITY.md +18 -1
  23. package/skills/wix-app/references/editor-react-component/PARTS.md +15 -2
  24. package/skills/wix-app/references/editor-react-component/REACT-GUIDELINES.md +4 -3
  25. package/skills/wix-app/references/service-plugin/BOOKINGS-STAFF-SORTING.md +13 -9
  26. package/skills/wix-app/references/service-plugin/DISCOUNT-TRIGGERS.md +4 -0
  27. package/skills/wix-app/references/service-plugin/GIFT-CARDS.md +4 -0
  28. package/skills/wix-app/references/service-plugin/PAYMENT-SETTINGS.md +3 -1
  29. package/skills/wix-app/references/service-plugin/SHIPPING-RATES.md +4 -0
  30. package/skills/wix-app/references/service-plugin/TOOLS_PROVIDER.md +54 -0
  31. package/skills/wix-app/references/stores/CATEGORIES.md +22 -0
  32. package/skills/wix-app/references/stores/GET_PRODUCT.md +99 -0
  33. package/skills/wix-app/references/stores/INVENTORY.md +37 -0
  34. package/skills/wix-app/references/stores/QUERY.md +119 -0
  35. package/skills/wix-app/references/stores/WRITE.md +55 -0
  36. package/skills/wix-docs/SKILL.md +35 -3
  37. package/skills/wix-headless/SKILL.md +9 -2
  38. package/skills/wix-headless/entry/bootstrap.mjs +2 -2
  39. package/skills/wix-headless/entry/skill.md +0 -2
  40. package/skills/wix-headless/references/CAPABILITIES.md +6 -4
  41. package/skills/wix-headless/references/CONTENT.md +36 -0
  42. package/skills/wix-headless/references/DESIGN.md +54 -0
  43. package/skills/wix-headless/references/DISCOVERY.md +25 -1
  44. package/skills/wix-headless/references/FEEDBACK.md +16 -5
  45. package/skills/wix-headless/references/IMAGE_GENERATION.md +10 -0
  46. package/skills/wix-headless/references/SDK_HANDOFF.md +2 -0
  47. package/skills/wix-headless/references/SEED.md +3 -1
  48. package/skills/wix-headless/references/SETUP.md +1 -1
  49. package/skills/wix-headless/references/inline-recipes/how-to-code-a-store.md +3 -2
  50. package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-reservations.md +42 -2
  51. package/skills/wix-headless/references/inline-recipes/setup-bookings.md +5 -1
  52. package/skills/wix-headless/references/inline-recipes/setup-forms.md +1 -1
  53. package/skills/wix-headless/references/inline-recipes/setup-online-store.md +33 -8
  54. package/skills/wix-headless/references/inline-recipes/setup-portfolio.md +3 -1
  55. package/skills/wix-headless/references/inline-recipes/setup-restaurant-experiences.md +73 -0
  56. package/skills/wix-headless/references/inline-recipes/setup-restaurant-orders.md +38 -2
  57. package/skills/wix-headless/references/inline-recipes/setup-restaurant-reservations.md +20 -1
  58. package/skills/wix-headless/references/inline-recipes/setup-restaurants.md +1 -1
  59. package/skills/wix-headless/references/managed/CONNECT.md +2 -2
  60. package/skills/wix-headless/references/managed/CREATE.md +15 -1
  61. package/skills/wix-headless/references/managed/DEPLOYMENT.md +47 -0
  62. package/skills/wix-headless/references/self-managed/DEPLOYMENT.md +8 -0
  63. package/skills/wix-headless/references/stripe/DEPLOYMENT.md +8 -0
  64. package/skills/wix-manage/SKILL.md +131 -12
  65. package/skills/wix-manage/references/analytics/analytics-dashboard-navigation.md +41 -0
  66. package/skills/wix-manage/references/analytics/query-site-analytics.md +66 -9
  67. package/skills/wix-manage/references/app-installation/app-installation-dashboard-navigation.md +28 -0
  68. package/skills/wix-manage/references/app-installation/install-wix-apps.md +3 -0
  69. package/skills/wix-manage/references/blog/blog-dashboard-navigation.md +56 -0
  70. package/skills/wix-manage/references/blog/how-to-create-blog-posts.md +31 -6
  71. package/skills/wix-manage/references/bookings/booking-service-policy-setup.md +3 -1
  72. package/skills/wix-manage/references/bookings/bookings-dashboard-navigation.md +63 -0
  73. package/skills/wix-manage/references/bookings/create-booking-service-from-prompt.md +6 -5
  74. package/skills/wix-manage/references/bookings/create-course-service.md +30 -5
  75. package/skills/wix-manage/references/bookings/diagnose-availability-issues.md +85 -42
  76. package/skills/wix-manage/references/cms/cms-dashboard-navigation.md +44 -0
  77. package/skills/wix-manage/references/cms/cms-data-items-crud.md +31 -3
  78. package/skills/wix-manage/references/cms/cms-publishing-flow.md +287 -0
  79. package/skills/wix-manage/references/cms/cms-schema-management.md +33 -1
  80. package/skills/wix-manage/references/contacts/contacts-dashboard-navigation.md +46 -0
  81. package/skills/wix-manage/references/contacts/create-a-contact.md +82 -0
  82. package/skills/wix-manage/references/contacts/update-a-contact.md +119 -0
  83. package/skills/wix-manage/references/dashboard-navigation/dashboard-navigation.md +82 -0
  84. package/skills/wix-manage/references/dashboard-navigation/routes.json +1733 -0
  85. package/skills/wix-manage/references/domains/domains-dashboard-navigation.md +32 -0
  86. package/skills/wix-manage/references/ecommerce/ecom-pricing.md +4 -4
  87. package/skills/wix-manage/references/ecommerce/ecom-shipping.md +1 -1
  88. package/skills/wix-manage/references/ecommerce/gift-cards/ecom-gift-cards-goal-sell-gift-cards.md +338 -0
  89. package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-create-discount-rule.md +42 -78
  90. package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-bundle-and-save.md +1 -1
  91. package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-stock-mover.md +1 -1
  92. package/skills/wix-manage/references/ecommerce/pricing-promotions/ecom-pricing-flow-upsell-boost.md +1 -1
  93. package/skills/wix-manage/references/ecommerce/recommend-ecommerce-strategy.md +90 -92
  94. package/skills/wix-manage/references/events/create-wix-event.md +176 -0
  95. package/skills/wix-manage/references/events/manage-wix-events.md +174 -0
  96. package/skills/wix-manage/references/forms/forms-dashboard-navigation.md +44 -0
  97. package/skills/wix-manage/references/get-paid/get-paid-dashboard-navigation.md +52 -0
  98. package/skills/wix-manage/references/get-paid/how-to-setup-wix-payments.md +30 -7
  99. package/skills/wix-manage/references/google-ads/billing-and-payment.md +80 -0
  100. package/skills/wix-manage/references/google-ads/create-performance-max-campaign.md +212 -0
  101. package/skills/wix-manage/references/google-ads/get-campaign-suggestions.md +110 -0
  102. package/skills/wix-manage/references/google-ads/google-ads-dashboard-navigation.md +25 -0
  103. package/skills/wix-manage/references/google-ads/install-and-create-account.md +155 -0
  104. package/skills/wix-manage/references/google-ads/manage-campaign-lifecycle.md +63 -0
  105. package/skills/wix-manage/references/google-ads/query-campaign-analytics.md +155 -0
  106. package/skills/wix-manage/references/marketing/create-and-publish-social-post.md +225 -144
  107. package/skills/wix-manage/references/marketing/generate-and-publish-marketing-plan.md +19 -10
  108. package/skills/wix-manage/references/marketing/marketing-dashboard-navigation.md +52 -0
  109. package/skills/wix-manage/references/pricing-plans/create-and-update-pricing-plans.md +99 -1
  110. package/skills/wix-manage/references/pricing-plans/pricing-plans-dashboard-navigation.md +45 -0
  111. package/skills/wix-manage/references/restaurants/restaurants-dashboard-navigation.md +68 -0
  112. package/skills/wix-manage/references/restaurants/wix-restaurants-setup.md +94 -125
  113. package/skills/wix-manage/references/site-properties/change-payment-currency-site-properties.md +48 -9
  114. package/skills/wix-manage/references/site-properties/site-properties-dashboard-navigation.md +31 -0
  115. package/skills/wix-manage/references/sites/create-headless-site.md +52 -0
  116. package/skills/wix-manage/references/sites/create-site-from-template.md +2 -25
  117. package/skills/wix-manage/references/sites/site-import.md +243 -0
  118. package/skills/wix-manage/references/sites/sites-dashboard-navigation.md +29 -0
  119. package/skills/wix-manage/references/stores/add-store-pages-to-site.md +17 -1
  120. package/skills/wix-manage/references/stores/create-product-from-image.md +8 -6
  121. package/skills/wix-manage/references/stores/create-product-with-options-catalog-v3.md +16 -10
  122. package/skills/wix-manage/references/stores/find-products-query-and-search-catalog-v3.md +26 -8
  123. package/skills/wix-manage/references/stores/stores-dashboard-navigation.md +65 -0
  124. package/skills/wix-manage/references/stores/update-product-with-options.md +39 -7
  125. package/skills/wix-replatform/.publish-manifest.json +8 -0
  126. package/skills/wix-replatform/SKILL.md +693 -0
  127. package/skills/wix-replatform/lib/artifact-freshness.js +215 -0
  128. package/skills/wix-replatform/lib/completion-report.js +200 -0
  129. package/skills/wix-replatform/lib/config-env.js +59 -0
  130. package/skills/wix-replatform/lib/execution-manifest.js +185 -0
  131. package/skills/wix-replatform/lib/execution-state.js +173 -0
  132. package/skills/wix-replatform/lib/import-recovery.js +313 -0
  133. package/skills/wix-replatform/lib/local-state.js +642 -0
  134. package/skills/wix-replatform/lib/orchestration-preflight.js +143 -0
  135. package/skills/wix-replatform/lib/orchestration-router.js +122 -0
  136. package/skills/wix-replatform/lib/orchestration-state.js +455 -0
  137. package/skills/wix-replatform/lib/progress-log.js +224 -0
  138. package/skills/wix-replatform/lib/progress-log.sh +140 -0
  139. package/skills/wix-replatform/lib/url-preservation-state.js +391 -0
  140. package/skills/wix-replatform/resources/rp-discovery/SKILL.md +184 -0
  141. package/skills/wix-replatform/resources/rp-execute-import/SKILL.md +529 -0
  142. package/skills/wix-replatform/resources/rp-execute-setup/SKILL.md +316 -0
  143. package/skills/wix-replatform/resources/rp-execute-setup/scripts/mint-token.sh +64 -0
  144. package/skills/wix-replatform/resources/rp-import-codegen/SKILL.md +1114 -0
  145. package/skills/wix-replatform/resources/rp-mapper/SKILL.md +430 -0
  146. package/skills/wix-replatform/resources/rp-mapper/lib/mapping-resolve.js +217 -0
  147. package/skills/wix-replatform/resources/rp-mapper/scripts/resolve-mapping.js +148 -0
  148. package/skills/wix-replatform/resources/rp-mapper/wix-business-solutions-taxonomy.md +378 -0
  149. package/skills/wix-replatform/resources/rp-setup-discovery/SKILL.md +183 -0
  150. package/skills/wix-replatform/resources/rp-source-csv/SKILL.md +478 -0
  151. package/skills/wix-replatform/resources/rp-source-csv/lib/canonical-record.js +136 -0
  152. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fileset.js +0 -0
  153. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fingerprint.js +310 -0
  154. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-layout.js +1081 -0
  155. package/skills/wix-replatform/resources/rp-source-csv/lib/csv-parse.js +618 -0
  156. package/skills/wix-replatform/resources/rp-source-csv/scripts/csv-discovery.js +949 -0
  157. package/skills/wix-replatform/resources/rp-source-csv/source-schema.example.json +196 -0
  158. package/skills/wix-replatform/resources/rp-source-csv/vendors/bigcommerce.json +66 -0
  159. package/skills/wix-replatform/resources/rp-source-csv/vendors/magento.json +60 -0
  160. package/skills/wix-replatform/resources/rp-source-csv/vendors/shopify.json +95 -0
  161. package/skills/wix-replatform/resources/rp-source-csv/vendors/woocommerce.json +82 -0
  162. package/skills/wix-replatform/resources/rp-source-wordpress/SKILL.md +256 -0
  163. package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-http.js +249 -0
  164. package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-route-classifier.js +444 -0
  165. package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-discovery.js +774 -0
  166. package/skills/wix-replatform/resources/rp-source-wordpress/source-schema.example.json +71 -0
  167. package/skills/wix-replatform/resources/rp-target-wix/SKILL.md +632 -0
  168. package/skills/wix-replatform/resources/rp-target-wix/SPEC-product-reviews-and-blog-authorship.md +330 -0
  169. package/skills/wix-replatform/resources/rp-target-wix/domains/README.md +21 -0
  170. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/domain.json +19 -0
  171. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/category.json +37 -0
  172. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/comment.json +37 -0
  173. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/post.json +39 -0
  174. package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/tag.json +35 -0
  175. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/domain.json +14 -0
  176. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/collection.json +35 -0
  177. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/data-item.json +36 -0
  178. package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/reference.json +35 -0
  179. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/domain.json +14 -0
  180. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/contact.json +131 -0
  181. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/email-subscription.json +37 -0
  182. package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/label.json +37 -0
  183. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/domain.json +21 -0
  184. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item.json +37 -0
  185. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-refund.json +37 -0
  186. package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order.json +97 -0
  187. package/skills/wix-replatform/resources/rp-target-wix/domains/index.json +528 -0
  188. package/skills/wix-replatform/resources/rp-target-wix/domains/media/domain.json +14 -0
  189. package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-file.json +38 -0
  190. package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-folder.json +37 -0
  191. package/skills/wix-replatform/resources/rp-target-wix/domains/members/domain.json +13 -0
  192. package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/badge.json +37 -0
  193. package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member.json +53 -0
  194. package/skills/wix-replatform/resources/rp-target-wix/domains/schema.json +84 -0
  195. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/domain.json +25 -0
  196. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/category.json +37 -0
  197. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/coupon.json +37 -0
  198. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/inventory-item.json +38 -0
  199. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-tag.json +37 -0
  200. package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product.json +90 -0
  201. package/skills/wix-replatform/resources/rp-target-wix/lib/audit-summary.js +64 -0
  202. package/skills/wix-replatform/resources/rp-target-wix/lib/contract-ledger.js +141 -0
  203. package/skills/wix-replatform/resources/rp-target-wix/lib/domain-knowledge.js +384 -0
  204. package/skills/wix-replatform/resources/rp-target-wix/lib/ndjson.js +260 -0
  205. package/skills/wix-replatform/resources/rp-target-wix/lib/stores-verification.js +238 -0
  206. package/skills/wix-replatform/resources/rp-target-wix/lib/wix-build.js +237 -0
  207. package/skills/wix-replatform/resources/rp-target-wix/lib/wix-target-spec.js +238 -0
  208. package/skills/wix-replatform/resources/rp-target-wix/lib/wix-writers.js +2219 -0
  209. package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js +31 -0
  210. package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge.js +100 -0
  211. package/skills/wix-replatform/resources/rp-target-wix/scripts/verify-stores.js +107 -0
  212. package/skills/wix-replatform/resources/rp-telemetry/SKILL.md +344 -0
  213. package/skills/wix-replatform/resources/rp-telemetry/lib/bi-sink.js +250 -0
  214. package/skills/wix-replatform/resources/rp-telemetry/lib/telemetry-recorder.js +1927 -0
  215. package/skills/wix-replatform/resources/rp-telemetry/scripts/meter-from-audit.js +83 -0
  216. package/skills/wix-replatform/resources/rp-telemetry/scripts/rp-telemetry.js +141 -0
  217. package/skills/wix-replatform/scripts/artifact-freshness.js +76 -0
  218. package/skills/wix-replatform/scripts/execution-manifest-validate.js +43 -0
  219. package/skills/wix-replatform/scripts/execution-state-prepare.js +128 -0
  220. package/skills/wix-replatform/scripts/orchestration-preflight.js +48 -0
  221. package/skills/wix-replatform/scripts/orchestration-route.js +46 -0
  222. package/skills/wix-replatform/scripts/orchestration-state.js +245 -0
  223. package/skills/wix-vibe-headless/SKILL.md +54 -25
  224. package/skills/wix-vibe-headless/install/deploy.cjs +95 -0
  225. package/skills/wix-vibe-headless/install/pin-agents-md.cjs +34 -0
  226. package/skills/wix-vibe-headless/platforms/README.md +26 -0
  227. package/skills/wix-vibe-headless/platforms/base44.md +177 -0
  228. package/skills/wix-vibe-headless/platforms/generic.md +122 -0
  229. package/skills/wix-vibe-headless/references/blog/INSTRUCTIONS.md +230 -119
  230. package/skills/wix-vibe-headless/references/blog/app/components/PostCard.jsx +43 -0
  231. package/skills/wix-vibe-headless/references/blog/app/components/PostChips.jsx +25 -0
  232. package/skills/wix-vibe-headless/references/blog/app/components/PostGrid.jsx +15 -0
  233. package/skills/wix-vibe-headless/references/blog/app/context/TaxonomyContext.jsx +35 -0
  234. package/skills/wix-vibe-headless/references/blog/app/hooks/usePostDetail.js +38 -0
  235. package/skills/wix-vibe-headless/references/blog/app/pages/Blog.jsx +40 -0
  236. package/skills/wix-vibe-headless/references/blog/app/pages/CategoryPage.jsx +54 -0
  237. package/skills/wix-vibe-headless/references/blog/app/pages/PostDetail.jsx +65 -0
  238. package/skills/wix-vibe-headless/references/blog/app/pages/TagPage.jsx +50 -0
  239. package/skills/wix-vibe-headless/references/blog/seed/SEED.md +103 -0
  240. package/skills/wix-vibe-headless/references/blog/seed/seed-blog.js +270 -0
  241. package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +260 -145
  242. package/skills/wix-vibe-headless/references/bookings/app/components/BookingForm.jsx +65 -0
  243. package/skills/wix-vibe-headless/references/bookings/app/components/ServiceCard.jsx +47 -0
  244. package/skills/wix-vibe-headless/references/bookings/app/components/ServiceGrid.jsx +13 -0
  245. package/skills/wix-vibe-headless/references/bookings/app/components/SlotPicker.jsx +126 -0
  246. package/skills/wix-vibe-headless/references/bookings/app/hooks/useServiceDetail.js +108 -0
  247. package/skills/wix-vibe-headless/references/bookings/app/hooks/useServices.js +58 -0
  248. package/skills/wix-vibe-headless/references/bookings/app/lib/serviceFacts.js +95 -0
  249. package/skills/wix-vibe-headless/references/bookings/app/pages/ServiceDetail.jsx +94 -0
  250. package/skills/wix-vibe-headless/references/bookings/app/pages/Services.jsx +89 -0
  251. package/skills/wix-vibe-headless/references/bookings/{wix-bookings-checkout.js → app/rest/wix-bookings-checkout.js} +1 -1
  252. package/skills/wix-vibe-headless/references/bookings/{wix-bookings-services.js → app/rest/wix-bookings-services.js} +90 -12
  253. package/skills/wix-vibe-headless/references/bookings/seed/SEED.md +117 -0
  254. package/skills/wix-vibe-headless/references/bookings/seed/seed-bookings.js +333 -0
  255. package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +169 -147
  256. package/skills/wix-vibe-headless/references/cms/app/collection.config.js +31 -0
  257. package/skills/wix-vibe-headless/references/cms/app/lib/wixImage.js +18 -0
  258. package/skills/wix-vibe-headless/references/cms/{wix-cms.js → app/rest/wix-cms.js} +47 -2
  259. package/skills/wix-vibe-headless/references/cms/seed/SEED.md +145 -0
  260. package/skills/wix-vibe-headless/references/events/INSTRUCTIONS.md +228 -131
  261. package/skills/wix-vibe-headless/references/events/app/components/CategoryFilter.jsx +23 -0
  262. package/skills/wix-vibe-headless/references/events/app/components/EventCard.jsx +43 -0
  263. package/skills/wix-vibe-headless/references/events/app/components/EventGrid.jsx +13 -0
  264. package/skills/wix-vibe-headless/references/events/app/components/EventRegistration.jsx +29 -0
  265. package/skills/wix-vibe-headless/references/events/app/components/RsvpForm.jsx +57 -0
  266. package/skills/wix-vibe-headless/references/events/app/components/TicketPicker.jsx +78 -0
  267. package/skills/wix-vibe-headless/references/events/app/hooks/useEventDetail.js +27 -0
  268. package/skills/wix-vibe-headless/references/events/app/hooks/useEventsList.js +54 -0
  269. package/skills/wix-vibe-headless/references/events/app/hooks/useRsvpForm.js +40 -0
  270. package/skills/wix-vibe-headless/references/events/app/hooks/useTicketing.js +81 -0
  271. package/skills/wix-vibe-headless/references/events/app/pages/EventDetail.jsx +48 -0
  272. package/skills/wix-vibe-headless/references/events/app/pages/Events.jsx +36 -0
  273. package/skills/wix-vibe-headless/references/events/{wix-events-browse.js → app/rest/wix-events-browse.js} +3 -2
  274. package/skills/wix-vibe-headless/references/events/seed/SEED.md +107 -0
  275. package/skills/wix-vibe-headless/references/events/seed/seed-events.js +251 -0
  276. package/skills/wix-vibe-headless/references/members/INSTRUCTIONS.md +276 -188
  277. package/skills/wix-vibe-headless/references/members/app/components/LoginForm.jsx +101 -0
  278. package/skills/wix-vibe-headless/references/members/app/components/MemberMenu.jsx +33 -0
  279. package/skills/wix-vibe-headless/references/members/app/components/RequireAuth.jsx +21 -0
  280. package/skills/wix-vibe-headless/references/members/app/components/SocialButtons.jsx +29 -0
  281. package/skills/wix-vibe-headless/references/members/app/context/MemberContext.jsx +54 -0
  282. package/skills/wix-vibe-headless/references/members/app/hooks/useLoginForm.js +77 -0
  283. package/skills/wix-vibe-headless/references/members/app/pages/Account.jsx +36 -0
  284. package/skills/wix-vibe-headless/references/members/app/pages/Callback.jsx +32 -0
  285. package/skills/wix-vibe-headless/references/members/app/pages/Login.jsx +35 -0
  286. package/skills/wix-vibe-headless/references/members/{wix-members-auth.js → app/rest/wix-members-auth.js} +6 -3
  287. package/skills/wix-vibe-headless/references/members/install/Register.jsx +22 -0
  288. package/skills/wix-vibe-headless/references/members/seed/SEED.md +22 -0
  289. package/skills/wix-vibe-headless/references/portfolio/INSTRUCTIONS.md +233 -104
  290. package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionCard.jsx +31 -0
  291. package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionGrid.jsx +15 -0
  292. package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectCard.jsx +39 -0
  293. package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectGrid.jsx +15 -0
  294. package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectMedia.jsx +29 -0
  295. package/skills/wix-vibe-headless/references/portfolio/app/hooks/useCollectionProjects.js +35 -0
  296. package/skills/wix-vibe-headless/references/portfolio/app/hooks/usePortfolioGallery.js +27 -0
  297. package/skills/wix-vibe-headless/references/portfolio/app/hooks/useProjectDetail.js +25 -0
  298. package/skills/wix-vibe-headless/references/portfolio/app/pages/CollectionPage.jsx +39 -0
  299. package/skills/wix-vibe-headless/references/portfolio/app/pages/Portfolio.jsx +27 -0
  300. package/skills/wix-vibe-headless/references/portfolio/app/pages/ProjectDetail.jsx +60 -0
  301. package/skills/wix-vibe-headless/references/portfolio/{wix-portfolio.js → app/rest/wix-portfolio.js} +84 -55
  302. package/skills/wix-vibe-headless/references/portfolio/seed/SEED.md +94 -0
  303. package/skills/wix-vibe-headless/references/portfolio/seed/seed-portfolio.js +236 -0
  304. package/skills/wix-vibe-headless/references/pricing-plans/INSTRUCTIONS.md +240 -117
  305. package/skills/wix-vibe-headless/references/pricing-plans/app/components/OrderCard.jsx +35 -0
  306. package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanCard.jsx +48 -0
  307. package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanGrid.jsx +16 -0
  308. package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanPrice.jsx +35 -0
  309. package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/useMyPlans.js +25 -0
  310. package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlanDetail.js +28 -0
  311. package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlans.js +30 -0
  312. package/skills/wix-vibe-headless/references/pricing-plans/app/pages/MyPlans.jsx +30 -0
  313. package/skills/wix-vibe-headless/references/pricing-plans/app/pages/PlanDetail.jsx +53 -0
  314. package/skills/wix-vibe-headless/references/pricing-plans/app/pages/Plans.jsx +28 -0
  315. package/skills/wix-vibe-headless/references/pricing-plans/seed/SEED.md +86 -0
  316. package/skills/wix-vibe-headless/references/pricing-plans/seed/seed-pricing-plans.js +251 -0
  317. package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +248 -124
  318. package/skills/wix-vibe-headless/references/restaurants/app/components/ItemDialog.jsx +81 -0
  319. package/skills/wix-vibe-headless/references/restaurants/app/components/MenuItemCard.jsx +71 -0
  320. package/skills/wix-vibe-headless/references/restaurants/app/components/MenuList.jsx +43 -0
  321. package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartButton.jsx +21 -0
  322. package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartDrawer.jsx +60 -0
  323. package/skills/wix-vibe-headless/references/restaurants/app/context/OrderCartContext.jsx +63 -0
  324. package/skills/wix-vibe-headless/references/restaurants/app/hooks/useItemOrder.js +32 -0
  325. package/skills/wix-vibe-headless/references/restaurants/app/hooks/useReservation.js +73 -0
  326. package/skills/wix-vibe-headless/references/restaurants/app/pages/Menu.jsx +28 -0
  327. package/skills/wix-vibe-headless/references/restaurants/app/pages/Reservations.jsx +102 -0
  328. package/skills/wix-vibe-headless/references/restaurants/seed/SEED.md +180 -0
  329. package/skills/wix-vibe-headless/references/restaurants/seed/seed-restaurants.js +452 -0
  330. package/skills/wix-vibe-headless/references/shared/app/components/WixManageBanner.jsx +56 -0
  331. package/skills/wix-vibe-headless/references/shared/{wix-client.js → app/rest/wix-client.js} +6 -8
  332. package/skills/wix-vibe-headless/references/shared/app/rest/wix-config.js +6 -0
  333. package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +263 -148
  334. package/skills/wix-vibe-headless/references/storefront/app/components/CartButton.jsx +20 -0
  335. package/skills/wix-vibe-headless/references/storefront/app/components/CartDrawer.jsx +150 -0
  336. package/skills/wix-vibe-headless/references/storefront/app/components/ProductCard.jsx +167 -0
  337. package/skills/wix-vibe-headless/references/storefront/app/components/ProductGallery.jsx +51 -0
  338. package/skills/wix-vibe-headless/references/storefront/app/components/ProductGrid.jsx +54 -0
  339. package/skills/wix-vibe-headless/references/storefront/app/components/VariantPicker.jsx +119 -0
  340. package/skills/wix-vibe-headless/references/storefront/app/context/CartContext.jsx +71 -0
  341. package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductDetail.js +109 -0
  342. package/skills/wix-vibe-headless/references/storefront/app/hooks/useShop.js +98 -0
  343. package/skills/wix-vibe-headless/references/storefront/app/lib/storeImage.js +27 -0
  344. package/skills/wix-vibe-headless/references/storefront/app/pages/ProductDetail.jsx +139 -0
  345. package/skills/wix-vibe-headless/references/storefront/app/pages/Shop.jsx +75 -0
  346. package/skills/wix-vibe-headless/references/storefront/{wix-store-cart.js → app/rest/wix-store-cart.js} +1 -1
  347. package/skills/wix-vibe-headless/references/storefront/{wix-store-catalog.js → app/rest/wix-store-catalog.js} +25 -2
  348. package/skills/wix-vibe-headless/references/storefront/seed/SEED.md +111 -0
  349. package/skills/wix-vibe-headless/references/storefront/seed/seed-store.js +299 -0
  350. /package/skills/wix-vibe-headless/references/blog/{wix-blog.js → app/rest/wix-blog.js} +0 -0
  351. /package/skills/wix-vibe-headless/references/events/{wix-events-registration.js → app/rest/wix-events-registration.js} +0 -0
  352. /package/skills/wix-vibe-headless/references/pricing-plans/{wix-pricing-plans.js → app/rest/wix-pricing-plans.js} +0 -0
  353. /package/skills/wix-vibe-headless/references/restaurants/{wix-restaurants-menu.js → app/rest/wix-restaurants-menu.js} +0 -0
  354. /package/skills/wix-vibe-headless/references/restaurants/{wix-restaurants-ordering.js → app/rest/wix-restaurants-ordering.js} +0 -0
  355. /package/skills/wix-vibe-headless/references/restaurants/{wix-restaurants-reservations.js → app/rest/wix-restaurants-reservations.js} +0 -0
@@ -0,0 +1,330 @@
1
+ # Spec: Wix Product Reviews and Blog Author Provisioning
2
+
3
+ ## Status
4
+
5
+ Draft for implementation. No code changes are included in this spec.
6
+
7
+ ## Problem statement
8
+
9
+ Two execution-time gaps are currently handled incorrectly:
10
+
11
+ 1. Product reviews can currently fail with:
12
+ `No verified native Wix product-review primitive was identified for this workflow`
13
+ 2. Wix Blog import in public-only mode can currently stop at:
14
+ `Wix Blog post import is marked IMPORT_UNRELIABLE, and original author identity is not available in public-only mode`
15
+
16
+ Both failures are too coarse.
17
+
18
+ - The first treats product reviews as if there is no usable native Wix target surface.
19
+ - The second treats missing original member identity as a hard stop, even though Wix Blog
20
+ requires a `memberId` on draft-post create and RePlatform already has a native member
21
+ create primitive.
22
+
23
+ ## External facts to anchor the change
24
+
25
+ Verified from current official Wix docs on July 29, 2026:
26
+
27
+ - Wix Reviews has a native `Review` object and supports create/manage/retrieve for
28
+ reviews of an entity such as a Stores product:
29
+ <https://dev.wix.com/docs/api-reference/crm/community/feedback-moderation/reviews/reviews/review-object>
30
+ - Wix Blog `Create Draft Post` requires `memberId` for 3rd-party apps:
31
+ <https://dev.wix.com/docs/api-reference/business-solutions/blog/draft-posts/list-draft-posts>
32
+
33
+ Verified live on August 2, 2026 (probe against the wporg-news migration's
34
+ API-provisioned Wix target site, "My Site 8"):
35
+
36
+ - Wix **auto-creates a user-member for the site owner** (and contributing Wix users) on
37
+ API-provisioned sites — no Members-area interaction needed — and Create Draft Post
38
+ accepts it from an API-key caller. So "attribute everything to the site owner" requires
39
+ zero member provisioning. Resolution contract: find it via `GET /members/v1/members`
40
+ (`fieldsets=FULL`) matching the owner's `loginEmail`; the probe's observed id equality
41
+ (member id == account GUID) is a solo-account observation and undocumented — never
42
+ construct the memberId from the account/user GUID. These auto user-members must never
43
+ be deduped against source-site members.
44
+ - Post authorship is **re-assignable after publish**: `PATCH /blog/v3/draft-posts/{id}`
45
+ with `{ draftPost: { memberId } }` followed by republish updates the published post's
46
+ author (post id == draft id). Republish events are not suppressed by `saveType=IMPORT`,
47
+ so author-reassignment passes must run inside the notification-mute window.
48
+
49
+ This means:
50
+
51
+ - product reviews are a native Wix target, even if our adapter does not yet expose a
52
+ dedicated verified writer
53
+ - blog posts in third-party app flows must always resolve an author `memberId` before
54
+ `POST /blog/v3/draft-posts`
55
+
56
+ ## Goals
57
+
58
+ - Treat product reviews as a native Wix target with an unverified direct REST path, not
59
+ as "no native primitive exists."
60
+ - Replace the current blog-author hard stop with deterministic fallback member
61
+ provisioning for public-only runs.
62
+ - Keep the behavior explicit in product metadata so mapper, codegen, and execution all
63
+ converge on the same rule.
64
+ - Preserve current safety posture around login identities and unverifiable source data.
65
+
66
+ ## Non-goals
67
+
68
+ - Do not make original Wix Members login identity portable.
69
+ - Do not import source password hashes or original credentials.
70
+ - Do not claim verified-live support for Wix Reviews until a live write test exists.
71
+ - Do not solve all member dedup/merge policy in this change; this spec covers the minimal
72
+ deterministic author-member path required for blog import.
73
+
74
+ ## Desired behavior
75
+
76
+ ### 1) Product reviews
77
+
78
+ When the source entity is specifically a product review:
79
+
80
+ - Mapping must classify it as a product-review subtype, not as a generic comment.
81
+ - The selected target must remain native Wix, using the Wix Reviews domain rather than a
82
+ CMS fallback by default.
83
+ - If no dedicated writer exists yet, codegen/execution must use the existing direct REST
84
+ native path pattern:
85
+ - record the path as `unverified`
86
+ - notify the RePlatform team that a dedicated writer is missing
87
+ - surface the risk in the mapping and execution review artifacts
88
+ - The execution path must no longer raise the specific error
89
+ `No verified native Wix product-review primitive was identified for this workflow`
90
+ for this case.
91
+
92
+ ### 2) Blog author provisioning
93
+
94
+ When importing blog posts and the source run is public-only:
95
+
96
+ - RePlatform must not require the original source author identity as a blocker for native
97
+ Wix Blog import.
98
+ - Instead, it must deterministically provision or resolve a fallback Wix member and use
99
+ that member as the post author.
100
+ - The member should be created before the first blog post that needs it, then reused for
101
+ subsequent posts that resolve to the same fallback author strategy.
102
+ - The flow must continue to record the fidelity loss:
103
+ original author identity is not preserved as a native Wix member identity in
104
+ public-only mode.
105
+
106
+ ## Author fallback model
107
+
108
+ ### Terminology
109
+
110
+ - `original author`: the source-system person record if one exists
111
+ - `fallback author member`: the Wix member created or reused so Blog Draft Posts can be
112
+ created in third-party mode
113
+ - `author attribution mode`: the strategy recorded in project artifacts for how blog
114
+ authorship is being represented
115
+
116
+ ### Default strategy
117
+
118
+ For public-only blog imports, use this default:
119
+
120
+ - Create one fallback Wix member per distinct source author when the source has stable
121
+ public author data sufficient to derive a deterministic identity key.
122
+ - If the source author is not resolvable to a distinct stable public identity, create or
123
+ reuse one project-level generic fallback author member.
124
+ - Alternative for the project-level case (verified live 2026-08-02): the site owner's
125
+ auto-created user-member is a valid author and requires no provisioning at all —
126
+ resolve it by `loginEmail` from the member list (never by deriving the id from the
127
+ account GUID). Use it when the user prefers "posts authored by me" over a synthetic
128
+ "Imported Author" appearing in the member list; record the choice as the
129
+ `authorAttributionMode`.
130
+
131
+ Rationale:
132
+
133
+ - per-author fallback preserves more authorship structure when public data exists
134
+ - project-level fallback still allows import to proceed when only anonymous/public post
135
+ content is available
136
+
137
+ ### Deterministic identity key
138
+
139
+ The implementation should derive a stable fallback member key from best available public
140
+ source data in this order:
141
+
142
+ 1. source author id
143
+ 2. source author slug
144
+ 3. source author archive/profile URL
145
+ 4. normalized display name
146
+ 5. project-level constant `blog-author-fallback`
147
+
148
+ This key is for local crosswalk/idempotency. It is not exposed as user-facing content.
149
+
150
+ ### Member create payload
151
+
152
+ The fallback member create path should continue to use the existing Members primitive and
153
+ safe-mode replacement behavior.
154
+
155
+ Preferred payload inputs:
156
+
157
+ - `loginEmail`: deterministic synthetic email derived from the fallback identity key
158
+ - `contact.firstName`: best available display name, else `Imported Author`
159
+ - `profile.nickname`: same best available display name
160
+ - `profile.slug`: derived stable slug from author key/display name
161
+
162
+ The synthetic email is acceptable here because:
163
+
164
+ - public-only mode lacks portable real login identity
165
+ - Wix member create requires a login identity
166
+ - the current product already supports synthetic safe-mode email patterns for native
167
+ writes
168
+
169
+ ### Reuse and idempotency
170
+
171
+ Before creating a fallback member, generated code should:
172
+
173
+ - consult local crosswalk state for an existing source-author -> member mapping
174
+ - optionally query Wix Members by the deterministic synthetic email when crosswalk state
175
+ is absent or being rebuilt
176
+
177
+ After create/resolve:
178
+
179
+ - store the mapping in crosswalk state
180
+ - reuse the resolved `memberId` for all blog posts tied to that fallback author key
181
+
182
+ ## Product metadata changes
183
+
184
+ ### A. Add explicit Wix Reviews target knowledge
185
+
186
+ Introduce a domain/entity entry for product reviews owned by `rp-target-wix`.
187
+
188
+ Recommended shape:
189
+
190
+ - domain: likely `reviews` if a new domain is added, or another explicit target-owned
191
+ location if the current taxonomy requires it
192
+ - entity: `product-review`
193
+ - classification: `native-plus-cms` or `native`
194
+ - native entity: `Review`
195
+ - preferred write: direct REST `POST` to the Wix Reviews surface, initially
196
+ `verification: "docs"` or `verification: "unverified"` until live-tested
197
+ - reliability: should not claim reliable/native-verified yet
198
+ - pitfalls: relation/entity binding, moderation defaults, author/contact linkage, and any
199
+ required namespace or verified-purchase semantics
200
+
201
+ The important contract is that product reviews must be discoverable as a native Wix
202
+ target so mapper/codegen stop treating them as a missing primitive.
203
+
204
+ ### B. Update blog post target knowledge
205
+
206
+ Update blog post metadata to replace the current setup requirement wording:
207
+
208
+ - current: `Fallback member decision for author attribution.`
209
+ - intended: deterministic fallback member provisioning is part of the default runtime
210
+ behavior for public-only/native blog import
211
+
212
+ The entity should still remain `IMPORT_UNRELIABLE` if slug preservation and other current
213
+ gaps still justify that flag.
214
+
215
+ ### C. Keep members/member reliability conservative
216
+
217
+ Do not remove `IMPORT_UNRELIABLE` from site members globally. The new behavior does not
218
+ mean members become generally faithful imports. It only means a constrained synthetic
219
+ member path is acceptable for blog authorship enablement.
220
+
221
+ ## Stage-by-stage changes
222
+
223
+ ### 1) `rp-mapper`
224
+
225
+ - Disambiguate generic source `comment` into concrete subtypes:
226
+ - blog comment
227
+ - page comment
228
+ - product review
229
+ - custom content comment
230
+ - When subtype is product review, prefer the explicit native Reviews target.
231
+ - Record a faithfulness-ledger entry whenever the product-review path is still unverified.
232
+ - For blog posts in public-only mode, record:
233
+ - native Blog target remains selected
234
+ - author attribution mode uses fallback member provisioning
235
+ - original author identity is not preserved
236
+
237
+ ### 2) `rp-import-codegen`
238
+
239
+ - Generate a direct REST writer path for product reviews when no dedicated writer exists.
240
+ - Ensure generated execution-plan artifacts describe product reviews as native/unverified,
241
+ not unsupported.
242
+ - Generate helper logic for fallback blog-author member resolution/provisioning before
243
+ draft-post writes.
244
+ - Ensure blog posts depend on this member-resolution helper in the generated import order.
245
+
246
+ ### 3) `rp-target-wix/lib/wix-writers.js`
247
+
248
+ - No new implementation is part of this spec, but the intended follow-up is:
249
+ - either add a dedicated `createReview` primitive
250
+ - or document the direct REST request shape and let codegen use `buildDirectRestRequest`
251
+ until a dedicated writer is added
252
+ - Reuse existing `createMember` for fallback blog-author provisioning.
253
+ - If needed, add a narrow helper around member lookup/create to avoid duplicating author
254
+ fallback logic in generated code.
255
+
256
+ ### 4) `rp-execute-import`
257
+
258
+ - Product reviews should be executed as an unverified native path, not rejected as
259
+ "no primitive."
260
+ - Blog posts should provision/resolve fallback author members during execution rather
261
+ than halting on missing original identity in public-only mode.
262
+ - Completion and review artifacts must call out:
263
+ - product-review native path remained unverified
264
+ - blog authorship used synthetic fallback members where applicable
265
+
266
+ ## Artifacts and reporting
267
+
268
+ The following user-facing statements must appear in generated review artifacts when
269
+ relevant:
270
+
271
+ - For product reviews:
272
+ `Wix has a native Reviews entity for product reviews. This migration uses an unverified native write path pending dedicated adapter verification.`
273
+ - For blog authorship in public-only mode:
274
+ `Blog posts will be authored by fallback Wix members created for import because third-party Wix Blog post creation requires memberId and original login identity is not available in public-only capture.`
275
+
276
+ Machine artifacts should also record:
277
+
278
+ - chosen `authorAttributionMode`
279
+ - fallback author key strategy
280
+ - whether authorship is per-source-author fallback or project-level fallback
281
+
282
+ ## Acceptance criteria
283
+
284
+ 1. A source entity classified as product review no longer produces
285
+ `No verified native Wix product-review primitive was identified for this workflow`.
286
+ 2. Mapping artifacts classify product reviews as a native Wix target and mark the path
287
+ unverified until a live writer exists.
288
+ 3. Public-only blog imports no longer stop because original author identity is missing.
289
+ 4. Generated/imported blog posts always have a resolved `memberId` before
290
+ `POST /blog/v3/draft-posts`.
291
+ 5. Fallback author members are reused deterministically across reruns via local state.
292
+ 6. Review artifacts clearly disclose that blog author identity is represented by fallback
293
+ members rather than original portable identities.
294
+ 7. Existing reliability warnings for general member import are preserved unless separately
295
+ re-evaluated.
296
+
297
+ ## Risks and open questions
298
+
299
+ 1. Wix Reviews request shape still needs product-specific live verification:
300
+ - required namespace, if any
301
+ - whether author is expressed as contact, member, or another actor shape
302
+ - moderation defaults on create
303
+ - whether verified-purchase state is writable or derived
304
+ 2. Member dedup policy needs care if a later authenticated run provides real users that
305
+ overlap with previously-created fallback members. The re-attribution mechanics are now
306
+ verified (2026-08-02): the authenticated re-run provisions/resolves the real per-author
307
+ members, then for each fallback-attributed post PATCHes the draft `memberId` and
308
+ republishes — the crosswalk must therefore record `authorAttributionMode` (and the
309
+ author key) per post so the upgrade pass knows which posts to re-author. Remaining
310
+ policy questions: when to delete the now-orphaned fallback members (delete works —
311
+ `DELETE /members/v1/members/{id}` verified — but their auto-created contacts may
312
+ linger), and republish-event exposure (not IMPORT-suppressed; mute window required).
313
+ 3. Synthetic fallback members may appear in the site's member list; that is acceptable
314
+ for this migration path but should be disclosed in review artifacts.
315
+ 4. Some sources expose author display text per post but no stable author identity; those
316
+ should fall back to the project-level generic member unless a deterministic per-author
317
+ key can be justified from public data.
318
+
319
+ ## Suggested implementation order
320
+
321
+ 1. Add product metadata/domain knowledge for Wix Reviews product-review targeting.
322
+ 2. Update mapper subtype routing and faithfulness-ledger text.
323
+ 3. Update codegen/execution planning so product reviews use native-unverified direct REST.
324
+ 4. Add fallback blog-author member resolution/provisioning helper around existing member
325
+ create primitive.
326
+ 5. Update execution and review artifact text.
327
+ 6. Add contract tests for:
328
+ - product review classification and execution-plan wording
329
+ - public-only blog post imports resolving a fallback member id
330
+
@@ -0,0 +1,21 @@
1
+ # Wix Domain Entity Suitability
2
+
3
+ This directory is the compact, machine-readable knowledge base for Wix target entity
4
+ suitability. Domain and entity files are the source of truth. `index.json` is generated
5
+ from those files and checked in so mapper/codegen lookups stay token-cheap.
6
+
7
+ ## Maintenance
8
+
9
+ - Edit only the affected `domains/<domain>/` subtree when changing domain-owned facts.
10
+ - Keep long analysis in `research/import-api-suitability/`; entity files should contain
11
+ compact guidance and evidence links.
12
+ - Use `preferredWrite.writerId` only for exported functions from
13
+ `rp-target-wix/lib/wix-writers.js`. Use `null` for direct REST plans, setup work, or
14
+ unsupported native gaps.
15
+ - Mark entity-level native import gaps with `IMPORT_UNRELIABLE` in
16
+ `reliability.flags[]`. Field-level lossiness belongs in `pitfalls[]`.
17
+ - Regenerate and validate the index after edits:
18
+
19
+ ```bash
20
+ node skills/replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js --write-index
21
+ ```
@@ -0,0 +1,19 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "domain": "blog",
4
+ "displayName": "Wix Blog",
5
+ "ownerHint": "Blog posts, categories, tags, authorship, and comments domain owners",
6
+ "wixAppsRequired": ["Wix Blog"],
7
+ "defaultImportOrder": ["category", "tag", "post", "comment"],
8
+ "sideEffectNotes": ["Publishing imported posts may fire public publish side effects."],
9
+ "evidence": [
10
+ {
11
+ "type": "repo-research",
12
+ "path": "research/import-api-suitability/blog-cms-media.md"
13
+ },
14
+ {
15
+ "type": "repo-research",
16
+ "path": "research/source-entity-import-suitability-wordpress-woocommerce-wix.md"
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "domain": "blog",
4
+ "entity": "category",
5
+ "displayName": "Blog Category",
6
+ "target": {
7
+ "classification": "native-plus-cms",
8
+ "nativeEntity": "Blog Category",
9
+ "verifiedFqdn": null,
10
+ "idPolicy": "server-assigned",
11
+ "crosswalkRequired": true
12
+ },
13
+ "sourceAliases": [
14
+ { "sourceSystem": "wordpress", "sourceEntity": "category", "routes": ["/wp/v2/categories"], "confidence": "high" },
15
+ { "sourceSystem": "wix", "sourceEntity": "blogCategory", "routes": ["Blog Categories"], "confidence": "high" }
16
+ ],
17
+ "preferredWrite": {
18
+ "surface": "Blog Categories",
19
+ "endpoint": "POST /blog/v3/categories",
20
+ "writerId": "createBlogCategory",
21
+ "verification": "verified-live",
22
+ "importSafe": true,
23
+ "bulk": false
24
+ },
25
+ "fallbacks": [
26
+ { "classification": "cms", "when": "Use to preserve WordPress category hierarchy because Wix Blog categories are flat." }
27
+ ],
28
+ "reliability": { "status": "partially-reliable", "flags": [] },
29
+ "pitfalls": [
30
+ { "code": "flat-target", "severity": "warning", "summary": "Wix Blog categories are flat; WordPress hierarchy needs CMS shadowing if it matters." }
31
+ ],
32
+ "mappingGuidance": ["Resolve category collisions and crosswalk IDs before writing posts."],
33
+ "setupRequirements": ["Wix Blog app"],
34
+ "evidence": [
35
+ { "type": "repo-research", "path": "research/import-api-suitability/blog-cms-media.md" }
36
+ ]
37
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "domain": "blog",
4
+ "entity": "comment",
5
+ "displayName": "Blog Comment",
6
+ "target": {
7
+ "classification": "native-plus-cms",
8
+ "nativeEntity": "Comment",
9
+ "verifiedFqdn": null,
10
+ "idPolicy": "server-assigned",
11
+ "crosswalkRequired": true
12
+ },
13
+ "sourceAliases": [
14
+ { "sourceSystem": "wordpress", "sourceEntity": "comment", "routes": ["/wp/v2/comments"], "confidence": "high" },
15
+ { "sourceSystem": "wix", "sourceEntity": "comment", "routes": ["Comments API"], "confidence": "medium" }
16
+ ],
17
+ "preferredWrite": {
18
+ "surface": "Comments",
19
+ "endpoint": "POST /comments/v1/comments",
20
+ "writerId": null,
21
+ "verification": "docs",
22
+ "importSafe": false,
23
+ "bulk": false
24
+ },
25
+ "fallbacks": [
26
+ { "classification": "cms", "when": "Use for unsupported target relations, moderation history, IP/user-agent policy limits, or threading gaps." }
27
+ ],
28
+ "reliability": { "status": "partially-reliable", "flags": [] },
29
+ "pitfalls": [
30
+ { "code": "relation-required", "severity": "blocker", "summary": "Verify the target relation and notification behavior before native comment writes." }
31
+ ],
32
+ "mappingGuidance": ["Classify blog comments, page comments, product reviews, and custom-post comments separately."],
33
+ "setupRequirements": ["Comment relation verification before execution."],
34
+ "evidence": [
35
+ { "type": "repo-research", "path": "research/import-api-suitability/blog-cms-media.md" }
36
+ ]
37
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "domain": "blog",
4
+ "entity": "post",
5
+ "displayName": "Blog Post",
6
+ "target": {
7
+ "classification": "native-plus-cms",
8
+ "nativeEntity": "Blog Post",
9
+ "verifiedFqdn": null,
10
+ "idPolicy": "server-assigned",
11
+ "crosswalkRequired": true
12
+ },
13
+ "sourceAliases": [
14
+ { "sourceSystem": "wordpress", "sourceEntity": "post", "routes": ["/wp/v2/posts"], "confidence": "high" },
15
+ { "sourceSystem": "wix", "sourceEntity": "blogPost", "routes": ["Blog Draft Posts", "Blog Posts"], "confidence": "high" }
16
+ ],
17
+ "preferredWrite": {
18
+ "surface": "Blog Draft Posts",
19
+ "endpoint": "POST /blog/v3/draft-posts",
20
+ "writerId": "createDraftPost",
21
+ "verification": "verified-live",
22
+ "importSafe": false,
23
+ "bulk": false
24
+ },
25
+ "fallbacks": [
26
+ { "classification": "cms", "when": "Use for SEO fields, author/profile metadata, or source-only fields not represented by Blog APIs." }
27
+ ],
28
+ "reliability": { "status": "partially-reliable", "flags": ["IMPORT_UNRELIABLE"] },
29
+ "pitfalls": [
30
+ { "code": "slug-url-rewrite", "severity": "blocker", "summary": "Exact original URL or slug preservation is not reliable through public Blog Draft Posts." },
31
+ { "code": "publish-side-effects", "severity": "warning", "summary": "Publishing imported posts may trigger public publish behavior." }
32
+ ],
33
+ "mappingGuidance": ["Create categories, tags, media, and author/member references before posts."],
34
+ "setupRequirements": ["Wix Blog app", "Fallback member decision for author attribution."],
35
+ "evidence": [
36
+ { "type": "repo-research", "path": "research/import-api-suitability/blog-cms-media.md" },
37
+ { "type": "repo-research", "path": "research/source-entity-import-suitability-wordpress-woocommerce-wix.md" }
38
+ ]
39
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "domain": "blog",
4
+ "entity": "tag",
5
+ "displayName": "Blog Tag",
6
+ "target": {
7
+ "classification": "native",
8
+ "nativeEntity": "Blog Tag",
9
+ "verifiedFqdn": null,
10
+ "idPolicy": "server-assigned",
11
+ "crosswalkRequired": true
12
+ },
13
+ "sourceAliases": [
14
+ { "sourceSystem": "wordpress", "sourceEntity": "tag", "routes": ["/wp/v2/tags"], "confidence": "high" },
15
+ { "sourceSystem": "wix", "sourceEntity": "blogTag", "routes": ["Blog Tags"], "confidence": "high" }
16
+ ],
17
+ "preferredWrite": {
18
+ "surface": "Blog Tags",
19
+ "endpoint": "POST /blog/v3/tags",
20
+ "writerId": "createBlogTag",
21
+ "verification": "verified-live",
22
+ "importSafe": true,
23
+ "bulk": false
24
+ },
25
+ "fallbacks": [],
26
+ "reliability": { "status": "reliable", "flags": [] },
27
+ "pitfalls": [
28
+ { "code": "slug-derived", "severity": "warning", "summary": "Blog tag slug is derived; dedupe by label/language." }
29
+ ],
30
+ "mappingGuidance": ["Create tags before posts and crosswalk created or existing tag IDs."],
31
+ "setupRequirements": ["Wix Blog app"],
32
+ "evidence": [
33
+ { "type": "repo-research", "path": "research/import-api-suitability/blog-cms-media.md" }
34
+ ]
35
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "domain": "cms",
4
+ "displayName": "Wix CMS",
5
+ "ownerHint": "CMS/Data collections, items, references, permissions, and indexes domain owners",
6
+ "wixAppsRequired": ["Wix Data"],
7
+ "defaultImportOrder": ["collection", "data-item", "reference"],
8
+ "evidence": [
9
+ {
10
+ "type": "repo-research",
11
+ "path": "research/import-api-suitability/blog-cms-media.md"
12
+ }
13
+ ]
14
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "domain": "cms",
4
+ "entity": "collection",
5
+ "displayName": "CMS Collection",
6
+ "target": {
7
+ "classification": "setup-config",
8
+ "nativeEntity": "Wix Data Collection",
9
+ "verifiedFqdn": null,
10
+ "idPolicy": "client-assigned",
11
+ "crosswalkRequired": false
12
+ },
13
+ "sourceAliases": [
14
+ { "sourceSystem": "wordpress", "sourceEntity": "custom_post_type", "routes": ["/wp/v2/{type}"], "confidence": "medium" },
15
+ { "sourceSystem": "wix", "sourceEntity": "cmsCollection", "routes": ["Wix Data Collections"], "confidence": "high" }
16
+ ],
17
+ "preferredWrite": {
18
+ "surface": "Wix Data Collections",
19
+ "endpoint": null,
20
+ "writerId": null,
21
+ "verification": "unverified",
22
+ "importSafe": true,
23
+ "bulk": false
24
+ },
25
+ "fallbacks": [],
26
+ "reliability": { "status": "partially-reliable", "flags": [] },
27
+ "pitfalls": [
28
+ { "code": "setup-before-items", "severity": "blocker", "summary": "Collections, fields, permissions, and indexes must be represented in setup before item import." }
29
+ ],
30
+ "mappingGuidance": ["Use CMS collections for custom content models and native gaps where data should remain queryable."],
31
+ "setupRequirements": ["Wix Data enabled", "Collection schema and permissions plan"],
32
+ "evidence": [
33
+ { "type": "repo-research", "path": "research/import-api-suitability/blog-cms-media.md" }
34
+ ]
35
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "domain": "cms",
4
+ "entity": "data-item",
5
+ "displayName": "CMS Data Item",
6
+ "target": {
7
+ "classification": "cms",
8
+ "nativeEntity": "Wix Data Item",
9
+ "verifiedFqdn": "wix.data.v2.data_item",
10
+ "idPolicy": "client-assigned",
11
+ "crosswalkRequired": false
12
+ },
13
+ "sourceAliases": [
14
+ { "sourceSystem": "wordpress", "sourceEntity": "custom_post_type_item", "routes": ["/wp/v2/{type}"], "confidence": "medium" },
15
+ { "sourceSystem": "wix", "sourceEntity": "cmsDataItem", "routes": ["Wix Data Items"], "confidence": "high" }
16
+ ],
17
+ "preferredWrite": {
18
+ "surface": "Wix Data Items",
19
+ "endpoint": "POST /wix-data/v2/items",
20
+ "writerId": "insertDataItem",
21
+ "verification": "verified-live",
22
+ "importSafe": true,
23
+ "bulk": false
24
+ },
25
+ "fallbacks": [],
26
+ "reliability": { "status": "reliable", "flags": [] },
27
+ "pitfalls": [
28
+ { "code": "readonly-dates", "severity": "warning", "summary": "_createdDate and _updatedDate are read-only; preserve source dates in explicit fields." },
29
+ { "code": "bulk-save-replaces", "severity": "warning", "summary": "Bulk Save replaces complete items, so generated records must include all fields." }
30
+ ],
31
+ "mappingGuidance": ["Use client-supplied IDs where possible for recoverable CMS imports."],
32
+ "setupRequirements": ["Wix Data enabled", "Target collection exists before item writes."],
33
+ "evidence": [
34
+ { "type": "repo-research", "path": "research/import-api-suitability/blog-cms-media.md" }
35
+ ]
36
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "domain": "cms",
4
+ "entity": "reference",
5
+ "displayName": "CMS Reference",
6
+ "target": {
7
+ "classification": "cms",
8
+ "nativeEntity": "Wix Data Reference",
9
+ "verifiedFqdn": null,
10
+ "idPolicy": "client-assigned",
11
+ "crosswalkRequired": false
12
+ },
13
+ "sourceAliases": [
14
+ { "sourceSystem": "wordpress", "sourceEntity": "relationship", "routes": ["post meta", "term relationships"], "confidence": "medium" },
15
+ { "sourceSystem": "wix", "sourceEntity": "cmsReference", "routes": ["Wix Data reference fields"], "confidence": "high" }
16
+ ],
17
+ "preferredWrite": {
18
+ "surface": "Wix Data Items",
19
+ "endpoint": "POST /wix-data/v2/items",
20
+ "writerId": "insertDataItem",
21
+ "verification": "verified-live",
22
+ "importSafe": true,
23
+ "bulk": false
24
+ },
25
+ "fallbacks": [],
26
+ "reliability": { "status": "reliable", "flags": [] },
27
+ "pitfalls": [
28
+ { "code": "second-pass", "severity": "blocker", "summary": "References and multi-references often require a second pass after target IDs are known." }
29
+ ],
30
+ "mappingGuidance": ["Resolve crosswalks before writing reference fields."],
31
+ "setupRequirements": ["Reference fields declared in target collection schema."],
32
+ "evidence": [
33
+ { "type": "repo-research", "path": "research/import-api-suitability/blog-cms-media.md" }
34
+ ]
35
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "domain": "crm",
4
+ "displayName": "Wix CRM",
5
+ "ownerHint": "Contacts, labels, extended fields, and subscription-consent domain owners",
6
+ "defaultImportOrder": ["label", "contact", "email-subscription"],
7
+ "sideEffectNotes": ["Contact creation and subscription updates can trigger automations."],
8
+ "evidence": [
9
+ {
10
+ "type": "repo-research",
11
+ "path": "research/import-api-suitability/orders-contacts-members.md"
12
+ }
13
+ ]
14
+ }