@wix/agent-skills 1.0.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 (220) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/package.json +29 -0
  4. package/skills/wix-app/SKILL.md +344 -0
  5. package/skills/wix-app/references/APP_IDENTIFIERS.md +35 -0
  6. package/skills/wix-app/references/APP_MARKET_REVIEW.md +311 -0
  7. package/skills/wix-app/references/APP_VALIDATION.md +171 -0
  8. package/skills/wix-app/references/BACKEND_API.md +233 -0
  9. package/skills/wix-app/references/BACKEND_EVENT.md +116 -0
  10. package/skills/wix-app/references/CODE_QUALITY.md +33 -0
  11. package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +587 -0
  12. package/skills/wix-app/references/DASHBOARD_MENU_PLUGIN.md +157 -0
  13. package/skills/wix-app/references/DASHBOARD_MODAL.md +283 -0
  14. package/skills/wix-app/references/DASHBOARD_PAGE.md +403 -0
  15. package/skills/wix-app/references/DASHBOARD_PLUGIN.md +205 -0
  16. package/skills/wix-app/references/DATA_COLLECTION.md +451 -0
  17. package/skills/wix-app/references/DOCUMENTATION.md +42 -0
  18. package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +65 -0
  19. package/skills/wix-app/references/EMBEDDED_SCRIPT.md +468 -0
  20. package/skills/wix-app/references/EXTENSION_REGISTRATION.md +96 -0
  21. package/skills/wix-app/references/SERVICE_PLUGIN.md +235 -0
  22. package/skills/wix-app/references/SITE_PLUGIN.md +436 -0
  23. package/skills/wix-app/references/STORES_VERSIONING.md +334 -0
  24. package/skills/wix-app/references/backend-event/COMMON-EVENTS.md +84 -0
  25. package/skills/wix-app/references/custom-element-widget/SETTINGS_PANEL.md +345 -0
  26. package/skills/wix-app/references/dashboard-menu-plugin/blog-slots.md +71 -0
  27. package/skills/wix-app/references/dashboard-menu-plugin/bookings-slots.md +58 -0
  28. package/skills/wix-app/references/dashboard-menu-plugin/crm-slots.md +8 -0
  29. package/skills/wix-app/references/dashboard-menu-plugin/ecommerce-slots.md +17 -0
  30. package/skills/wix-app/references/dashboard-menu-plugin/events-slots.md +29 -0
  31. package/skills/wix-app/references/dashboard-menu-plugin/restaurants-slots.md +27 -0
  32. package/skills/wix-app/references/dashboard-menu-plugin/stores-slots.md +35 -0
  33. package/skills/wix-app/references/dashboard-page/API_SPEC.md +138 -0
  34. package/skills/wix-app/references/dashboard-page/DASHBOARD_API.md +573 -0
  35. package/skills/wix-app/references/dashboard-page/DYNAMIC_PARAMETERS.md +269 -0
  36. package/skills/wix-app/references/dashboard-page/ECOM_NAVIGATION.md +164 -0
  37. package/skills/wix-app/references/dashboard-plugin/SLOTS.md +294 -0
  38. package/skills/wix-app/references/data-collection/WIX_DATA.md +270 -0
  39. package/skills/wix-app/references/data-collection/extension-template.ts +107 -0
  40. package/skills/wix-app/references/editor-react-component/ACCESSIBILITY.md +138 -0
  41. package/skills/wix-app/references/editor-react-component/COMPONENT-API.md +454 -0
  42. package/skills/wix-app/references/editor-react-component/COMPONENT-CONFIGURATION.md +165 -0
  43. package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +576 -0
  44. package/skills/wix-app/references/editor-react-component/DIRECTIONALITY.md +170 -0
  45. package/skills/wix-app/references/editor-react-component/EDIT-FLOW.md +6 -0
  46. package/skills/wix-app/references/editor-react-component/PARTS.md +25 -0
  47. package/skills/wix-app/references/editor-react-component/PROPS-VS-CSS.md +203 -0
  48. package/skills/wix-app/references/editor-react-component/REACT-GUIDELINES.md +167 -0
  49. package/skills/wix-app/references/editor-react-component/REACT-PATTERNS.md +137 -0
  50. package/skills/wix-app/references/service-plugin/ADDITIONAL-FEES.md +112 -0
  51. package/skills/wix-app/references/service-plugin/BOOKINGS-STAFF-SORTING.md +118 -0
  52. package/skills/wix-app/references/service-plugin/DISCOUNT-TRIGGERS.md +87 -0
  53. package/skills/wix-app/references/service-plugin/GIFT-CARDS.md +86 -0
  54. package/skills/wix-app/references/service-plugin/PAYMENT-SETTINGS.md +135 -0
  55. package/skills/wix-app/references/service-plugin/SHIPPING-RATES.md +79 -0
  56. package/skills/wix-app/references/service-plugin/VALIDATIONS.md +68 -0
  57. package/skills/wix-app/references/site-plugin/EXAMPLES.md +311 -0
  58. package/skills/wix-app/references/site-plugin/SLOTS.md +263 -0
  59. package/skills/wix-design-system/SKILL.md +129 -0
  60. package/skills/wix-design-system/references/file-structure.md +56 -0
  61. package/skills/wix-design-system/scripts/wds.cjs +531 -0
  62. package/skills/wix-headless/SKILL.md +418 -0
  63. package/skills/wix-headless/references/DISCOVERY.md +332 -0
  64. package/skills/wix-headless/references/ORCHESTRATION.md +269 -0
  65. package/skills/wix-headless/references/SETUP.md +154 -0
  66. package/skills/wix-headless/references/blog/BLOG_CONTENT.md +152 -0
  67. package/skills/wix-headless/references/blog/BLOG_PAGES.md +299 -0
  68. package/skills/wix-headless/references/blog/BLOG_SETUP.md +218 -0
  69. package/skills/wix-headless/references/blog/INSTRUCTIONS.md +32 -0
  70. package/skills/wix-headless/references/cms/CMS_FOUNDATIONS.md +373 -0
  71. package/skills/wix-headless/references/cms/FAQ_KNOWLEDGE_BASE.md +229 -0
  72. package/skills/wix-headless/references/cms/INSTRUCTIONS.md +40 -0
  73. package/skills/wix-headless/references/cms/PORTFOLIO.md +454 -0
  74. package/skills/wix-headless/references/cms/RESOURCE_LIBRARY.md +356 -0
  75. package/skills/wix-headless/references/cms/TEAM_DIRECTORY.md +299 -0
  76. package/skills/wix-headless/references/commands/install-app.md +42 -0
  77. package/skills/wix-headless/references/commands/known-apps.json +5 -0
  78. package/skills/wix-headless/references/commands/mcp-bootstrap.md +28 -0
  79. package/skills/wix-headless/references/designer/INSTRUCTIONS.md +828 -0
  80. package/skills/wix-headless/references/ecom/CART_PAGES.md +120 -0
  81. package/skills/wix-headless/references/ecom/CART_WIRING.md +103 -0
  82. package/skills/wix-headless/references/ecom/COMPONENTS_CSS.md +132 -0
  83. package/skills/wix-headless/references/ecom/INSTRUCTIONS.md +59 -0
  84. package/skills/wix-headless/references/forms/CONTACT_FORM.md +477 -0
  85. package/skills/wix-headless/references/forms/INSTRUCTIONS.md +43 -0
  86. package/skills/wix-headless/references/gift-cards/COMPONENTS.md +119 -0
  87. package/skills/wix-headless/references/gift-cards/INSTRUCTIONS.md +51 -0
  88. package/skills/wix-headless/references/gift-cards/PAGES.md +129 -0
  89. package/skills/wix-headless/references/images/INSTRUCTIONS.md +359 -0
  90. package/skills/wix-headless/references/shared/BUILD_NOISE.md +8 -0
  91. package/skills/wix-headless/references/shared/IMAGE_GENERATION.md +185 -0
  92. package/skills/wix-headless/references/shared/IMPLEMENTER.md +155 -0
  93. package/skills/wix-headless/references/shared/MCP_PREFIX.md +105 -0
  94. package/skills/wix-headless/references/shared/PRODUCTION_SHARP_EDGES.md +97 -0
  95. package/skills/wix-headless/references/shared/RETURN_CONTRACT.md +423 -0
  96. package/skills/wix-headless/references/shared/STYLING.md +117 -0
  97. package/skills/wix-headless/references/stores/BACK_IN_STOCK.md +178 -0
  98. package/skills/wix-headless/references/stores/CATEGORY_PAGES.md +86 -0
  99. package/skills/wix-headless/references/stores/COMPONENTS_CSS.md +129 -0
  100. package/skills/wix-headless/references/stores/HOME_AND_NAV.md +227 -0
  101. package/skills/wix-headless/references/stores/INSTRUCTIONS.md +96 -0
  102. package/skills/wix-headless/references/stores/PRODUCT_CATALOG_DATA.md +249 -0
  103. package/skills/wix-headless/references/stores/PRODUCT_PAGES.md +213 -0
  104. package/skills/wix-headless/references/stores/SHARED_WIRING.md +164 -0
  105. package/skills/wix-headless/references/verticals/_schema.json +160 -0
  106. package/skills/wix-headless/references/verticals/_schema.md +185 -0
  107. package/skills/wix-headless/references/verticals/blog.md +125 -0
  108. package/skills/wix-headless/references/verticals/cms.md +121 -0
  109. package/skills/wix-headless/references/verticals/ecom.md +96 -0
  110. package/skills/wix-headless/references/verticals/forms.md +106 -0
  111. package/skills/wix-headless/references/verticals/gift-cards.md +121 -0
  112. package/skills/wix-headless/references/verticals/stores.md +167 -0
  113. package/skills/wix-headless/scripts/check-manifest.mjs +198 -0
  114. package/skills/wix-headless/scripts/copy-utility-templates.mjs +153 -0
  115. package/skills/wix-headless/scripts/emit-design-tokens.mjs +77 -0
  116. package/skills/wix-headless/scripts/finalize-run-json.mjs +141 -0
  117. package/skills/wix-headless/scripts/init-site-json.mjs +63 -0
  118. package/skills/wix-headless/scripts/patch-decorative-slots.mjs +124 -0
  119. package/skills/wix-headless/scripts/plan-entity-image-waves.mjs +190 -0
  120. package/skills/wix-headless/scripts/preview.sh +45 -0
  121. package/skills/wix-headless/scripts/release.sh +73 -0
  122. package/skills/wix-headless/scripts/scaffold.sh +53 -0
  123. package/skills/wix-headless/scripts/seed-utilities.sh +55 -0
  124. package/skills/wix-headless/shared-utilities/analytics.ts +40 -0
  125. package/skills/wix-headless/shared-utilities/ricos.ts +179 -0
  126. package/skills/wix-headless/shared-utilities/wix-image.ts +72 -0
  127. package/skills/wix-headless/templates/ecom/CartBadge.tsx +84 -0
  128. package/skills/wix-headless/templates/ecom/CartView.tsx +543 -0
  129. package/skills/wix-headless/templates/ecom/cart.astro +13 -0
  130. package/skills/wix-headless/templates/ecom/components-ecom.css +215 -0
  131. package/skills/wix-headless/templates/ecom/discounts.ts +71 -0
  132. package/skills/wix-headless/templates/ecom/thank-you.astro +24 -0
  133. package/skills/wix-headless/templates/gift-cards/GiftCardPurchase.tsx +172 -0
  134. package/skills/wix-headless/templates/gift-cards/_home-teaser-snippet.astro +42 -0
  135. package/skills/wix-headless/templates/gift-cards/_nav-snippet.astro +11 -0
  136. package/skills/wix-headless/templates/gift-cards/components-gift-cards.css +219 -0
  137. package/skills/wix-headless/templates/gift-cards/gift-cards.astro +51 -0
  138. package/skills/wix-headless/templates/gift-cards/gift-cards.ts +75 -0
  139. package/skills/wix-headless/templates/stores/AddToCartButton.tsx +77 -0
  140. package/skills/wix-headless/templates/stores/BackInStockForm.tsx +176 -0
  141. package/skills/wix-headless/templates/stores/CategoryRail.astro +69 -0
  142. package/skills/wix-headless/templates/stores/ProductCard.astro +79 -0
  143. package/skills/wix-headless/templates/stores/ProductPurchase.tsx +397 -0
  144. package/skills/wix-headless/templates/stores/SeoTags.astro +21 -0
  145. package/skills/wix-headless/templates/stores/back-in-stock.ts +67 -0
  146. package/skills/wix-headless/templates/stores/categories.ts +155 -0
  147. package/skills/wix-headless/templates/stores/category/[slug].astro +130 -0
  148. package/skills/wix-headless/templates/stores/components-stores.css +295 -0
  149. package/skills/wix-headless/templates/stores/products/[slug].astro +128 -0
  150. package/skills/wix-headless/templates/stores/products/index.astro +101 -0
  151. package/skills/wix-manage/SKILL.md +280 -0
  152. package/skills/wix-manage/references/app-installation/install-wix-apps.md +155 -0
  153. package/skills/wix-manage/references/app-installation/list-installed-apps.md +124 -0
  154. package/skills/wix-manage/references/blog/how-to-create-blog-posts.md +226 -0
  155. package/skills/wix-manage/references/bookings/booking-service-policy-setup.md +95 -0
  156. package/skills/wix-manage/references/bookings/booking-system-integration-gaps.md +416 -0
  157. package/skills/wix-manage/references/bookings/bookings-staff-setup.md +255 -0
  158. package/skills/wix-manage/references/bookings/create-and-update-booking-services.md +462 -0
  159. package/skills/wix-manage/references/bookings/end-to-end-booking-flow.md +278 -0
  160. package/skills/wix-manage/references/bookings/external-calendar-integration.md +258 -0
  161. package/skills/wix-manage/references/bookings/multi-resource-service-creation.md +231 -0
  162. package/skills/wix-manage/references/calendar/configure-default-business-hours.md +226 -0
  163. package/skills/wix-manage/references/cms/cms-data-items-crud.md +422 -0
  164. package/skills/wix-manage/references/cms/cms-data-operations-extended.md +263 -0
  165. package/skills/wix-manage/references/cms/cms-ecommerce-catalog-integration.md +136 -0
  166. package/skills/wix-manage/references/cms/cms-references-and-relationships.md +160 -0
  167. package/skills/wix-manage/references/cms/cms-schema-management.md +143 -0
  168. package/skills/wix-manage/references/contacts/bulk-delete-contacts.md +73 -0
  169. package/skills/wix-manage/references/contacts/bulk-label-and-unlabel-contacts.md +67 -0
  170. package/skills/wix-manage/references/domains/domain-search-and-purchase.md +434 -0
  171. package/skills/wix-manage/references/ecommerce/api-recommendation-tracking.md +420 -0
  172. package/skills/wix-manage/references/ecommerce/flow-add-free-shipping.md +267 -0
  173. package/skills/wix-manage/references/ecommerce/flow-bundle-and-save.md +290 -0
  174. package/skills/wix-manage/references/ecommerce/flow-fix-coverage-gaps.md +300 -0
  175. package/skills/wix-manage/references/ecommerce/flow-optimize-shipping-rates.md +364 -0
  176. package/skills/wix-manage/references/ecommerce/flow-seasonal-promotion.md +315 -0
  177. package/skills/wix-manage/references/ecommerce/flow-stock-mover.md +308 -0
  178. package/skills/wix-manage/references/ecommerce/flow-upsell-boost.md +271 -0
  179. package/skills/wix-manage/references/ecommerce/goal-clear-inventory.md +118 -0
  180. package/skills/wix-manage/references/ecommerce/goal-drive-cross-sells.md +122 -0
  181. package/skills/wix-manage/references/ecommerce/goal-increase-aov.md +132 -0
  182. package/skills/wix-manage/references/ecommerce/goal-reduce-cart-abandonment.md +148 -0
  183. package/skills/wix-manage/references/ecommerce/goal-seasonal-revenue.md +146 -0
  184. package/skills/wix-manage/references/ecommerce/guardrail-discount-conflicts.md +118 -0
  185. package/skills/wix-manage/references/ecommerce/guardrail-margin-protection.md +88 -0
  186. package/skills/wix-manage/references/ecommerce/guardrail-rate-pricing-sanity.md +108 -0
  187. package/skills/wix-manage/references/ecommerce/guardrail-shipping-health.md +124 -0
  188. package/skills/wix-manage/references/ecommerce/recipe-apply-shipping-recommendations.md +299 -0
  189. package/skills/wix-manage/references/ecommerce/recommend-ecommerce-strategy.md +582 -0
  190. package/skills/wix-manage/references/ecommerce/setup-coupons.md +338 -0
  191. package/skills/wix-manage/references/ecommerce/setup-discount-rules.md +444 -0
  192. package/skills/wix-manage/references/ecommerce/setup-shipping-rates.md +86 -0
  193. package/skills/wix-manage/references/ecommerce/setup-shipping-regions.md +56 -0
  194. package/skills/wix-manage/references/ecommerce/setup-store-pickup-location.md +209 -0
  195. package/skills/wix-manage/references/ecommerce/skill-graph.md +139 -0
  196. package/skills/wix-manage/references/ecommerce/troubleshoot-checkout-delivery-dropoff.md +124 -0
  197. package/skills/wix-manage/references/ecommerce/troubleshoot-discount-not-applying.md +95 -0
  198. package/skills/wix-manage/references/events/list-events.md +203 -0
  199. package/skills/wix-manage/references/forms/create-form.md +260 -0
  200. package/skills/wix-manage/references/get-paid/create-payment-links.md +212 -0
  201. package/skills/wix-manage/references/get-paid/how-to-setup-wix-payments.md +57 -0
  202. package/skills/wix-manage/references/get-paid/payment-links-for-bookings.md +101 -0
  203. package/skills/wix-manage/references/media/upload-media-to-wix.md +216 -0
  204. package/skills/wix-manage/references/pricing-plans/create-and-update-pricing-plans.md +77 -0
  205. package/skills/wix-manage/references/pricing-plans/pricing-plans-bookings-integration.md +166 -0
  206. package/skills/wix-manage/references/restaurants/wix-restaurants-setup.md +336 -0
  207. package/skills/wix-manage/references/rich-content/ricos-converter-service.md +295 -0
  208. package/skills/wix-manage/references/site-properties/change-payment-currency-site-properties.md +59 -0
  209. package/skills/wix-manage/references/sites/create-site-from-template.md +183 -0
  210. package/skills/wix-manage/references/sites/query-sites.md +125 -0
  211. package/skills/wix-manage/references/stores/add-store-pages-to-site.md +57 -0
  212. package/skills/wix-manage/references/stores/bulk-create-products-with-options.md +1041 -0
  213. package/skills/wix-manage/references/stores/create-product-catalog-v1.md +125 -0
  214. package/skills/wix-manage/references/stores/create-product-from-image.md +824 -0
  215. package/skills/wix-manage/references/stores/create-product-with-options-catalog-v3.md +566 -0
  216. package/skills/wix-manage/references/stores/find-products-query-and-search-catalog-v3.md +194 -0
  217. package/skills/wix-manage/references/stores/query-products-catalog-v1.md +80 -0
  218. package/skills/wix-manage/references/stores/setup-online-store-catalog-v3.md +99 -0
  219. package/skills/wix-manage/references/stores/update-product-pre-order.md +213 -0
  220. package/skills/wix-manage/references/stores/update-product-with-options.md +318 -0
