@wix/agent-skills 1.6.0 → 1.8.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 (195) hide show
  1. package/README.md +5 -9
  2. package/package.json +1 -1
  3. package/skills/wix-app/SKILL.md +51 -42
  4. package/skills/wix-app/references/BACKEND_EVENT.md +10 -65
  5. package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +101 -406
  6. package/skills/wix-app/references/DASHBOARD_MENU_PLUGIN.md +14 -111
  7. package/skills/wix-app/references/DASHBOARD_MODAL.md +56 -205
  8. package/skills/wix-app/references/DASHBOARD_PAGE.md +19 -98
  9. package/skills/wix-app/references/DASHBOARD_PLUGIN.md +6 -108
  10. package/skills/wix-app/references/DATA_COLLECTION.md +113 -198
  11. package/skills/wix-app/references/EMBEDDED_SCRIPT.md +41 -268
  12. package/skills/wix-app/references/EXTENSION_REGISTRATION.md +27 -76
  13. package/skills/wix-app/references/SERVICE_PLUGIN.md +35 -188
  14. package/skills/wix-app/references/SITE_PLUGIN.md +8 -92
  15. package/skills/wix-app/references/STORES_VERSIONING.md +1 -0
  16. package/skills/wix-app/references/backend-event/COMMON-EVENTS.md +0 -44
  17. package/skills/wix-app/references/custom-element-widget/SETTINGS_PANEL.md +19 -330
  18. package/skills/wix-app/references/dashboard-menu-plugin/bookings-slots.md +0 -12
  19. package/skills/wix-app/references/dashboard-menu-plugin/ecommerce-slots.md +7 -0
  20. package/skills/wix-app/references/dashboard-menu-plugin/restaurants-slots.md +0 -12
  21. package/skills/wix-app/references/dashboard-plugin/SLOTS.md +3 -15
  22. package/skills/wix-app/references/service-plugin/ADDITIONAL-FEES.md +2 -18
  23. package/skills/wix-app/references/service-plugin/BOOKINGS-STAFF-SORTING.md +2 -42
  24. package/skills/wix-app/references/service-plugin/DISCOUNT-TRIGGERS.md +1 -11
  25. package/skills/wix-app/references/service-plugin/GIFT-CARDS.md +1 -11
  26. package/skills/wix-app/references/service-plugin/PAYMENT-SETTINGS.md +2 -40
  27. package/skills/wix-app/references/service-plugin/SHIPPING-RATES.md +2 -19
  28. package/skills/wix-app/references/service-plugin/VALIDATIONS.md +2 -18
  29. package/skills/wix-app/references/site-plugin/SLOTS.md +17 -68
  30. package/skills/wix-design-system/SKILL.md +4 -0
  31. package/skills/wix-headless/SKILL.md +131 -386
  32. package/skills/wix-headless/references/BUILD-astro.md +246 -0
  33. package/skills/wix-headless/references/BUILD-own-build.md +167 -0
  34. package/skills/wix-headless/references/BUILD.md +105 -0
  35. package/skills/wix-headless/references/DESIGN_SYSTEM.md +175 -0
  36. package/skills/wix-headless/references/DISCOVERY-connect.md +55 -0
  37. package/skills/wix-headless/references/DISCOVERY-create.md +238 -0
  38. package/skills/wix-headless/references/DISCOVERY.md +50 -306
  39. package/skills/wix-headless/references/PLAN-connect.md +19 -0
  40. package/skills/wix-headless/references/PLAN-create.md +17 -0
  41. package/skills/wix-headless/references/PLAN.md +92 -0
  42. package/skills/wix-headless/references/SEED.md +214 -0
  43. package/skills/wix-headless/references/SETUP.md +73 -248
  44. package/skills/wix-headless/references/{blog → astro/blog}/BLOG_PAGES.md +6 -5
  45. package/skills/wix-headless/references/{blog → astro/blog}/BLOG_SETUP.md +2 -2
  46. package/skills/wix-headless/references/astro/bookings/COMPONENTS.md +337 -0
  47. package/skills/wix-headless/references/astro/bookings/SERVICES_PAGES.md +428 -0
  48. package/skills/wix-headless/references/astro/cms/CMS_FOUNDATIONS.md +214 -0
  49. package/skills/wix-headless/references/{cms → astro/cms}/FAQ_KNOWLEDGE_BASE.md +14 -12
  50. package/skills/wix-headless/references/{cms → astro/cms}/PORTFOLIO.md +15 -16
  51. package/skills/wix-headless/references/{cms → astro/cms}/RESOURCE_LIBRARY.md +13 -15
  52. package/skills/wix-headless/references/{cms → astro/cms}/TEAM_DIRECTORY.md +11 -11
  53. package/skills/wix-headless/references/astro/designer/INSTRUCTIONS.md +354 -0
  54. package/skills/wix-headless/references/{ecom → astro/ecom}/CART_PAGES.md +8 -9
  55. package/skills/wix-headless/references/{ecom → astro/ecom}/CART_WIRING.md +6 -6
  56. package/skills/wix-headless/references/{ecom → astro/ecom}/COMPONENTS_CSS.md +6 -6
  57. package/skills/wix-headless/references/{forms → astro/forms}/CONTACT_FORM.md +18 -32
  58. package/skills/wix-headless/references/{gift-cards → astro/gift-cards}/COMPONENTS.md +3 -3
  59. package/skills/wix-headless/references/{gift-cards → astro/gift-cards}/PAGES.md +2 -2
  60. package/skills/wix-headless/references/{stores → astro/stores}/BACK_IN_STOCK.md +7 -7
  61. package/skills/wix-headless/references/{stores → astro/stores}/CATEGORY_PAGES.md +12 -13
  62. package/skills/wix-headless/references/{stores → astro/stores}/COMPONENTS_CSS.md +7 -7
  63. package/skills/wix-headless/references/{stores → astro/stores}/HOME_AND_NAV.md +11 -9
  64. package/skills/wix-headless/references/{stores → astro/stores}/PRODUCT_PAGES.md +11 -9
  65. package/skills/wix-headless/references/{stores → astro/stores}/SHARED_WIRING.md +8 -7
  66. package/skills/wix-headless/references/astro/templates/Footer.astro +27 -0
  67. package/skills/wix-headless/references/astro/templates/Layout.astro +132 -0
  68. package/skills/wix-headless/references/astro/templates/Navigation.astro +38 -0
  69. package/skills/wix-headless/references/astro/templates/astro.config.mjs +41 -0
  70. package/skills/wix-headless/references/astro/templates/bookings/AvailabilityCalendar.tsx +218 -0
  71. package/skills/wix-headless/references/astro/templates/bookings/BookingForm.tsx +194 -0
  72. package/skills/wix-headless/references/astro/templates/bookings/ManageBooking.tsx +84 -0
  73. package/skills/wix-headless/references/astro/templates/bookings/SeoTags.astro +25 -0
  74. package/skills/wix-headless/references/astro/templates/bookings/ServiceBookingFlow.tsx +50 -0
  75. package/skills/wix-headless/references/astro/templates/bookings/ServiceCard.astro +45 -0
  76. package/skills/wix-headless/references/astro/templates/bookings/api/confirm-booking.ts +34 -0
  77. package/skills/wix-headless/references/astro/templates/bookings/api/waitlist.ts +74 -0
  78. package/skills/wix-headless/references/astro/templates/bookings/booking-confirmation.astro +111 -0
  79. package/skills/wix-headless/references/astro/templates/bookings/components-bookings.css +413 -0
  80. package/skills/wix-headless/references/astro/templates/bookings/manage-booking.astro +76 -0
  81. package/skills/wix-headless/references/astro/templates/bookings/services/[slug].astro +81 -0
  82. package/skills/wix-headless/references/astro/templates/bookings/services/index.astro +65 -0
  83. package/skills/wix-headless/references/astro/templates/ecom/components-ecom.css +302 -0
  84. package/skills/wix-headless/references/astro/templates/global.css +286 -0
  85. package/skills/wix-headless/references/astro/templates/index.astro +56 -0
  86. package/skills/wix-headless/{templates → references/astro/templates}/stores/back-in-stock.ts +1 -1
  87. package/skills/wix-headless/{templates → references/astro/templates}/stores/components-stores.css +138 -33
  88. package/skills/wix-headless/references/blog/BLOG_CONTENT.md +28 -19
  89. package/skills/wix-headless/references/blog/INSTRUCTIONS.md +6 -6
  90. package/skills/wix-headless/references/bookings/INSTRUCTIONS.md +106 -0
  91. package/skills/wix-headless/references/bookings/SERVICES_DATA.md +295 -0
  92. package/skills/wix-headless/references/cms/CMS_FOUNDATIONS.md +35 -232
  93. package/skills/wix-headless/references/cms/INSTRUCTIONS.md +39 -8
  94. package/skills/wix-headless/references/commands/known-apps.json +2 -1
  95. package/skills/wix-headless/references/custom/CONNECTION_PLAN.md +142 -0
  96. package/skills/wix-headless/references/custom/INSTRUCTIONS.md +88 -0
  97. package/skills/wix-headless/references/custom/blog/WIRING.md +52 -0
  98. package/skills/wix-headless/references/custom/bookings/WIRING.md +88 -0
  99. package/skills/wix-headless/references/custom/cms/WIRING.md +97 -0
  100. package/skills/wix-headless/references/custom/ecom/WIRING.md +67 -0
  101. package/skills/wix-headless/references/custom/forms/WIRING.md +101 -0
  102. package/skills/wix-headless/references/custom/stores/WIRING.md +80 -0
  103. package/skills/wix-headless/references/ecom/INSTRUCTIONS.md +12 -12
  104. package/skills/wix-headless/references/forms/INSTRUCTIONS.md +6 -6
  105. package/skills/wix-headless/references/gift-cards/INSTRUCTIONS.md +13 -13
  106. package/skills/wix-headless/references/images/INSTRUCTIONS.md +58 -60
  107. package/skills/wix-headless/references/seed-recipes.md +49 -0
  108. package/skills/wix-headless/references/shared/AGENTS_MD.md +47 -0
  109. package/skills/wix-headless/references/shared/AUTHENTICATION.md +108 -0
  110. package/skills/wix-headless/references/shared/BUILD_NOISE.md +2 -2
  111. package/skills/wix-headless/references/shared/DESIGN_MD.md +85 -0
  112. package/skills/wix-headless/references/shared/DOCS_SEARCH.md +41 -0
  113. package/skills/wix-headless/references/shared/IMAGE_GENERATION.md +40 -39
  114. package/skills/wix-headless/references/shared/IMPLEMENTER.md +92 -41
  115. package/skills/wix-headless/references/shared/PRODUCTION_SHARP_EDGES.md +3 -3
  116. package/skills/wix-headless/references/shared/RETURN_CONTRACT.md +32 -312
  117. package/skills/wix-headless/references/shared/STYLING.md +48 -21
  118. package/skills/wix-headless/references/stores/INSTRUCTIONS.md +59 -29
  119. package/skills/wix-headless/references/stores/PRODUCT_CATALOG_DATA.md +31 -28
  120. package/skills/wix-headless/references/verticals/_schema.json +31 -117
  121. package/skills/wix-headless/references/verticals/_schema.md +60 -150
  122. package/skills/wix-headless/references/verticals/blog.md +5 -99
  123. package/skills/wix-headless/references/verticals/bookings.md +41 -0
  124. package/skills/wix-headless/references/verticals/cms.md +9 -100
  125. package/skills/wix-headless/references/verticals/ecom.md +6 -77
  126. package/skills/wix-headless/references/verticals/forms.md +5 -85
  127. package/skills/wix-headless/references/verticals/gift-cards.md +6 -103
  128. package/skills/wix-headless/references/verticals/stores.md +10 -144
  129. package/skills/wix-headless/scripts/check-manifest.mjs +148 -11
  130. package/skills/wix-headless/scripts/compose.mjs +540 -0
  131. package/skills/wix-headless/scripts/emit-design-tokens.mjs +136 -53
  132. package/skills/wix-headless/scripts/flatten.sh +61 -0
  133. package/skills/wix-headless/scripts/generate-images.mjs +242 -0
  134. package/skills/wix-headless/scripts/patch-decorative-slots.mjs +67 -43
  135. package/skills/wix-headless/scripts/plan-entity-image-waves.mjs +3 -3
  136. package/skills/wix-headless/scripts/scaffold.sh +113 -27
  137. package/skills/wix-headless/scripts/seed-utilities.sh +50 -12
  138. package/skills/wix-headless/scripts/write-decorative-json.mjs +62 -0
  139. package/skills/wix-manage/SKILL.md +4 -8
  140. package/skills/wix-manage/references/blog/how-to-create-blog-posts.md +2 -0
  141. package/skills/wix-manage/references/cms/cms-data-items-crud.md +4 -0
  142. package/skills/wix-manage/references/cms/cms-references-and-relationships.md +2 -0
  143. package/skills/wix-manage/references/cms/cms-schema-management.md +4 -0
  144. package/skills/wix-manage/references/domains/domain-search-and-purchase.md +10 -7
  145. package/skills/wix-manage/references/ecommerce/api-shipping.md +443 -0
  146. package/skills/wix-manage/references/ecommerce/flow-add-free-shipping.md +5 -6
  147. package/skills/wix-manage/references/ecommerce/flow-fix-coverage-gaps.md +4 -5
  148. package/skills/wix-manage/references/ecommerce/flow-optimize-shipping-rates.md +4 -5
  149. package/skills/wix-manage/references/ecommerce/goal-increase-aov.md +1 -1
  150. package/skills/wix-manage/references/ecommerce/goal-reduce-cart-abandonment.md +1 -2
  151. package/skills/wix-manage/references/ecommerce/guardrail-shipping-health.md +2 -2
  152. package/skills/wix-manage/references/ecommerce/recipe-apply-shipping-recommendations.md +4 -5
  153. package/skills/wix-manage/references/ecommerce/recommend-ecommerce-strategy.md +7 -7
  154. package/skills/wix-manage/references/ecommerce/setup-discount-rules.md +209 -72
  155. package/skills/wix-manage/references/ecommerce/setup-store-pickup-location.md +9 -10
  156. package/skills/wix-manage/references/ecommerce/skill-graph.md +4 -4
  157. package/skills/wix-manage/references/forms/create-form.md +50 -0
  158. package/skills/wix-manage/references/stores/bulk-create-products-with-options.md +2 -0
  159. package/skills/wix-manage/references/stores/create-product-from-image.md +91 -38
  160. package/skills/wix-manage/references/stores/setup-online-store-catalog-v3.md +2 -0
  161. package/skills/wix-app/references/custom-element-widget/default-thumbnail.png +0 -0
  162. package/skills/wix-app/references/data-collection/extension-template.ts +0 -107
  163. package/skills/wix-headless/references/ORCHESTRATION.md +0 -269
  164. package/skills/wix-headless/references/commands/install-app.md +0 -42
  165. package/skills/wix-headless/references/commands/mcp-bootstrap.md +0 -28
  166. package/skills/wix-headless/references/designer/INSTRUCTIONS.md +0 -828
  167. package/skills/wix-headless/references/shared/MCP_PREFIX.md +0 -105
  168. package/skills/wix-headless/scripts/copy-utility-templates.mjs +0 -153
  169. package/skills/wix-headless/scripts/finalize-run-json.mjs +0 -141
  170. package/skills/wix-headless/scripts/init-site-json.mjs +0 -63
  171. package/skills/wix-headless/scripts/preview.sh +0 -45
  172. package/skills/wix-headless/scripts/release.sh +0 -73
  173. package/skills/wix-headless/templates/ecom/components-ecom.css +0 -215
  174. package/skills/wix-manage/references/events/list-events.md +0 -203
  175. /package/skills/wix-headless/{templates → references/astro/templates}/ecom/CartBadge.tsx +0 -0
  176. /package/skills/wix-headless/{templates → references/astro/templates}/ecom/CartView.tsx +0 -0
  177. /package/skills/wix-headless/{templates → references/astro/templates}/ecom/cart.astro +0 -0
  178. /package/skills/wix-headless/{templates → references/astro/templates}/ecom/discounts.ts +0 -0
  179. /package/skills/wix-headless/{templates → references/astro/templates}/ecom/thank-you.astro +0 -0
  180. /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/GiftCardPurchase.tsx +0 -0
  181. /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/_home-teaser-snippet.astro +0 -0
  182. /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/_nav-snippet.astro +0 -0
  183. /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/components-gift-cards.css +0 -0
  184. /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/gift-cards.astro +0 -0
  185. /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/gift-cards.ts +0 -0
  186. /package/skills/wix-headless/{templates → references/astro/templates}/stores/AddToCartButton.tsx +0 -0
  187. /package/skills/wix-headless/{templates → references/astro/templates}/stores/BackInStockForm.tsx +0 -0
  188. /package/skills/wix-headless/{templates → references/astro/templates}/stores/CategoryRail.astro +0 -0
  189. /package/skills/wix-headless/{templates → references/astro/templates}/stores/ProductCard.astro +0 -0
  190. /package/skills/wix-headless/{templates → references/astro/templates}/stores/ProductPurchase.tsx +0 -0
  191. /package/skills/wix-headless/{templates → references/astro/templates}/stores/SeoTags.astro +0 -0
  192. /package/skills/wix-headless/{templates → references/astro/templates}/stores/categories.ts +0 -0
  193. /package/skills/wix-headless/{templates → references/astro/templates}/stores/category/[slug].astro +0 -0
  194. /package/skills/wix-headless/{templates → references/astro/templates}/stores/products/[slug].astro +0 -0
  195. /package/skills/wix-headless/{templates → references/astro/templates}/stores/products/index.astro +0 -0
