@wix/agent-skills 1.6.0 → 1.7.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 +2 -2
- package/package.json +1 -1
- package/skills/wix-app/SKILL.md +49 -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/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-headless/SKILL.md +111 -389
- package/skills/wix-headless/references/BUILD.md +307 -0
- package/skills/wix-headless/references/DESIGN_SYSTEM.md +115 -0
- package/skills/wix-headless/references/DISCOVERY.md +237 -112
- package/skills/wix-headless/references/PLAN.md +82 -0
- package/skills/wix-headless/references/SEED.md +205 -0
- package/skills/wix-headless/references/SETUP.md +140 -134
- package/skills/wix-headless/references/astro/COMPOSE.md +142 -0
- package/skills/wix-headless/references/{blog → astro/blog}/BLOG_PAGES.md +1 -1
- package/skills/wix-headless/references/{blog → astro/blog}/BLOG_SETUP.md +2 -2
- package/skills/wix-headless/references/astro/cms/CMS_FOUNDATIONS.md +214 -0
- package/skills/wix-headless/references/{cms → astro/cms}/FAQ_KNOWLEDGE_BASE.md +6 -4
- package/skills/wix-headless/references/{cms → astro/cms}/PORTFOLIO.md +5 -5
- package/skills/wix-headless/references/{cms → astro/cms}/RESOURCE_LIBRARY.md +5 -5
- package/skills/wix-headless/references/{cms → astro/cms}/TEAM_DIRECTORY.md +5 -5
- package/skills/wix-headless/references/astro/designer/INSTRUCTIONS.md +331 -0
- package/skills/wix-headless/references/{ecom → astro/ecom}/CART_PAGES.md +1 -1
- package/skills/wix-headless/references/{ecom → astro/ecom}/CART_WIRING.md +1 -1
- package/skills/wix-headless/references/{ecom → astro/ecom}/COMPONENTS_CSS.md +3 -3
- package/skills/wix-headless/references/{forms → astro/forms}/CONTACT_FORM.md +13 -13
- package/skills/wix-headless/references/{gift-cards → astro/gift-cards}/COMPONENTS.md +1 -1
- package/skills/wix-headless/references/{gift-cards → astro/gift-cards}/PAGES.md +1 -1
- package/skills/wix-headless/references/{stores → astro/stores}/BACK_IN_STOCK.md +1 -1
- package/skills/wix-headless/references/{stores → astro/stores}/CATEGORY_PAGES.md +12 -13
- package/skills/wix-headless/references/{stores → astro/stores}/COMPONENTS_CSS.md +4 -4
- 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 +5 -3
- package/skills/wix-headless/references/{stores → astro/stores}/SHARED_WIRING.md +3 -3
- 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/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 +10 -11
- package/skills/wix-headless/references/blog/INSTRUCTIONS.md +5 -5
- package/skills/wix-headless/references/cms/CMS_FOUNDATIONS.md +31 -230
- package/skills/wix-headless/references/cms/INSTRUCTIONS.md +13 -8
- package/skills/wix-headless/references/custom/INSTRUCTIONS.md +38 -0
- package/skills/wix-headless/references/ecom/INSTRUCTIONS.md +10 -10
- package/skills/wix-headless/references/forms/INSTRUCTIONS.md +5 -5
- package/skills/wix-headless/references/gift-cards/INSTRUCTIONS.md +11 -11
- package/skills/wix-headless/references/images/INSTRUCTIONS.md +47 -50
- package/skills/wix-headless/references/seed-recipes.md +49 -0
- package/skills/wix-headless/references/shared/AUTHENTICATION.md +110 -0
- package/skills/wix-headless/references/shared/BUILD_NOISE.md +2 -2
- package/skills/wix-headless/references/shared/DOCS_SEARCH.md +41 -0
- package/skills/wix-headless/references/shared/IMAGE_GENERATION.md +17 -17
- package/skills/wix-headless/references/shared/IMPLEMENTER.md +20 -29
- package/skills/wix-headless/references/shared/PRODUCTION_SHARP_EDGES.md +1 -1
- package/skills/wix-headless/references/shared/RETURN_CONTRACT.md +25 -16
- package/skills/wix-headless/references/shared/STYLING.md +47 -10
- package/skills/wix-headless/references/stores/INSTRUCTIONS.md +25 -25
- package/skills/wix-headless/references/stores/PRODUCT_CATALOG_DATA.md +17 -17
- 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/cms.md +9 -100
- package/skills/wix-headless/references/verticals/ecom.md +5 -76
- 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 +5 -5
- package/skills/wix-headless/scripts/emit-design-tokens.mjs +29 -23
- package/skills/wix-headless/scripts/init-site-json.mjs +59 -21
- 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/preview.sh +3 -3
- package/skills/wix-headless/scripts/release.sh +4 -4
- package/skills/wix-headless/scripts/scaffold.sh +75 -20
- package/skills/wix-headless/scripts/seed-utilities.sh +50 -12
- 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/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 +2 -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/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,160 +1,74 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"title": "Wix Headless Vertical Frontmatter",
|
|
4
|
-
"description": "Validates verticals/<name>.md frontmatter.
|
|
3
|
+
"title": "Wix Headless Vertical Frontmatter (Phase 1 — discovery only)",
|
|
4
|
+
"description": "Validates verticals/<name>.md frontmatter. Phase 1 scope only — later phases (setup, seed, design, pages, build) are owned by @skills/wix-manage plus this skill's own templates and INSTRUCTIONS.md files; per-pack fields (packages, cmsCollections, seed, components, componentsCss, pages, creates, contributes, include) are not part of this skill and not validated here.",
|
|
5
5
|
"type": "object",
|
|
6
|
-
"required": ["name", "description"
|
|
7
|
-
"additionalProperties":
|
|
6
|
+
"required": ["name", "description"],
|
|
7
|
+
"additionalProperties": false,
|
|
8
8
|
"properties": {
|
|
9
9
|
"name": {
|
|
10
10
|
"type": "string",
|
|
11
11
|
"pattern": "^[a-z][a-z0-9-]*$",
|
|
12
12
|
"description": "Must match filename stem (e.g., stores.md → 'stores')"
|
|
13
13
|
},
|
|
14
|
+
"description": { "type": "string" },
|
|
14
15
|
"triggers": {
|
|
15
16
|
"type": "array",
|
|
16
|
-
"items": { "type": "string" }
|
|
17
|
+
"items": { "type": "string" },
|
|
18
|
+
"description": "Prompt patterns that route to this vertical. Empty allowed for transitive-only packs (ecom, gift-cards, cms). The SKILL.md routing table is the actual source of truth for what gets loaded; this is human reference + a fallback signal."
|
|
17
19
|
},
|
|
18
|
-
"description": { "type": "string" },
|
|
19
20
|
"requires": {
|
|
20
21
|
"type": "array",
|
|
21
|
-
"items": { "type": "string" }
|
|
22
|
+
"items": { "type": "string" },
|
|
23
|
+
"description": "Verticals that must be co-loaded in the same read batch when this pack is loaded. Today: stores → [ecom, gift-cards]; gift-cards → [ecom]."
|
|
22
24
|
},
|
|
23
25
|
"features": {
|
|
24
26
|
"type": "array",
|
|
25
27
|
"items": {
|
|
26
28
|
"type": "object",
|
|
27
29
|
"required": ["name", "description"],
|
|
30
|
+
"additionalProperties": false,
|
|
28
31
|
"properties": {
|
|
29
32
|
"name": { "type": "string" },
|
|
30
33
|
"description": { "type": "string" }
|
|
31
34
|
}
|
|
32
|
-
}
|
|
35
|
+
},
|
|
36
|
+
"description": "Feature blurbs for DISCOVERY.md Step 3 Section B."
|
|
33
37
|
},
|
|
34
38
|
"apps": {
|
|
35
|
-
"type": "array",
|
|
36
|
-
"items": {
|
|
37
|
-
"oneOf": [
|
|
38
|
-
{ "type": "string", "description": "App name (resolved via known-apps.json)" },
|
|
39
|
-
{
|
|
40
|
-
"type": "object",
|
|
41
|
-
"required": ["name"],
|
|
42
|
-
"properties": {
|
|
43
|
-
"name": { "type": "string" },
|
|
44
|
-
"appDefId": { "type": "string" }
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
]
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
"packages": {
|
|
51
|
-
"type": "array",
|
|
52
|
-
"minItems": 1,
|
|
53
|
-
"items": { "type": "string" }
|
|
54
|
-
},
|
|
55
|
-
"routes": {
|
|
56
39
|
"type": "array",
|
|
57
40
|
"items": {
|
|
58
41
|
"type": "object",
|
|
59
|
-
"required": ["
|
|
42
|
+
"required": ["name"],
|
|
43
|
+
"additionalProperties": false,
|
|
60
44
|
"properties": {
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
"cmsCollections": { "type": "array" },
|
|
67
|
-
"seed": {
|
|
68
|
-
"oneOf": [
|
|
69
|
-
{ "type": "null" },
|
|
70
|
-
{
|
|
71
|
-
"type": "object",
|
|
72
|
-
"required": ["agentLocation", "scope", "references"],
|
|
73
|
-
"properties": {
|
|
74
|
-
"agentLocation": { "type": "string" },
|
|
75
|
-
"scope": { "type": "string", "const": "seed" },
|
|
76
|
-
"description": { "type": "string" },
|
|
77
|
-
"references": { "type": "array", "items": { "type": "string" } }
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
]
|
|
81
|
-
},
|
|
82
|
-
"components": {
|
|
83
|
-
"oneOf": [
|
|
84
|
-
{ "type": "null" },
|
|
85
|
-
{
|
|
86
|
-
"type": "object",
|
|
87
|
-
"required": ["agentLocation", "scope", "references"],
|
|
88
|
-
"properties": {
|
|
89
|
-
"agentLocation": { "type": "string" },
|
|
90
|
-
"scope": { "type": "string", "const": "components" },
|
|
91
|
-
"description": { "type": "string" },
|
|
92
|
-
"references": { "type": "array", "items": { "type": "string" } },
|
|
93
|
-
"files": { "type": "array", "items": { "type": "string" } }
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
]
|
|
97
|
-
},
|
|
98
|
-
"componentsCss": {
|
|
99
|
-
"oneOf": [
|
|
100
|
-
{ "type": "null" },
|
|
101
|
-
{
|
|
102
|
-
"type": "object",
|
|
103
|
-
"required": ["agentLocation", "scope", "references"],
|
|
104
|
-
"description": "Optional sibling of `components`. When present, the orchestrator dispatches a second concurrent Phase 3 subagent that owns the pack's scoped CSS file only — independent of TSX/Astro work in the `components` scope. Used by packs whose `components` agent dominated phase wall time (today: stores). Backward compatible — packs without this field keep the single-agent shape.",
|
|
105
|
-
"properties": {
|
|
106
|
-
"agentLocation": { "type": "string" },
|
|
107
|
-
"scope": { "type": "string", "const": "components-css" },
|
|
108
|
-
"description": { "type": "string" },
|
|
109
|
-
"references": { "type": "array", "items": { "type": "string" } },
|
|
110
|
-
"files": { "type": "array", "items": { "type": "string" } }
|
|
111
|
-
}
|
|
45
|
+
"name": { "type": "string" },
|
|
46
|
+
"appDefId": { "type": "string" }
|
|
112
47
|
}
|
|
113
|
-
|
|
48
|
+
},
|
|
49
|
+
"description": "Zero or one entry per pack. apps[0].name fills the Source column of the Pages table."
|
|
114
50
|
},
|
|
115
|
-
"
|
|
51
|
+
"routes": {
|
|
116
52
|
"type": "array",
|
|
117
53
|
"items": {
|
|
118
54
|
"type": "object",
|
|
119
|
-
"required": ["
|
|
55
|
+
"required": ["route"],
|
|
56
|
+
"additionalProperties": false,
|
|
120
57
|
"properties": {
|
|
121
|
-
"
|
|
122
|
-
"agentLocation": { "type": "string" },
|
|
123
|
-
"scope": {
|
|
58
|
+
"route": {
|
|
124
59
|
"type": "string",
|
|
125
|
-
"
|
|
126
|
-
"description": "Must be 'pages' or 'pages-<subscope>'"
|
|
60
|
+
"description": "URL path (e.g. /cart) OR the literal 'Hosted by Wix' for Wix-hosted endpoints like checkout."
|
|
127
61
|
},
|
|
128
|
-
"
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
"creates": {
|
|
135
|
-
"type": "array",
|
|
136
|
-
"items": {
|
|
137
|
-
"type": "object",
|
|
138
|
-
"required": ["file", "phase"],
|
|
139
|
-
"properties": {
|
|
140
|
-
"file": { "type": "string" },
|
|
141
|
-
"phase": { "type": "string", "enum": ["seed", "components", "pages"] }
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
"contributes": {
|
|
146
|
-
"type": "array",
|
|
147
|
-
"items": {
|
|
148
|
-
"type": "object",
|
|
149
|
-
"required": ["file", "marker"],
|
|
150
|
-
"properties": {
|
|
151
|
-
"file": { "type": "string" },
|
|
152
|
-
"marker": { "type": "string", "pattern": "^<!--\\s.*\\s-->$" },
|
|
153
|
-
"description": { "type": "string" }
|
|
62
|
+
"name": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"description": "Optional user-facing page name override for DISCOVERY.md's Section C table. When omitted, the orchestrator derives the name from the path (/ → Home; /thank-you → Thank You). Set this only when path-derivation produces a poor name (e.g. /products/[slug] → 'Product Detail') or when the route has no path (e.g. ecom's Wix-hosted Checkout)."
|
|
65
|
+
}
|
|
154
66
|
}
|
|
155
67
|
}
|
|
156
68
|
},
|
|
157
|
-
"
|
|
158
|
-
|
|
69
|
+
"disabled": {
|
|
70
|
+
"type": "boolean",
|
|
71
|
+
"description": "If true, the pack's surfaces (pages, nav links, home blocks) are inactive by default — they ship as code but do not appear without a separate user action (today: enabling the matching Wix app from the dashboard, which the pack's runtime probe detects). 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 the gift-cards pack uses disabled: true."
|
|
72
|
+
}
|
|
159
73
|
}
|
|
160
74
|
}
|
|
@@ -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.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.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.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 `templates/blog/` + `references/blog/INSTRUCTIONS.md`:
|
|
30
|
+
>
|
|
31
|
+
> - `@skills/wix-manage` ships the seeding recipe — `references/blog/how-to-create-blog-posts.md`.
|