@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.
- package/README.md +5 -9
- package/package.json +1 -1
- package/skills/wix-app/SKILL.md +51 -42
- package/skills/wix-app/references/BACKEND_EVENT.md +10 -65
- package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +101 -406
- package/skills/wix-app/references/DASHBOARD_MENU_PLUGIN.md +14 -111
- package/skills/wix-app/references/DASHBOARD_MODAL.md +56 -205
- package/skills/wix-app/references/DASHBOARD_PAGE.md +19 -98
- package/skills/wix-app/references/DASHBOARD_PLUGIN.md +6 -108
- package/skills/wix-app/references/DATA_COLLECTION.md +113 -198
- package/skills/wix-app/references/EMBEDDED_SCRIPT.md +41 -268
- package/skills/wix-app/references/EXTENSION_REGISTRATION.md +27 -76
- package/skills/wix-app/references/SERVICE_PLUGIN.md +35 -188
- package/skills/wix-app/references/SITE_PLUGIN.md +8 -92
- package/skills/wix-app/references/STORES_VERSIONING.md +1 -0
- package/skills/wix-app/references/backend-event/COMMON-EVENTS.md +0 -44
- package/skills/wix-app/references/custom-element-widget/SETTINGS_PANEL.md +19 -330
- package/skills/wix-app/references/dashboard-menu-plugin/bookings-slots.md +0 -12
- package/skills/wix-app/references/dashboard-menu-plugin/ecommerce-slots.md +7 -0
- package/skills/wix-app/references/dashboard-menu-plugin/restaurants-slots.md +0 -12
- package/skills/wix-app/references/dashboard-plugin/SLOTS.md +3 -15
- package/skills/wix-app/references/service-plugin/ADDITIONAL-FEES.md +2 -18
- package/skills/wix-app/references/service-plugin/BOOKINGS-STAFF-SORTING.md +2 -42
- package/skills/wix-app/references/service-plugin/DISCOUNT-TRIGGERS.md +1 -11
- package/skills/wix-app/references/service-plugin/GIFT-CARDS.md +1 -11
- package/skills/wix-app/references/service-plugin/PAYMENT-SETTINGS.md +2 -40
- package/skills/wix-app/references/service-plugin/SHIPPING-RATES.md +2 -19
- package/skills/wix-app/references/service-plugin/VALIDATIONS.md +2 -18
- package/skills/wix-app/references/site-plugin/SLOTS.md +17 -68
- package/skills/wix-design-system/SKILL.md +4 -0
- package/skills/wix-headless/SKILL.md +131 -386
- package/skills/wix-headless/references/BUILD-astro.md +246 -0
- package/skills/wix-headless/references/BUILD-own-build.md +167 -0
- package/skills/wix-headless/references/BUILD.md +105 -0
- package/skills/wix-headless/references/DESIGN_SYSTEM.md +175 -0
- package/skills/wix-headless/references/DISCOVERY-connect.md +55 -0
- package/skills/wix-headless/references/DISCOVERY-create.md +238 -0
- package/skills/wix-headless/references/DISCOVERY.md +50 -306
- package/skills/wix-headless/references/PLAN-connect.md +19 -0
- package/skills/wix-headless/references/PLAN-create.md +17 -0
- package/skills/wix-headless/references/PLAN.md +92 -0
- package/skills/wix-headless/references/SEED.md +214 -0
- package/skills/wix-headless/references/SETUP.md +73 -248
- package/skills/wix-headless/references/{blog → astro/blog}/BLOG_PAGES.md +6 -5
- package/skills/wix-headless/references/{blog → astro/blog}/BLOG_SETUP.md +2 -2
- package/skills/wix-headless/references/astro/bookings/COMPONENTS.md +337 -0
- package/skills/wix-headless/references/astro/bookings/SERVICES_PAGES.md +428 -0
- package/skills/wix-headless/references/astro/cms/CMS_FOUNDATIONS.md +214 -0
- package/skills/wix-headless/references/{cms → astro/cms}/FAQ_KNOWLEDGE_BASE.md +14 -12
- package/skills/wix-headless/references/{cms → astro/cms}/PORTFOLIO.md +15 -16
- package/skills/wix-headless/references/{cms → astro/cms}/RESOURCE_LIBRARY.md +13 -15
- package/skills/wix-headless/references/{cms → astro/cms}/TEAM_DIRECTORY.md +11 -11
- package/skills/wix-headless/references/astro/designer/INSTRUCTIONS.md +354 -0
- package/skills/wix-headless/references/{ecom → astro/ecom}/CART_PAGES.md +8 -9
- package/skills/wix-headless/references/{ecom → astro/ecom}/CART_WIRING.md +6 -6
- package/skills/wix-headless/references/{ecom → astro/ecom}/COMPONENTS_CSS.md +6 -6
- package/skills/wix-headless/references/{forms → astro/forms}/CONTACT_FORM.md +18 -32
- package/skills/wix-headless/references/{gift-cards → astro/gift-cards}/COMPONENTS.md +3 -3
- package/skills/wix-headless/references/{gift-cards → astro/gift-cards}/PAGES.md +2 -2
- package/skills/wix-headless/references/{stores → astro/stores}/BACK_IN_STOCK.md +7 -7
- package/skills/wix-headless/references/{stores → astro/stores}/CATEGORY_PAGES.md +12 -13
- package/skills/wix-headless/references/{stores → astro/stores}/COMPONENTS_CSS.md +7 -7
- package/skills/wix-headless/references/{stores → astro/stores}/HOME_AND_NAV.md +11 -9
- package/skills/wix-headless/references/{stores → astro/stores}/PRODUCT_PAGES.md +11 -9
- package/skills/wix-headless/references/{stores → astro/stores}/SHARED_WIRING.md +8 -7
- package/skills/wix-headless/references/astro/templates/Footer.astro +27 -0
- package/skills/wix-headless/references/astro/templates/Layout.astro +132 -0
- package/skills/wix-headless/references/astro/templates/Navigation.astro +38 -0
- package/skills/wix-headless/references/astro/templates/astro.config.mjs +41 -0
- package/skills/wix-headless/references/astro/templates/bookings/AvailabilityCalendar.tsx +218 -0
- package/skills/wix-headless/references/astro/templates/bookings/BookingForm.tsx +194 -0
- package/skills/wix-headless/references/astro/templates/bookings/ManageBooking.tsx +84 -0
- package/skills/wix-headless/references/astro/templates/bookings/SeoTags.astro +25 -0
- package/skills/wix-headless/references/astro/templates/bookings/ServiceBookingFlow.tsx +50 -0
- package/skills/wix-headless/references/astro/templates/bookings/ServiceCard.astro +45 -0
- package/skills/wix-headless/references/astro/templates/bookings/api/confirm-booking.ts +34 -0
- package/skills/wix-headless/references/astro/templates/bookings/api/waitlist.ts +74 -0
- package/skills/wix-headless/references/astro/templates/bookings/booking-confirmation.astro +111 -0
- package/skills/wix-headless/references/astro/templates/bookings/components-bookings.css +413 -0
- package/skills/wix-headless/references/astro/templates/bookings/manage-booking.astro +76 -0
- package/skills/wix-headless/references/astro/templates/bookings/services/[slug].astro +81 -0
- package/skills/wix-headless/references/astro/templates/bookings/services/index.astro +65 -0
- package/skills/wix-headless/references/astro/templates/ecom/components-ecom.css +302 -0
- package/skills/wix-headless/references/astro/templates/global.css +286 -0
- package/skills/wix-headless/references/astro/templates/index.astro +56 -0
- package/skills/wix-headless/{templates → references/astro/templates}/stores/back-in-stock.ts +1 -1
- package/skills/wix-headless/{templates → references/astro/templates}/stores/components-stores.css +138 -33
- package/skills/wix-headless/references/blog/BLOG_CONTENT.md +28 -19
- package/skills/wix-headless/references/blog/INSTRUCTIONS.md +6 -6
- package/skills/wix-headless/references/bookings/INSTRUCTIONS.md +106 -0
- package/skills/wix-headless/references/bookings/SERVICES_DATA.md +295 -0
- package/skills/wix-headless/references/cms/CMS_FOUNDATIONS.md +35 -232
- package/skills/wix-headless/references/cms/INSTRUCTIONS.md +39 -8
- package/skills/wix-headless/references/commands/known-apps.json +2 -1
- package/skills/wix-headless/references/custom/CONNECTION_PLAN.md +142 -0
- package/skills/wix-headless/references/custom/INSTRUCTIONS.md +88 -0
- package/skills/wix-headless/references/custom/blog/WIRING.md +52 -0
- package/skills/wix-headless/references/custom/bookings/WIRING.md +88 -0
- package/skills/wix-headless/references/custom/cms/WIRING.md +97 -0
- package/skills/wix-headless/references/custom/ecom/WIRING.md +67 -0
- package/skills/wix-headless/references/custom/forms/WIRING.md +101 -0
- package/skills/wix-headless/references/custom/stores/WIRING.md +80 -0
- package/skills/wix-headless/references/ecom/INSTRUCTIONS.md +12 -12
- package/skills/wix-headless/references/forms/INSTRUCTIONS.md +6 -6
- package/skills/wix-headless/references/gift-cards/INSTRUCTIONS.md +13 -13
- package/skills/wix-headless/references/images/INSTRUCTIONS.md +58 -60
- package/skills/wix-headless/references/seed-recipes.md +49 -0
- package/skills/wix-headless/references/shared/AGENTS_MD.md +47 -0
- package/skills/wix-headless/references/shared/AUTHENTICATION.md +108 -0
- package/skills/wix-headless/references/shared/BUILD_NOISE.md +2 -2
- package/skills/wix-headless/references/shared/DESIGN_MD.md +85 -0
- package/skills/wix-headless/references/shared/DOCS_SEARCH.md +41 -0
- package/skills/wix-headless/references/shared/IMAGE_GENERATION.md +40 -39
- package/skills/wix-headless/references/shared/IMPLEMENTER.md +92 -41
- package/skills/wix-headless/references/shared/PRODUCTION_SHARP_EDGES.md +3 -3
- package/skills/wix-headless/references/shared/RETURN_CONTRACT.md +32 -312
- package/skills/wix-headless/references/shared/STYLING.md +48 -21
- package/skills/wix-headless/references/stores/INSTRUCTIONS.md +59 -29
- package/skills/wix-headless/references/stores/PRODUCT_CATALOG_DATA.md +31 -28
- package/skills/wix-headless/references/verticals/_schema.json +31 -117
- package/skills/wix-headless/references/verticals/_schema.md +60 -150
- package/skills/wix-headless/references/verticals/blog.md +5 -99
- package/skills/wix-headless/references/verticals/bookings.md +41 -0
- package/skills/wix-headless/references/verticals/cms.md +9 -100
- package/skills/wix-headless/references/verticals/ecom.md +6 -77
- package/skills/wix-headless/references/verticals/forms.md +5 -85
- package/skills/wix-headless/references/verticals/gift-cards.md +6 -103
- package/skills/wix-headless/references/verticals/stores.md +10 -144
- package/skills/wix-headless/scripts/check-manifest.mjs +148 -11
- package/skills/wix-headless/scripts/compose.mjs +540 -0
- package/skills/wix-headless/scripts/emit-design-tokens.mjs +136 -53
- package/skills/wix-headless/scripts/flatten.sh +61 -0
- package/skills/wix-headless/scripts/generate-images.mjs +242 -0
- package/skills/wix-headless/scripts/patch-decorative-slots.mjs +67 -43
- package/skills/wix-headless/scripts/plan-entity-image-waves.mjs +3 -3
- package/skills/wix-headless/scripts/scaffold.sh +113 -27
- package/skills/wix-headless/scripts/seed-utilities.sh +50 -12
- package/skills/wix-headless/scripts/write-decorative-json.mjs +62 -0
- package/skills/wix-manage/SKILL.md +4 -8
- package/skills/wix-manage/references/blog/how-to-create-blog-posts.md +2 -0
- package/skills/wix-manage/references/cms/cms-data-items-crud.md +4 -0
- package/skills/wix-manage/references/cms/cms-references-and-relationships.md +2 -0
- package/skills/wix-manage/references/cms/cms-schema-management.md +4 -0
- package/skills/wix-manage/references/domains/domain-search-and-purchase.md +10 -7
- package/skills/wix-manage/references/ecommerce/api-shipping.md +443 -0
- package/skills/wix-manage/references/ecommerce/flow-add-free-shipping.md +5 -6
- package/skills/wix-manage/references/ecommerce/flow-fix-coverage-gaps.md +4 -5
- package/skills/wix-manage/references/ecommerce/flow-optimize-shipping-rates.md +4 -5
- package/skills/wix-manage/references/ecommerce/goal-increase-aov.md +1 -1
- package/skills/wix-manage/references/ecommerce/goal-reduce-cart-abandonment.md +1 -2
- package/skills/wix-manage/references/ecommerce/guardrail-shipping-health.md +2 -2
- package/skills/wix-manage/references/ecommerce/recipe-apply-shipping-recommendations.md +4 -5
- package/skills/wix-manage/references/ecommerce/recommend-ecommerce-strategy.md +7 -7
- package/skills/wix-manage/references/ecommerce/setup-discount-rules.md +209 -72
- package/skills/wix-manage/references/ecommerce/setup-store-pickup-location.md +9 -10
- package/skills/wix-manage/references/ecommerce/skill-graph.md +4 -4
- package/skills/wix-manage/references/forms/create-form.md +50 -0
- package/skills/wix-manage/references/stores/bulk-create-products-with-options.md +2 -0
- package/skills/wix-manage/references/stores/create-product-from-image.md +91 -38
- package/skills/wix-manage/references/stores/setup-online-store-catalog-v3.md +2 -0
- package/skills/wix-app/references/custom-element-widget/default-thumbnail.png +0 -0
- package/skills/wix-app/references/data-collection/extension-template.ts +0 -107
- package/skills/wix-headless/references/ORCHESTRATION.md +0 -269
- package/skills/wix-headless/references/commands/install-app.md +0 -42
- package/skills/wix-headless/references/commands/mcp-bootstrap.md +0 -28
- package/skills/wix-headless/references/designer/INSTRUCTIONS.md +0 -828
- package/skills/wix-headless/references/shared/MCP_PREFIX.md +0 -105
- package/skills/wix-headless/scripts/copy-utility-templates.mjs +0 -153
- package/skills/wix-headless/scripts/finalize-run-json.mjs +0 -141
- package/skills/wix-headless/scripts/init-site-json.mjs +0 -63
- package/skills/wix-headless/scripts/preview.sh +0 -45
- package/skills/wix-headless/scripts/release.sh +0 -73
- package/skills/wix-headless/templates/ecom/components-ecom.css +0 -215
- package/skills/wix-manage/references/events/list-events.md +0 -203
- /package/skills/wix-headless/{templates → references/astro/templates}/ecom/CartBadge.tsx +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/ecom/CartView.tsx +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/ecom/cart.astro +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/ecom/discounts.ts +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/ecom/thank-you.astro +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/GiftCardPurchase.tsx +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/_home-teaser-snippet.astro +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/_nav-snippet.astro +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/components-gift-cards.css +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/gift-cards.astro +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/gift-cards/gift-cards.ts +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/stores/AddToCartButton.tsx +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/stores/BackInStockForm.tsx +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/stores/CategoryRail.astro +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/stores/ProductCard.astro +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/stores/ProductPurchase.tsx +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/stores/SeoTags.astro +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/stores/categories.ts +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/stores/category/[slug].astro +0 -0
- /package/skills/wix-headless/{templates → references/astro/templates}/stores/products/[slug].astro +0 -0
- /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
|
|
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
|
|
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
|
-
|
|
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
|
|
24
|
-
#
|
|
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
|
|
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
|
-
# ---
|
|
34
|
-
apps: #
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
- "
|
|
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"
|
|
49
|
-
|
|
50
|
-
#
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
#
|
|
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 (
|
|
135
|
-
| `
|
|
136
|
-
| `
|
|
137
|
-
| `
|
|
138
|
-
| `
|
|
139
|
-
| `
|
|
140
|
-
| `routes` | object[] | no | `{route, name?}` —
|
|
141
|
-
| `
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
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
|
|
171
|
-
2.
|
|
172
|
-
3. No
|
|
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
|
-
|
|
179
|
-
- `name` matches filename stem
|
|
180
|
-
- `
|
|
181
|
-
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
124
|
-
|
|
125
|
-
-
|
|
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
|
-
|
|
4
|
-
|
|
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: []
|
|
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
|
|
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
|
-
|
|
121
|
-
|
|
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.
|