@@ -1,10 +1,15 @@
1
- # Vertical Schema
1
+ # Vertical Schema (Phase 1 — discovery only)
2
2
 
3
- Each file in `references/verticals/` declares one vertical's contribution to the build flow. The skill reads the user's prompt, loads matching verticals, and assembles the phase-based flow from them.
3
+ Each file in `references/verticals/` declares one vertical's contribution to discovery. The skill reads the user's prompt, loads the matching pack set (per SKILL.md routing table), and assembles the plan from the loaded packs' frontmatter.
4
+
5
+ > **Phase 1 scope.** This schema covers only what discovery needs. Later phases (setup, seed, design system, pages, build) are owned by an upstream skill plus this skill's own templates and `INSTRUCTIONS.md` files:
6
+ > - `@skills/wix-manage` — REST API recipes for site setup and content seeding.
7
+ >
8
+ > Per-pack fields (`packages`, `cmsCollections`, `seed`, `components`, `componentsCss`, `pages`, `creates`, `contributes`, `include`) are not part of this schema — those concerns belong to upstream recipes and per-vertical templates, not this skill's vertical packs.
4
9
 
5
10
  ## File format
6
11
 
7
- Markdown with YAML frontmatter. The frontmatter is the machine-readable config. The markdown body is human-readable docs (what the vertical does, gotchas, examples).
12
+ Markdown with YAML frontmatter. The frontmatter is the machine-readable config; the body is a short human-readable note about what the pack does and where its Phase 2+ implementation lives.
8
13
 