@@ -0,0 +1,311 @@
1
+ # Wix App Market Review
2
+
3
+ Use this reference when preparing a Wix CLI app for App Market submission,
4
+ auditing review feedback, or checking whether an implementation is likely to
5
+ pass technical review. Keep the review evidence-based: classify what the app
6
+ actually does, then mark each relevant requirement as `Confirmed`,
7
+ `Not applicable`, or `Needs confirmation`.
8
+
9
+ This page covers code-facing and repository-verifiable requirements. App
10
+ Dashboard, pricing-page setup, company profile, and listing-copy checks require
11
+ separate dashboard or listing verification unless the user provides direct
12
+ evidence.
13
+
14
+ ---
15
+
16
+ ## Review Workflow
17
+
18
+ 1. Identify the app surfaces first: billing model, auth/password usage, cookie
19
+ usage, extension types, live-site surfaces, dashboard/setup surfaces, Wix
20
+ business-solution dependencies, and webhooks.
21
+ 2. Start with a report-only pass. List confirmed gaps, why they matter, and
22
+ official Wix documentation links where available.
23
+ 3. Do not mark a requirement as missing unless code, config, user statements,
24
+ runtime behavior, or explicit absence supports that finding. Otherwise mark
25
+ it `Needs confirmation`.
26
+ 4. Before flagging secrets, config leakage, or similar security issues, verify
27
+ the exposure is in a tracked file, the current diff, build artifacts, or
28
+ another review-relevant surface. Do not treat a local-only workspace file by
29
+ itself as repository exposure.
30
+ 5. Do not infer app billing configuration from Wix Business Solutions Pricing
31
+ Plans SDK/API usage. Business-solution Pricing Plans are for a Wix user
32
+ selling plans to customers; App Billing/App Plans are for charging site
33
+ owners for the app.
34
+ 6. For any code-facing gap the user asks you to fix, implement the fix through
35
+ the relevant `wix-app` extension reference first, then run validation.
36
+
37
+ ## Expected Output
38
+
39
+ Group findings by priority:
40
+
41
+ - Technical blockers: confirmed issues that are likely decline reasons.
42
+ - Should-fix items: high review risk, but not enough evidence to call them
43
+ definite decline reasons.
44
+ - Nice-to-have hardening: improvements that reduce risk without blocking
45
+ submission.
46
+ - Needs confirmation: requirements that cannot be verified from available
47
+ evidence.
48
+
49
+ For each finding include:
50
+
51
+ - `Applicability`
52
+ - `Evidence`
53
+ - `Impact`
54
+ - `Recommended fix`
55
+ - `Verification`
56
+ - `Confidence`
57
+
58
+ Preserve qualifiers from the taxonomy and docs. Do not upgrade `recommended`,
59
+ `if applicable`, or surface-specific guidance into a universal requirement.
60
+
61
+ ---
62
+
63
+ ## Technical Checklist
64
+
65
+ Work through this before submission. Only applicable unchecked items are
66
+ potential decline reasons.
67
+
68
+ ### Billing and Payments
69
+
70
+ - [ ] All in-app purchases route through Wix Billing unless Wix explicitly
71
+ approved the app as Partner Billed; approved Partner Billed apps report
72
+ charges through External Billing Events.
73
+ - [ ] No external purchase buttons, links, QR codes, license keys, or other
74
+ custom mechanisms unlock paid content.
75
+ - [ ] Full checkout flow tested for every plan.
76
+ - [ ] If the app has premium features, there is a clear in-product upgrade link
77
+ or CTA.
78
+ - [ ] Credits do not expire.
79
+
80
+ ### Setup and Access
81
+
82
+ - [ ] App configuration URLs are public and do not use localhost.
83
+ - [ ] A usable setup/settings UI exists. Embedded Script apps need a dashboard
84
+ page.
85
+
86
+ ### Instance and Identity
87
+
88
+ - [ ] `instanceId` is used for user/site identification, not cookies or sessions.
89
+ - [ ] Billing is separated per `instanceId`.
90
+ - [ ] Auto-login works when the user reopens the app from Manage Apps.
91
+ - [ ] Site duplication is handled through `originInstanceId`: treat the copied
92
+ site as a new install linked to the original and copy applicable
93
+ settings/content where possible.
94
+ - [ ] Required Wix apps, such as Stores or Bookings, are checked through Get App
95
+ Instance and surfaced clearly if missing.
96
+ - [ ] If the app supports Wix Stores catalog data, both Catalog V1 and Catalog
97
+ V3 are supported. See [STORES_VERSIONING.md](STORES_VERSIONING.md).
98
+
99
+ ### Webhooks
100
+
101
+ - [ ] Any implemented webhook returns HTTP 200 on successful receipt.
102
+ - [ ] App Installed and App Removed webhooks are considered for lifecycle
103
+ provisioning and cleanup. They are recommended, not a universal hard
104
+ requirement.
105
+
106
+ ### Permissions
107
+
108
+ - [ ] Only minimum required permissions are requested.
109
+ - [ ] Redundant or overlapping permissions are removed.
110
+
111
+ ### Security
112
+
113
+ - [ ] Signed `instance` verification happens server-side before trusting
114
+ user/site context.
115
+ - [ ] Signed-instance-backed edit/save actions validate `signDate`; stale
116
+ signatures require refresh before continuing.
117
+ - [ ] All endpoints are HTTPS with no HTTP fallback.
118
+ - [ ] In-product flows avoid `alert()` and `confirm()`; use Wix modal,
119
+ inline status, toast, or another surface-appropriate feedback pattern.
120
+ - [ ] XSS protection covers all user input fields.
121
+ - [ ] Passwords are stored as salted hashes, such as bcrypt or SHA-256 with a
122
+ unique salt per password.
123
+ - [ ] Password reset uses an expiring email link and never sends raw passwords.
124
+ - [ ] Sensitive data is not stored in cookies and is encrypted where needed.
125
+
126
+ ### UX and Display
127
+
128
+ - [ ] In-product flows use Wix popup/modal patterns where appropriate.
129
+ OAuth and documented Wix pricing-page upgrade CTAs are exceptions.
130
+ - [ ] First install shows realistic demo data, not placeholder lorem ipsum.
131
+ - [ ] Ads are not shown to site visitors unless ad display is the app purpose
132
+ and the app has the required permits.
133
+ - [ ] Review prompts, if present, are non-blocking and do not force or
134
+ incentivize reviews.
135
+ - [ ] Plugin content relates to the host app's core functionality.
136
+
137
+ ### Performance and Quality
138
+
139
+ - [ ] Startup and load times meet App Market expectations.
140
+ - [ ] No known bugs or console errors remain.
141
+ - [ ] Supported-browser matrix is tested.
142
+ - [ ] Live-site extensions are responsive across screen sizes.
143
+ - [ ] Dashboard surfaces support the required desktop layout.
144
+
145
+ ### SEO, Accessibility, and Localization
146
+
147
+ - [ ] Widget components do not render `<h1>` tags.
148
+ - [ ] User-facing images expose alt-text customization where applicable.
149
+ - [ ] App output is UTF-8 encoded.
150
+ - [ ] Website components meet accessibility standards.
151
+
152
+ ### Cookie Consent
153
+
154
+ - [ ] Cookie consent workflow activates/deactivates cookies per visitor
155
+ preferences.
156
+
157
+ ---
158
+
159
+ ## Implementation Notes
160
+
161
+ ### Payment and Billing
162
+
163
+ All apps that collect money must route payments through Wix Billing unless Wix
164
+ granted a formal exception. Approved Partner Billed apps still need to report
165
+ charges/refunds through External Billing Events and submit revenue reports.
166
+
167
+ | Requirement | Notes | Docs |
168
+ | --- | --- | --- |
169
+ | Implement Wix Billing (#25) | Use Billing API for subscriptions unless Wix approved Partner Billing. | [App Billing APIs](https://dev.wix.com/docs/api-reference/app-management/app-billing/introduction) |
170
+ | No custom unlock mechanisms (#29, #30) | Content gating and purchase flows must go through Wix Billing only. | [Billing API](https://dev.wix.com/docs/api-reference/app-management/app-billing/billing/introduction) |
171
+ | Test checkout per plan (#33) | Verify purchase, upgrade, cancellation, and entitlement UX. | [Billing sample flows](https://dev.wix.com/docs/api-reference/app-management/app-billing/billing/sample-flows) |
172
+ | Upgrade path (#125) | Premium features need a clear upgrade link or CTA. Do not treat Business Solutions Pricing Plans SDK usage as evidence for app billing decisions. | [Identify and Manage App Users](https://dev.wix.com/docs/build-apps/launch-your-app/pricing-and-billing/identify-and-manage-app-users) |
173
+ | Usage-based or one-time charges | Billing API handles subscriptions; use Custom Charges for other approved billing flows. | [Custom Charges Service Plugin](https://dev.wix.com/docs/api-reference/app-management/app-billing/custom-charges-service-plugin/introduction) |
174
+ | Partner Billed reporting | Required only for apps with written approval from Wix. | [External Billing Events API](https://dev.wix.com/docs/api-reference/app-management/app-billing/external-billing-events/introduction) |
175
+
176
+ ### App Instance and Identity
177
+
178
+ The `instanceId` uniquely identifies an app installation on a site. Use it for
179
+ identity, app data, and billing. Site duplication creates a new `instanceId`;
180
+ use `originInstanceId` to relate the copied site to the original.
181
+
182
+ | Requirement | Notes | Docs |
183
+ | --- | --- | --- |
184
+ | Identify by `instanceId` (#115) | Each site installation gets a unique ID. | [App Instance API](https://dev.wix.com/docs/api-reference/app-management/app-instance/introduction) |
185
+ | Separate billing per site (#116) | One plan must not silently unlock multiple sites. | [App Instance API](https://dev.wix.com/docs/api-reference/app-management/app-instance/introduction) |
186
+ | Auto-login (#118) | Restore the app session from the current site instance. | [Get App Instance](https://dev.wix.com/docs/api-reference/app-management/app-instance/get-app-instance) |
187
+ | Check required apps (#120) | Verify required Wix apps and show clear setup guidance if missing. | [Get App Instance](https://dev.wix.com/docs/api-reference/app-management/app-instance/get-app-instance) |
188
+ | Site duplication (#122) | Copy relevant settings/content to the new instance where possible. | [App Instance API](https://dev.wix.com/docs/api-reference/app-management/app-instance/introduction) |
189
+ | Stores catalog compatibility (#130) | Support both Catalog V1 and Catalog V3. | [Catalog Versioning API](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-versioning/introduction) |
190
+
191
+ ### Webhooks, Setup, and Permissions
192
+
193
+ | Requirement | Notes | Docs |
194
+ | --- | --- | --- |
195
+ | App lifecycle webhooks (#113) | Recommended for provisioning and cleanup; if implemented, return HTTP 200. | [App Instance Installed](https://dev.wix.com/docs/api-reference/app-management/app-instance/app-instance-installed) |
196
+ | Webhook success response (#114) | Any implemented webhook must return HTTP 200 on successful receipt. | [App Instance Removed](https://dev.wix.com/docs/api-reference/app-management/app-instance/app-instance-removed) |
197
+ | Settings/setup UI (#107) | Provide a dashboard page, widget, or another relevant setup surface. Embedded Script apps need a dashboard page. | [About Extensions](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/about-extensions) |
198
+ | No localhost URLs (#108) | App configuration URLs must be public. | [Self-hosted dashboard extensions](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/dashboard-extensions/add-self-hosted-dashboard-page-extensions) |
199
+ | Minimum permissions (#111, #112) | Request only scopes used by app functionality and remove overlap. | [App Permissions API](https://dev.wix.com/docs/api-reference/app-management/app-permissions/introduction) |
200
+
201
+ ### Security
202
+
203
+ | Requirement | Notes | Docs |
204
+ | --- | --- | --- |
205
+ | Verify signed instance (#74) | Decode and verify the signed `instance` parameter server-side. | [App Instance API](https://dev.wix.com/docs/api-reference/app-management/app-instance/introduction) |
206
+ | Validate `signDate` (#76) | For signed-instance-backed state changes, reject signatures older than one day and require refresh. | [Security and Privacy Best Practice](https://dev.wix.com/docs/build-apps/launch-your-app/legal-and-security/security-and-privacy-best-practice) |
207
+ | HTTPS everywhere (#65, #77) | Dashboard, editor, and live-site URLs must use HTTPS. | [App Market Guidelines](https://dev.wix.com/docs/build-apps/launch-your-app/app-distribution/app-market-guidelines) |
208
+ | CSRF and XSS (#64, #78) | Sanitize every user input field. Regex tag stripping is only partial mitigation; use context-appropriate encoding and maintained sanitizers when HTML is supported. | [App Market Guidelines](https://dev.wix.com/docs/build-apps/launch-your-app/app-distribution/app-market-guidelines) |
209
+ | Password storage (#63, #79, #80) | Store salted hashes; never store raw passwords. | [App Market Guidelines](https://dev.wix.com/docs/build-apps/launch-your-app/app-distribution/app-market-guidelines) |
210
+ | Password reset (#81) | Send expiring email links; never send raw passwords. | [App Market Guidelines](https://dev.wix.com/docs/build-apps/launch-your-app/app-distribution/app-market-guidelines) |
211
+ | Sensitive data (#69) | Keep sensitive data out of cookies and encrypt it at rest when needed. | [App Market Guidelines](https://dev.wix.com/docs/build-apps/launch-your-app/app-distribution/app-market-guidelines) |
212
+
213
+ ### UX, Performance, and Accessibility
214
+
215
+ | Requirement | Notes | Docs |
216
+ | --- | --- | --- |
217
+ | Wix popup/modal patterns (#39) | Use Wix-appropriate surfaces for in-product flows. OAuth and documented pricing-page upgrade CTAs are exceptions. | [Dashboard extension guidelines](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/dashboard-extensions/guidelines-for-self-hosted-dashboard-extensions) |
218
+ | No browser-native interruptions (#45) | Replace `alert()` or `confirm()` with inline status, toast, modal, or other appropriate feedback. | [UX/UI Best Practices](https://dev.wix.com/docs/build-apps/develop-your-app/design/ux-and-ui-best-practices) |
219
+ | Demo data (#37) | Show realistic fictional content on first install. | [App Market Guidelines](https://dev.wix.com/docs/build-apps/launch-your-app/app-distribution/app-market-guidelines) |
220
+ | No visitor ads (#47) | Unless ad display is the app purpose and required permits exist. | [App Market Guidelines](https://dev.wix.com/docs/build-apps/launch-your-app/app-distribution/app-market-guidelines) |
221
+ | Performance (#48, #49) | Run a performance audit and clear known bugs/console errors before submission. | [App Market Guidelines](https://dev.wix.com/docs/build-apps/launch-your-app/app-distribution/app-market-guidelines) |
222
+ | Responsive design (#52, #54) | Live-site extensions need responsive layouts; dashboard surfaces need the required desktop layout. | [App Market Guidelines](https://dev.wix.com/docs/build-apps/launch-your-app/app-distribution/app-market-guidelines) |
223
+ | Accessibility and SEO (#53, #55, #57, #58) | Avoid widget `<h1>` tags, provide relevant alt-text controls, use UTF-8, and meet accessibility expectations. | [App Market Guidelines](https://dev.wix.com/docs/build-apps/launch-your-app/app-distribution/app-market-guidelines) |
224
+ | Cookie consent (#92, #97) | Activate/deactivate cookies dynamically per visitor consent choice. | [App Market Guidelines](https://dev.wix.com/docs/build-apps/launch-your-app/app-distribution/app-market-guidelines) |
225
+
226
+ ---
227
+
228
+ ## Technical Review Taxonomy
229
+
230
+ Use these IDs for traceability when mapping findings to review feedback.
231
+
232
+ | # | Requirement | Area |
233
+ | --- | --- | --- |
234
+ | 25 | Apps collecting money must implement Wix Billing unless an exception is granted. | Billing |
235
+ | 29 | Do not use custom mechanisms to unlock content. | Billing |
236
+ | 30 | Do not link to purchase mechanisms other than Wix Billing. | Billing |
237
+ | 31 | Credits purchased through in-app purchase must not expire. | Billing |
238
+ | 33 | Test the checkout flow for each plan. | Billing |
239
+ | 35 | No direct user downgrade through the pricing page. | Billing |
240
+ | 37 | Display realistic demo data on first install. | UX |
241
+ | 39 | Use Wix popup/modal patterns for in-product flows; OAuth and documented upgrade CTAs are exceptions. | UX |
242
+ | 44 | Plugin extension content must relate to the host app's core functionality. | Functionality |
243
+ | 45 | Avoid disruptive behavior and browser-native `alert()`/`confirm()` boxes. | UX |
244
+ | 46 | Do not show ads to site owners except unobtrusive cross-promotion of your own apps. | Advertising |
245
+ | 47 | Do not show ads to site visitors unless that is the app purpose and permits exist. | Advertising |
246
+ | 48 | Meet startup and load-time expectations. | Performance |
247
+ | 49 | Clear known bugs and console errors before submission. | Quality |
248
+ | 50 | Multiple website components on the same site must have separate settings. | Multi-instance |
249
+ | 51 | Site copy should copy applicable app content/settings, not reset to default state. | Multi-instance |
250
+ | 52 | Live-site extensions must be responsive across screen sizes and devices. | Responsive |
251
+ | 53 | Website components must be accessible to visitors with disabilities. | Accessibility |
252
+ | 54 | Dashboard app surfaces must support the required desktop layout. | Dashboard |
253
+ | 55 | Widget components must not render `<h1>` tags. | SEO |
254
+ | 56 | Optimize SEO-meaningful content per industry best practices. | SEO |
255
+ | 57 | Include accessibility customization such as alt text where applicable. | Accessibility |
256
+ | 58 | Use UTF-8 encoding for multilingual text support. | Localization |
257
+ | 59 | Test supported desktop browsers. | Browser support |
258
+ | 60 | Test live-site extensions on supported mobile browsers. | Browser support |
259
+ | 61 | Test live-site extensions on supported tablet browsers. | Browser support |
260
+ | 62 | Never request more permissions than required. | Permissions |
261
+ | 63 | Store salted password hashes instead of raw passwords. | Security |
262
+ | 64 | Protect against CSRF, XSS, and other security vulnerabilities. | Security |
263
+ | 65 | Serve the app over HTTPS with a valid certificate. | Security |
264
+ | 66 | Do not force login or personal information unless core to the app. | Security |
265
+ | 67 | Let users revoke connected social credentials in the app. | Security |
266
+ | 68 | Secure and verify each user's identity through the instance. | Identity |
267
+ | 69 | Encrypt sensitive data and do not store it in cookies. | Security |
268
+ | 72 | Keep app secret key and OAuth tokens secure. | Security |
269
+ | 73 | Apps collecting financial data must comply with PCI-DSS and PA-DSS. | Security |
270
+ | 74 | Verify signed instance signature server-side. | Security |
271
+ | 76 | Validate `signDate` for signed-instance-backed edit/save actions. | Security |
272
+ | 77 | All dashboard, editor, and live-site endpoints must support HTTPS. | Security |
273
+ | 78 | Prevent XSS in input fields such as comments, forms, search, and titles. | Security |
274
+ | 79 | Use secure password hashing. | Security |
275
+ | 80 | Add a unique random salt/nonce to each stored password. | Security |
276
+ | 81 | Password reset must use an expiring email link, not a raw password. | Security |
277
+ | 92 | Comply with site visitor consent policies. | Privacy |
278
+ | 97 | Implement cookie consent behavior per visitor preferences. | Privacy |
279
+ | 107 | Provide a settings/setup UI. | Setup |
280
+ | 108 | Do not use localhost URLs in app configuration. | Setup |
281
+ | 111 | Request only minimum necessary permissions. | Permissions |
282
+ | 112 | Remove permissions already included in added scopes. | Permissions |
283
+ | 113 | App Installed and App Removed webhooks are recommended for lifecycle handling. | Webhooks |
284
+ | 114 | Implemented webhooks must return HTTP 200 on successful receipt. | Webhooks |
285
+ | 115 | Identify users by `instanceId`, not session/cookies. | Identity |
286
+ | 116 | Separate billing for each site. | Billing |
287
+ | 117 | Support multi-site account switching or one-account-per-site flows. | Identity |
288
+ | 118 | Auto-login when the user reopens the app through Manage Apps. | Identity |
289
+ | 119 | Forgotten-password flow must send reset links and avoid raw passwords. | Security |
290
+ | 120 | Check required Wix apps and notify the user if missing. | Setup |
291
+ | 121 | Review prompts are recommended only; keep them non-blocking if implemented. | UX |
292
+ | 122 | Handle site duplication through `originInstanceId`. | Multi-instance |
293
+ | 123 | External pricing page is broken or used instead of Wix internal billing. | Billing |
294
+ | 125 | Premium features require a clear upgrade path; do not infer app billing from Business Solutions Pricing Plans API usage. | Billing |
295
+ | 130 | Apps supporting Wix Stores catalog data must support both Catalog V1 and Catalog V3. | Stores |
296
+ | 132 | App installation process fails or results in errors. | Installation |
297
+ | 133 | Login/session issues occur during or after installation. | Identity |
298
+ | 151 | Custom element has quality issues such as pixelated images or missing descriptions. | Component quality |
299
+ | 152 | Embedded script has syntax errors, missing parameters, or the wrong type. | Embedded script |
300
+ | 154 | Component configuration has a general issue. | Components |
301
+ | 158 | Custom element extension is missing settings or does not appear in the editor. | Extensions |
302
+ | 159 | Dashboard modal extension purpose is unclear or unnecessary. | Extensions |
303
+ | 160 | Dashboard page extension is blank, broken, or violates Wix guidelines. | Extensions |
304
+ | 161 | Embedded script is not loading, syncing, or configured correctly. | Extensions |
305
+ | 162 | External URL does not open in a new tab or references a non-Wix platform. | Extensions |
306
+ | 163 | Required service plugin for a dropshipping app is missing. | Service plugin |
307
+ | 166 | Widget extension image or configuration is incorrect. | Extensions |
308
+ | 167 | Extension configuration has a general issue. | Extensions |
309
+ | 168 | Automations email template contains incorrect text or is active too early. | Automations |
310
+ | 169 | App does not follow UX best practices such as defaults or validation warnings. | UX |
311
+ | 170 | App behavior is confusing in editor preview compared with the published site. | UX |
@@ -0,0 +1,171 @@
1
+
2
+ # Wix App Validation
3
+
4
+ Validates Wix CLI applications through a four-step sequential workflow: package installation, TypeScript compilation check, build, and preview.
5
+
6
+ ## Validation Workflow
7
+
8
+ Execute these steps sequentially. Stop and report errors if any step fails.
9
+
10
+ ### Step 1: Package Installation
11
+
12
+ Ensure all dependencies are installed before proceeding with the build.
13
+
14
+ **Detect package manager:**
15
+ - Check for `package-lock.json` → use `npm`
16
+ - Check for `yarn.lock` → use `yarn`
17
+ - Check for `pnpm-lock.yaml` → use `pnpm`
18
+ - Default to `npm` if no lock file is found
19
+
20
+ **Run installation command:**
21
+
22
+ ```bash
23
+ # For npm
24
+ npm install
25
+
26
+ # For yarn
27
+ yarn install
28
+
29
+ # For pnpm
30
+ pnpm install
31
+ ```
32
+
33
+ **Success criteria:**
34
+ - Exit code 0
35
+ - All dependencies installed successfully
36
+ - No missing peer dependencies warnings (unless expected)
37
+ - `node_modules` directory exists and contains expected packages
38
+
39
+ **On failure:** Report the installation errors, [check the debug log](#debug-log-on-errors) for detailed diagnostics, and stop validation. Common issues:
40
+ - Network connectivity problems
41
+ - Corrupted lock files
42
+ - Version conflicts
43
+ - Missing Node.js or package manager
44
+
45
+ ### Step 2: TypeScript Compilation Check
46
+
47
+ Run TypeScript compiler to check for type errors.
48
+
49
+ **Full project check:**
50
+ ```bash
51
+ npx tsc --noEmit
52
+ ```
53
+
54
+ **Targeted check (specific files/directories):**
55
+
56
+ When validating after implementing a specific extension, you can run TypeScript checks on just those files:
57
+
58
+ ```bash
59
+ # Check specific directory
60
+ npx tsc --noEmit src/extensions/dashboard/pages/survey/**/*.ts src/extensions/dashboard/pages/survey/**/*.tsx
61
+
62
+ # Check dashboard pages only
63
+ npx tsc --noEmit src/extensions/dashboard/pages/**/*.ts src/extensions/dashboard/pages/**/*.tsx
64
+
65
+ # Check custom element widgets only
66
+ npx tsc --noEmit src/extensions/site/widgets/**/*.ts src/extensions/site/widgets/**/*.tsx
67
+
68
+ # Check dashboard modals only
69
+ npx tsc --noEmit src/extensions/dashboard/modals/**/*.ts src/extensions/dashboard/modals/**/*.tsx
70
+
71
+ # Check backend only
72
+ npx tsc --noEmit src/extensions/backend/**/*.ts
73
+ ```
74
+
75
+ **When to use targeted checks:**
76
+ - After implementing a single extension (faster feedback)
77
+ - When debugging type errors in a specific area
78
+ - During iterative development
79
+
80
+ **When to use full project check:**
81
+ - Before final validation
82
+ - When changes affect shared types
83
+ - Before building/deploying
84
+
85
+ **Success criteria:**
86
+ - Exit code 0
87
+ - No TypeScript compilation errors
88
+ - All type checks pass
89
+
90
+ **On failure:** Report the specific TypeScript errors and stop validation. Common issues:
91
+ - Type mismatches between expected and actual types
92
+ - Missing type declarations for imported modules
93
+ - Incorrect generic type parameters
94
+ - Properties not existing on declared types
95
+ - Incompatible function signatures
96
+
97
+ ### Step 3: Build Validation
98
+
99
+ Run the build command and check for compilation errors:
100
+
101
+ ```bash
102
+ npx wix build
103
+ ```
104
+
105
+ **Success criteria:**
106
+ - Exit code 0
107
+ - No TypeScript errors
108
+ - No missing dependencies
109
+
110
+ **On failure:** Report the specific compilation errors, [check the debug log](#debug-log-on-errors) for detailed diagnostics, and stop validation.
111
+
112
+ ### Step 4: Preview Deployment
113
+
114
+ Start the preview server:
115
+
116
+ ```bash
117
+ npx wix preview
118
+ ```
119
+
120
+ **Success criteria:**
121
+ - Preview server starts successfully
122
+ - Preview URLs are generated (both site and dashboard)
123
+
124
+ **URL extraction:** Parse the terminal output to find both preview URLs. Look for patterns like:
125
+ - Site preview: `Site preview: https://...` or `Site URL: https://...`
126
+ - Dashboard preview: `Dashboard preview: https://...` or `Preview URL: https://...` or `Your app is available at: https://...`
127
+
128
+ Extract both URLs and provide them to the user for manual verification.
129
+
130
+ **On failure:** Report the preview startup errors, [check the debug log](#debug-log-on-errors) for detailed diagnostics, and stop validation.
131
+
132
+ ## Validation Report
133
+
134
+ After completing all steps, provide a summary:
135
+
136
+ **Pass:**
137
+ - Dependencies: ✓ All packages installed successfully
138
+ - TypeScript: ✓ No compilation errors
139
+ - Build: ✓ Compiled successfully
140
+ - Preview: ✓ Running at [URL]
141
+
142
+ **Fail:**
143
+ - Identify which step failed
144
+ - Provide specific error messages
145
+ - Suggest remediation steps
146
+
147
+ ## Debug Log on Errors
148
+
149
+ When a validation step fails (non-zero exit code, error output, or the CLI crashes/hangs), check `.wix/debug.log` in the project root for the full error trace. **Only read this file when errors occur** — skip it when steps pass or when the terminal output already makes the error clear (e.g. a straightforward TypeScript type error).
150
+
151
+ The `.wix/` directory is automatically created by the Wix CLI and contains internal configuration and log files. Don't edit it, but reading `debug.log` for troubleshooting is expected.
152
+
153
+ ```
154
+ Read: .wix/debug.log
155
+
156
+ # If the file is large, read the last 100 lines for the most recent errors
157
+ Read: .wix/debug.log (with offset to the end)
158
+ ```
159
+
160
+ ## Common Issues
161
+
162
+ | Issue | Cause | Solution |
163
+ |-------|-------|----------|
164
+ | Package installation fails | Missing lock file, network issues, or corrupted node_modules | Delete `node_modules` and lock file, then reinstall |
165
+ | TypeScript compilation fails | Type mismatches, missing declarations, or incorrect types | Fix TypeScript errors shown in `npx tsc --noEmit` output |
166
+ | Build fails | TypeScript errors, missing dependencies, or internal CLI error | Fix TypeScript errors in source; for non-obvious failures, check `.wix/debug.log` |
167
+ | Preview fails to start | Port conflict, config issue, or internal CLI error | Check `wix.config.json`; if unclear, check `.wix/debug.log` for details |
168
+ | Console errors in preview | Runtime exceptions | Check browser console output |
169
+ | UI not rendering | Component errors | Review component code and imports |
170
+ | CLI error with no clear message | Truncated terminal output | Read `.wix/debug.log` for the full error trace and stack details |
171
+ | Mysterious failures after config change | Stale CLI state | Read `.wix/debug.log` to confirm, then delete `.wix/` and rebuild |