9
14
  ## Frontmatter fields
10
15
 
@@ -12,118 +17,43 @@ Markdown with YAML frontmatter. The frontmatter is the machine-readable config.
12
17
  ---
13
18
  # --- Identity ---
14
19
  name: stores # unique vertical name, matches the filename stem
20
+ description: "Short one-liner — what the pack provides at a glance."
15
21
  triggers: # prompt patterns that route the user to this vertical
16
- - "sell"
17
- - "ecommerce"
18
- - "store"
19
- - "shop"
20
- description: "Full ecommerce: products, cart, checkout, thank-you"
22
+ - "sell" # case-insensitive substrings
23
+ - "ecommerce" # SKILL.md routing table is the source of truth for actual loading;
24
+ # this list is human reference + a fallback signal.
21
25
 
22
26
  # --- Dependencies ---
23
- requires: [] # optional list of vertical names that must be co-loaded
24
- # e.g. stores requires ["ecom"] for cart/checkout
27
+ requires: [] # optional — verticals that must be co-loaded.
28
+ # Example: stores requires ["ecom", "gift-cards"]; gift-cards requires ["ecom"].
29
+ # If a pack with `requires:` is loaded, every name in the list MUST be in the same read batch.
25
30
 
26
31
  # --- Plan contribution ---
27
- features: # human-readable feature blurbs for the plan
32
+ features: # human-readable feature blurbs. Used in DISCOVERY-create.md Step 3 Section B.
28
33
  - name: "Product catalog"
29
34
  description: "Browse products with images, prices, and variants."
30
- - name: "Cart & checkout"
31
- description: "Add to cart, review, check out via Wix's hosted checkout."
32
35
 
33
- # --- Infrastructure ---
34
- apps: # MCP app installs (0 or more per pack)
35
- - name: "Wix Stores"
36
+ # --- Plan Pages table ---
37
+ apps: # zero or one entry per pack. apps[0].name fills the Source column
38
+ - name: "Wix Stores" # of DISCOVERY-create.md Step 3 Section C.
36
39
  appDefId: "215238eb-22a5-4c36-9e7b-e7c08025e04e"
37
- packages: # npm packages to install
38
- - "@wix/stores"
39
- - "@wix/ecom"
40
- - "@wix/redirects"
41
- - "@wix/site"
42
-
43
- # --- Routes this vertical contributes (for plan assembly) ---
44
- # Agent dispatch for rewriting page files lives under the 'pages:' phase entry further down.
45
- routes:
46
- - route: "/products"
40
+
41
+ routes: # routes the pack ships. Each entry → one row in the Pages table.
42
+ - route: "/products" # `route:` value renders verbatim in the Route cell.
47
43
  - route: "/products/[slug]"
48
- name: "Product Detail" # OPTIONAL: user-facing name override for DISCOVERY's Section C table. When omitted, the orchestrator derives the name from the path (/ → "Home"; /thank-you → "Thank You"). Override only when path-derivation produces a poor name (e.g. /products/[slug] would derive to "Products [slug]") OR when the route has no path (ecom's Wix-hosted Checkout uses route: "Hosted by Wix" + name: "Checkout").
49
-
50
- # --- CMS collections this vertical declares (if any) ---
51
- cmsCollections: [] # stores adds none; the cms vertical adds About + FAQ
52
-
53
- # --- Seed phase: data seeding (MCP-only, no design-token dependency) ---
54
- seed:
55
- agentLocation: "references/stores/"
56
- scope: "seed"
57
- description: "Delete default sample products, create on-brand products"
58
- references: ["references/stores/PRODUCT_CATALOG_DATA.md"]
59
-
60
- # --- Components phase: shared React/Astro components (runs after Design System, parallel with other verticals' components) ---
61
- components:
62
- agentLocation: "references/stores/"
63
- scope: "components"
64
- description: "SDK-wiring code and reusable islands (reads design tokens + site.d.ts)"
65
- references: ["references/stores/SHARED_WIRING.md"]
66
- files:
67
- - "src/utils/wix-image.ts"
68
- - "src/utils/analytics.ts"
69
- - "src/components/SeoTags.astro"
70
- - "src/components/AddToCartButton.tsx"
71
- - "src/components/CartBadge.tsx"
72
- - "src/components/ProductPurchase.tsx"
73
- - "src/components/CartView.tsx"
74
-
75
- # --- Pages phase: route files (written ONCE with both visual design and data queries) ---
76
- pages:
77
- - name: "product-pages"
78
- agentLocation: "references/stores/"
79
- scope: "pages-products"
80
- references: ["references/stores/PRODUCT_PAGES.md"]
81
- files:
82
- - "src/pages/products/index.astro"
83
- - "src/pages/products/[slug].astro"
84
- - "src/components/ProductCard.astro"
85
- - name: "cart-checkout"
86
- agentLocation: "references/stores/"
87
- scope: "pages-cart-checkout"
88
- references: ["references/ecom/CART_PAGES.md"]
89
- files:
90
- - "src/pages/cart.astro"
91
- - "src/pages/thank-you.astro"
92
- - name: "home-and-nav"
93
- agentLocation: "references/stores/"
94
- scope: "pages-home-and-nav"
95
- references: ["references/stores/HOME_AND_NAV.md"]
96
- files:
97
- - "src/pages/index.astro (patch)"
98
- - "src/components/Navigation.astro (patch)"
99
-
100
- # --- File ownership declarations ---
101
- # `creates:` lists files this vertical is the sole author of. Schema validator
102
- # enforces single-owner (two verticals claiming the same file → fail at session start)
103
- # and unresolved-import check (if ANY loaded reference imports ../utils/X, some
104
- # vertical must declare it in `creates:` OR it must be a plugin shared utility).
105
- # `contributes:` lists files this vertical co-edits via named markers. The Design
106
- # System phase scaffolds shell files (Navigation.astro, index.astro) with markers;
107
- # each vertical inserts at its marker. Replaces the old `homeSection:` concept —
108
- # contributes[].description is surfaced in the plan shown to the user.
109
- # Skill-level shared utilities (wix-image.ts, analytics.ts, ricos.ts) are NEVER listed here —
110
- # they ship via <SKILL_ROOT>/shared-utilities/ and are copied into projects by
111
- # <SKILL_ROOT>/scripts/seed-utilities.sh during Setup.
112
- creates:
113
- - { file: src/components/AddToCartButton.tsx, phase: components }
114
- - { file: src/pages/products/index.astro, phase: pages }
115
-
116
- contributes:
117
- - file: src/pages/index.astro
118
- marker: "<!-- home:stores -->"
119
- description: "Featured products grid (3–6 items from productsV3.queryProducts)"
120
- - file: src/components/Navigation.astro
121
- marker: "<!-- nav:links -->"
122
- description: "Shop menu link → /products"
123
-
124
- # --- Loading + activation (orthogonal pack-level flags) ---
125
- include: false # if true, the pack loads in every site regardless of triggers/requires (today: only `cms` sets include:true). Default false → loads on trigger match or via another pack's requires.
126
- disabled: false # if true, the pack ships its code but its surfaces (pages, nav, home blocks) are inactive by default — they light up only when the user takes a separate action (today: enabling the matching Wix app from the dashboard, detected by a runtime probe). DISCOVERY.md plan composition (Sections B + C) skips features and routes from disabled packs so the plan never promises a surface the user did not ask for. Today only `gift-cards` sets disabled:true. Default false.
44
+ name: "Product Detail" # OPTIONAL: user-facing name override for the Page cell. When omitted,
45
+ # the orchestrator derives the name from the path (/ → "Home";
46
+ # /thank-you → "Thank You"). Override only when path-derivation
47
+ # produces a poor name (e.g. "/products/[slug]" → "Products [slug]")
48
+ # OR when the route has no path (use the literal string "Hosted by Wix").
49
+
50
+ # --- Activation ---
51
+ disabled: false # if true, the pack ships its code but its surfaces (pages, nav, home blocks) are inactive
52
+ # by default — they light up only when the user takes a separate action (today: enabling
53
+ # the matching Wix app from the dashboard, detected by a runtime probe). DISCOVERY.md plan
54
+ # composition (Sections B + C) skips features and routes from disabled packs so the plan
55
+ # never promises a surface the user did not opt into. Today only `gift-cards` sets
56
+ # `disabled: true`. Default false.
127
57
  ---
128
58
  ```
129
59
 
@@ -131,55 +61,35 @@ disabled: false # if true, the pack ships its code but its
131
61
 
132
62
  | Field | Type | Required | Notes |
133
63
  |-------|------|----------|-------|
134
- | `name` | string | yes | Matches filename stem (e.g., `stores.md` → `name: stores`) |
135
- | `triggers` | string[] | yes unless `include: true` | Case-insensitive substrings matched against user prompt |
136
- | `description` | string | yes | Short label for the plan |
137
- | `features` | object[] | yes | Feature blurbs for the plan's "Features" section |
138
- | `apps` | object[] | no | MCP app installs; `{name, appDefId}` pairs |
139
- | `packages` | string[] | yes | npm packages |
140
- | `routes` | object[] | no | `{route, name?}` — routes the pack ships. Optional `name` overrides the path-derived page name in DISCOVERY's Section C. |
141
- | `cmsCollections` | object[] | no | Collections this vertical adds |
142
- | `seed` | object | no | Seed-phase agent config; omit if the vertical has no seeding |
143
- | `components` | object | no | Components-phase agent config; omit if none |
144
- | `pages` | object[] | no | Pages-phase agent dispatch (one entry per page-rewrite sub-scope) |
145
- | `creates` | object[] | no | `{file, phase}` — files this vertical is sole author of. Schema validator enforces single-owner + unresolved-import check. |
146
- | `contributes` | object[] | no | `{file, marker, description}` — files this vertical co-edits via named markers. |
147
- | `include` | bool | no | If true, the pack loads in every site regardless of triggers/requires (today: only `cms`). Controls **loading**. |
148
- | `disabled` | bool | no | If true, the pack ships its code but its surfaces are inactive by default — they light up only via a separate user action (today: enabling the matching Wix app from the dashboard; the pack's runtime probe detects it). DISCOVERY plan composition skips disabled packs from Sections B + C. Today only `gift-cards`. Controls **activation**. |
149
-
150
- ### `include` vs `disabled` — orthogonal axes
151
-
152
- The two flags answer different questions. Don't conflate them:
153
-
154
- - **`include`** — *Is this pack in the loaded set?* Default: load when triggers match or another pack pulls it in via `requires:`. `include: true` overrides that and forces the pack to load in every site. Used by `cms` (every site needs About/FAQ).
155
- - **`disabled`** — *Do this pack's surfaces appear without further user action?* Default: yes — the moment the pack is loaded, its routes and contributions are live. `disabled: true` says no — the code ships, but a separate runtime check (today: a dashboard-app probe) decides whether to render. Used by `gift-cards` (the surface only appears once the user enables the Wix Gift Card app from the dashboard).
156
-
157
- A pack can be `include: true, disabled: true` (always loaded but never auto-active) or any other combination — they don't conflict.
158
-
159
- ## How the skill uses the vertical
160
-
161
- 1. **Discovery step**: scan loaded verticals for `features`, `routes`, `cmsCollections` → assemble plan markdown.
162
- 2. **Setup phase**: collect `apps`, `packages` → one MCP call per app, one `npm install` with merged package list.
163
- 3. **Seed phase**: for each vertical with a `seed` block, dispatch `seed.agent + scope`.
164
- 4. **Design System phase**: Design System agent writes global styling — `@theme` token contract + a small set of always-required global semantic classes (compound patterns, interactive states, JS targets). Layout/spacing/typography flows through tokens-as-utilities at call sites; see `references/shared/STYLING.md`.
165
- 5. **Components phase**: for each vertical with a `components` block, dispatch `components.agent + scope` (parallel).
166
- 6. **Pages phase**: for each vertical, launch one agent per `pages[*]` entry (parallel).
64
+ | `name` | string | yes | Matches filename stem (`stores.md` → `name: stores`) |
65
+ | `description` | string | yes | One-line label — what the pack provides |
66
+ | `triggers` | string[] | yes (empty allowed for transitive-only packs) | Case-insensitive substrings. SKILL.md routing table is the actual source of truth for what gets loaded; this is human reference. |
67
+ | `requires` | string[] | no | Verticals that must be co-loaded in the same read batch |
68
+ | `features` | object[] | yes | `{name, description}` — used in DISCOVERY-create.md Step 3 Section B |
69
+ | `apps` | object[] | no | Zero or one entry. `apps[0].name` fills the Source column of the Pages table; absence implies built-in (cms uses `"CMS (builtin)"` literal). |
70
+ | `routes` | object[] | no | `{route, name?}` — one row per entry in the Pages table |
71
+ | `disabled` | bool | no | If true, the pack's surfaces are inactive by default. DISCOVERY plan skips disabled packs from Sections B + C. Today only `gift-cards`. Default false. |
72
+
73
+ ## How discovery uses the pack
74
+
75
+ 1. The orchestrator reads the user prompt and the SKILL.md routing table to determine the resolved pack set (top-level + `requires:` chain + always-on `cms`).
76
+ 2. It reads every pack file in the resolved set in **one concurrent batch**.
77
+ 3. From each pack's frontmatter it assembles:
78
+ - **Section B (interactive only)** — `features[].name` + `features[].description`, skipping packs with `disabled: true`.
79
+ - **Section C — Pages table** — one row per entry in `routes:` from non-disabled packs. Page cell uses `name:` override if present, else derives from the `route:` path. Source cell uses `apps[0].name`; for transitive packs, walk up the `requires:` chain to the top-level puller and use ITS `apps[0].name`. For `cms`, use the literal `"CMS (builtin)"`.
80
+ 4. Discovery never reads anything else from the pack file. Phase 2+ implementation work lives in the upstream skills.
167
81
 
168
82
  ## Adding a new vertical
169
83
 
170
- 1. Create `<name>.md` in this directory with frontmatter per the schema above.
171
- 2. Create `references/<name>/` with `INSTRUCTIONS.md` and `references/`.
172
- 3. No changes needed to `SKILL.md` or other verticals.
173
-
174
- The skill discovers verticals by listing this directory. No registration step.
84
+ 1. Create `<name>.md` in this directory with the frontmatter above.
85
+ 2. Add a row to SKILL.md's routing table with the resolved pack set (top-level + transitive `requires:` + `cms`).
86
+ 3. No other registration needed.
175
87
 
176
88
  ## Validation (informal)
177
89
 
178
- The skill should sanity-check vertical frontmatter at load time:
179
- - `name` matches filename stem
180
- - `packages` non-empty (empty would mean nothing to install)
181
- - If `seed` is declared, `seed.agentLocation` exists on disk
182
- - If `components` or `pages` declared, their agent locations exist on disk
183
- - All declared `apps`, `routes`, `creates`, `contributes` paths are valid and don't collide with another loaded vertical's owned paths
90
+ Sanity-check at session start:
91
+ - `name` matches filename stem.
92
+ - Every name in `requires:` resolves to a sibling file in this directory.
93
+ - Every `route:` is either a `/`-prefixed path OR the literal string `"Hosted by Wix"`.
184
94
 
185
- If validation fails, fail loud — surface the error to the user. A malformed vertical breaking the whole flow is better than silently dropping it.
95
+ If validation fails, fail loud — surface the error and stop. A malformed pack breaking the whole flow is better than silently dropping it.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: blog
3
+ description: "Blog — post listing, post detail with rich content, RSS feed, sitemap."
3
4
  triggers: ["blog", "publish articles", "write posts", "content site", "editorial", "journal", "newsletter"]
4
- description: "Blog — post listing, post detail with rich content, RSS feed, sitemap"
5
5
 
6
6
  features:
7
7
  - name: "Blog"
@@ -13,113 +13,19 @@ apps:
13
13
  - name: "Wix Blog"
14
14
  appDefId: "14bcded7-0066-7c35-14d7-466cb3f09103"
15
15
 
16
- packages:
17
- - "@wix/blog"
18
- - "@wix/ricos"
19
- - "@astrojs/rss"
20
- - "@astrojs/sitemap"
21
-
22
16
  routes:
23
17
  - route: "/blog"
24
18
  - route: "/blog/[slug]"
25
19
  name: "Blog Post" # path-derivation would produce "Blog [slug]" — override with the user-facing label
26
20
  - route: "/rss.xml"
27
21
 
28
- cmsCollections: []
29
-
30
- seed:
31
- agentLocation: "references/blog/"
32
- scope: "seed"
33
- description: "Ensure Blog app is installed, seed 3 on-brand blog posts via MCP with rich Ricos content"
34
- references: ["references/blog/BLOG_CONTENT.md"]
35
-
36
- components:
37
- agentLocation: "references/blog/"
38
- scope: "components"
39
- description: "Blog service module (queryBlogPosts, getPostBySlug), RicosViewer React wrapper, site constants, astro.config sitemap integration"
40
- references: ["references/blog/BLOG_SETUP.md"]
41
- files:
42
- - "src/lib/blog.ts"
43
- - "src/components/RicosViewer.tsx"
44
- - "src/consts.ts"
45
- - "astro.config.mjs (patch — add site property and sitemap integration)"
46
-
47
- pages:
48
- - name: "blog-pages"
49
- agentLocation: "references/blog/"
50
- scope: "pages"
51
- description: "Wire blog listing + post detail pages to @wix/blog SDK, add RSS feed endpoint, BlogPost layout, SEO head, date formatting, patch home page latest-posts section"
52
- references: ["references/blog/BLOG_PAGES.md"]
53
- files:
54
- - "src/pages/blog/index.astro"
55
- - "src/pages/blog/[...slug].astro"
56
- - "src/pages/rss.xml.js"
57
- - "src/layouts/BlogPost.astro"
58
- - "src/components/BaseHead.astro"
59
- - "src/components/FormattedDate.astro"
60
- - "src/pages/index.astro (patch — latest-posts section only)"
61
-
62
- creates:
63
- - { file: src/lib/blog.ts, phase: components }
64
- - { file: src/components/RicosViewer.tsx, phase: components }
65
- - { file: src/consts.ts, phase: components }
66
- - { file: src/pages/blog/index.astro, phase: pages }
67
- - { file: src/pages/blog/[...slug].astro, phase: pages }
68
- - { file: src/pages/rss.xml.js, phase: pages }
69
- - { file: src/layouts/BlogPost.astro, phase: pages }
70
- - { file: src/components/BaseHead.astro, phase: pages }
71
- - { file: src/components/FormattedDate.astro, phase: pages }
72
-
73
- contributes:
74
- - file: astro.config.mjs
75
- marker: "<!-- config:sitemap -->"
76
- description: "site property + @astrojs/sitemap integration"
77
- - file: src/pages/index.astro
78
- marker: "<!-- home:blog -->"
79
- description: "Latest 3 posts grid (cover images, titles, dates, excerpts) from queryBlogPosts(3)"
80
- - file: src/components/Navigation.astro
81
- marker: "<!-- nav:links -->"
82
- description: "Blog menu link → /blog"
83
-
84
- include: false
85
22
  disabled: false
86
23
  ---
87
24
 
88
25
  # Blog Pack
89
26
 
90
- Blog vertical for content-driven sites. Loaded when the user's prompt mentions blogging, publishing, or editorial content.
91
-
92
- ## Phase decomposition
93
-
94
- | Scope | Phase | Files | Depends on |
95
- |-------|-------|-------|------------|
96
- | `seed` | Phase 1 — Step 3 (bg) | None (MCP only) | MCP connection |
97
- | `components` | Phase 3 — Step 4.5 (bg) | blog.ts, RicosViewer.tsx, consts.ts, astro.config.mjs | Styling contract |
98
- | `blog-pages` | Phase 4 — Step 7 (bg) | blog/index.astro, blog/[...slug].astro, rss.xml.js, BlogPost.astro, BaseHead.astro, FormattedDate.astro, index.astro (patch) | Phase 2 Design System + Phase 1 Seed post data |
99
-
100
- Phase 3 Components runs in the background from Step 4.5 through Phase 4. Phase 4 blog-pages dispatches in Step 7 after Phase 3 + Phase 1 Seed complete — it needs the React islands written by Phase 3 and the seeded post slugs from Phase 1.
101
-
102
- RSS feed generation (`rss.xml.js`) is included in the blog-pages scope rather than a separate scope — it's ~15 lines, has no design dependency, and doesn't justify its own agent dispatch.
103
-
104
- ## Known failure modes (propagate to agent prompts)
105
-
106
- | Wrong | Right |
107
- |-------|-------|
108
- | `import { items } from "@wix/data"` for blog queries | `import { posts } from "@wix/blog"` — use the Blog SDK |
109
- | `<article set:html={post.content} />` | `<RicosViewer client:only="react" content={post.richContent} />` — content is Ricos format |
110
- | Skip `wixMetadata` export on `[...slug].astro` | Required for Wix page routing and SEO |
111
- | `media.wixMedia.image` as raw URL | `media.getImageUrl(item.media.wixMedia.image).url` — must resolve |
112
- | Query posts without `RICH_CONTENT` fieldset | Always request `RICH_CONTENT` or `post.richContent` is undefined |
113
- | `const { tag } = await tags.getTag(id)` | `const tag = await tags.getTag(id)` — returns directly (unlike `getCategory()`) |
114
- | Scoped `<style>` for RicosViewer overrides | `<style is:global>` — React islands don't inherit scoped Astro styles |
115
- | Skip `.ricos-content` color overrides | Ricos CSS hardcodes `color: rgb(0, 0, 0)` — invisible on dark themes without overrides |
116
-
117
- ## Images
118
-
119
- Cover images for blog posts are generated by the shared image agent (`image-phase-2-entity` scope), not by blog agents. The image agent PATCHes cover images onto post records after Phase 1 Seed creates them. Phase 4 agents query posts and render `post.media` — the image URL flows through the post record.
120
-
121
- ## References
27
+ Loaded when the user's prompt mentions blogging, publishing, or editorial content.
122
28
 
123
- - `references/blog/BLOG_CONTENT.md` — Phase 1: MCP post seeding
124
- - `references/blog/BLOG_SETUP.md` — Phase 3 Components: service module, RicosViewer, config
125
- - `references/blog/BLOG_PAGES.md` — Phase 2 blog-pages: listing, detail, RSS, layout, SEO
29
+ > **Discovery contract.** Phase 1 reads only the frontmatter above. Phase 2+ implementation (post seeding, RSS, page composition, ricos rendering) lives in an upstream skill plus this skill's own `references/astro/blog/` + `references/blog/INSTRUCTIONS.md`:
30
+ >
31
+ > - `@skills/wix-manage` ships the seeding recipe — `references/blog/how-to-create-blog-posts.md`.
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: bookings
3
+ description: "Service-based booking — services catalog, availability calendar, and booking flow via Wix Bookings."
4
+ triggers: ["booking", "appointment", "schedule", "reserve", "class", "session", "consult", "therapy", "lesson", "coaching", "trainer", "tutor", "salon", "spa", "clinic"]
5
+ requires: []
6
+
7
+ features:
8
+ - name: "Services catalog"
9
+ description: "Browse bookable services (appointments or group classes) with descriptions, duration, pricing, and instructor info."
10
+ - name: "Online booking"
11
+ description: "Pick an available time slot, complete a booking form, and receive confirmation — all without leaving your site."
12
+ - name: "Group classes"
13
+ description: "Capacity-aware class sign-up with party size, the leading instructor per session, and a waitlist when a session is full."
14
+ - name: "Manage booking"
15
+ description: "View and cancel a booking from the confirmation page or a shared manage link, no account login required."
16
+
17
+ apps:
18
+ - name: "Wix Bookings"
19
+ appDefId: "13d21c63-b5ec-5912-8397-c3a5ddb27a97"
20
+
21
+ routes:
22
+ - route: "/services"
23
+ - route: "/services/[slug]"
24
+ name: "Service Detail"
25
+ - route: "/booking-confirmation"
26
+ name: "Booking Confirmation"
27
+ - route: "/manage-booking"
28
+ name: "Manage Booking"
29
+
30
+ disabled: false
31
+ ---
32
+
33
+ # Bookings Pack
34
+
35
+ Loaded when the user's prompt implies offering appointments, classes, or sessions.
36
+
37
+ > **Discovery contract.** Phase 1 reads only the frontmatter above to compose the plan's Pages table. Phase 2+ implementation (seeding, page composition, theming) lives in this skill's own `references/astro/templates/bookings/` + `references/bookings/INSTRUCTIONS.md`.
38
+ >
39
+ > - Seed recipe: `<SKILL_ROOT>/references/bookings/SERVICES_DATA.md` (service creation via Wix Bookings REST API).
40
+ >
41
+ > No per-pack `seed`, `components`, `componentsCss`, or `pages` blocks live in this skill anymore.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: cms
3
- triggers: [] # not trigger-based — always loaded
4
- description: "Content pages — About + FAQ managed via Wix CMS"
3
+ description: "Content pages — Home, About, FAQ managed via Wix CMS. Always loaded."
4
+ triggers: [] # not trigger-based — always loaded (every site needs About/FAQ)
5
5
 
6
6
  features:
7
7
  - name: "About (CMS-based)"
@@ -9,113 +9,22 @@ features:
9
9
  - name: "FAQ (CMS-based)"
10
10
  description: "Common questions and answers about your products. Managed from the dashboard's Content Manager."
11
11
 
12
- apps: [] # CMS is built-in, no app install
13
-
14
- packages:
15
- - "@wix/data"
16
- - "@wix/wix-data-items-sdk" # provides the `items` namespace (query/insert/etc.). @wix/data 1.0.448 stopped re-exporting it; pages import from here directly. See references/cms/CMS_FOUNDATIONS.md.
17
- - "@wix/essentials"
12
+ apps: [] # CMS is built-in, no app install
18
13
 
19
14
  routes:
20
15
  - route: "/"
21
16
  - route: "/about"
22
17
  - route: "/faq"
23
18
 
24
- cmsCollections:
25
- - name: "about-content"
26
- fields:
27
- - { name: "heading", type: "string", required: true }
28
- - { name: "body", type: "rich-text", required: true }
29
- - { name: "image", type: "image", required: false }
30
- - name: "faq"
31
- fields:
32
- - { name: "question", type: "string", required: true }
33
- - { name: "answer", type: "rich-text", required: true }
34
- - { name: "sortOrder", type: "number", required: true }
35
-
36
- seed:
37
- agentLocation: "references/cms/"
38
- scope: "seed"
39
- description: "Create about-content + faq collections, seed 1 about-content item and 4–6 contextual FAQ items based on the business type"
40
- references: ["references/cms/CMS_FOUNDATIONS.md"]
41
-
42
- # CMS has no "components" — page designers write CMS-reading pages directly using
43
- # @wix/data queries inline. So the only post-design work is the pages scope below.
44
- components: null
45
-
46
- pages:
47
- - name: "cms-pages"
48
- agentLocation: "references/cms/"
49
- scope: "pages"
50
- description: "Swap placeholder copy in About + FAQ pages for live @wix/data queries"
51
- references: ["references/cms/CMS_FOUNDATIONS.md"]
52
- files:
53
- - "src/pages/about.astro"
54
- - "src/pages/faq.astro"
55
-
56
- creates:
57
- - { file: src/pages/about.astro, phase: pages }
58
- - { file: src/pages/faq.astro, phase: pages }
59
-
60
- # CMS does NOT contribute to the home page. The designer owns the brand-story
61
- # section directly (writes its own placeholder heading/paragraph). Historically
62
- # this pack declared a home:cms marker but no phase patched it, so the
63
- # designer's placeholder copy shipped as-is to preview. Dropping the marker
64
- # makes that behavior explicit.
65
- contributes: []
66
-
67
- include: true # always loaded — every site gets About + FAQ content pages
68
19
  disabled: false
69
20
  ---
70
21
 
71
22
  # CMS Pack
72
23
 
73
- Always loaded. Provides content pages (Home, About, FAQ) editable from the Wix dashboard's Content Manager.
74
-
75
- ## Why always-include
76
-
77
- Every site needs About and FAQ content. The CMS collections give the user a dashboard-editable surface, so non-technical owners can update copy without touching code.
78
-
79
- ## Pages
80
-
81
- - **Home** (`/`) — designed by `designer-home`. The designer writes the brand-story section directly (no CMS-driven home contribution; see `contributes: []` in frontmatter above for why).
82
- - **About** (`/about`) — content from `about-content` CMS collection
83
- - **FAQ** (`/faq`) — content from `faq` CMS collection
84
-
85
- ## Phase 1
86
-
87
- One agent creates both collections and seeds them:
88
- - `about-content` — one item (heading, body, optional image) with placeholder copy based on business context
89
- - `faq` — 4–6 items tailored to the business type (e.g., shipping, returns, sizing, care instructions)
90
-
91
- The agent tailors FAQ content to the vertical. For stores: shipping/returns/sizing. For future verticals: different sets.
92
-
93
- ## Phase 2 pattern
94
-
95
- About and FAQ pages read their CMS content inline via `@wix/data`:
96
-
97
- ```astro
98
- ---
99
- import * as items from "@wix/wix-data-items-sdk";
100
- const faqs = await items
101
- .query("faq")
102
- .ascending("sortOrder")
103
- .find()
104
- .then(r => r.items);
105
- ---
106
- ```
107
-
108
- > **Why not `import { items } from "@wix/data"`?** That's the documented Wix headless pattern but `@wix/data` 1.0.448 dropped the `items` re-export — only sub-namespaces (`backups`, `collections`, `permissions`, …) remain, and the documented form fails the build with `'items' is not exported by '@wix/data'`. The actual `items` API lives in `@wix/wix-data-items-sdk` (which `@wix/data` depends on transitively). Importing from there directly works on every current `@wix/data` version.
109
-
110
- No React islands required for static content pages — they SSR from data.
111
-
112
- ## Contract
113
-
114
- This pack contributes contract keys for content-page class names. Other packs do not typically overlap with these keys.
115
-
116
- The home page's `heroSection` and `brandStory` keys are consumed by `designer-home`, which composes the home page from every loaded pack's `homeSection` snippet.
117
-
118
- ## References
24
+ Always loaded. Provides Home + About + FAQ content pages editable from the Wix dashboard's Content Manager.
119
25
 
120
- - `references/cms/CMS_FOUNDATIONS.md` — existing CMS reference (data seeding + page wiring)
121
- - `references/cms/FAQ_KNOWLEDGE_BASE.md` — FAQ patterns
26
+ > **Discovery contract.** Phase 1 reads only the frontmatter above. Phase 2+ implementation (collection schemas, item seeding, page composition) lives in an upstream skill plus this skill's own `references/astro/cms/` + `references/cms/INSTRUCTIONS.md`:
27
+ >
28
+ > - `@skills/wix-manage` ships the recipes — `references/cms/cms-schema-management.md`, `cms-data-items-crud.md`, `cms-references-and-relationships.md`.
29
+ >
30
+ > Collection names like `about-content` / `faq` are an implementation detail the seeder picks at run time — they are not pre-approved by the user in the discovery plan.