@salesforce/b2c-dx-mcp 3.2.1 → 3.4.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 (333) hide show
  1. package/bin/run.js +5 -9
  2. package/content/guidance/b2c/b2c-hooks/references/ORDER-HOOK-LIFECYCLE.md +1 -1
  3. package/content/guidance/b2c/b2c-onboarding/SKILL.md +4 -4
  4. package/content/guidance/b2c/b2c-ordering/SKILL.md +2 -2
  5. package/content/guidance/b2c/b2c-querying-data/SKILL.md +2 -2
  6. package/content/guidance/b2c/b2c-scapi-admin/SKILL.md +3 -3
  7. package/content/guidance/b2c/b2c-scapi-admin/references/CLIENT-EXAMPLES.md +4 -4
  8. package/content/guidance/b2c/b2c-scapi-shopper/SKILL.md +6 -6
  9. package/content/guidance/b2c/b2c-scapi-shopper/references/CLIENT-EXAMPLES.md +8 -9
  10. package/content/guidance/b2c-cli/b2c-cip/SKILL.md +3 -3
  11. package/content/guidance/b2c-cli/b2c-cip/references/SALES_ANALYSIS.md +1 -1
  12. package/content/guidance/b2c-cli/b2c-config/SKILL.md +54 -25
  13. package/content/guidance/b2c-cli/b2c-content/SKILL.md +1 -1
  14. package/content/guidance/b2c-cli/b2c-debug/SKILL.md +1 -1
  15. package/content/guidance/b2c-cli/b2c-docs/SKILL.md +23 -2
  16. package/content/guidance/b2c-cli/b2c-ecdn/SKILL.md +2 -0
  17. package/content/guidance/b2c-cli/b2c-ecdn/references/ADVANCED.md +1 -1
  18. package/content/guidance/b2c-cli/b2c-job/SKILL.md +9 -3
  19. package/content/guidance/b2c-cli/b2c-job/references/IMPORT.md +1 -1
  20. package/content/guidance/b2c-cli/b2c-job/references/RUN-AND-MONITOR.md +35 -6
  21. package/content/guidance/b2c-cli/b2c-metrics/SKILL.md +1 -1
  22. package/content/guidance/b2c-cli/b2c-mrt/SKILL.md +3 -3
  23. package/content/guidance/b2c-cli/b2c-scapi-custom/SKILL.md +1 -1
  24. package/content/guidance/b2c-cli/b2c-scapi-schemas/SKILL.md +6 -2
  25. package/content/guidance/b2c-cli/b2c-site-import-export/SKILL.md +1 -1
  26. package/content/guidance/b2c-cli/b2c-sites/SKILL.md +1 -1
  27. package/content/guidance/b2c-cli/b2c-slas/SKILL.md +1 -1
  28. package/content/guidance/b2c-ops/b2c-checkout-triage/SKILL.md +2 -2
  29. package/content/guidance/b2c-ops/b2c-edge-traffic-triage/SKILL.md +69 -0
  30. package/content/guidance/b2c-ops/b2c-job-health/SKILL.md +13 -8
  31. package/content/guidance/b2c-ops/b2c-order-failure-triage/SKILL.md +1 -1
  32. package/content/guidance/b2c-ops/b2c-order-failure-triage/references/order-evidence.md +2 -2
  33. package/content/guidance/b2c-ops/b2c-production-triage/SKILL.md +5 -4
  34. package/content/guidance/index.json +981 -259
  35. package/content/guidance/mcp/{cip → b2c-mcp-cip}/SKILL.md +10 -8
  36. package/content/guidance/mcp/{b2c-config → b2c-mcp-config}/SKILL.md +10 -9
  37. package/content/guidance/mcp/{debugger → b2c-mcp-debugger}/SKILL.md +9 -8
  38. package/content/guidance/mcp/b2c-mcp-scapi/SKILL.md +98 -0
  39. package/content/guidance/mcp/b2c-mcp-scapi/references/authentication.md +34 -0
  40. package/content/guidance/mcp/b2c-mcp-scapi/references/compose-verify.md +25 -0
  41. package/content/guidance/mcp/b2c-mcp-scapi/references/confirmation.md +30 -0
  42. package/content/guidance/mcp/b2c-mcp-scapi/references/discover.md +94 -0
  43. package/content/guidance/mcp/b2c-mcp-scapi/references/jobs.md +72 -0
  44. package/content/guidance/mcp/b2c-mcp-scapi/references/workflows.md +28 -0
  45. package/content/guidance/mcp/{server → b2c-mcp-server}/SKILL.md +52 -25
  46. package/content/guidance/storefront-next/sfnext-accessibility/SKILL.md +103 -0
  47. package/content/guidance/storefront-next/sfnext-accessibility/references/checklist.md +64 -0
  48. package/content/guidance/storefront-next/sfnext-analytics-consent/SKILL.md +91 -0
  49. package/content/guidance/storefront-next/sfnext-analytics-consent/references/CUSTOM-ADAPTER.md +49 -0
  50. package/content/guidance/storefront-next/sfnext-authentication/SKILL.md +86 -79
  51. package/content/guidance/storefront-next/sfnext-authentication/references/COOKIES.md +39 -0
  52. package/content/guidance/storefront-next/sfnext-authentication/references/LOGIN-FLOWS.md +59 -0
  53. package/content/guidance/storefront-next/sfnext-commerce-features/SKILL.md +67 -0
  54. package/content/guidance/storefront-next/sfnext-commerce-features/references/FEATURE-PREREQUISITES.md +37 -0
  55. package/content/guidance/storefront-next/sfnext-components/SKILL.md +98 -136
  56. package/content/guidance/storefront-next/sfnext-components/references/COMPONENT-AUTHORING.md +118 -0
  57. package/content/guidance/storefront-next/sfnext-components/references/SHAPE-TOKENS.md +51 -0
  58. package/content/guidance/storefront-next/sfnext-components/references/STORYBOOK.md +54 -0
  59. package/content/guidance/storefront-next/sfnext-components/references/TOKEN-SYSTEM.md +53 -0
  60. package/content/guidance/storefront-next/sfnext-components/references/TROUBLESHOOTING.md +19 -0
  61. package/content/guidance/storefront-next/sfnext-configuration/SKILL.md +116 -113
  62. package/content/guidance/storefront-next/sfnext-configuration/references/ENV-VARIABLES.md +55 -0
  63. package/content/guidance/storefront-next/sfnext-configuration/references/MULTI-SITE-URLS.md +137 -0
  64. package/content/guidance/storefront-next/sfnext-data-fetching/SKILL.md +100 -150
  65. package/content/guidance/storefront-next/sfnext-data-fetching/references/ACTIONS.md +53 -0
  66. package/content/guidance/storefront-next/sfnext-data-fetching/references/API-CLIENTS.md +34 -0
  67. package/content/guidance/storefront-next/sfnext-data-fetching/references/LOADERS.md +73 -0
  68. package/content/guidance/storefront-next/sfnext-data-fetching/references/SCAPI-FETCHER.md +23 -77
  69. package/content/guidance/storefront-next/sfnext-deployment/SKILL.md +83 -97
  70. package/content/guidance/storefront-next/sfnext-deployment/references/MRT-DEPLOYMENT.md +37 -68
  71. package/content/guidance/storefront-next/sfnext-extensions/SKILL.md +73 -97
  72. package/content/guidance/storefront-next/sfnext-extensions/references/ACTION-HOOKS.md +57 -0
  73. package/content/guidance/storefront-next/sfnext-extensions/references/BASE-AUDIT.md +47 -44
  74. package/content/guidance/storefront-next/sfnext-extensions/references/CLI-AND-INSTALL.md +58 -0
  75. package/content/guidance/storefront-next/sfnext-extensions/references/EXTENSION-EXAMPLES.md +49 -86
  76. package/content/guidance/storefront-next/sfnext-hybrid-storefronts/SKILL.md +59 -114
  77. package/content/guidance/storefront-next/sfnext-hybrid-storefronts/references/HYBRID-PROXY-CONFIG.md +53 -90
  78. package/content/guidance/storefront-next/sfnext-i18n/SKILL.md +96 -131
  79. package/content/guidance/storefront-next/sfnext-i18n/references/locale-config.md +35 -0
  80. package/content/guidance/storefront-next/sfnext-overview/SKILL.md +101 -0
  81. package/content/guidance/storefront-next/sfnext-page-designer/SKILL.md +152 -131
  82. package/content/guidance/storefront-next/sfnext-page-designer/references/BUSINESS-MANAGER.md +46 -0
  83. package/content/guidance/storefront-next/sfnext-page-designer/references/COMPONENT-REGISTRY.md +86 -53
  84. package/content/guidance/storefront-next/sfnext-page-designer/references/DECORATOR-PATTERNS.md +119 -131
  85. package/content/guidance/storefront-next/sfnext-page-designer/references/REVIEW-CHECKLIST.md +83 -0
  86. package/content/guidance/storefront-next/sfnext-page-designer/references/TROUBLESHOOTING.md +35 -0
  87. package/content/guidance/storefront-next/sfnext-performance/SKILL.md +75 -105
  88. package/content/guidance/storefront-next/sfnext-performance/references/PERFORMANCE-REVIEW-CHECKLIST.md +85 -0
  89. package/content/guidance/storefront-next/sfnext-performance/references/SUSPENSE-AND-STREAMING.md +58 -0
  90. package/content/guidance/storefront-next/sfnext-project-setup/SKILL.md +103 -116
  91. package/content/guidance/storefront-next/sfnext-project-setup/references/PROJECT-STRUCTURE.md +61 -99
  92. package/content/guidance/storefront-next/sfnext-project-setup/references/SCRIPTS.md +47 -0
  93. package/content/guidance/storefront-next/sfnext-project-setup/references/SFNEXT-CLI.md +63 -0
  94. package/content/guidance/storefront-next/sfnext-quality-gates/SKILL.md +70 -0
  95. package/content/guidance/storefront-next/sfnext-quality-gates/references/lint-and-budgets.md +39 -0
  96. package/content/guidance/storefront-next/sfnext-revalidation/SKILL.md +121 -0
  97. package/content/guidance/storefront-next/sfnext-revalidation/references/POLICIES-AND-TAGS.md +55 -0
  98. package/content/guidance/storefront-next/sfnext-routing/SKILL.md +86 -143
  99. package/content/guidance/storefront-next/sfnext-routing/references/ROUTE-CONVENTIONS.md +51 -51
  100. package/content/guidance/storefront-next/sfnext-routing/references/URLS-AND-SEO-ROUTES.md +22 -0
  101. package/content/guidance/storefront-next/sfnext-scapi/SKILL.md +126 -0
  102. package/content/guidance/storefront-next/sfnext-scapi/references/WORKED-EXAMPLE.md +39 -0
  103. package/content/guidance/storefront-next/sfnext-security/SKILL.md +129 -0
  104. package/content/guidance/storefront-next/sfnext-security/references/COOKIE-DOMAIN.md +39 -0
  105. package/content/guidance/storefront-next/sfnext-security/references/TURNSTILE.md +43 -0
  106. package/content/guidance/storefront-next/sfnext-seo/SKILL.md +95 -0
  107. package/content/guidance/storefront-next/sfnext-seo/references/MULTI-DOMAIN-BASE-PATH.md +17 -0
  108. package/content/guidance/storefront-next/sfnext-seo/references/SEO-ROUTES.md +31 -0
  109. package/content/guidance/storefront-next/sfnext-state-management/SKILL.md +80 -89
  110. package/content/guidance/storefront-next/sfnext-state-management/references/PATTERNS.md +45 -0
  111. package/content/guidance/storefront-next/sfnext-testing/SKILL.md +105 -138
  112. package/content/guidance/storefront-next/sfnext-testing/references/E2E.md +38 -0
  113. package/content/guidance/storefront-next/sfnext-testing/references/STORYBOOK-PATTERNS.md +73 -94
  114. package/content/guidance/storefront-next/sfnext-testing/references/UNIT-AND-ROUTE-TESTS.md +60 -0
  115. package/content/guidance/storefront-next/sfnext-theming/SKILL.md +104 -0
  116. package/content/guidance/storefront-next/sfnext-theming/references/REBRAND-CHECKLIST.md +29 -0
  117. package/dist/commands/mcp.d.ts +8 -2
  118. package/dist/commands/mcp.js +54 -20
  119. package/dist/guidance.d.ts +4 -1
  120. package/dist/guidance.js +23 -5
  121. package/dist/registry.d.ts +2 -1
  122. package/dist/registry.js +3 -3
  123. package/dist/server.d.ts +10 -0
  124. package/dist/server.js +21 -0
  125. package/dist/skill-references.js +5 -5
  126. package/dist/tools/cartridges/index.js +1 -0
  127. package/dist/tools/cip/index.js +6 -3
  128. package/dist/tools/diagnostics/debug-capture-at-breakpoint.js +1 -1
  129. package/dist/tools/diagnostics/debug-set-breakpoints.js +1 -1
  130. package/dist/tools/diagnostics/debug-start-session.js +1 -1
  131. package/dist/tools/docs/docs-read.js +4 -2
  132. package/dist/tools/docs/docs-search.js +10 -8
  133. package/dist/tools/docs/topics.d.ts +5 -0
  134. package/dist/tools/docs/topics.js +5 -0
  135. package/dist/tools/scapi/index.d.ts +4 -1
  136. package/dist/tools/scapi/index.js +4 -2
  137. package/dist/tools/scapi/scapi-code.d.ts +2 -2
  138. package/dist/tools/scapi/scapi-code.js +106 -81
  139. package/dist/tools/scapi/scapi-schemas-list.js +93 -56
  140. package/dist/utils/types.d.ts +6 -0
  141. package/node_modules/@salesforce/b2c-agent-plugins/CHANGELOG.md +32 -0
  142. package/node_modules/@salesforce/b2c-agent-plugins/README.md +5 -0
  143. package/node_modules/@salesforce/b2c-agent-plugins/b2c/.codex-plugin/plugin.json +1 -1
  144. package/node_modules/@salesforce/b2c-agent-plugins/b2c/plugin.json +1 -1
  145. package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-hooks/references/ORDER-HOOK-LIFECYCLE.md +1 -1
  146. package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-onboarding/SKILL.md +4 -4
  147. package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-ordering/SKILL.md +2 -2
  148. package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-querying-data/SKILL.md +2 -2
  149. package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-scapi-admin/SKILL.md +3 -3
  150. package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-scapi-admin/references/CLIENT-EXAMPLES.md +4 -4
  151. package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-scapi-shopper/SKILL.md +6 -6
  152. package/node_modules/@salesforce/b2c-agent-plugins/b2c/skills/b2c-scapi-shopper/references/CLIENT-EXAMPLES.md +8 -9
  153. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/.codex-plugin/plugin.json +1 -1
  154. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/plugin.json +1 -1
  155. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-cip/SKILL.md +3 -3
  156. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-cip/references/SALES_ANALYSIS.md +1 -1
  157. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-config/SKILL.md +54 -25
  158. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-content/SKILL.md +1 -1
  159. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-debug/SKILL.md +1 -1
  160. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-docs/SKILL.md +23 -2
  161. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-ecdn/SKILL.md +2 -0
  162. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-ecdn/references/ADVANCED.md +1 -1
  163. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-job/SKILL.md +9 -3
  164. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-job/references/IMPORT.md +1 -1
  165. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-job/references/RUN-AND-MONITOR.md +35 -6
  166. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-metrics/SKILL.md +1 -1
  167. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-mrt/SKILL.md +3 -3
  168. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-scapi-custom/SKILL.md +1 -1
  169. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-scapi-schemas/SKILL.md +6 -2
  170. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-site-import-export/SKILL.md +1 -1
  171. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-sites/SKILL.md +1 -1
  172. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-slas/SKILL.md +1 -1
  173. package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/.codex-plugin/plugin.json +4 -3
  174. package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/README.md +1 -0
  175. package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/plugin.json +4 -3
  176. package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/skills/b2c-checkout-triage/SKILL.md +2 -2
  177. package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/skills/b2c-edge-traffic-triage/SKILL.md +69 -0
  178. package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/skills/b2c-job-health/SKILL.md +13 -8
  179. package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/skills/b2c-order-failure-triage/SKILL.md +1 -1
  180. package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/skills/b2c-order-failure-triage/references/order-evidence.md +2 -2
  181. package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/skills/b2c-production-triage/SKILL.md +5 -4
  182. package/node_modules/@salesforce/b2c-agent-plugins/figma-to-sfnext-pagedesigner/README.md +4 -4
  183. package/node_modules/@salesforce/b2c-agent-plugins/figma-to-sfnext-pagedesigner/skills/figma-to-sfnext-pagedesigner/SKILL.md +76 -73
  184. package/node_modules/@salesforce/b2c-agent-plugins/figma-to-sfnext-pagedesigner/skills/figma-to-sfnext-pagedesigner/evals/trigger-evals.json +12 -10
  185. package/node_modules/@salesforce/b2c-agent-plugins/figma-to-sfnext-pagedesigner/skills/figma-to-sfnext-pagedesigner/references/PAGE-DESIGNER-SFN.md +49 -74
  186. package/node_modules/@salesforce/b2c-agent-plugins/package.json +1 -1
  187. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/.codex-plugin/plugin.json +9 -6
  188. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/README.md +43 -22
  189. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/plugin.json +9 -6
  190. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-accessibility/SKILL.md +103 -0
  191. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-accessibility/evals/trigger-evals.json +5 -0
  192. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-accessibility/references/checklist.md +64 -0
  193. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-analytics-consent/SKILL.md +91 -0
  194. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-analytics-consent/evals/trigger-evals.json +5 -0
  195. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-analytics-consent/references/CUSTOM-ADAPTER.md +49 -0
  196. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-authentication/SKILL.md +86 -79
  197. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-authentication/evals/trigger-evals.json +5 -0
  198. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-authentication/references/COOKIES.md +39 -0
  199. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-authentication/references/LOGIN-FLOWS.md +59 -0
  200. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-commerce-features/SKILL.md +67 -0
  201. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-commerce-features/evals/trigger-evals.json +5 -0
  202. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-commerce-features/references/FEATURE-PREREQUISITES.md +37 -0
  203. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-components/SKILL.md +98 -136
  204. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-components/evals/trigger-evals.json +5 -0
  205. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-components/references/COMPONENT-AUTHORING.md +118 -0
  206. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-components/references/SHAPE-TOKENS.md +51 -0
  207. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-components/references/STORYBOOK.md +54 -0
  208. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-components/references/TOKEN-SYSTEM.md +53 -0
  209. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-components/references/TROUBLESHOOTING.md +19 -0
  210. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-configuration/SKILL.md +116 -113
  211. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-configuration/evals/trigger-evals.json +5 -0
  212. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-configuration/references/ENV-VARIABLES.md +55 -0
  213. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-configuration/references/MULTI-SITE-URLS.md +137 -0
  214. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-data-fetching/SKILL.md +100 -150
  215. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-data-fetching/evals/trigger-evals.json +5 -0
  216. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-data-fetching/references/ACTIONS.md +53 -0
  217. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-data-fetching/references/API-CLIENTS.md +34 -0
  218. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-data-fetching/references/LOADERS.md +73 -0
  219. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-data-fetching/references/SCAPI-FETCHER.md +23 -77
  220. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-deployment/SKILL.md +83 -97
  221. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-deployment/evals/trigger-evals.json +5 -0
  222. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-deployment/references/MRT-DEPLOYMENT.md +37 -68
  223. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-extensions/SKILL.md +73 -97
  224. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-extensions/evals/trigger-evals.json +5 -0
  225. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-extensions/references/ACTION-HOOKS.md +57 -0
  226. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-extensions/references/BASE-AUDIT.md +47 -44
  227. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-extensions/references/CLI-AND-INSTALL.md +58 -0
  228. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-extensions/references/EXTENSION-EXAMPLES.md +49 -86
  229. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-hybrid-storefronts/SKILL.md +59 -114
  230. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-hybrid-storefronts/evals/trigger-evals.json +5 -0
  231. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-hybrid-storefronts/references/HYBRID-PROXY-CONFIG.md +53 -90
  232. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-i18n/SKILL.md +96 -131
  233. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-i18n/evals/trigger-evals.json +5 -0
  234. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-i18n/references/locale-config.md +35 -0
  235. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-overview/SKILL.md +101 -0
  236. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-overview/evals/trigger-evals.json +5 -0
  237. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-page-designer/SKILL.md +152 -131
  238. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-page-designer/evals/trigger-evals.json +5 -0
  239. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-page-designer/references/BUSINESS-MANAGER.md +46 -0
  240. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-page-designer/references/COMPONENT-REGISTRY.md +86 -53
  241. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-page-designer/references/DECORATOR-PATTERNS.md +119 -131
  242. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-page-designer/references/REVIEW-CHECKLIST.md +83 -0
  243. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-page-designer/references/TROUBLESHOOTING.md +35 -0
  244. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-performance/SKILL.md +75 -105
  245. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-performance/evals/trigger-evals.json +5 -0
  246. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-performance/references/PERFORMANCE-REVIEW-CHECKLIST.md +85 -0
  247. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-performance/references/SUSPENSE-AND-STREAMING.md +58 -0
  248. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-project-setup/SKILL.md +103 -116
  249. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-project-setup/evals/trigger-evals.json +5 -0
  250. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-project-setup/references/PROJECT-STRUCTURE.md +61 -99
  251. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-project-setup/references/SCRIPTS.md +47 -0
  252. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-project-setup/references/SFNEXT-CLI.md +63 -0
  253. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-quality-gates/SKILL.md +70 -0
  254. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-quality-gates/evals/trigger-evals.json +5 -0
  255. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-quality-gates/references/lint-and-budgets.md +39 -0
  256. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-revalidation/SKILL.md +121 -0
  257. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-revalidation/evals/trigger-evals.json +5 -0
  258. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-revalidation/references/POLICIES-AND-TAGS.md +55 -0
  259. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-routing/SKILL.md +86 -143
  260. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-routing/evals/trigger-evals.json +5 -0
  261. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-routing/references/ROUTE-CONVENTIONS.md +51 -51
  262. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-routing/references/URLS-AND-SEO-ROUTES.md +22 -0
  263. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-scapi/SKILL.md +126 -0
  264. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-scapi/evals/trigger-evals.json +5 -0
  265. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-scapi/references/WORKED-EXAMPLE.md +39 -0
  266. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-security/SKILL.md +129 -0
  267. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-security/evals/trigger-evals.json +5 -0
  268. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-security/references/COOKIE-DOMAIN.md +39 -0
  269. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-security/references/TURNSTILE.md +43 -0
  270. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-seo/SKILL.md +95 -0
  271. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-seo/evals/trigger-evals.json +5 -0
  272. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-seo/references/MULTI-DOMAIN-BASE-PATH.md +17 -0
  273. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-seo/references/SEO-ROUTES.md +31 -0
  274. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-state-management/SKILL.md +80 -89
  275. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-state-management/evals/trigger-evals.json +5 -0
  276. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-state-management/references/PATTERNS.md +45 -0
  277. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-testing/SKILL.md +105 -138
  278. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-testing/evals/trigger-evals.json +5 -0
  279. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-testing/references/E2E.md +38 -0
  280. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-testing/references/STORYBOOK-PATTERNS.md +73 -94
  281. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-testing/references/UNIT-AND-ROUTE-TESTS.md +60 -0
  282. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-theming/SKILL.md +104 -0
  283. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-theming/evals/trigger-evals.json +5 -0
  284. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-theming/references/REBRAND-CHECKLIST.md +29 -0
  285. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next-figma/skills/sfnext-create-figma-kit/SKILL.md +3 -3
  286. package/oclif.manifest.json +21 -4
  287. package/package.json +4 -4
  288. package/content/guidance/mcp/scapi/SKILL.md +0 -203
  289. package/content/guidance/mcp/scapi/references/jobs.md +0 -30
  290. package/content/guidance/storefront-next/sfnext-create-component/SKILL.md +0 -195
  291. package/content/guidance/storefront-next/sfnext-create-component/references/COMPONENT-AUTHORING.md +0 -206
  292. package/content/guidance/storefront-next/sfnext-create-component/references/PROJECT-STRUCTURE.md +0 -43
  293. package/content/guidance/storefront-next/sfnext-create-component/references/TOKEN-SYSTEM.md +0 -130
  294. package/content/guidance/storefront-next/sfnext-create-component/references/TROUBLESHOOTING.md +0 -34
  295. package/content/guidance/storefront-next/sfnext-create-vertical/SKILL.md +0 -135
  296. package/content/guidance/storefront-next/sfnext-create-vertical/references/COMPONENT-AUTHORING.md +0 -206
  297. package/content/guidance/storefront-next/sfnext-create-vertical/references/PROJECT-STRUCTURE.md +0 -43
  298. package/content/guidance/storefront-next/sfnext-create-vertical/references/TOKEN-SYSTEM.md +0 -130
  299. package/content/guidance/storefront-next/sfnext-create-vertical/references/TROUBLESHOOTING.md +0 -34
  300. package/content/guidance/storefront-next/sfnext-custom-apis/SKILL.md +0 -221
  301. package/content/guidance/storefront-next/sfnext-custom-apis/references/WORKFLOW-EXAMPLES.md +0 -294
  302. package/content/guidance/storefront-next/sfnext-data-fetching/references/LOADER-PATTERNS.md +0 -102
  303. package/content/guidance/storefront-next/sfnext-project-setup/references/ENV-VARIABLES.md +0 -82
  304. package/content/guidance/storefront-next/sfnext-scapi-management/SKILL.md +0 -203
  305. package/content/guidance/storefront-next/sfnext-scapi-management/references/CLI-COMMANDS.md +0 -122
  306. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-component/SKILL.md +0 -195
  307. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-component/evals/trigger-evals.json +0 -12
  308. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-component/references/COMPONENT-AUTHORING.md +0 -206
  309. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-component/references/PROJECT-STRUCTURE.md +0 -43
  310. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-component/references/TOKEN-SYSTEM.md +0 -130
  311. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-component/references/TROUBLESHOOTING.md +0 -34
  312. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-vertical/SKILL.md +0 -135
  313. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-vertical/evals/trigger-evals.json +0 -12
  314. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-vertical/references/COMPONENT-AUTHORING.md +0 -206
  315. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-vertical/references/PROJECT-STRUCTURE.md +0 -43
  316. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-vertical/references/TOKEN-SYSTEM.md +0 -130
  317. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-create-vertical/references/TROUBLESHOOTING.md +0 -34
  318. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-custom-apis/SKILL.md +0 -221
  319. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-custom-apis/evals/trigger-evals.json +0 -12
  320. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-custom-apis/references/WORKFLOW-EXAMPLES.md +0 -294
  321. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-data-fetching/references/LOADER-PATTERNS.md +0 -102
  322. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-project-setup/references/ENV-VARIABLES.md +0 -82
  323. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-scapi-management/SKILL.md +0 -203
  324. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-scapi-management/evals/trigger-evals.json +0 -12
  325. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/skills/sfnext-scapi-management/references/CLI-COMMANDS.md +0 -122
  326. /package/content/guidance/mcp/{scapi → b2c-mcp-scapi}/references/custom-apis.md +0 -0
  327. /package/content/guidance/mcp/{scapi → b2c-mcp-scapi}/references/custom-properties.md +0 -0
  328. /package/content/guidance/mcp/{scapi → b2c-mcp-scapi}/references/products.md +0 -0
  329. /package/content/guidance/mcp/{scapi → b2c-mcp-scapi}/references/promotions.md +0 -0
  330. /package/content/guidance/mcp/{scapi → b2c-mcp-scapi}/references/saving.md +0 -0
  331. /package/content/guidance/mcp/{scapi → b2c-mcp-scapi}/references/snippets.md +0 -0
  332. /package/content/guidance/mcp/{scapi → b2c-mcp-scapi}/references/tokens.md +0 -0
  333. /package/content/guidance/mcp/{server → b2c-mcp-server}/references/files.md +0 -0
@@ -41,12 +41,17 @@
41
41
  "title": "b2c-am",
42
42
  "description": "Manage Account Manager resources including API clients, users, roles, and organizations. Use this skill whenever the user needs to create or update API clients, onboard or offboard developers, assign Account Manager roles scoped to tenants, audit user permissions, look up organizations, or provision API clients for CI/CD pipelines. Also use when managing AM role assignments or querying Account Manager data — even if they just say \"add a new developer\" or \"set up an API client\". For instance-level Business Manager administration (BM roles, BM users, BM access keys, BM whoami), defer to the `b2c-cli:b2c-bm-users-roles` skill.",
43
43
  "entrypoint": "SKILL.md",
44
+ "frontmatter": {
45
+ "name": "b2c-am",
46
+ "description": "Manage Account Manager resources including API clients, users, roles, and organizations. Use this skill whenever the user needs to create or update API clients, onboard or offboard developers, assign Account Manager roles scoped to tenants, audit user permissions, look up organizations, or provision API clients for CI/CD pipelines. Also use when managing AM role assignments or querying Account Manager data — even if they just say \"add a new developer\" or \"set up an API client\". For instance-level Business Manager administration (BM roles, BM users, BM access keys, BM whoami), defer to the `b2c-cli:b2c-bm-users-roles` skill."
47
+ },
44
48
  "source": "skills/b2c-cli/skills/b2c-am/SKILL.md",
45
49
  "headings": "B2C Account Manager Skill | Authentication | Role Requirements | API Clients | List Clients | Get Client | Create Client | Update Client | Change Client Password | Delete Client | Users | List Users | Get User | Create User | Update User | Delete User | Reset User Password | Roles | List Roles | Get Role | Grant Role to User | Revoke Role from User | Organizations | List Organizations | Get Organization | Business Manager Administration | Common Workflows | User Onboarding | User Offboarding | Bulk Operations with JSON | Common Patterns | More Commands",
46
50
  "files": [
47
51
  {
48
52
  "path": "SKILL.md",
49
- "bytes": 7983
53
+ "bytes": 7983,
54
+ "digest": "sha256:dc632347ba9d87a41e0f38f550fce55c6cc75822db8e3afb7bde95cf9a46d949"
50
55
  }
51
56
  ]
52
57
  },
@@ -56,12 +61,17 @@
56
61
  "title": "b2c-bm-users-roles",
57
62
  "description": "Manage Business Manager users, access roles, role permissions, and per-user access keys on a B2C Commerce instance using the b2c CLI. Use this skill whenever the user needs to list or search BM users on a sandbox or production instance, identify which BM user an OAuth token resolves to (\"whoami\"), assign or revoke instance-level access roles, edit role permissions, look up a user's WebDAV / OCAPI / Storefront access key, or rotate access keys for SSO-managed users. Also use when the user asks \"what's my BM login on sandbox X\", \"rotate my WebDAV password\", \"how do I make a custom BM role\", \"audit BM users on this instance\", or \"delete a stale BM user from a sandbox\".",
58
63
  "entrypoint": "SKILL.md",
64
+ "frontmatter": {
65
+ "name": "b2c-bm-users-roles",
66
+ "description": "Manage Business Manager users, access roles, role permissions, and per-user access keys on a B2C Commerce instance using the b2c CLI. Use this skill whenever the user needs to list or search BM users on a sandbox or production instance, identify which BM user an OAuth token resolves to (\"whoami\"), assign or revoke instance-level access roles, edit role permissions, look up a user's WebDAV / OCAPI / Storefront access key, or rotate access keys for SSO-managed users. Also use when the user asks \"what's my BM login on sandbox X\", \"rotate my WebDAV password\", \"how do I make a custom BM role\", \"audit BM users on this instance\", or \"delete a stale BM user from a sandbox\"."
67
+ },
59
68
  "source": "skills/b2c-cli/skills/b2c-bm-users-roles/SKILL.md",
60
69
  "headings": "B2C Business Manager Users, Roles, and Access Keys | API Backend | Authentication | Business Manager Roles | Role Permissions | Business Manager Users | Whoami — Identify the Current BM User | Access Keys (WebDAV, OCAPI, Storefront) | Common Workflows | Rotate my own WebDAV password (no admin privileges needed) | Audit users with admin role and stale logins | Provision a new custom role and assign one user | Cycle access keys for an SSO user (admin) | Common Patterns | More",
61
70
  "files": [
62
71
  {
63
72
  "path": "SKILL.md",
64
- "bytes": 12187
73
+ "bytes": 12187,
74
+ "digest": "sha256:54a9372b20fd2d927200411a28f0a4cf98cf2bd8610db6a6a6fd5eb7cda513b1"
65
75
  }
66
76
  ]
67
77
  },
@@ -71,12 +81,17 @@
71
81
  "title": "b2c-cap",
72
82
  "description": "Manage Commerce App Packages (CAPs), also called commerce apps or apps, and commerce features using the b2c CLI. Use this skill whenever the user needs to validate, package, install, uninstall, list, or pull commerce apps on B2C Commerce instances, view configuration tasks, or pull app sources for cartridge deployment or Storefront Next development. Also use when checking which apps are installed on an instance, inspecting app details or versions, or managing app lifecycle — even if they just say \"what apps do I have\", \"list my commerce apps\", \"which CAPs are installed\", \"install this app\", \"pull app sources\", or \"show installed apps\".",
73
83
  "entrypoint": "SKILL.md",
84
+ "frontmatter": {
85
+ "name": "b2c-cap",
86
+ "description": "Manage Commerce App Packages (CAPs), also called commerce apps or apps, and commerce features using the b2c CLI. Use this skill whenever the user needs to validate, package, install, uninstall, list, or pull commerce apps on B2C Commerce instances, view configuration tasks, or pull app sources for cartridge deployment or Storefront Next development. Also use when checking which apps are installed on an instance, inspecting app details or versions, or managing app lifecycle — even if they just say \"what apps do I have\", \"list my commerce apps\", \"which CAPs are installed\", \"install this app\", \"pull app sources\", or \"show installed apps\"."
87
+ },
74
88
  "source": "skills/b2c-cli/skills/b2c-cap/SKILL.md",
75
89
  "headings": "B2C CAP Skill | Configuration & Authentication | Examples | List Installed Features | Pull App Sources | View Configuration Tasks | Validate a CAP | Package a CAP | Install a CAP | Uninstall a CAP | More Commands | Related Skills",
76
90
  "files": [
77
91
  {
78
92
  "path": "SKILL.md",
79
- "bytes": 6330
93
+ "bytes": 6330,
94
+ "digest": "sha256:666f7cbd5b82af8b6dbe093588603af35e07518beefd78f4512c41f004f23949"
80
95
  }
81
96
  ]
82
97
  },
@@ -86,24 +101,32 @@
86
101
  "title": "b2c-cip",
87
102
  "description": "Query CIP/CCAC sales, merchandising, payment, traffic, and API/controller analytics with the B2C CLI or MCP. Discover reports/tables, scope SQL, export results, and resolve analytics access.",
88
103
  "entrypoint": "SKILL.md",
104
+ "frontmatter": {
105
+ "name": "b2c-cip",
106
+ "description": "Query CIP/CCAC sales, merchandising, payment, traffic, and API/controller analytics with the B2C CLI or MCP. Discover reports/tables, scope SQL, export results, and resolve analytics access."
107
+ },
89
108
  "source": "skills/b2c-cli/skills/b2c-cip/SKILL.md",
90
109
  "headings": "Known CIP Tables | Aggregate Tables (`ccdw_aggr_*`) | Dimension Tables (`ccdw_dim_*`) | Fact Tables (`ccdw_fact_*`) | Practical Starters | Notes | Sales comparisons and coverage | Compare periods | Coverage check | Definitions | CIP Starter Queries | 1) Recent Daily Sales Snapshot | 2) Sales by Site (Joined) | 3) Top-Selling Products by Revenue | 4) Promotion Impact Summary | 5) OCAPI Request Volume | 6) SCAPI Request Volume | 7) Top Search Terms by Revenue | 8) Referrer Mix | 9) Customer Registration Trend | 10) Payment Method Performance | CIP analytics | Choose the surface | Configuration and access | Discover and execute | Select technical reports | Query and interpret | Conditional references",
91
110
  "files": [
92
111
  {
93
112
  "path": "references/KNOWN_TABLES.md",
94
- "bytes": 9466
113
+ "bytes": 9466,
114
+ "digest": "sha256:84d4d1c5562ce387b6ce509ac6faad9a173c178a7a067572d7be6fd939f662e1"
95
115
  },
96
116
  {
97
117
  "path": "references/SALES_ANALYSIS.md",
98
- "bytes": 2642
118
+ "bytes": 2696,
119
+ "digest": "sha256:5700fe48da7dbf0b50495c96ddb078859bbb7ebd3a78fe5754086cde5ace08d7"
99
120
  },
100
121
  {
101
122
  "path": "references/STARTER_QUERIES.md",
102
- "bytes": 4956
123
+ "bytes": 4956,
124
+ "digest": "sha256:0b35dcf38bee2847e248a358e18e8c85afac4e7da4915019bf2f06c841cc50f7"
103
125
  },
104
126
  {
105
127
  "path": "SKILL.md",
106
- "bytes": 5926
128
+ "bytes": 6017,
129
+ "digest": "sha256:8170bb25e0d7232620d5aac49da8f2cf23e589052a0724849edc5ae115859e5f"
107
130
  }
108
131
  ]
109
132
  },
@@ -113,12 +136,17 @@
113
136
  "title": "b2c-code",
114
137
  "description": "Deploy, download, and manage cartridge code versions on B2C Commerce instances. Use this skill whenever the user needs to upload or download cartridges to/from a sandbox, activate or delete code versions, watch for local file changes during development, or deploy a subset of cartridges. Also use when pushing code to an instance, pulling code from an instance, or setting up a dev workflow with live reload -- even if they just say 'push my code to the sandbox', 'download the code', or 'how do I activate the new version'.",
115
138
  "entrypoint": "SKILL.md",
139
+ "frontmatter": {
140
+ "name": "b2c-code",
141
+ "description": "Deploy, download, and manage cartridge code versions on B2C Commerce instances. Use this skill whenever the user needs to upload or download cartridges to/from a sandbox, activate or delete code versions, watch for local file changes during development, or deploy a subset of cartridges. Also use when pushing code to an instance, pulling code from an instance, or setting up a dev workflow with live reload -- even if they just say 'push my code to the sandbox', 'download the code', or 'how do I activate the new version'."
142
+ },
116
143
  "source": "skills/b2c-cli/skills/b2c-code/SKILL.md",
117
144
  "headings": "B2C Code Skill | MCP equivalent | Configuration & Authentication | Examples | Deploy Cartridges | Download Cartridges | Watch for Changes | List Code Versions | Activate Code Version | Delete Code Version | API Backend | More Commands | Related Skills",
118
145
  "files": [
119
146
  {
120
147
  "path": "SKILL.md",
121
- "bytes": 6359
148
+ "bytes": 6359,
149
+ "digest": "sha256:31e925d4f1ac9e6c306d2e35153b1acd6a6bcace6ddea3139b0930867fdd1515"
122
150
  }
123
151
  ]
124
152
  },
@@ -128,12 +156,17 @@
128
156
  "title": "b2c-config",
129
157
  "description": "Configure B2C CLI/MCP authentication, instances, and project defaults; troubleshoot missing credentials, wrong targets, or configuration precedence. Routine inspection can use config_inspect or b2c setup inspect directly.",
130
158
  "entrypoint": "SKILL.md",
159
+ "frontmatter": {
160
+ "name": "b2c-config",
161
+ "description": "Configure B2C CLI/MCP authentication, instances, and project defaults; troubleshoot missing credentials, wrong targets, or configuration precedence. Routine inspection can use config_inspect or b2c setup inspect directly."
162
+ },
131
163
  "source": "skills/b2c-cli/skills/b2c-config/SKILL.md",
132
- "headings": "B2C Config Skill | How the CLI Discovers Configuration | Storefront Next Environment Compatibility | Shared Global Default | MCP Project Context | `dw.json` Key Casing | Authentication | `--user-auth` Flag | Tenant ID and Organization ID | Inspecting Configuration | When to Use | View Current Configuration | Debug Sensitive Values | JSON Output for Scripting | IDE Integration | OpenShell Sandbox (Beta) | Managing Instances | List Configured Instances | Create a New Instance | Switch Active Instance | Remove an Instance | Understanding the Output | Configuration Priority | Project Defaults in package.json | Troubleshooting | Command says \"credentials required\" or \"client-id is required\" | Command targets the wrong instance | `dw.json` is not being picked up | 401/403 errors on SCAPI/OCAPI calls | Missing `tenantId` / `shortCode` | MRT commands say \"API key required\" | Sensitive values masked in `setup inspect` | Missing values | Wrong source taking precedence | Still stuck | Getting Admin OAuth Tokens | More Commands",
164
+ "headings": "B2C Config Skill | How the CLI Discovers Configuration | Storefront Next Environment Compatibility | Shared Global Default | MCP Project Context | `dw.json` Key Casing | Authentication | `--user-auth` Flag | Tenant ID and Organization ID | Inspecting Configuration | When to Use | View Current Configuration | Debug Sensitive Values | JSON Output for Scripting | Changing One Value | IDE Integration | OpenShell Sandbox (Beta) | Managing Instances | List Configured Instances | Create a New Instance | Switch Active Instance | Remove an Instance | Understanding the Output | Configuration Priority | Project Defaults in package.json | Troubleshooting | Command says \"credentials required\" or \"client-id is required\" | Command targets the wrong instance | `dw.json` is not being picked up | 401/403 errors on SCAPI/OCAPI calls | Missing `tenantId` / `shortCode` | MRT commands say \"API key required\" | Sensitive values masked in `setup inspect` | Missing values | Wrong source taking precedence | Still stuck | Getting Admin OAuth Tokens | More Commands",
133
165
  "files": [
134
166
  {
135
167
  "path": "SKILL.md",
136
- "bytes": 25577
168
+ "bytes": 28824,
169
+ "digest": "sha256:66c53c4108a14deccff48f54ed2056b055879203999647460c1e09069500d343"
137
170
  }
138
171
  ]
139
172
  },
@@ -143,12 +176,17 @@
143
176
  "title": "b2c-content",
144
177
  "description": "Export, list, and validate Page Designer content from B2C Commerce libraries. Use this skill whenever the user needs to export Page Designer pages, components, or content blocks, list pages in a content library, validate page JSON or metadefinitions, discover page IDs, migrate content between instances, or work with library XML offline. Also use when extracting content for review or building content deployment pipelines -- even if they just say 'export the homepage' or 'what pages are in the shared library'.",
145
178
  "entrypoint": "SKILL.md",
179
+ "frontmatter": {
180
+ "name": "b2c-content",
181
+ "description": "Export, list, and validate Page Designer content from B2C Commerce libraries. Use this skill whenever the user needs to export Page Designer pages, components, or content blocks, list pages in a content library, validate page JSON or metadefinitions, discover page IDs, migrate content between instances, or work with library XML offline. Also use when extracting content for review or building content deployment pipelines -- even if they just say 'export the homepage' or 'what pages are in the shared library'."
182
+ },
146
183
  "source": "skills/b2c-cli/skills/b2c-content/SKILL.md",
147
184
  "headings": "B2C Content Skill | Configuration & Authentication | Examples | Export Pages | Export Directly into an Import-Set Migration | List Content | Content Blocks | Configuration | Validate Metadefinitions | More Commands | Troubleshooting | Related Skills",
148
185
  "files": [
149
186
  {
150
187
  "path": "SKILL.md",
151
- "bytes": 7776
188
+ "bytes": 7778,
189
+ "digest": "sha256:dd0e60d7400eca3df9e547c49bec0bb3af64b3d4f67733c295bf5cfacaca14a8"
152
190
  }
153
191
  ]
154
192
  },
@@ -158,12 +196,17 @@
158
196
  "title": "b2c-debug",
159
197
  "description": "Debug B2C Commerce server-side scripts using the b2c CLI. Use this skill whenever the user needs to set breakpoints, step through code, inspect variables, evaluate expressions, or investigate runtime behavior on a B2C Commerce instance. Also use when the user wants to understand what a script is doing at runtime, capture state at a specific line, or drive the debugger from a headless script — even if they just say \"debug this controller\" or \"what's the value of basket at line 42\".",
160
198
  "entrypoint": "SKILL.md",
199
+ "frontmatter": {
200
+ "name": "b2c-debug",
201
+ "description": "Debug B2C Commerce server-side scripts using the b2c CLI. Use this skill whenever the user needs to set breakpoints, step through code, inspect variables, evaluate expressions, or investigate runtime behavior on a B2C Commerce instance. Also use when the user wants to understand what a script is doing at runtime, capture state at a specific line, or drive the debugger from a headless script — even if they just say \"debug this controller\" or \"what's the value of basket at line 42\"."
202
+ },
161
203
  "source": "skills/b2c-cli/skills/b2c-debug/SKILL.md",
162
204
  "headings": "B2C Debug Skill | Configuration & Authentication | Prerequisites | Interactive Debugging | Start a Debug Session | Set Breakpoints | Inspect State When Halted | Control Execution | Thread Management | RPC Mode (Headless / Agent Use) | Send Commands | Receive Responses and Events | Available RPC Commands | DAP Mode (IDE Integration) | Related Skills",
163
205
  "files": [
164
206
  {
165
207
  "path": "SKILL.md",
166
- "bytes": 6601
208
+ "bytes": 6609,
209
+ "digest": "sha256:81edda151447bfd3e9575891da526cf021a949dfa3a87e570dcd63b7e41094df"
167
210
  }
168
211
  ]
169
212
  },
@@ -171,14 +214,19 @@
171
214
  "id": "b2c-cli/b2c-docs",
172
215
  "collection": "b2c-cli",
173
216
  "title": "b2c-docs",
174
- "description": "Search and read B2C Commerce documentation using the b2c CLI. Covers Script API reference (dw.* classes/modules), Developer Center guides (Commerce API, PWA Kit, SFRA, Storefront Next, B2C Commerce, OCAPI), Salesforce Help (Business Manager administration and merchandising), tooling documentation (CLI/MCP/SDK), standard job steps, and XSD schemas. Use this skill for ANY B2C Commerce developer or administrator question that is not already grounded in a loaded skill or the current project context — even if they just say \"how do I implement passwordless login\" or \"what methods does Basket have\" or \"how do I deploy a PWA Kit bundle\" or \"how do I import a site archive\" or \"what SCAPI endpoints are available for checkout\".",
217
+ "description": "Search and read B2C Commerce documentation using the b2c CLI. Covers Script API reference (dw.* classes/modules), Developer Center guides (Commerce API, PWA Kit, SFRA, Storefront Next, B2C Commerce, Commerce Solutions, OCAPI), Salesforce Help (Business Manager administration and merchandising), tooling documentation (CLI/MCP/SDK), standard job steps, and XSD schemas. Use this skill for ANY B2C Commerce developer or administrator question that is not already grounded in a loaded skill or the current project context — even if they just say \"how do I implement passwordless login\" or \"what methods does Basket have\" or \"how do I deploy a PWA Kit bundle\" or \"how do I import a site archive\" or \"what SCAPI endpoints are available for checkout\".",
175
218
  "entrypoint": "SKILL.md",
219
+ "frontmatter": {
220
+ "name": "b2c-docs",
221
+ "description": "Search and read B2C Commerce documentation using the b2c CLI. Covers Script API reference (dw.* classes/modules), Developer Center guides (Commerce API, PWA Kit, SFRA, Storefront Next, B2C Commerce, Commerce Solutions, OCAPI), Salesforce Help (Business Manager administration and merchandising), tooling documentation (CLI/MCP/SDK), standard job steps, and XSD schemas. Use this skill for ANY B2C Commerce developer or administrator question that is not already grounded in a loaded skill or the current project context — even if they just say \"how do I implement passwordless login\" or \"what methods does Basket have\" or \"how do I deploy a PWA Kit bundle\" or \"how do I import a site archive\" or \"what SCAPI endpoints are available for checkout\"."
222
+ },
176
223
  "source": "skills/b2c-cli/skills/b2c-docs/SKILL.md",
177
- "headings": "B2C Docs Skill | Key Features | Examples | Search Documentation | Workspace-Aware Search | Read Documentation | Standard Job Step Catalog | Download Documentation | Read XSD Schemas | Documentation Categories | Common Script API Classes | Common Schemas | More Commands",
224
+ "headings": "B2C Docs Skill | Key Features | Examples | Search Documentation | Workspace-Aware Search | Read Documentation | Standard Job Step Catalog | Download Documentation | Read XSD Schemas | Documentation Categories | Common Script API Classes | Common Schemas | Finding CLI Commands | Reading Agent Skills | More Commands",
178
225
  "files": [
179
226
  {
180
227
  "path": "SKILL.md",
181
- "bytes": 17996
228
+ "bytes": 18990,
229
+ "digest": "sha256:02ff9c72c4f9fee86d1938f9d9465aedde6e66f062db84ebfd6ef1261d7893e4"
182
230
  }
183
231
  ]
184
232
  },
@@ -188,20 +236,27 @@
188
236
  "title": "b2c-ecdn",
189
237
  "description": "Manage eCDN zones, security settings, and edge configuration for B2C Commerce storefronts. Use this skill whenever the user needs to purge CDN cache, provision SSL certificates, configure WAF or firewall rules, set up rate limiting, enable logpush or Page Shield, manage MRT routing, configure mTLS or cipher suites, or optimize edge performance. Also use when troubleshooting CDN-layer issues or managing zone settings -- even if they just say 'clear the cache' or 'block bot traffic on our storefront'.",
190
238
  "entrypoint": "SKILL.md",
239
+ "frontmatter": {
240
+ "name": "b2c-ecdn",
241
+ "description": "Manage eCDN zones, security settings, and edge configuration for B2C Commerce storefronts. Use this skill whenever the user needs to purge CDN cache, provision SSL certificates, configure WAF or firewall rules, set up rate limiting, enable logpush or Page Shield, manage MRT routing, configure mTLS or cipher suites, or optimize edge performance. Also use when troubleshooting CDN-layer issues or managing zone settings -- even if they just say 'clear the cache' or 'block bot traffic on our storefront'."
242
+ },
191
243
  "source": "skills/b2c-cli/skills/b2c-ecdn/SKILL.md",
192
244
  "headings": "eCDN Advanced Reference | Logpush | MRT Rules | mTLS Certificates | Cipher Suites | Origin Headers | eCDN Security Reference | WAF (Web Application Firewall) | Firewall Rules | Rate Limiting | Page Shield | B2C eCDN Skill | Configuration | Prerequisites | Examples | List CDN Zones | Create a Storefront Zone | Purge Cache | Manage Certificates | Manage Rate Limiting Rules | Security Settings | Speed Settings | Additional Topics | Configuration Overrides | OAuth Scopes | More Commands",
193
245
  "files": [
194
246
  {
195
247
  "path": "references/ADVANCED.md",
196
- "bytes": 4533
248
+ "bytes": 4571,
249
+ "digest": "sha256:4156263254a2cfb12c6f9b78841a1c8feb14ffc1a668781dbb4a2189b270bb55"
197
250
  },
198
251
  {
199
252
  "path": "references/SECURITY.md",
200
- "bytes": 2213
253
+ "bytes": 2213,
254
+ "digest": "sha256:cf1ca7ed117fae1286b517755ec5412dece2ff7196d84c43adbbcf9e3d3e0bc8"
201
255
  },
202
256
  {
203
257
  "path": "SKILL.md",
204
- "bytes": 4863
258
+ "bytes": 5096,
259
+ "digest": "sha256:92f05ab2441625b571a21499dc19fbb34398a559ba767cb6acfa317318b4d3d5"
205
260
  }
206
261
  ]
207
262
  },
@@ -211,12 +266,17 @@
211
266
  "title": "b2c-import-set-migrations",
212
267
  "description": "Create and apply ordered, idempotent B2C Commerce site import/export archives from discovered cartridge metadata and project migrations using `b2c job import-set`. Use this opt-in project workflow for migrations built from focused instance exports, repeatable setup, onboarding, and CI/CD imports that apply once per instance. Also covers source exclusions, post-import README notes, resetting history, and recovering an interrupted run.",
213
268
  "entrypoint": "SKILL.md",
269
+ "frontmatter": {
270
+ "name": "b2c-import-set-migrations",
271
+ "description": "Create and apply ordered, idempotent B2C Commerce site import/export archives from discovered cartridge metadata and project migrations using `b2c job import-set`. Use this opt-in project workflow for migrations built from focused instance exports, repeatable setup, onboarding, and CI/CD imports that apply once per instance. Also covers source exclusions, post-import README notes, resetting history, and recovering an interrupted run."
272
+ },
214
273
  "source": "skills/b2c-cli/skills/b2c-import-set-migrations/SKILL.md",
215
274
  "headings": "Import Set Migrations Skill | Configuration & Authentication | Import Sources and Order | Naming convention | Commands | Flags | Source exclusions | Post-Import Notes (per-archive README) | Repeat Runs | Set IDs (namespaces) | Concurrent Runs and Recovery | Idiomatic Workflows | Local setup / onboarding | CI/CD | Adding a new migration | Building a migration from an instance export | Resetting Import History | Import Failure Recovery | Related Skills",
216
275
  "files": [
217
276
  {
218
277
  "path": "SKILL.md",
219
- "bytes": 15678
278
+ "bytes": 15678,
279
+ "digest": "sha256:2236b95ab5e867aba8c6e147360108548304c403ea3dfa827c8530822e839c29"
220
280
  }
221
281
  ]
222
282
  },
@@ -226,24 +286,32 @@
226
286
  "title": "b2c-job",
227
287
  "description": "Run existing B2C Commerce jobs, monitor executions, inspect failures, rebuild search indexes, and import or export site archives with the CLI.",
228
288
  "entrypoint": "SKILL.md",
289
+ "frontmatter": {
290
+ "name": "b2c-job",
291
+ "description": "Run existing B2C Commerce jobs, monitor executions, inspect failures, rebuild search indexes, and import or export site archives with the CLI."
292
+ },
229
293
  "source": "skills/b2c-cli/skills/b2c-job/SKILL.md",
230
294
  "headings": "Export Site Archives | Compact Results | Export Commands | Output Directory Semantics | Available Data Units | Import Site Archives | Import Site Archives | Import Sets | Run and Monitor Jobs | Run a Job | Run System Jobs with Custom Request Bodies | Standard (System) Job Steps | View Job Logs | Search Job Executions | Delete Job Executions | API Backend | Wait for Job Completion | Run and Monitor Jobs | Configuration and tool choice | Run and inspect | Site archives | Output",
231
295
  "files": [
232
296
  {
233
297
  "path": "references/EXPORT.md",
234
- "bytes": 6540
298
+ "bytes": 6540,
299
+ "digest": "sha256:301408dcb37fa2d6fb7da5bfaed2d420148887d2c90ccf3fa5dc6396f66a6120"
235
300
  },
236
301
  {
237
302
  "path": "references/IMPORT.md",
238
- "bytes": 2904
303
+ "bytes": 2870,
304
+ "digest": "sha256:5e7253db37fac7b4ec39024a3d9ba373abf50ee09b5bcd8a23de148cfdadedb1"
239
305
  },
240
306
  {
241
307
  "path": "references/RUN-AND-MONITOR.md",
242
- "bytes": 4748
308
+ "bytes": 6855,
309
+ "digest": "sha256:9f3db87640817d488bdacbcbd0aa9d2da8781e65fa3df409571bdb9545fad16e"
243
310
  },
244
311
  {
245
312
  "path": "SKILL.md",
246
- "bytes": 2861
313
+ "bytes": 3017,
314
+ "digest": "sha256:f012045ffe8356ec9b7276a63b25f3954e85307af5f0afc4f009bf80b3e57d4c"
247
315
  }
248
316
  ]
249
317
  },
@@ -253,12 +321,17 @@
253
321
  "title": "b2c-logs",
254
322
  "description": "Retrieve and search logs from B2C Commerce instances using the b2c CLI. Use this skill whenever the user needs to view server logs, search for errors, filter log entries by level or time, or monitor logs in real-time. Also use when the user reports a 500 error, broken checkout, failing job, or any server-side issue that needs log investigation — even if they just say \"something's broken on the sandbox\" or \"check the logs\".",
255
323
  "entrypoint": "SKILL.md",
324
+ "frontmatter": {
325
+ "name": "b2c-logs",
326
+ "description": "Retrieve and search logs from B2C Commerce instances using the b2c CLI. Use this skill whenever the user needs to view server logs, search for errors, filter log entries by level or time, or monitor logs in real-time. Also use when the user reports a 500 error, broken checkout, failing job, or any server-side issue that needs log investigation — even if they just say \"something's broken on the sandbox\" or \"check the logs\"."
327
+ },
256
328
  "source": "skills/b2c-cli/skills/b2c-logs/SKILL.md",
257
329
  "headings": "B2C Logs Skill | Configuration & Authentication | Agent-Friendly Log Retrieval | Examples | Get Recent Logs | Filter by Time | Filter by Log Level | Search Text | Combined Filters | List Available Log Files | Real-Time Tailing (Human Use) | Downloading Full Log Files | JSON Output Structure | Log Types | Discovering Custom Log Files | Logs in Subdirectories | More Commands | Related Skills",
258
330
  "files": [
259
331
  {
260
332
  "path": "SKILL.md",
261
- "bytes": 10026
333
+ "bytes": 10026,
334
+ "digest": "sha256:9c5ec55ec9294e254fa1b3ccc9694f260e102f72f9cbd98ccbf2fa22eee9df4e"
262
335
  }
263
336
  ]
264
337
  },
@@ -268,12 +341,17 @@
268
341
  "title": "b2c-metrics",
269
342
  "description": "Query observability metrics from SCAPI Metrics API (CLOSED BETA). Use this skill whenever the user needs request volume, latency distributions, error rates, cache performance, or technical health indicators for SCAPI, OCAPI, MRT, SFRA controllers, or overall system performance. Also use when they want to monitor third-party integrations, sales metrics, or eCDN performance -- even if they just say 'show me SCAPI metrics', 'what is my error rate', or 'check API performance'.",
270
343
  "entrypoint": "SKILL.md",
344
+ "frontmatter": {
345
+ "name": "b2c-metrics",
346
+ "description": "Query observability metrics from SCAPI Metrics API (CLOSED BETA). Use this skill whenever the user needs request volume, latency distributions, error rates, cache performance, or technical health indicators for SCAPI, OCAPI, MRT, SFRA controllers, or overall system performance. Also use when they want to monitor third-party integrations, sales metrics, or eCDN performance -- even if they just say 'show me SCAPI metrics', 'what is my error rate', or 'check API performance'."
347
+ },
271
348
  "source": "skills/b2c-cli/skills/b2c-metrics/SKILL.md",
272
349
  "headings": "B2C Metrics Skill | Command Structure | Configuration | Requirements | Quick Workflow | Metric Categories and Commands | Discovery Examples | Fetch Metrics Examples | Time Windows | Series Tags | Response Format | SDK Usage | Troubleshooting",
273
350
  "files": [
274
351
  {
275
352
  "path": "SKILL.md",
276
- "bytes": 14630
353
+ "bytes": 14824,
354
+ "digest": "sha256:d1d7495f37d22fd28519a8101cf4ad81392240fe7cb6c1d53a28fb9a95dec019"
277
355
  }
278
356
  ]
279
357
  },
@@ -283,24 +361,32 @@
283
361
  "title": "b2c-mrt",
284
362
  "description": "Deploy and manage Managed Runtime (MRT) storefronts using the b2c CLI. Use this skill whenever the user needs to deploy a PWA Kit bundle, manage MRT environments and projects, set environment variables, configure URL redirects, or manage organization connections — even if they just say \"deploy my PWA\" or \"set up a staging environment\".",
285
363
  "entrypoint": "SKILL.md",
364
+ "frontmatter": {
365
+ "name": "b2c-mrt",
366
+ "description": "Deploy and manage Managed Runtime (MRT) storefronts using the b2c CLI. Use this skill whenever the user needs to deploy a PWA Kit bundle, manage MRT environments and projects, set environment variables, configure URL redirects, or manage organization connections — even if they just say \"deploy my PWA\" or \"set up a staging environment\"."
367
+ },
286
368
  "source": "skills/b2c-cli/skills/b2c-mrt/SKILL.md",
287
369
  "headings": "MRT Bundle Commands Reference | Bundle Deploy | Push Local Build | Deploy Existing Bundle | Bundle Upload (v2) | Bundle List | Bundle History | Bundle Download | Common Workflows | Development to Production Pipeline | Rollback to Previous Bundle | Download and Inspect Bundle | MRT Environment Commands Reference | Environment Management | List Environments | Create Environment | Get Environment Details | Update Environment | Delete Environment | Invalidate Cache | B2C Commerce Connection | Environment Variables | List Variables | Set Variables | Push Variables from a .env File | Delete Variable | URL Redirects | List Redirects | Create Redirect | Delete Redirect | Clone Redirects | Access Control Headers | List Access Control Headers | MRT Project Commands Reference | Project Management | List Projects | Create Project | Get Project Details | Update Project | Delete Project | Member Management | List Members | Add Member | Get Member Details | Update Member Role | Remove Member | Deployment Notifications | List Notifications | Create Notification | Get Notification Details | Update Notification | Delete Notification | B2C MRT Skill | Configuration & Authentication | MRT Backends (legacy vs SCAPI) | Command Structure | Quick Examples | Deploy a Bundle | Manage Environments | Environment Variables | View Deployment History | Organization Members and Certificates | Project Management | URL Redirects | Configuration | dw.json | Environment Variables | ~/.mobify Config | Detailed References | More Commands",
288
370
  "files": [
289
371
  {
290
372
  "path": "references/BUNDLE-COMMANDS.md",
291
- "bytes": 9061
373
+ "bytes": 9061,
374
+ "digest": "sha256:3975d4b4a7751cc340adaf0d5f2ce0c0629afb8d9687c1323d64b4567943b639"
292
375
  },
293
376
  {
294
377
  "path": "references/ENVIRONMENT-COMMANDS.md",
295
- "bytes": 7026
378
+ "bytes": 7026,
379
+ "digest": "sha256:b883faa7fbad5df95a5fa54379d3b73b27810f2b8700e18a82c8bf81f6143be7"
296
380
  },
297
381
  {
298
382
  "path": "references/PROJECT-COMMANDS.md",
299
- "bytes": 4923
383
+ "bytes": 4923,
384
+ "digest": "sha256:9e517f9fdd8c3f48e442560617720c56a3bab9a203e413e4900a2a1306734eb1"
300
385
  },
301
386
  {
302
387
  "path": "SKILL.md",
303
- "bytes": 8753
388
+ "bytes": 8753,
389
+ "digest": "sha256:48239402b91c6727c09f3927ed449a239e44c8a9c888e805bbbc78505c6a0588"
304
390
  }
305
391
  ]
306
392
  },
@@ -310,12 +396,17 @@
310
396
  "title": "b2c-sandbox",
311
397
  "description": "Create and manage on-demand sandboxes (ODS) for B2C Commerce using the b2c CLI. Use this skill whenever the user needs to spin up a new development sandbox, list running sandboxes, start/stop/restart an instance, or manage sandbox lifecycle — even if they just say \"I need a sandbox\" or \"restart my instance\".",
312
398
  "entrypoint": "SKILL.md",
399
+ "frontmatter": {
400
+ "name": "b2c-sandbox",
401
+ "description": "Create and manage on-demand sandboxes (ODS) for B2C Commerce using the b2c CLI. Use this skill whenever the user needs to spin up a new development sandbox, list running sandboxes, start/stop/restart an instance, or manage sandbox lifecycle — even if they just say \"I need a sandbox\" or \"restart my instance\"."
402
+ },
313
403
  "source": "skills/b2c-cli/skills/b2c-sandbox/SKILL.md",
314
404
  "headings": "B2C Sandbox Skill | Configuration & Authentication | Sandbox ID Formats | Examples | List Sandboxes | Create Sandbox | Get/Start/Stop/Restart/Delete Sandbox | Clone Sandbox | More Commands",
315
405
  "files": [
316
406
  {
317
407
  "path": "SKILL.md",
318
- "bytes": 4928
408
+ "bytes": 4928,
409
+ "digest": "sha256:508ff225e9dace1fcce249578ddb14b6180b9ae70e4702d6fb93104a49e532ee"
319
410
  }
320
411
  ]
321
412
  },
@@ -325,12 +416,17 @@
325
416
  "title": "b2c-scapi-custom",
326
417
  "description": "Check custom SCAPI endpoint registration status using the b2c CLI. Use this skill whenever the user needs to verify that their custom API endpoints are registered and working, debug 404 or \"endpoint not found\" errors on custom APIs, or list custom API endpoints and their deployment status — even if they just say \"my custom API returns 404\" or \"is my endpoint deployed\".",
327
418
  "entrypoint": "SKILL.md",
419
+ "frontmatter": {
420
+ "name": "b2c-scapi-custom",
421
+ "description": "Check custom SCAPI endpoint registration status using the b2c CLI. Use this skill whenever the user needs to verify that their custom API endpoints are registered and working, debug 404 or \"endpoint not found\" errors on custom APIs, or list custom API endpoints and their deployment status — even if they just say \"my custom API returns 404\" or \"is my endpoint deployed\"."
422
+ },
328
423
  "source": "skills/b2c-cli/skills/b2c-scapi-custom/SKILL.md",
329
424
  "headings": "B2C SCAPI Custom APIs Skill | Configuration | Tenant ID vs. Organization ID | Deriving Tenant ID from Hostname | Examples | Get Custom API Endpoint Status | Filter by Status | Group by Type or Site | Customize Output Columns | Debug Failed Registrations | Configuration Overrides | More Commands | OAuth Scopes (manual token minting) | Related Skills",
330
425
  "files": [
331
426
  {
332
427
  "path": "SKILL.md",
333
- "bytes": 5316
428
+ "bytes": 5324,
429
+ "digest": "sha256:0e80963b60c31b60d89cca1d5a2dd794ff5cd40f2dd64f65d5594f3aae7bb4ce"
334
430
  }
335
431
  ]
336
432
  },
@@ -340,16 +436,22 @@
340
436
  "title": "b2c-scapi-schemas",
341
437
  "description": "Browse and retrieve SCAPI OpenAPI schema specifications. Use this skill whenever the user needs to list available SCAPI APIs, inspect endpoint paths or request/response shapes, explore data models for products or orders, check which fields an API returns, or understand SCAPI versioning. Also use when looking up API details before building an integration -- even if they just say 'what fields does the product API return' or 'show me the SCAPI endpoints'.",
342
438
  "entrypoint": "SKILL.md",
439
+ "frontmatter": {
440
+ "name": "b2c-scapi-schemas",
441
+ "description": "Browse and retrieve SCAPI OpenAPI schema specifications. Use this skill whenever the user needs to list available SCAPI APIs, inspect endpoint paths or request/response shapes, explore data models for products or orders, check which fields an API returns, or understand SCAPI versioning. Also use when looking up API details before building an integration -- even if they just say 'what fields does the product API return' or 'show me the SCAPI endpoints'."
442
+ },
343
443
  "source": "skills/b2c-cli/skills/b2c-scapi-schemas/SKILL.md",
344
444
  "headings": "SCAPI Schema CLI Examples | List Available Schemas | Filter Schemas | Get Schema (Collapsed/Outline - Default) | Get Schema with Selective Expansion | Get Full Schema | List Available Paths/Schemas/Examples | Output Formats | Custom Properties | Configuration Overrides | More Commands | B2C SCAPI Schemas Skill | Tool choice | Configuration | Tenant ID vs. Organization ID | Deriving Tenant ID from Hostname",
345
445
  "files": [
346
446
  {
347
447
  "path": "references/CLI-EXAMPLES.md",
348
- "bytes": 2776
448
+ "bytes": 2776,
449
+ "digest": "sha256:7449bcc695fa7873dc650761937f19d781a18e1130cf0a53f8aec3e40c1b2572"
349
450
  },
350
451
  {
351
452
  "path": "SKILL.md",
352
- "bytes": 4263
453
+ "bytes": 4631,
454
+ "digest": "sha256:6bfc106b577c6efc6875ae0b86569d367916ccdb9b1fc9a83c6ddeff5b21fb28"
353
455
  }
354
456
  ]
355
457
  },
@@ -359,24 +461,32 @@
359
461
  "title": "b2c-site-import-export",
360
462
  "description": "Author, validate, import, and verify B2C Commerce site archives and metadata XML; export selected data for inspection or migration.",
361
463
  "entrypoint": "SKILL.md",
464
+ "frontmatter": {
465
+ "name": "b2c-site-import-export",
466
+ "description": "Author, validate, import, and verify B2C Commerce site archives and metadata XML; export selected data for inspection or migration."
467
+ },
362
468
  "source": "skills/b2c-cli/skills/b2c-site-import-export/SKILL.md",
363
469
  "headings": "Import Options | Import Commands | Import Local Directory | Import Remote Archive | Apply an Ordered, Idempotent Import Set | Import Archives Larger Than the Instance Limit | Metadata XML Patterns | XSD Schema Reference | Other Import Formats | System Object Extensions | Add String Attribute to Product | Add Enum Attribute to Order | Add Boolean Attribute to Customer Profile | Site Preferences | Boolean Preference | String Preference (API Key) | Preference Values | Custom Object Types | Simple Custom Object | Custom Object Data | Content Assets | Attribute Types Reference | Complete Import Example | Archive Workflows | Common Workflows | Adding a Custom Attribute to Products | Adding Site Preferences | Creating a Custom Object Type | Importing Custom Object Data | Site Archive Structure | Site Archives | Configuration and tool choice | Import and verify | Focused references",
364
470
  "files": [
365
471
  {
366
472
  "path": "references/IMPORT-OPTIONS.md",
367
- "bytes": 6436
473
+ "bytes": 6436,
474
+ "digest": "sha256:31798136ad860104a454fa1a24f1b7080fd945ac417449a874fb4a6ee5a6044c"
368
475
  },
369
476
  {
370
477
  "path": "references/METADATA-XML.md",
371
- "bytes": 14637
478
+ "bytes": 14637,
479
+ "digest": "sha256:12c1ba4308d4b71c1da4df2188546f5e2940875f23e983b1735b2ac9f799d99a"
372
480
  },
373
481
  {
374
482
  "path": "references/WORKFLOWS.md",
375
- "bytes": 5589
483
+ "bytes": 5589,
484
+ "digest": "sha256:b7e5189e840411be658eb9d7f6f817e8c47fa79707c4ff4de849ecdebad23cc4"
376
485
  },
377
486
  {
378
487
  "path": "SKILL.md",
379
- "bytes": 2960
488
+ "bytes": 2952,
489
+ "digest": "sha256:774643b9a77c8cb389f6f9ddf54043b8c2a2ded12e25ed5312ea8b26d8643a5c"
380
490
  }
381
491
  ]
382
492
  },
@@ -386,12 +496,17 @@
386
496
  "title": "b2c-sites",
387
497
  "description": "List storefront sites, check site status, and manage cartridge paths on B2C Commerce instances using the b2c CLI. Use this skill whenever the user needs to discover site IDs, check which storefronts are online or offline, get site configuration as JSON, or view/modify the ordered cartridge path for a site or Business Manager. Also use when the user needs site information for scripting, CI/CD pipelines, or as input to other commands — even if they just say \"what sites do I have\" or \"add this cartridge to my site\".",
388
498
  "entrypoint": "SKILL.md",
499
+ "frontmatter": {
500
+ "name": "b2c-sites",
501
+ "description": "List storefront sites, check site status, and manage cartridge paths on B2C Commerce instances using the b2c CLI. Use this skill whenever the user needs to discover site IDs, check which storefronts are online or offline, get site configuration as JSON, or view/modify the ordered cartridge path for a site or Business Manager. Also use when the user needs site information for scripting, CI/CD pipelines, or as input to other commands — even if they just say \"what sites do I have\" or \"add this cartridge to my site\"."
502
+ },
389
503
  "source": "skills/b2c-cli/skills/b2c-sites/SKILL.md",
390
504
  "headings": "B2C Sites Skill | Configuration & Authentication | Commands | `b2c sites list` | Cartridge Path Management | Common Use Cases | Related Skills",
391
505
  "files": [
392
506
  {
393
507
  "path": "SKILL.md",
394
- "bytes": 5077
508
+ "bytes": 5102,
509
+ "digest": "sha256:bc55d1bdc1845e0356dc3671c23a9e319f56975d5acb59387125fe18d2f0222d"
395
510
  }
396
511
  ]
397
512
  },
@@ -401,12 +516,17 @@
401
516
  "title": "b2c-slas",
402
517
  "description": "Create, update, and manage SLAS (Shopper Login and API Access Service) clients using the b2c CLI. Use this skill whenever the user needs to provision a SLAS client, update OAuth scopes, rotate client secrets, get a shopper access token, or configure shopper authentication for headless, PWA, or Storefront Next (SFNext) storefronts — even if they just say \"I need a shopper token\" or \"set up auth for my storefront\".",
403
518
  "entrypoint": "SKILL.md",
519
+ "frontmatter": {
520
+ "name": "b2c-slas",
521
+ "description": "Create, update, and manage SLAS (Shopper Login and API Access Service) clients using the b2c CLI. Use this skill whenever the user needs to provision a SLAS client, update OAuth scopes, rotate client secrets, get a shopper access token, or configure shopper authentication for headless, PWA, or Storefront Next (SFNext) storefronts — even if they just say \"I need a shopper token\" or \"set up auth for my storefront\"."
522
+ },
404
523
  "source": "skills/b2c-cli/skills/b2c-slas/SKILL.md",
405
524
  "headings": "B2C SLAS Skill | Configuration | When to Use | Examples | List SLAS Clients | Get SLAS Client Details | Create SLAS Client | Create Client for Custom API Testing | Get a Shopper Token | Update SLAS Client | Delete SLAS Client | Open SLAS Client | More Commands | Related Skills",
406
525
  "files": [
407
526
  {
408
527
  "path": "SKILL.md",
409
- "bytes": 7437
528
+ "bytes": 7417,
529
+ "digest": "sha256:8b50ea9c51f186d0dc0fda22d214599bdb5632323563220361bc5ca43e90bd85"
410
530
  }
411
531
  ]
412
532
  },
@@ -416,12 +536,17 @@
416
536
  "title": "b2c-webdav",
417
537
  "description": "List, upload, download, and manage files on B2C Commerce instances via WebDAV. Use this skill whenever the user needs to upload files to IMPEX directories, download exports from an instance, list remote files, create or delete directories, zip or unzip files on the server, manage file transfers to sandboxes, or browse instance file systems — even if they just say \"upload a file to the instance\" or \"check what's in the IMPEX folder\".",
418
538
  "entrypoint": "SKILL.md",
539
+ "frontmatter": {
540
+ "name": "b2c-webdav",
541
+ "description": "List, upload, download, and manage files on B2C Commerce instances via WebDAV. Use this skill whenever the user needs to upload files to IMPEX directories, download exports from an instance, list remote files, create or delete directories, zip or unzip files on the server, manage file transfers to sandboxes, or browse instance file systems — even if they just say \"upload a file to the instance\" or \"check what's in the IMPEX folder\"."
542
+ },
419
543
  "source": "skills/b2c-cli/skills/b2c-webdav/SKILL.md",
420
544
  "headings": "B2C WebDAV Skill | MCP equivalent | Configuration & Authentication | WebDAV Roots | Examples | Dynamic Site Files | List Files | Download Files | Upload Files | Create Directories | Delete Files | Delete Cartridges | Zip/Unzip Remote Files | Import-Set Managed State | More Commands | Related Skills",
421
545
  "files": [
422
546
  {
423
547
  "path": "SKILL.md",
424
- "bytes": 6788
548
+ "bytes": 6788,
549
+ "digest": "sha256:535197f57e1d7ad1b69b8ea7216d28aaf4da0bbbc4b5d8d0cf862ad67216d61e"
425
550
  }
426
551
  ]
427
552
  },
@@ -431,16 +556,22 @@
431
556
  "title": "b2c-business-manager-extensions",
432
557
  "description": "Build Business Manager extension cartridges with custom admin tools, menu items, and dialog actions. Use this skill whenever the user needs to create bm_* cartridges, add menu actions or dialog buttons in BM, configure bm_extensions.xml, or extend admin pages with form overlays. Also use when customizing the BM interface for back-office workflows -- even if they just say 'add a button to BM' or 'custom admin page'.",
433
558
  "entrypoint": "SKILL.md",
559
+ "frontmatter": {
560
+ "name": "b2c-business-manager-extensions",
561
+ "description": "Build Business Manager extension cartridges with custom admin tools, menu items, and dialog actions. Use this skill whenever the user needs to create bm_* cartridges, add menu actions or dialog buttons in BM, configure bm_extensions.xml, or extend admin pages with form overlays. Also use when customizing the BM interface for back-office workflows -- even if they just say 'add a button to BM' or 'custom admin page'."
562
+ },
434
563
  "source": "skills/b2c/skills/b2c-business-manager-extensions/SKILL.md",
435
564
  "headings": "Business Manager Extensions XML Reference | XSD Schema Reference | File Location & Encoding | Root Element | Localized text: `LocalizedString` | Positioning | Menu Item Element | Attributes | Child Elements (in schema order) | Menu Action Element | Attributes | Child Elements | exec Element | sub-pipelines and the permission check | The `NoPermissionCheck` idiom | Dialog Action Element | Attributes | Child Elements | Common Extension Points (`xp_ref`) | Form Extension Element | formextension attributes | valueinput attributes | valueinput child elements | Complete Example | Controller Template | ISML Template | Core Business Manager Menu IDs | Site Menu (`site=\"true\"`) | Administration Menu (`site=\"false\"`) | Business Manager Extensions Skill | Overview | ⚠️ Schema essentials (read first) | File Structure | Basic bm_extensions.xml | Menu Items | Menu Actions | The `NoPermissionCheck` idiom | Dialog Actions | Form Extensions | Controller Example | Template Example | Attaching to Existing BM Menus | Enabling the Extension | Best Practices | Detailed Reference",
436
565
  "files": [
437
566
  {
438
567
  "path": "references/EXTENSIONS-XML.md",
439
- "bytes": 16933
568
+ "bytes": 16933,
569
+ "digest": "sha256:0f9e14eebdea34ab383693c636ffb1d40cd7f10772fe634e821b2c00f71a4a60"
440
570
  },
441
571
  {
442
572
  "path": "SKILL.md",
443
- "bytes": 15768
573
+ "bytes": 15768,
574
+ "digest": "sha256:37024f4465bedc1dc7d4907cab1d9e1b2233a9529b91fdb316f48fadc8712bdc"
444
575
  }
445
576
  ]
446
577
  },
@@ -450,20 +581,27 @@
450
581
  "title": "b2c-controllers",
451
582
  "description": "Create storefront controllers using SFRA or classic patterns with server.get/post, middleware chains, and res.render/json. Use this skill whenever the user needs to build a page route, handle form submissions, create AJAX endpoints, extend or override existing controllers, or add middleware to a request pipeline. Also use when debugging route registration or response rendering -- even if they just say 'new page endpoint' or 'handle a POST request'.",
452
583
  "entrypoint": "SKILL.md",
584
+ "frontmatter": {
585
+ "name": "b2c-controllers",
586
+ "description": "Create storefront controllers using SFRA or classic patterns with server.get/post, middleware chains, and res.render/json. Use this skill whenever the user needs to build a page route, handle form submissions, create AJAX endpoints, extend or override existing controllers, or add middleware to a request pipeline. Also use when debugging route registration or response rendering -- even if they just say 'new page endpoint' or 'handle a POST request'."
587
+ },
453
588
  "source": "skills/b2c/skills/b2c-controllers/SKILL.md",
454
589
  "headings": "Classic Controller Patterns | When to Use Classic Controllers | Basic Structure | Request Handling | Response Types | HTML Response (ISML) | JSON Response | XML Response | Redirect | Status Codes | Error Handling | Database Operations | HTTPS Enforcement | Authentication Check | Complete Example | Comparison: Classic vs SFRA | SFRA Controller Patterns | Basic Route Structure | HTTP Methods | Multiple Middleware | Request Object Properties | Response Methods | View Data Pattern | Route Events | Extending Controllers | Using module.superModule | Append Pattern (Most Common) | Prepend Pattern | Replace Pattern | Common Middleware Examples | Caching Middleware | Authentication Middleware | HTTPS Middleware | CSRF Protection | Form Handling | AJAX Responses | Complete Controller Example | Controllers Skill | Overview | Two Controller Patterns | File Location | SFRA Controllers (Recommended) | Request Object (req) | Response Object (res) | Middleware | Common Middleware | Route Events | Extending Controllers | Classic Controllers (Non-SFRA) | Module Imports | Error Handling | Generating URLs | Best Practices | Detailed Reference",
455
590
  "files": [
456
591
  {
457
592
  "path": "references/CLASSIC-PATTERNS.md",
458
- "bytes": 7982
593
+ "bytes": 7982,
594
+ "digest": "sha256:ea43accf307455faf8736064e6433e9ce23a7c15633e0573fc737d483fd5b364"
459
595
  },
460
596
  {
461
597
  "path": "references/SFRA-PATTERNS.md",
462
- "bytes": 8601
598
+ "bytes": 8601,
599
+ "digest": "sha256:a4f953214157b2aeddb6f7af3e6cf507543750d2035d967e24a5accbb84409ad"
463
600
  },
464
601
  {
465
602
  "path": "SKILL.md",
466
- "bytes": 8729
603
+ "bytes": 8729,
604
+ "digest": "sha256:fe258ec5afff48fc7596e8bb1aa2523c33407ff2710043c49802844d68b24ea7"
467
605
  }
468
606
  ]
469
607
  },
@@ -473,24 +611,32 @@
473
611
  "title": "b2c-custom-api-development",
474
612
  "description": "Develop Custom SCAPI REST endpoints with api.json routes, schema.yaml definitions, and OAuth scope configuration. Use this skill whenever the user needs to create a custom API on the Commerce platform, define OpenAPI 3.0 schemas for request/response, structure the rest-apis cartridge folder, or debug endpoint registration and 404 issues. Also use when building headless commerce integrations, choosing between Shopper (`ShopperToken`) and Admin (`AmOAuth2`) APIs, or troubleshooting why a Custom API endpoint isn't appearing or returning 404 in `b2c scapi custom status` — even if they just say 'custom REST endpoint', 'expose my script as an API', or 'my admin custom API isn't registering'.",
475
613
  "entrypoint": "SKILL.md",
614
+ "frontmatter": {
615
+ "name": "b2c-custom-api-development",
616
+ "description": "Develop Custom SCAPI REST endpoints with api.json routes, schema.yaml definitions, and OAuth scope configuration. Use this skill whenever the user needs to create a custom API on the Commerce platform, define OpenAPI 3.0 schemas for request/response, structure the rest-apis cartridge folder, or debug endpoint registration and 404 issues. Also use when building headless commerce integrations, choosing between Shopper (`ShopperToken`) and Admin (`AmOAuth2`) APIs, or troubleshooting why a Custom API endpoint isn't appearing or returning 404 in `b2c scapi custom status` — even if they just say 'custom REST endpoint', 'expose my script as an API', or 'my admin custom API isn't registering'."
617
+ },
476
618
  "source": "skills/b2c/skills/b2c-custom-api-development/SKILL.md",
477
619
  "headings": "API Contract Reference (schema.yaml) | Full Schema Example | Contract Requirements | Shopper vs Admin APIs | Admin API call contexts | Path Parameter Example | Request Body Example (POST/PUT/PATCH) | Implementation Reference (script.js) | Complete Implementation Example | Best Practices | Caching Responses | Remote Includes | External Service Calls | services.xml Example | HTTP Methods Supported | Circuit Breaker Protection | Testing Custom APIs | Prerequisites for Testing | Get a Shopper Token (Private Client) | Call Your Custom API | Testing Admin APIs | Get an Admin Token via the CLI (recommended) | Get an Admin Token via curl | Testing Tips | Common Test Failures | Custom API Development Skill | Scope & grounding | Overview | Cartridge Structure | Component 1: API Contract (schema.yaml) | Cartridge path requirements (where the platform looks up your `rest-apis/` folder) | Component 2: Implementation (script.js) | Component 3: Mapping (api.json) | Development Workflow | Deployment | When you need to re-activate the code version (`--reload`) | Authentication Setup | For Shopper APIs | For Admin APIs | Troubleshooting | Registration Issues | Related Skills | Reference Documentation",
478
620
  "files": [
479
621
  {
480
622
  "path": "references/CONTRACT.md",
481
- "bytes": 5263
623
+ "bytes": 5263,
624
+ "digest": "sha256:e5b764f7a007dc17d8558e6cc1c0e59698bea00f01cf3820d5264a0958399d12"
482
625
  },
483
626
  {
484
627
  "path": "references/IMPLEMENTATION.md",
485
- "bytes": 4568
628
+ "bytes": 4568,
629
+ "digest": "sha256:ebdd8e15031e263d2762d5bfd2068e3c8a64621e5876419926128ec7a433919b"
486
630
  },
487
631
  {
488
632
  "path": "references/TESTING.md",
489
- "bytes": 4826
633
+ "bytes": 4826,
634
+ "digest": "sha256:d3c85c77217043e23bb43be23c98180aaccbbb56c7307181d0a10b929bf417d2"
490
635
  },
491
636
  {
492
637
  "path": "SKILL.md",
493
- "bytes": 14684
638
+ "bytes": 14684,
639
+ "digest": "sha256:3bd3362e523409989340c4b6ec5ee6f5ffec6e2483516fcbf659641d399557fd"
494
640
  }
495
641
  ]
496
642
  },
@@ -500,12 +646,17 @@
500
646
  "title": "b2c-custom-caches",
501
647
  "description": "Implement custom caching with CacheMgr, caches.json definitions, and cache region configuration. Use this skill whenever the user needs to cache expensive computations or API responses server-side, define cache regions with TTL and size limits, invalidate cache entries, or debug disappearing cache data. Also use when optimizing script performance with application-level caching -- even if they just say 'cache this data' or 'my cached values keep disappearing'.",
502
648
  "entrypoint": "SKILL.md",
649
+ "frontmatter": {
650
+ "name": "b2c-custom-caches",
651
+ "description": "Implement custom caching with CacheMgr, caches.json definitions, and cache region configuration. Use this skill whenever the user needs to cache expensive computations or API responses server-side, define cache regions with TTL and size limits, invalidate cache entries, or debug disappearing cache data. Also use when optimizing script performance with application-level caching -- even if they just say 'cache this data' or 'my cached values keep disappearing'."
652
+ },
503
653
  "source": "skills/b2c/skills/b2c-custom-caches/SKILL.md",
504
654
  "headings": "B2C Custom Caches | When to Use Custom Caches | Limitations | Defining a Custom Cache | File Structure | package.json | caches.json | Using Custom Caches | Script API Classes | Basic Usage | Recommended Pattern: get with Loader | Scoped Cache Keys | Cache Methods | Best Practices | Do | Don't | Cache Invalidation | Common Patterns | Caching External API Responses | Caching Expensive Calculations | Configuration Cache with Site Scope | Troubleshooting",
505
655
  "files": [
506
656
  {
507
657
  "path": "SKILL.md",
508
- "bytes": 8266
658
+ "bytes": 8266,
659
+ "digest": "sha256:4532b4e1dd070b3698951591362a6b74400837d87b08f00fb6ebee8f97584428"
509
660
  }
510
661
  ]
511
662
  },
@@ -515,28 +666,37 @@
515
666
  "title": "b2c-custom-job-steps",
516
667
  "description": "Create custom job steps for B2C Commerce batch processing. Use this skill whenever the user needs to write a batch job, data export script, scheduled cleanup task, or any server-side processing that runs on a schedule. Also use when they ask about steptypes.json, chunk-oriented vs task-oriented job steps, read/process/write patterns, how to get a custom job to appear in Business Manager, or how to author and import a jobs.xml job definition (job/flow/step structure, step type, the required triggers element) so a step type becomes a runnable, schedulable job — even if they just say \"I need a script that runs nightly\" or \"batch process orders\".",
517
668
  "entrypoint": "SKILL.md",
669
+ "frontmatter": {
670
+ "name": "b2c-custom-job-steps",
671
+ "description": "Create custom job steps for B2C Commerce batch processing. Use this skill whenever the user needs to write a batch job, data export script, scheduled cleanup task, or any server-side processing that runs on a schedule. Also use when they ask about steptypes.json, chunk-oriented vs task-oriented job steps, read/process/write patterns, how to get a custom job to appear in Business Manager, or how to author and import a jobs.xml job definition (job/flow/step structure, step type, the required triggers element) so a step type becomes a runnable, schedulable job — even if they just say \"I need a script that runs nightly\" or \"batch process orders\"."
672
+ },
518
673
  "source": "skills/b2c/skills/b2c-custom-job-steps/SKILL.md",
519
674
  "headings": "Chunk-Oriented Job Steps Reference | When to Use | Basic Structure | Product Export Example | Order Processing Example | Customer Sync Example | Chunk Lifecycle | Chunk Size Considerations | Transaction Handling | steptypes.json for Chunk Steps | jobs.xml Reference (Job Definitions) | Namespace & Schema | Document Structure (element order matters) | Minimal Single-Step Job | Step Element | Multi-Step Job | Triggers (required) | run-once (on-demand / manual) | run-recurring (scheduled) | Importing & Running | Common Pitfalls | Related | steptypes.json Reference | File Location | Root Structure | Task-Oriented Step Schema | Chunk-Oriented Step Schema | Step Attributes | Task Step Functions | Chunk Step Functions | Parameters | Parameter Attributes | Parameter Types | Status Codes | Complete Example | Task-Oriented Job Steps Reference | When to Use | Basic Structure | Status Codes | Step Execution Context | FTP Download Example | SFTP Example | HTTP/REST API Example | File Processing Example | Cleanup Example | steptypes.json for Task Steps | Custom Job Steps Skill | When to Use | Overview | File Structure | Step Type Definition (steptypes.json) | From Step Type to Runnable Job (jobs.xml) | Task-Oriented Steps | Script (scripts/steps/myTaskStep.js) | Status Codes | Chunk-Oriented Steps | Required Functions | Optional Functions | Script (scripts/steps/myChunkStep.js) | Parameter Types | Parameter Validation Attributes | Configuration Options | steptypes.json Attributes | Standard (System) Job Steps | Commonly used standard steps | Referencing an IMPEX-staged file from a prior step | Chaining custom + standard steps in one flow | In-flow standard step vs. the CLI equivalent | Best Practices | Related Skills | Detailed Reference",
520
675
  "files": [
521
676
  {
522
677
  "path": "references/CHUNK-ORIENTED.md",
523
- "bytes": 10148
678
+ "bytes": 10148,
679
+ "digest": "sha256:1573609df21440125eaf0e86e9d543f7c982f677c3078a52edd71b3d145c895c"
524
680
  },
525
681
  {
526
682
  "path": "references/JOBS-XML.md",
527
- "bytes": 9451
683
+ "bytes": 9451,
684
+ "digest": "sha256:f734d41e1666e0dc6e23af3f032494ddc1c080efaf919516003bf68b24991e00"
528
685
  },
529
686
  {
530
687
  "path": "references/STEPTYPES-JSON.md",
531
- "bytes": 13956
688
+ "bytes": 13956,
689
+ "digest": "sha256:1adc753c0a17c72c944c080d0d942f30a21d185a05d9232b739690b17c11e757"
532
690
  },
533
691
  {
534
692
  "path": "references/TASK-ORIENTED.md",
535
- "bytes": 9967
693
+ "bytes": 9967,
694
+ "digest": "sha256:2a78df661d2ac14481b1c35e9e25260f01e625ed2d40a370815a1c0c287483fe"
536
695
  },
537
696
  {
538
697
  "path": "SKILL.md",
539
- "bytes": 22735
698
+ "bytes": 22735,
699
+ "digest": "sha256:2ed064d1a71472884d268c716fd53850d895e64f4881c8b3d95dfc80918868f3"
540
700
  }
541
701
  ]
542
702
  },
@@ -546,16 +706,22 @@
546
706
  "title": "b2c-custom-objects",
547
707
  "description": "Store and query custom business data using CustomObjectMgr, OCAPI Data API, and Shopper Custom Objects API. Use this skill whenever the user needs to create, read, update, or search custom object instances, build processing queues with status fields, choose between site-scoped and organization-scoped storage, or query custom objects with bool/term filters. Also use when persisting non-standard data -- even if they just say 'store config per site' or 'query my custom data'.",
548
708
  "entrypoint": "SKILL.md",
709
+ "frontmatter": {
710
+ "name": "b2c-custom-objects",
711
+ "description": "Store and query custom business data using CustomObjectMgr, OCAPI Data API, and Shopper Custom Objects API. Use this skill whenever the user needs to create, read, update, or search custom object instances, build processing queues with status fields, choose between site-scoped and organization-scoped storage, or query custom objects with bool/term filters. Also use when persisting non-standard data -- even if they just say 'store config per site' or 'query my custom data'."
712
+ },
549
713
  "source": "skills/b2c/skills/b2c-custom-objects/SKILL.md",
550
714
  "headings": "OCAPI Custom Object Search Reference | Search Endpoint | Request Structure | Query Types | Term Query (Exact Match) | Text Query (Full-Text Search) | Range Filter | Boolean Query | Match All Query | Filtered Query | Nested Query | Sorting | Field Selection | Response Structure | Pagination Example | Complex Query Example | Error Handling | B2C Custom Objects | When to Use Custom Objects | Custom Object Types | Script API (CustomObjectMgr) | Getting Custom Objects | Creating Custom Objects | Querying Custom Objects | Deleting Custom Objects | Getting All Objects of a Type | CustomObjectMgr API Reference | OCAPI Data API | Get Custom Object | Create Custom Object | Update Custom Object | Delete Custom Object | Search Custom Objects | Search Query Types | Shopper Custom Objects API (SCAPI) | Get Custom Object (Shopper) | Required Scopes | Searchable System Fields | Best Practices | Do | Don't | Common Patterns | Configuration Store | Processing Queue | Detailed References",
551
715
  "files": [
552
716
  {
553
717
  "path": "references/OCAPI-SEARCH.md",
554
- "bytes": 6388
718
+ "bytes": 6388,
719
+ "digest": "sha256:d8ce3cac3a498ae0fe9c1fa4eff7ea790411a208a73a3d9d1d80074d773e2bc8"
555
720
  },
556
721
  {
557
722
  "path": "SKILL.md",
558
- "bytes": 9887
723
+ "bytes": 9887,
724
+ "digest": "sha256:58c65b6f45b26e08edf51906f93d26ae3c9d9b7b2abb7db8b3956622cedcd1ce"
559
725
  }
560
726
  ]
561
727
  },
@@ -565,16 +731,22 @@
565
731
  "title": "b2c-forms",
566
732
  "description": "Build forms with validation in B2C Commerce using SFRA patterns. Use this skill whenever the user needs to create a storefront form (checkout, registration, profile edit, address, contact), define form fields in XML, handle form submission in a controller, add field validation rules, or render forms in ISML templates. Also use when they mention form XML definitions, server.forms.getForm, form groups/actions/lists, or CSRF protection on form posts — even if they just say \"I need a registration form\" or \"add validation to checkout\".",
567
733
  "entrypoint": "SKILL.md",
734
+ "frontmatter": {
735
+ "name": "b2c-forms",
736
+ "description": "Build forms with validation in B2C Commerce using SFRA patterns. Use this skill whenever the user needs to create a storefront form (checkout, registration, profile edit, address, contact), define form fields in XML, handle form submission in a controller, add field validation rules, or render forms in ISML templates. Also use when they mention form XML definitions, server.forms.getForm, form groups/actions/lists, or CSRF protection on form posts — even if they just say \"I need a registration form\" or \"add validation to checkout\"."
737
+ },
568
738
  "source": "skills/b2c/skills/b2c-forms/SKILL.md",
569
739
  "headings": "Form XML Reference | XSD Schema Reference | XML Schema | Field Element | All Attributes | Field Types | String Field | Integer Field | Number Field (Decimal) | Boolean Field | Date Field | Validation Patterns | Common Regular Expressions | Custom Validation Script | Groups | Lists | Actions | Object Binding | Complete Examples | Login Form | Address Form | Registration Form with Password Confirmation | Forms Skill | Overview | File Location | Form Definition (XML) | Basic Structure | Field Types | Key Field Attributes | Validation Error Messages | Controller Logic (SFRA) | Rendering a Form | Processing Form Submission | Prepopulating Forms | Template (ISML) | Basic Form Template | Localization | Best Practices | Detailed Reference",
570
740
  "files": [
571
741
  {
572
742
  "path": "references/FORM-XML.md",
573
- "bytes": 11322
743
+ "bytes": 11322,
744
+ "digest": "sha256:3d607174e082a5bf1465a0a3836aa639e7a435b494eac39ec7fa87c19acd75be"
574
745
  },
575
746
  {
576
747
  "path": "SKILL.md",
577
- "bytes": 7481
748
+ "bytes": 7481,
749
+ "digest": "sha256:0c602075f7c4213e05b9afcdd53baf42f070b539c4680dd08bfda8103641f04b"
578
750
  }
579
751
  ]
580
752
  },
@@ -584,24 +756,32 @@
584
756
  "title": "b2c-hooks",
585
757
  "description": "Register and implement B2C Commerce platform hooks declared in hooks.json and invoked by HookMgr during OCAPI/SCAPI requests or system events. Use for hooks.json, HookMgr.callHook(), dw.system.Status, dw.ocapi.shop.* before/after/modifyResponse hooks, dw.order.payment.authorize/authorizeCreditCard, dw.order.calculate, app.payment.processor.*, SCAPI order-payment authorization and placement, rollback semantics, and request.custom transport. Do not use for external Node.js webhooks, SFRA controller middleware or prepend/append chains, scheduled job steps in steptypes.json, or Git/CI hooks.",
586
758
  "entrypoint": "SKILL.md",
759
+ "frontmatter": {
760
+ "name": "b2c-hooks",
761
+ "description": "Register and implement B2C Commerce platform hooks declared in hooks.json and invoked by HookMgr during OCAPI/SCAPI requests or system events. Use for hooks.json, HookMgr.callHook(), dw.system.Status, dw.ocapi.shop.* before/after/modifyResponse hooks, dw.order.payment.authorize/authorizeCreditCard, dw.order.calculate, app.payment.processor.*, SCAPI order-payment authorization and placement, rollback semantics, and request.custom transport. Do not use for external Node.js webhooks, SFRA controller middleware or prepend/append chains, scheduled job steps in steptypes.json, or Git/CI hooks."
762
+ },
587
763
  "source": "skills/b2c/skills/b2c-hooks/SKILL.md",
588
764
  "headings": "OCAPI/SCAPI Hooks Reference | Prerequisites | Hook Naming Convention | Complete Hook Reference | Authentication | Basket | Basket Billing Address | Basket Customer | Basket Coupon | Basket Items | Basket Gift Certificate Item | Basket Payment Instrument | Basket Payment Methods | Basket Shipment | Basket Shipment Shipping Address | Basket Shipment Shipping Method | Basket Shipments Shipping Methods | Category | Customer | Customer Auth | Customer Address | Customer Baskets | Customer Orders | Customer Password | Customer Payment Instrument | Customer Product Lists | Customer Product List Items | Gift Certificate | Order | Order Payment Instrument | Order Payment Methods | Product | Product Search | Promotion | Search Suggestion | Store | Common Patterns | Validation (return error to reject request) | Modify Response (add custom properties) | Custom Properties | Notes | Shopper Order Payment Lifecycle (SCAPI/OCAPI) | Recommended Lifecycle | Hook Responsibilities | Payment-Instrument Resolution | Success and Failure Handling | Alternative: Complete Checkout in `order.afterPOST` | Two-Hook Variant | Cross-References | System Hooks Reference | Calculate Hooks | Extension Points | Registration | SFRA Implementation | SCAPI Consideration | Payment Hooks | Extension Points | Authorization Flow | Capture Flow | Refund Flow | Order Hooks | Order Number Generation | Checkout Hooks | Return Hooks | Shipping Order Hooks | Basket Merge Hooks | Request Hooks | Custom Extension Points | Hook Execution Order | Best Practices | Calculate Hooks | Payment Hooks | General | B2C Commerce Hooks | Hook Types Overview | Hook Registration | File Structure | package.json | hooks.json | Hook Script | HookMgr API | Status Object | Return Value Behavior (Important) | When to Return a Value | When NOT to Return a Value | Summary | OCAPI/SCAPI Hooks | Hook Types | Common Hook Patterns | Passing Data Between Hooks | Detect SCAPI vs OCAPI | Headless Order Payment: Use the Order-PI Authorization Seam | Authorization Semantics | Storefront/BFF Outcome Handling | Alternative: Authorize and Place in `order.afterPOST` | `request.custom` for Inter-Hook Data Passing | System Hooks | Calculate Hooks | Payment Hooks | Order Hooks | Custom Hooks | Remote Includes in Hooks | Best Practices | Error Handling | Circuit Breaker | Timeout | Detailed References",
589
765
  "files": [
590
766
  {
591
767
  "path": "references/OCAPI-SCAPI-HOOKS.md",
592
- "bytes": 24101
768
+ "bytes": 24101,
769
+ "digest": "sha256:b0e56c86042a0a1b1e6076f56e2c3d4abe26614bc6a227a36e9f240e37891e15"
593
770
  },
594
771
  {
595
772
  "path": "references/ORDER-HOOK-LIFECYCLE.md",
596
- "bytes": 7901
773
+ "bytes": 7878,
774
+ "digest": "sha256:056a0e749e6d518be2e578eeb79e9234c9475402149281af0cc798ed390f2fab"
597
775
  },
598
776
  {
599
777
  "path": "references/SYSTEM-HOOKS.md",
600
- "bytes": 16228
778
+ "bytes": 16228,
779
+ "digest": "sha256:065f14a6246884fa2d92041b0cef788053c11ca4901bc8a80a2aa9e8648346ad"
601
780
  },
602
781
  {
603
782
  "path": "SKILL.md",
604
- "bytes": 18143
783
+ "bytes": 18143,
784
+ "digest": "sha256:70416be41a00df167b3cadfa4ceb6a32585d01d0279a1fe3129d646300afb39c"
605
785
  }
606
786
  ]
607
787
  },
@@ -611,20 +791,27 @@
611
791
  "title": "b2c-isml",
612
792
  "description": "Build ISML templates with isprint, isset, isloop, isdecorate, isinclude tags, and ${...} expression syntax. Use this skill whenever the user needs to write or debug storefront templates, create decorator layouts with isreplace, build reusable template modules, control HTML encoding in output, or use ISML expression language for dynamic content. Also use when fixing template rendering issues -- even if they just say 'loop through products in the template' or 'my HTML is getting escaped'.",
613
793
  "entrypoint": "SKILL.md",
794
+ "frontmatter": {
795
+ "name": "b2c-isml",
796
+ "description": "Build ISML templates with isprint, isset, isloop, isdecorate, isinclude tags, and ${...} expression syntax. Use this skill whenever the user needs to write or debug storefront templates, create decorator layouts with isreplace, build reusable template modules, control HTML encoding in output, or use ISML expression language for dynamic content. Also use when fixing template rendering issues -- even if they just say 'loop through products in the template' or 'my HTML is getting escaped'."
797
+ },
614
798
  "source": "skills/b2c/skills/b2c-isml/SKILL.md",
615
799
  "headings": "ISML Expressions Reference | Expression Syntax | Property Access | Built-in Objects | pdict | session | request | response | customer | Operators | Arithmetic | Comparison | Logical | Ternary | String Concatenation | Null Check | Built-in Functions | empty() | Utility Classes | URLUtils | Resource | StringUtils | dw.util.Locale | Date/Time | Formatting Dates | Current Date | Collection Operations | Iteration | Size/Length | Check Contents | Common Patterns | Null-safe Access | Default Values | Conditional Classes | Price Formatting | Product Images | Localized Attributes | ISML Tags Reference | Control Flow Tags | isif / iselseif / iselse | isloop | isbreak / iscontinue / isnext | Variable Tags | isset | isremove | Output Tags | isprint | Template Composition | isinclude | isdecorate / isreplace | ismodule | Content Tags | iscontent | iscache | iscomment | iscomponent | Navigation Tags | isredirect | isstatus | Form Tags | isselect | Script Tag | isscript | Slot Tag | isslot | Cookie Tag | iscookie | Active Data Tags | isobject | isactivedatahead | isactivedatacontext | isanalyticsoff | Special Tags | isprint with style options | ISML Skill | Overview | File Location | Essential Tags | Conditional Logic | Loops | Variables | Output | Include Templates | Decorator Pattern | Expressions | Built-in Utilities | URLUtils | Resource (Localization) | StringUtils | Custom Modules | Caching | Content Type | Embedded Scripts | Comments | Tag Location Constraints | Best Practices | Detailed Reference",
616
800
  "files": [
617
801
  {
618
802
  "path": "references/EXPRESSIONS.md",
619
- "bytes": 6434
803
+ "bytes": 6434,
804
+ "digest": "sha256:6834e7f6447c571b69695d56d82b0f75d185f1c0edfc10530151dc06b1eb3d5c"
620
805
  },
621
806
  {
622
807
  "path": "references/TAGS.md",
623
- "bytes": 10031
808
+ "bytes": 10031,
809
+ "digest": "sha256:86d3b4c5d1044a6cf51ad77be7b34bd8fff1218cb8967c5a1692949b05ea61e1"
624
810
  },
625
811
  {
626
812
  "path": "SKILL.md",
627
- "bytes": 8627
813
+ "bytes": 8627,
814
+ "digest": "sha256:f432b0ffd31f48b3cbafe654d7827dee9781e9c5440ddfb55f51e36be09d7b91"
628
815
  }
629
816
  ]
630
817
  },
@@ -634,16 +821,22 @@
634
821
  "title": "b2c-localization",
635
822
  "description": "Add translations and multi-language support to B2C Commerce storefronts. Use this skill whenever the user needs to translate a storefront, add a new locale, create or edit .properties resource bundles, display translated strings in templates, format dates or currencies for different regions, or build a language switcher. Also use when they mention Resource.msg, Resource.msgf, locale fallback, or i18n — even if they just say \"we need French translations\" or \"make this page work in multiple languages\".",
636
823
  "entrypoint": "SKILL.md",
824
+ "frontmatter": {
825
+ "name": "b2c-localization",
826
+ "description": "Add translations and multi-language support to B2C Commerce storefronts. Use this skill whenever the user needs to translate a storefront, add a new locale, create or edit .properties resource bundles, display translated strings in templates, format dates or currencies for different regions, or build a language switcher. Also use when they mention Resource.msg, Resource.msgf, locale fallback, or i18n — even if they just say \"we need French translations\" or \"make this page work in multiple languages\"."
827
+ },
637
828
  "source": "skills/b2c/skills/b2c-localization/SKILL.md",
638
829
  "headings": "Localization Patterns Reference | Resource Bundle Organization | Recommended Structure | Bundle Content Patterns | Template Patterns | Page Layout | Form Labels | Pluralization | Date Formatting | Number Formatting | Controller Patterns | Locale-Aware Controller | Multi-Locale Email | JavaScript Client-Side | Passing Messages to JS | Using in JS | Special Characters | Escaping in Properties | UTF-8 Encoding | Testing Localization | Pseudo-Localization | Checklist | Localization Skill | Overview | Locale Format | Resource Bundles | Directory Structure | Property File Format | Using Resources in Templates | Parameterized Messages | Locale Fallback | Static Files | Directory Structure | Referencing Static Files | Forms Localization | Form Definition | Resource Bundle | URL Localization | Locale-Aware URLs | Language Switcher | Controller Localization | Accessing Current Locale | Locale-Specific Logic | Email Templates | Setting Locale | Currency Formatting | Date Formatting | Best Practices | Detailed Reference",
639
830
  "files": [
640
831
  {
641
832
  "path": "references/PATTERNS.md",
642
- "bytes": 10391
833
+ "bytes": 10391,
834
+ "digest": "sha256:86d8c24ed6fbb09aed82eb7cb648d46e8f083e1cd63c248ca74a558b4622dfb4"
643
835
  },
644
836
  {
645
837
  "path": "SKILL.md",
646
- "bytes": 9168
838
+ "bytes": 9168,
839
+ "digest": "sha256:788c2b9afe2644685045281a3a9fadad704f2e27164aa03be1ac70b7015d5cfe"
647
840
  }
648
841
  ]
649
842
  },
@@ -653,16 +846,22 @@
653
846
  "title": "b2c-logging",
654
847
  "description": "Implement server-side logging with dw.system.Logger, custom log categories, and named log files. Use this skill whenever the user needs to add debug or error logging to Commerce scripts, write to a dedicated log file, configure log categories and levels, or use nested diagnostic context for tracing. Also use when setting up logging in controllers, hooks, or job scripts -- even if they just say 'add logging to my script' or 'write to a custom log file'.",
655
848
  "entrypoint": "SKILL.md",
849
+ "frontmatter": {
850
+ "name": "b2c-logging",
851
+ "description": "Implement server-side logging with dw.system.Logger, custom log categories, and named log files. Use this skill whenever the user needs to add debug or error logging to Commerce scripts, write to a dedicated log file, configure log categories and levels, or use nested diagnostic context for tracing. Also use when setting up logging in controllers, hooks, or job scripts -- even if they just say 'add logging to my script' or 'write to a custom log file'."
852
+ },
656
853
  "source": "skills/b2c/skills/b2c-logging/SKILL.md",
657
854
  "headings": "Log Files Reference | Log File Types | Custom Log Files | System Log Files | Custom Named Log Files | Log File Locations | WebDAV Access | Business Manager Access | Log Retention | Archive Process | Storage Limits | Custom Log Size Limits | File Count Limits | Custom Log File Quota | Log Entry Format | Standard Format | With NDC | Redundancy Tracking | Quota Log Format | Security Log Format | Import/Export Logs | Accessing Logs Programmatically | Via WebDAV Client | Via B2C CLI | Debug Logging on Production | Best Practices | 1. Monitor Log File Sizes | 2. Use Custom Named Logs for Integrations | 3. Clean Up Old Logs | 4. Configure Categories in Business Manager | 5. Use Appropriate Log Levels | Logging Skill | Overview | Log Levels | Basic Logging | Using Logger (Static Methods) | Using Log (Instance Methods) | Categories | Custom Named Log Files | File Name Rules | File Naming Pattern | Quota | Checking Log Level Status | Static Level Checks | Message Formatting | Nested Diagnostic Context (NDC) | NDC Methods | Best Practices | 1. Use Categories | 2. Check Level Before Expensive Operations | 3. Include Context in Messages | 4. Use Appropriate Levels | 5. Use Custom Log Files for Integration | 6. Don't Log Sensitive Data | Business Manager Configuration | Configuring Categories | Log Output Format | Detailed Reference | Script API Classes",
658
855
  "files": [
659
856
  {
660
857
  "path": "references/LOG-FILES.md",
661
- "bytes": 7369
858
+ "bytes": 7369,
859
+ "digest": "sha256:eedf4805e18a49be46869bc6031f9d5f6c1b847ecb59c5f861325e1b17b8581d"
662
860
  },
663
861
  {
664
862
  "path": "SKILL.md",
665
- "bytes": 10009
863
+ "bytes": 10009,
864
+ "digest": "sha256:ba5e6efc72f1399c4fd0515d9067c36f76d94e8fc80fe9e65dfdfd38094c5193"
666
865
  }
667
866
  ]
668
867
  },
@@ -672,20 +871,27 @@
672
871
  "title": "b2c-metadata",
673
872
  "description": "Define custom attributes, custom object types, and site preferences for B2C Commerce using metadata XML. Use this skill whenever the user needs to add a field to products, orders, or customers, create a new custom object type, set up site preferences, or extend the B2C data model. Also use when they ask about system-objecttype-extensions.xml, custom-objecttype-definitions.xml, attribute groups in Business Manager, or data model definitions — even if they just say \"add a field to products\" or \"I need a new object type\".",
674
873
  "entrypoint": "SKILL.md",
874
+ "frontmatter": {
875
+ "name": "b2c-metadata",
876
+ "description": "Define custom attributes, custom object types, and site preferences for B2C Commerce using metadata XML. Use this skill whenever the user needs to add a field to products, orders, or customers, create a new custom object type, set up site preferences, or extend the B2C data model. Also use when they ask about system-objecttype-extensions.xml, custom-objecttype-definitions.xml, attribute groups in Business Manager, or data model definitions — even if they just say \"add a field to products\" or \"I need a new object type\"."
877
+ },
675
878
  "source": "skills/b2c/skills/b2c-metadata/SKILL.md",
676
879
  "headings": "System Objects Reference | Product-Related | Product | ProductLineItem | Category | Order-Related | Order | Basket | Shipment | Customer-Related | Profile | CustomerAddress | Content-Related | Content | Folder | Site Configuration | SitePreferences | OrganizationPreferences | Other Objects | Store | GiftCertificate | SourceCodeGroup | Complete List of System Objects | Metadata XML Examples | XSD Schema Reference | Site Archive Structure | Adding Custom Attributes to Products | Metadata (meta/system-objecttype-extensions.xml) | Adding Custom Attributes to Orders | Custom Object Definition | Site Preferences | Metadata | Preference Values (sites/RefArch/preferences.xml) | Product Data with Custom Attributes | Custom Object Data | Metadata Skill | Scope & grounding | Overview | Site Archive Structure | System Object Extensions | Basic Structure | Common System Objects | Attribute Types | Enum Value Definitions | Product Custom Attribute Example | Custom Object Definitions | Site Preferences | Metadata (system-objecttype-extensions.xml) | Values (sites/MySite/preferences.xml) | Access in Code | Attribute Definition Options | Best Practices | Quick Reference",
677
880
  "files": [
678
881
  {
679
882
  "path": "references/SYSTEM-OBJECTS.md",
680
- "bytes": 9335
883
+ "bytes": 9335,
884
+ "digest": "sha256:6b80525ccb206e6f55be7385eec5589d972ac0410b811da340fbee4542c3ea36"
681
885
  },
682
886
  {
683
887
  "path": "references/XML-EXAMPLES.md",
684
- "bytes": 15657
888
+ "bytes": 15657,
889
+ "digest": "sha256:673905049e880f26d72b6c950fb84acac3022a2521863c9bf9408e6174ba9c7d"
685
890
  },
686
891
  {
687
892
  "path": "SKILL.md",
688
- "bytes": 17974
893
+ "bytes": 17974,
894
+ "digest": "sha256:e064d0eb92094b59d7834933de1907b3a8cc329bf169fb4f037bfa443c396cbe"
689
895
  }
690
896
  ]
691
897
  },
@@ -695,12 +901,17 @@
695
901
  "title": "b2c-onboarding",
696
902
  "description": "Get started with Salesforce B2C Commerce development. Use this skill when the user is new to B2C Commerce, wants to set up a fresh development environment, is asking \"how do I get started\", needs to install the B2C CLI for the first time, wants to connect a sandbox, or wants to deploy their first cartridge. Triggers on phrases like \"help me get started\", \"set up B2C Commerce\", \"I'm new to this\", \"onboard me\", or \"first-time setup\". NOT for users who already have a configured environment and are asking about specific commands — those should go to the specific skill (b2c-code, b2c-sandbox, b2c-config, etc.).",
697
903
  "entrypoint": "SKILL.md",
904
+ "frontmatter": {
905
+ "name": "b2c-onboarding",
906
+ "description": "Get started with Salesforce B2C Commerce development. Use this skill when the user is new to B2C Commerce, wants to set up a fresh development environment, is asking \"how do I get started\", needs to install the B2C CLI for the first time, wants to connect a sandbox, or wants to deploy their first cartridge. Triggers on phrases like \"help me get started\", \"set up B2C Commerce\", \"I'm new to this\", \"onboard me\", or \"first-time setup\". NOT for users who already have a configured environment and are asking about specific commands — those should go to the specific skill (b2c-code, b2c-sandbox, b2c-config, etc.)."
907
+ },
698
908
  "source": "skills/b2c/skills/b2c-onboarding/SKILL.md",
699
909
  "headings": "B2C Commerce Onboarding Skill | Behavioral rules | Flow | Step 1 — Identify the editor | Step 2 — Install the other B2C skills plugins | Step 3 — Verify the B2C CLI is available | Step 4 — Account Manager access check | Step 5 — Check for existing configuration | Step 6 — Initialize configuration | Step 7 — Sandbox | Step 8 — First cartridge deploy (if applicable) | Step 9 — Route to the user's goal | Reference",
700
910
  "files": [
701
911
  {
702
912
  "path": "SKILL.md",
703
- "bytes": 7737
913
+ "bytes": 7759,
914
+ "digest": "sha256:3ab88befdf79fe7fcdafaaa737ef185251829e5db67cb6fec866ede6816a1aed"
704
915
  }
705
916
  ]
706
917
  },
@@ -710,12 +921,17 @@
710
921
  "title": "b2c-ordering",
711
922
  "description": "Manage the order lifecycle in B2C Commerce including order creation, status transitions, failure handling, and checkout completion. Use this skill whenever the user needs to create an order from a basket, transition order status, handle failed or cancelled orders, implement payment authorization in checkout, or understand async order processing — even if they just say \"my order is stuck\" or \"finish the checkout flow\".",
712
923
  "entrypoint": "SKILL.md",
924
+ "frontmatter": {
925
+ "name": "b2c-ordering",
926
+ "description": "Manage the order lifecycle in B2C Commerce including order creation, status transitions, failure handling, and checkout completion. Use this skill whenever the user needs to create an order from a basket, transition order status, handle failed or cancelled orders, implement payment authorization in checkout, or understand async order processing — even if they just say \"my order is stuck\" or \"finish the checkout flow\"."
927
+ },
713
928
  "source": "skills/b2c/skills/b2c-ordering/SKILL.md",
714
929
  "headings": "B2C Ordering | Order Lifecycle | Creating Orders | Standard Flow (Synchronous) | SCAPI Flow: Create, Authorize Through Order PI, Then Place | OrderMgr API Reference | Order Creation | Order Status | Order Queries | Querying Orders | Get Order by Number | Search Orders | Query by Date Range | Order Status Management | Cancel Order | Fail Order | Handling Failed Orders | SCAPI: Fail Order and Reopen Basket | Undo Cancelled Order | Order Properties | Custom Order Numbers | Best Practices | Do | Don't | Error Handling | Related Skills",
715
930
  "files": [
716
931
  {
717
932
  "path": "SKILL.md",
718
- "bytes": 12120
933
+ "bytes": 12099,
934
+ "digest": "sha256:af239ea07f97766a8847a87521bca58c83a0aca76c3f62667653b9ce5dc9d857"
719
935
  }
720
936
  ]
721
937
  },
@@ -725,20 +941,27 @@
725
941
  "title": "b2c-page-designer",
726
942
  "description": "Define Page Designer page types and component types with regions, attributes, and rendering scripts. Use this skill whenever the user needs to create a new page or component type, configure regions with allowed component constraints, define attribute_definition_groups, debug why a component does not appear in the editor, or fix enum/color attribute pitfalls. Also use when building visual merchandising experiences -- even if they just say 'my component is missing from PD' or 'add a hero banner component'.",
727
943
  "entrypoint": "SKILL.md",
944
+ "frontmatter": {
945
+ "name": "b2c-page-designer",
946
+ "description": "Define Page Designer page types and component types with regions, attributes, and rendering scripts. Use this skill whenever the user needs to create a new page or component type, configure regions with allowed component constraints, define attribute_definition_groups, debug why a component does not appear in the editor, or fix enum/color attribute pitfalls. Also use when building visual merchandising experiences -- even if they just say 'my component is missing from PD' or 'add a hero banner component'."
947
+ },
728
948
  "source": "skills/b2c/skills/b2c-page-designer/SKILL.md",
729
949
  "headings": "Page Designer Attribute Types Reference | String Types | string | text | markup | Numeric Types | integer | Boolean Type | boolean | Selection Types | enum | enum with display names | Media Types | image | file | URL Type | url | Commerce Types | product | category | page | CMS Type | cms_record | Custom Type | custom | Complete Component Example | Page Designer Meta Definitions Reference | Page Type Schema | Page Type Properties | Region Definition Properties | Component Type Schema | Component Type Properties | Attribute Definition Properties | Complete Page Type Example | Complete Component Type Example | Container Component Example | Page Script Context | Component Script Context | Page Designer Skill | Scope & grounding | Overview | File Structure | Page Types | Meta Definition (pages/homepage.json) | Page Script (pages/homepage.js) | Page Template (templates/default/experience/pages/homepage.isml) | Component Types | Meta Definition (components/banner.json) | Component Script (components/banner.js) | Component Template (templates/experience/components/banner.isml) | Attribute Types | Region Definitions | Rendering Pages | In Controllers | In ISML | Component Groups | If the component does not appear in Page Designer | Best Practices | Detailed Reference",
730
950
  "files": [
731
951
  {
732
952
  "path": "references/ATTRIBUTE-TYPES.md",
733
- "bytes": 8272
953
+ "bytes": 8272,
954
+ "digest": "sha256:e40b349b6d1cb0c86d19a0946afc92ab8c93c707197db07132ec5ac6bccc7cb5"
734
955
  },
735
956
  {
736
957
  "path": "references/META-DEFINITIONS.md",
737
- "bytes": 10494
958
+ "bytes": 10494,
959
+ "digest": "sha256:40d7119a6ceef1b53bd2ce01c3c6680849c9922f93056de5500074c82b5d2b2f"
738
960
  },
739
961
  {
740
962
  "path": "SKILL.md",
741
- "bytes": 16065
963
+ "bytes": 16065,
964
+ "digest": "sha256:f40bc64c0a8f494fabdb1dc03e91394d5910e27c0421d06b440723c74a105bda"
742
965
  }
743
966
  ]
744
967
  },
@@ -748,16 +971,22 @@
748
971
  "title": "b2c-querying-data",
749
972
  "description": "Write efficient data queries in B2C Commerce for products, customers, and orders. Use this skill whenever the user needs to search products on a storefront page, look up customer profiles, query orders, paginate search results, or fix slow category pages. Also use when they ask about performance problems with data access, replacing database-intensive APIs with index-backed alternatives, or choosing between search vs query methods — even if they just say \"my category page is slow\" or \"how do I find customers by email\".",
750
973
  "entrypoint": "SKILL.md",
974
+ "frontmatter": {
975
+ "name": "b2c-querying-data",
976
+ "description": "Write efficient data queries in B2C Commerce for products, customers, and orders. Use this skill whenever the user needs to search products on a storefront page, look up customer profiles, query orders, paginate search results, or fix slow category pages. Also use when they ask about performance problems with data access, replacing database-intensive APIs with index-backed alternatives, or choosing between search vs query methods — even if they just say \"my category page is slow\" or \"how do I find customers by email\"."
977
+ },
751
978
  "source": "skills/b2c/skills/b2c-querying-data/SKILL.md",
752
979
  "headings": "Performance-Critical APIs | Product APIs | Database-Intensive (Avoid on Storefront Pages) | Index-Friendly Replacements | Order APIs | Customer / Profile APIs | Custom Object APIs | General Query Performance Rules | Querying Data in B2C Commerce | Product Search (Storefront) | Basic Product Search | Paging Search Results | Getting Variation Data from Search Hits | Search Refinements | ProductSearchModel API Summary | Order Queries | OrderMgr.searchOrders / queryOrders | Query by Date Range | searchOrders vs queryOrders | Customer / Profile Queries | CustomerMgr (Preferred) | Batch Processing (Jobs) | Customer Query Behaviors | System Object Queries (SystemObjectMgr) | Database-Intensive APIs to Avoid | Related Skills | Best Practices | Do | Don't | Job-Specific Guidelines | Detailed References",
753
980
  "files": [
754
981
  {
755
982
  "path": "references/PERFORMANCE-APIS.md",
756
- "bytes": 4476
983
+ "bytes": 4476,
984
+ "digest": "sha256:71a3a31578a2f53cfd8ded8848f32134790ed8cb83207b23591e6d6275c5ecee"
757
985
  },
758
986
  {
759
987
  "path": "SKILL.md",
760
- "bytes": 10467
988
+ "bytes": 10421,
989
+ "digest": "sha256:3a5a1aac36cd143e240fd7ff14aea7d59c5df41336e6704d5bb53252669db270"
761
990
  }
762
991
  ]
763
992
  },
@@ -767,24 +996,32 @@
767
996
  "title": "b2c-scapi-admin",
768
997
  "description": "Build backend integrations that sync data between B2C Commerce and external systems like ERPs, OMS, WMS, or CRMs using SCAPI Admin APIs. Use this skill whenever the user needs to pull or push orders, products, inventory, or customer data programmatically from a backend service, set up server-to-server authentication with Account Manager client credentials and admin OAuth scopes, implement bulk inventory imports with NDJSON, or call any Commerce API from a script or pipeline (not a storefront). Also use when building nightly data exports, warehouse sync jobs, or customer data integrations — even if they just say \"pull orders into our ERP\" or \"sync inventory from the warehouse\".",
769
998
  "entrypoint": "SKILL.md",
999
+ "frontmatter": {
1000
+ "name": "b2c-scapi-admin",
1001
+ "description": "Build backend integrations that sync data between B2C Commerce and external systems like ERPs, OMS, WMS, or CRMs using SCAPI Admin APIs. Use this skill whenever the user needs to pull or push orders, products, inventory, or customer data programmatically from a backend service, set up server-to-server authentication with Account Manager client credentials and admin OAuth scopes, implement bulk inventory imports with NDJSON, or call any Commerce API from a script or pipeline (not a storefront). Also use when building nightly data exports, warehouse sync jobs, or customer data integrations — even if they just say \"pull orders into our ERP\" or \"sync inventory from the warehouse\"."
1002
+ },
770
1003
  "source": "skills/b2c/skills/b2c-scapi-admin/SKILL.md",
771
1004
  "headings": "SCAPI Client Examples | Overview | Base URL Structure | Authentication | Get Admin Token via CLI | Get Token Programmatically | Dual Scope Requirement | Account Manager Setup | API Families | Products API | Catalogs API | Orders API | Inventory Availability API | Inventory IMPEX API | Customers API | Promotions API | Request Tracking | Correlation IDs | Verbose Logging | Error Handling | Common Errors | Rate Limiting | Related Skills | Reference Documentation | Integration Patterns Reference | Inventory Sync Pattern | Real-Time Inventory Updates | Bulk Inventory Import (IMPEX) | Best Practices for Inventory IMPEX | Order Export Pattern | Polling for New Orders | Order Status Updates | Product Sync Pattern | Delta Product Updates | Customer Data Sync Pattern | Export Customers to CRM | Error Handling Pattern | Retry with Exponential Backoff | Dead Letter Queue Pattern | Token Management Pattern | Automatic Token Refresh | Monitoring Pattern | Request Logging | Scheduling Best Practices | Spread Load Over Time | Off-Peak Processing | Idempotency | Admin API OAuth Scopes Reference | Scope Format | Scope Suffix Convention | Getting Tokens with Scopes | Via CLI | Via cURL | Product API Scopes | Order API Scopes | Inventory API Scopes | Pricing API Scopes | Customer Management Scopes | Configuration Scopes | Experience Scopes | CDN API Scopes | Developer API Scopes | SLAS Admin Scopes | Recommended Scope Sets | Order Management Integration | Catalog/Product Sync | Inventory Sync | Customer Data Sync | Read-Only Analytics/Reporting | Full Admin Access | Best Practices | Principle of Least Privilege | Separate Clients for Different Integrations | Token Caching | Audit Scope Usage | Scope Errors | 403 Forbidden - Missing Scope | 403 Forbidden - Missing Tenant Scope | Invalid Scope Error | SCAPI Admin APIs | Tool choice | Execute deliberately | Conditional references",
772
1005
  "files": [
773
1006
  {
774
1007
  "path": "references/CLIENT-EXAMPLES.md",
775
- "bytes": 13741
1008
+ "bytes": 13578,
1009
+ "digest": "sha256:11fccdc7fd284a5392a01c6b6aec1cc11622868c19d3c21708722e10838b9981"
776
1010
  },
777
1011
  {
778
1012
  "path": "references/INTEGRATION-PATTERNS.md",
779
- "bytes": 15062
1013
+ "bytes": 15062,
1014
+ "digest": "sha256:0d1164f87cbb1cc5c54ee84ff1f0f3ca50abfc4a83d00b0428487837ff723ff9"
780
1015
  },
781
1016
  {
782
1017
  "path": "references/OAUTH-SCOPES.md",
783
- "bytes": 10069
1018
+ "bytes": 10069,
1019
+ "digest": "sha256:e5fbec52987ac38bed047a8359fdd7a65a68f0e4ce3142098461fde83f4de072"
784
1020
  },
785
1021
  {
786
1022
  "path": "SKILL.md",
787
- "bytes": 3575
1023
+ "bytes": 3525,
1024
+ "digest": "sha256:4cc116af06289cd956e65f0a76866942bf89d4882b42bc284b3dd92b979d9acf"
788
1025
  }
789
1026
  ]
790
1027
  },
@@ -794,28 +1031,37 @@
794
1031
  "title": "b2c-scapi-shopper",
795
1032
  "description": "Call Shopper Commerce APIs (SCAPI) from headless storefronts and composable commerce apps. Use this skill whenever the user is building with PWA Kit, Storefront Next (SFNext), or a headless frontend and needs to search products, manage baskets, submit orders, access customer data, or set shopper context. Also use when they ask about Shopper API authentication, checkout flows from a frontend app, or performance optimization for API calls — even if they just say \"search products from my PWA\" or \"build a headless checkout\".",
796
1033
  "entrypoint": "SKILL.md",
1034
+ "frontmatter": {
1035
+ "name": "b2c-scapi-shopper",
1036
+ "description": "Call Shopper Commerce APIs (SCAPI) from headless storefronts and composable commerce apps. Use this skill whenever the user is building with PWA Kit, Storefront Next (SFNext), or a headless frontend and needs to search products, manage baskets, submit orders, access customer data, or set shopper context. Also use when they ask about Shopper API authentication, checkout flows from a frontend app, or performance optimization for API calls — even if they just say \"search products from my PWA\" or \"build a headless checkout\"."
1037
+ },
797
1038
  "source": "skills/b2c/skills/b2c-scapi-shopper/SKILL.md",
798
1039
  "headings": "Checkout Flow Reference | Flow Overview | Prerequisites | Step 1: Create Basket | Step 2: Add Items | Update Item Quantity | Remove Item | Step 3: Set Customer Info | Step 4: Set Shipping Address | Step 5: Get and Select Shipping Method | Get Available Shipping Methods | Set Shipping Method | Step 6: Add Payment Instrument | Set Billing Address | Step 7: Submit Order | Step 8: Authorize the Order Payment Instrument | Step 9: Fail a Deterministically Declined Order | Single-Request Basket Creation | Multiple Shipments | Applying Promotions | Apply Coupon Code | Remove Coupon | Error Handling | Common Basket Errors | Basket Validation | SCAPI Client Examples | Overview | Base URL Structure | Configuration Values | Authentication | Create SLAS Client | Get Guest Token | Required Scopes | API Families | Shopper Products | Shopper Search | Shopper Baskets | Shopper Orders | Shopper Customers | Shopper Context API | When to Set Context | Quota Limits | Best Practices | Performance Optimization | Use `select` Parameter | Use `expand` Carefully | Enable Compression | Debugging | Correlation IDs | Verbose Logging | Related Skills | Reference Documentation | Common Patterns Reference | Response Optimization | Field Selection with `select` | Using `expand` Parameter | Compression | Pagination | Offset-Based Pagination | Response Metadata | Error Handling | Error Response Format | Common HTTP Status Codes | Error Handling Pattern | Retry with Exponential Backoff | URL Encoding | Special Characters | Query Parameters | Caching Strategies | Client-Side Caching | CDN Cache Headers | Request Batching | Multiple Products | Parallel Requests | Debugging Requests | Include Correlation ID | Verbose Logging | Log Request/Response | Shopper API Scopes Reference | Scope Overview | Scope Categories | Product APIs | Search APIs | Checkout APIs | Customer APIs | Pricing APIs | Store APIs | Context APIs | Configuration APIs | Product Lists APIs | Special Scopes | Authentication Scopes | Trusted Agent/System Scopes | AI Agent Scope | Custom Scopes | Default Scopes | Recommended Scope Sets | Basic Shopping App (PWA Kit) | Read-Only Catalog Browser | Guest Checkout Only | Full Customer Experience | Best Practices | Minimize Scope Set | Avoid Redundant Scopes | Separate Clients for Different Purposes | Don't Mix Admin and Shopper Scopes | Verifying Token Scopes | Shopper Commerce APIs | Tool choice | Integration essentials | Conditional references",
799
1040
  "files": [
800
1041
  {
801
1042
  "path": "references/CHECKOUT-FLOW.md",
802
- "bytes": 14479
1043
+ "bytes": 14479,
1044
+ "digest": "sha256:0fdae15001e3bab0dc931891d60f3f63e5ad2ba7183cf3583c3b4af73a59fe4c"
803
1045
  },
804
1046
  {
805
1047
  "path": "references/CLIENT-EXAMPLES.md",
806
- "bytes": 11952
1048
+ "bytes": 11640,
1049
+ "digest": "sha256:cb703b0dd6dd5a2f90264694a757fd24ac0f7f3c286bdceae28fa1dae7a854fa"
807
1050
  },
808
1051
  {
809
1052
  "path": "references/COMMON-PATTERNS.md",
810
- "bytes": 9837
1053
+ "bytes": 9837,
1054
+ "digest": "sha256:d3337f184a6e7521205c9d980d3f09315503897f78b14542da220d3401c010e5"
811
1055
  },
812
1056
  {
813
1057
  "path": "references/SCOPES.md",
814
- "bytes": 8446
1058
+ "bytes": 8446,
1059
+ "digest": "sha256:09af9a4012deba400e1a45dcc5d76ffaeb57ee9c2cb1f2ea9692b8140e729e6f"
815
1060
  },
816
1061
  {
817
1062
  "path": "SKILL.md",
818
- "bytes": 3497
1063
+ "bytes": 3413,
1064
+ "digest": "sha256:16ab740894ab046c5904e2e9c50ba1dcedacbb38cb618905a4b477e74017af90"
819
1065
  }
820
1066
  ]
821
1067
  },
@@ -825,24 +1071,32 @@
825
1071
  "title": "b2c-slas-auth-patterns",
826
1072
  "description": "Implement SLAS authentication patterns in B2C Commerce including passwordless login (email OTP, SMS OTP, passkeys), session bridging between PWA Kit/Storefront Next and SFRA, hybrid authentication (B2C 25.3+), token refresh flows, trusted system on behalf of (TSOB), and JWT validation. Use this skill whenever the user asks about shopper authentication beyond basic login, token exchange flows, passwordless or biometric auth, keeping sessions alive across storefronts, handling 409 Conflict errors on token endpoints, refreshing shopper tokens, or validating JWTs — even if they don't mention SLAS by name.",
827
1073
  "entrypoint": "SKILL.md",
1074
+ "frontmatter": {
1075
+ "name": "b2c-slas-auth-patterns",
1076
+ "description": "Implement SLAS authentication patterns in B2C Commerce including passwordless login (email OTP, SMS OTP, passkeys), session bridging between PWA Kit/Storefront Next and SFRA, hybrid authentication (B2C 25.3+), token refresh flows, trusted system on behalf of (TSOB), and JWT validation. Use this skill whenever the user asks about shopper authentication beyond basic login, token exchange flows, passwordless or biometric auth, keeping sessions alive across storefronts, handling 409 Conflict errors on token endpoints, refreshing shopper tokens, or validating JWTs — even if they don't mention SLAS by name."
1077
+ },
828
1078
  "source": "skills/b2c/skills/b2c-slas-auth-patterns/SKILL.md",
829
1079
  "headings": "Passkeys (FIDO2/WebAuthn) | Registration Flow (3 Steps) | Authentication Flow | Session Bridge Reference | Token Types | PWA Kit to SFRA | Step 1: Generate Bridge Tokens | Step 2: Redirect with Tokens | Step 3: SFRA Establishes Session | SFRA to PWA Kit | Step 1: Generate Bridge Tokens in SFRA | Step 2: Redirect to PWA Kit | Step 3: PWA Kit Handles Callback | Hybrid Navigation Component | Error Handling | Security Considerations | Testing | Token Lifecycle Reference | Token Types and Expiry | Access Token Lifecycle | Best Practices for Access Tokens | Refresh Token Patterns | Public Client (Single-Use) | Private Client (Reusable) | Token Rotation Strategy | Public Clients - Handle Race Conditions | Storage Strategies | Session Timeout Handling | Proactive Refresh | Activity-Based Extension | Guest to Registered Transition | Logout and Token Revocation | Error Handling Reference | Debugging Token Issues | B2C SLAS Authentication Patterns | Scope & grounding | Canonical docs | Authentication Methods Overview | Passwordless Email OTP | Flow Overview | Step 1: Initiate Passwordless Login | Step 2: Handle Callback and Send OTP | Step 3: Exchange OTP for Tokens | Rate Limits | Passwordless SMS OTP | Using Marketing Cloud | Custom SMS Provider | Passkeys (FIDO2/WebAuthn) | Session Bridge | Hybrid Authentication (B2C 25.3+) | Benefits | Migration from Plugin SLAS | Token Refresh | Public Clients (Single-Use Refresh) | Private Clients (Reusable Refresh) | Trusted System on Behalf (TSOB) | Use Cases | Get Token on Behalf of Shopper | Important Constraints | Required Configuration | JWT Validation | Get JWKS | Validate Token | Token Claims | Best Practices | Security | Token Management | User Experience | Detailed References",
830
1080
  "files": [
831
1081
  {
832
1082
  "path": "references/PASSKEYS.md",
833
- "bytes": 4525
1083
+ "bytes": 4525,
1084
+ "digest": "sha256:5db9c6ec4cdaf104abd27d719ce571fe4bd5625d3d2bc042aaff5dd164768ca2"
834
1085
  },
835
1086
  {
836
1087
  "path": "references/SESSION-BRIDGE.md",
837
- "bytes": 7808
1088
+ "bytes": 7808,
1089
+ "digest": "sha256:bc87a942ac18354c1bef45061e0f69710f6277e7067ab3a910f434955efa1593"
838
1090
  },
839
1091
  {
840
1092
  "path": "references/TOKEN-LIFECYCLE.md",
841
- "bytes": 9793
1093
+ "bytes": 9793,
1094
+ "digest": "sha256:c4b633234099d93ceeae2bab3eefdf5e06334d57ae1f21fd90751969239e79f2"
842
1095
  },
843
1096
  {
844
1097
  "path": "SKILL.md",
845
- "bytes": 15862
1098
+ "bytes": 15862,
1099
+ "digest": "sha256:21b7df8c751c60828c76097d2f5de2f45c5a791dc9e9bfb25524278e2ec3d2ec"
846
1100
  }
847
1101
  ]
848
1102
  },
@@ -852,28 +1106,37 @@
852
1106
  "title": "b2c-webservices",
853
1107
  "description": "Implement web service integrations in B2C Commerce using LocalServiceRegistry. Use this skill whenever the user needs to call external REST or SOAP APIs from a cartridge, configure service credentials and profiles in services.xml, handle HTTP requests with createRequest/parseResponse callbacks, set up FTP or SFTP file transfers, or troubleshoot circuit breaker errors. Also use when connecting to payment gateways, shipping providers, or third-party services -- even if they just say 'call an external API from my controller' or 'my service keeps timing out'.",
854
1108
  "entrypoint": "SKILL.md",
1109
+ "frontmatter": {
1110
+ "name": "b2c-webservices",
1111
+ "description": "Implement web service integrations in B2C Commerce using LocalServiceRegistry. Use this skill whenever the user needs to call external REST or SOAP APIs from a cartridge, configure service credentials and profiles in services.xml, handle HTTP requests with createRequest/parseResponse callbacks, set up FTP or SFTP file transfers, or troubleshoot circuit breaker errors. Also use when connecting to payment gateways, shipping providers, or third-party services -- even if they just say 'call an external API from my controller' or 'my service keeps timing out'."
1112
+ },
855
1113
  "source": "skills/b2c/skills/b2c-webservices/SKILL.md",
856
1114
  "headings": "FTP/SFTP Services Reference | FTPService Methods | Configuration Styles | Style 1: setOperation (Simple) | Style 2: execute (Advanced) | SFTP Operations | List Directory | Download File | Download to String | Download to Local File | Upload File | Upload String Content | Upload Local File | Delete File | Create Directory | Move/Rename File | Complex Multi-Operation Example | Keep Connection Open | SFTP Key Authentication | File Info | Mock FTP Operations | FTP (Legacy) | HTTP Services Reference | HTTPService Methods | HTTPClient Properties (in parseResponse) | REST API Examples | GET Request | POST with JSON Body | PUT Request | DELETE Request | GET with Query Parameters | Authentication Patterns | Basic Authentication | Bearer Token (OAuth) | API Key Authentication | OAuth 2.0 Client Credentials Flow | Form Submissions (HTTPForm) | Multipart Form Data | Downloading Files | Response Caching | Custom HTTP Client Configuration | Mutual TLS (mTLS) | XML API Example | Error Response Handling | Services XML Import/Export Reference | XSD Schema Reference | XML Namespace | XML Structure | Service Credential | Credential Elements | Password Encryption | Credential with Custom Attributes | Service Profile | Profile Elements | Profile Examples | Service | Service Elements | Service Types | Complete Example | Delete Mode | Import via CLI | Export via Business Manager | Best Practices | SOAP Services Reference | SOAPService Methods | SOAP Service Setup | 1. Upload WSDL | 2. Generate Stub | 3. Create Service Configuration | Basic SOAP Service | Alternative: Set Client in createRequest | WS-Security | WSUtil Methods | WS-Security with Timestamps | Custom SOAP Headers | Handling Complex Types | Error Handling | Mock SOAP Services | Multiple Operations | Setting SOAP Endpoint | MTOM/Attachments | Web Services Skill | Overview | Service Types | Service Framework Components | Business Manager Configuration | Script Components | Basic Pattern | Service Callbacks | Result Object | Unavailable Reasons | Error Handling | Log Filtering | Mocking Services | Service Configuration in Business Manager | Creating a Service | Service Profile Settings | Service Credential Settings | Detailed References | Script API Classes",
857
1115
  "files": [
858
1116
  {
859
1117
  "path": "references/FTP-SERVICES.md",
860
- "bytes": 12987
1118
+ "bytes": 12987,
1119
+ "digest": "sha256:d3111c6f13f61e103f7270acb204e7d626e4fe248558417fdd5124f5754d5e75"
861
1120
  },
862
1121
  {
863
1122
  "path": "references/HTTP-SERVICES.md",
864
- "bytes": 14908
1123
+ "bytes": 14908,
1124
+ "digest": "sha256:b316510bd7eaa1442867c5d3af5eeb6aa1ab6fe822454afea3e55471fb262a7f"
865
1125
  },
866
1126
  {
867
1127
  "path": "references/SERVICES-XML.md",
868
- "bytes": 10962
1128
+ "bytes": 10962,
1129
+ "digest": "sha256:56957d8b4c2a3cd837916f38837dda93b5240a5862699aacceed408a0cfb335d"
869
1130
  },
870
1131
  {
871
1132
  "path": "references/SOAP-SERVICES.md",
872
- "bytes": 17847
1133
+ "bytes": 17847,
1134
+ "digest": "sha256:fe60cd3cfa790793f7ff7329762fcaebdf0d56dbaf38879a0b13b39de9e0f1e3"
873
1135
  },
874
1136
  {
875
1137
  "path": "SKILL.md",
876
- "bytes": 10289
1138
+ "bytes": 10289,
1139
+ "digest": "sha256:bc74d850f4d2f97cfd69d00e52f4c18142f8882ff3ba7e81763ef54fdc14ee6c"
877
1140
  }
878
1141
  ]
879
1142
  },
@@ -883,12 +1146,37 @@
883
1146
  "title": "b2c-checkout-triage",
884
1147
  "description": "Investigate B2C Commerce checkout or payment failures, increased failed orders, or falling order volume. Compare bounded order evidence, integration logs and affected data; separate payment failures from traffic and reporting gaps.",
885
1148
  "entrypoint": "SKILL.md",
1149
+ "frontmatter": {
1150
+ "name": "b2c-checkout-triage",
1151
+ "description": "Investigate B2C Commerce checkout or payment failures, increased failed orders, or falling order volume. Compare bounded order evidence, integration logs and affected data; separate payment failures from traffic and reporting gaps."
1152
+ },
886
1153
  "source": "skills/b2c-ops/skills/b2c-checkout-triage/SKILL.md",
887
1154
  "headings": "Checkout and payment triage | Scope and impact | Access and tools | Checks and decisions | Mitigation and recovery | Escalation and handoff",
888
1155
  "files": [
889
1156
  {
890
1157
  "path": "SKILL.md",
891
- "bytes": 5326
1158
+ "bytes": 5342,
1159
+ "digest": "sha256:b89cb4497f5da00a633c2ecd2eb518c5b1f86adc3bfd88b17cab01577624b542"
1160
+ }
1161
+ ]
1162
+ },
1163
+ {
1164
+ "id": "b2c-ops/b2c-edge-traffic-triage",
1165
+ "collection": "b2c-ops",
1166
+ "title": "b2c-edge-traffic-triage",
1167
+ "description": "Investigate bot activity, scrapers, crawlers or abusive traffic hitting a B2C Commerce storefront through the eCDN (CDN edge). Review WAF, firewall and rate-limiting protections, correlate available traffic evidence, and propose narrowly scoped rule changes for approval.",
1168
+ "entrypoint": "SKILL.md",
1169
+ "frontmatter": {
1170
+ "name": "b2c-edge-traffic-triage",
1171
+ "description": "Investigate bot activity, scrapers, crawlers or abusive traffic hitting a B2C Commerce storefront through the eCDN (CDN edge). Review WAF, firewall and rate-limiting protections, correlate available traffic evidence, and propose narrowly scoped rule changes for approval."
1172
+ },
1173
+ "source": "skills/b2c-ops/skills/b2c-edge-traffic-triage/SKILL.md",
1174
+ "headings": "Edge traffic and bot triage | Scope and impact | Access and tools | Checks and decisions | Mitigation and recovery | Escalation and handoff",
1175
+ "files": [
1176
+ {
1177
+ "path": "SKILL.md",
1178
+ "bytes": 5403,
1179
+ "digest": "sha256:648902852d9ec6a610be45972ebda790e3ac95d8c39566c86e46a12831908ccd"
892
1180
  }
893
1181
  ]
894
1182
  },
@@ -898,16 +1186,22 @@
898
1186
  "title": "b2c-job-health",
899
1187
  "description": "Review B2C Commerce scheduled jobs during routine operations or investigate failed jobs, missing runs, stale imports, and green executions with incomplete results. Check logs and business data before proposing a rerun.",
900
1188
  "entrypoint": "SKILL.md",
1189
+ "frontmatter": {
1190
+ "name": "b2c-job-health",
1191
+ "description": "Review B2C Commerce scheduled jobs during routine operations or investigate failed jobs, missing runs, stale imports, and green executions with incomplete results. Check logs and business data before proposing a rerun."
1192
+ },
901
1193
  "source": "skills/b2c-ops/skills/b2c-job-health/SKILL.md",
902
1194
  "headings": "Job execution logs | Job health | Scope and impact | Access and tools | Checks and decisions | Mitigation and recovery | Escalation and handoff",
903
1195
  "files": [
904
1196
  {
905
1197
  "path": "references/job-logs.md",
906
- "bytes": 1263
1198
+ "bytes": 1263,
1199
+ "digest": "sha256:02f547f12826fe7319f8c042e9b547b49edf06e554163e8e439e0ccb4703443f"
907
1200
  },
908
1201
  {
909
1202
  "path": "SKILL.md",
910
- "bytes": 4839
1203
+ "bytes": 5229,
1204
+ "digest": "sha256:36d5ba515383b1cece9d7cf9b8a006d488e1e98c0b04c17de5440473137f002a"
911
1205
  }
912
1206
  ]
913
1207
  },
@@ -917,16 +1211,22 @@
917
1211
  "title": "b2c-order-failure-triage",
918
1212
  "description": "Find and investigate FAILED B2C Commerce orders, quantify their share of indexed orders, and correlate failed inputs with logs and jobs. Covers SCAPI status-filter limitations and the OCAPI Shop order_search fallback.",
919
1213
  "entrypoint": "SKILL.md",
1214
+ "frontmatter": {
1215
+ "name": "b2c-order-failure-triage",
1216
+ "description": "Find and investigate FAILED B2C Commerce orders, quantify their share of indexed orders, and correlate failed inputs with logs and jobs. Covers SCAPI status-filter limitations and the OCAPI Shop order_search fallback."
1217
+ },
920
1218
  "source": "skills/b2c-ops/skills/b2c-order-failure-triage/SKILL.md",
921
1219
  "headings": "Failed-order search recipe | Choose a supported surface | Access and execution | Bounded query recipe | Errors and interpretation | Failed-order triage | Scope and impact | Access and tools | Checks and decisions | Mitigation and recovery | Escalation and handoff",
922
1220
  "files": [
923
1221
  {
924
1222
  "path": "references/order-evidence.md",
925
- "bytes": 4051
1223
+ "bytes": 4101,
1224
+ "digest": "sha256:f4243f4eeceaf7a716d54899e14eb4c8bc1d664acfb8bad2ef026a7763fecfd8"
926
1225
  },
927
1226
  {
928
1227
  "path": "SKILL.md",
929
- "bytes": 5265
1228
+ "bytes": 5273,
1229
+ "digest": "sha256:26bec20c884e9bd51830ee53c7a1fb0d6942789aa1c199fa391d912b11f2aaff"
930
1230
  }
931
1231
  ]
932
1232
  },
@@ -936,142 +1236,202 @@
936
1236
  "title": "b2c-production-triage",
937
1237
  "description": "Investigate B2C Commerce incidents using B2C MCP logs, SCAPI code-mode job/data reads, and CLI fallbacks. Route error spikes, stale data, or checkout failures to focused runbooks and produce a team or Support handoff.",
938
1238
  "entrypoint": "SKILL.md",
1239
+ "frontmatter": {
1240
+ "name": "b2c-production-triage",
1241
+ "description": "Investigate B2C Commerce incidents using B2C MCP logs, SCAPI code-mode job/data reads, and CLI fallbacks. Route error spikes, stale data, or checkout failures to focused runbooks and produce a team or Support handoff."
1242
+ },
939
1243
  "source": "skills/b2c-ops/skills/b2c-production-triage/SKILL.md",
940
1244
  "headings": "Escalation and support cases | Select the owner | Case or handoff draft | Official platform guidance | Production triage | Scope and impact | Access and tools | Checks and decisions | Mitigation and recovery | Escalation and handoff",
941
1245
  "files": [
942
1246
  {
943
1247
  "path": "references/escalation.md",
944
- "bytes": 5594
1248
+ "bytes": 5594,
1249
+ "digest": "sha256:819e7f10cebee20d0d633118f3afbb0acb92edce460c8ade1f5a32fbf4ca0c1b"
945
1250
  },
946
1251
  {
947
1252
  "path": "SKILL.md",
948
- "bytes": 7592
1253
+ "bytes": 7954,
1254
+ "digest": "sha256:0e8a30ab3c2b13911897ed0c5f663ff70eb8a5d1dc5096ba554e572ce1f1887c"
949
1255
  }
950
1256
  ]
951
1257
  },
952
1258
  {
953
- "id": "storefront-next/sfnext-authentication",
1259
+ "id": "storefront-next/sfnext-accessibility",
954
1260
  "collection": "storefront-next",
955
- "title": "sfnext-authentication",
956
- "description": "Implement authentication in Storefront Next using split-cookie architecture, SLAS tokens, and auth middleware. Use when accessing user identity in loaders, detecting guest vs registered users, using getAuth or useAuth, or understanding session management and token refresh.",
1261
+ "title": "sfnext-accessibility",
1262
+ "description": "Build and fix accessible UI in a Storefront Next storefront (WCAG 2.1 AA): jsx-a11y lint findings, missing accessible names and labels, form error association, dialog focus management, aria-live status messages, keyboard behavior, color contrast, and verifying fixes with Storybook a11y/play() tests and the e2e axe scan with its baseline. Use for \"accessibility\", \"a11y\", \"WCAG\", \"screen reader\", \"aria-label\", \"focus trap\", \"axe violation\", pnpm lint:a11y, pnpm a11y, a11y-baseline.json, skip-a11y, STORYBOOK_A11Y_TEST_MODE, or an accessibility audit finding to fix. Do not use for general lint/typecheck gates (use `storefront-next:sfnext-quality-gates`), writing non-accessibility tests (use `storefront-next:sfnext-testing`), or color/token design (use `storefront-next:sfnext-theming`).",
957
1263
  "entrypoint": "SKILL.md",
958
- "source": "skills/storefront-next/skills/sfnext-authentication/SKILL.md",
959
- "headings": "Authentication Skill | Overview | Cookie Design | Usage in Loaders/Actions | Usage in Components | Common Patterns | Protected Routes | Conditional Data Loading | Troubleshooting | Related Skills",
1264
+ "frontmatter": {
1265
+ "name": "sfnext-accessibility",
1266
+ "description": "Build and fix accessible UI in a Storefront Next storefront (WCAG 2.1 AA): jsx-a11y lint findings, missing accessible names and labels, form error association, dialog focus management, aria-live status messages, keyboard behavior, color contrast, and verifying fixes with Storybook a11y/play() tests and the e2e axe scan with its baseline. Use for \"accessibility\", \"a11y\", \"WCAG\", \"screen reader\", \"aria-label\", \"focus trap\", \"axe violation\", pnpm lint:a11y, pnpm a11y, a11y-baseline.json, skip-a11y, STORYBOOK_A11Y_TEST_MODE, or an accessibility audit finding to fix. Do not use for general lint/typecheck gates (use `storefront-next:sfnext-quality-gates`), writing non-accessibility tests (use `storefront-next:sfnext-testing`), or color/token design (use `storefront-next:sfnext-theming`)."
1267
+ },
1268
+ "source": "skills/storefront-next/skills/sfnext-accessibility/SKILL.md",
1269
+ "headings": "Accessibility checklists | Classify a finding | States to exercise | Keyboard pass (per page or component) | Forms | Images and media | Content and structure | Where to run what | Storefront Next Accessibility | Author accessibly by default | Fix the right layer | Reproduce, fix, confirm | Storybook: a11y addon and play() assertions | e2e axe scan and baseline | Translated text | Related Skills",
960
1270
  "files": [
1271
+ {
1272
+ "path": "references/checklist.md",
1273
+ "bytes": 3350,
1274
+ "digest": "sha256:aa6b37d77fd6cdf0eae9b2c6640e160d05c0d5467c4735200104cb91334625ff"
1275
+ },
961
1276
  {
962
1277
  "path": "SKILL.md",
963
- "bytes": 3717
1278
+ "bytes": 8319,
1279
+ "digest": "sha256:98b843b955571fd76a6e6b848af9191096607785d25d3d3bba529624f345800b"
964
1280
  }
965
1281
  ]
966
1282
  },
967
1283
  {
968
- "id": "storefront-next/sfnext-components",
1284
+ "id": "storefront-next/sfnext-analytics-consent",
969
1285
  "collection": "storefront-next",
970
- "title": "sfnext-components",
971
- "description": "Build UI components in Storefront Next using createPage HOC, Suspense/Await patterns, shadcn/ui, and Tailwind CSS v4. Use when creating page components, adding Suspense boundaries, integrating shadcn/ui, styling with Tailwind, or organizing component files. Covers server vs client rendering patterns and the cn() utility.",
1286
+ "title": "sfnext-analytics-consent",
1287
+ "description": "Storefront Next analytics: engagement adapters (Einstein, Active Data, Data 360), adding a custom adapter, tracking consent gating, PageViewTracker, useAnalytics events, and first-touch attribution (dw_attribution). Use when configuring engagement.adapters in config.server.ts, writing an adapter with hasConsent, registering it in initializeEngagementAdapters, wiring the consent banner (trackingConsent, consentCategories, dw_dnt), firing trackViewProduct/trackCartItemAdd events, debugging why no analytics events are sent, or passing campaign attribution to orders. Do not use for general config loading or env vars (use `storefront-next:sfnext-configuration`), CSP/script allowlisting of third-party tags (use `storefront-next:sfnext-security`), or SEO meta/JSON-LD (use `storefront-next:sfnext-seo`).",
972
1288
  "entrypoint": "SKILL.md",
973
- "source": "skills/storefront-next/skills/sfnext-components/SKILL.md",
974
- "headings": "Components Skill | Page Component Pattern | createPage HOC (Optional) | Suspense Boundaries and Code Splitting | shadcn/ui Components | Tailwind CSS Styling | Dark Mode | Responsive Design | File Organization | Best Practices | Related Skills",
1289
+ "frontmatter": {
1290
+ "name": "sfnext-analytics-consent",
1291
+ "description": "Storefront Next analytics: engagement adapters (Einstein, Active Data, Data 360), adding a custom adapter, tracking consent gating, PageViewTracker, useAnalytics events, and first-touch attribution (dw_attribution). Use when configuring engagement.adapters in config.server.ts, writing an adapter with hasConsent, registering it in initializeEngagementAdapters, wiring the consent banner (trackingConsent, consentCategories, dw_dnt), firing trackViewProduct/trackCartItemAdd events, debugging why no analytics events are sent, or passing campaign attribution to orders. Do not use for general config loading or env vars (use `storefront-next:sfnext-configuration`), CSP/script allowlisting of third-party tags (use `storefront-next:sfnext-security`), or SEO meta/JSON-LD (use `storefront-next:sfnext-seo`)."
1292
+ },
1293
+ "source": "skills/storefront-next/skills/sfnext-analytics-consent/SKILL.md",
1294
+ "headings": "Writing a custom engagement adapter | 1. Implement | 2. Register | 3. Configure | 4. Allow the endpoint in CSP | 5. Test | Storefront Next Analytics and Consent | Where things live | Configure built-in adapters | Fire events | Consent | Add a custom adapter | Attribution | Troubleshooting | Related Skills",
975
1295
  "files": [
1296
+ {
1297
+ "path": "references/CUSTOM-ADAPTER.md",
1298
+ "bytes": 1960,
1299
+ "digest": "sha256:04e693a952002bc0f4e0e715dda994a3202bf15034b6fccfbc268bd2f467372c"
1300
+ },
976
1301
  {
977
1302
  "path": "SKILL.md",
978
- "bytes": 6110
1303
+ "bytes": 6373,
1304
+ "digest": "sha256:8cb5f6ce591e95361bda4b889eec1b82d5c0a526fb03cc4b7eab5be7504abbe3"
979
1305
  }
980
1306
  ]
981
1307
  },
982
1308
  {
983
- "id": "storefront-next/sfnext-configuration",
1309
+ "id": "storefront-next/sfnext-authentication",
984
1310
  "collection": "storefront-next",
985
- "title": "sfnext-configuration",
986
- "description": "Manage Storefront Next application configuration using config.server.ts, schema types, environment variables, and multi-site setup. Use when editing config.server.ts, adding PUBLIC__ environment variables, using useConfig or getConfig, or configuring multiple sites. NOT for initial project creation — see sfnext-project-setup.",
1311
+ "title": "sfnext-authentication",
1312
+ "description": "Work with Storefront Next's server-only authentication and session architecture (SLAS guest/registered tokens, httpOnly cookies, auth.server.ts middleware). Use for getAuth, useAuth, updateAuth, destroyAuth, protecting account routes, login/logout actions, guest-to-registered basket/wishlist merge, \"session expired\" redirects, 401 recovery loops, cc-at/cc-nx/usid/dwsid cookies, cookie names or expiry, passwordless login, social login, OTP email verification, passkeys, guest order lookup, or refresh-token lifetime settings. Do not use for Turnstile, CSP headers or cookie-domain config (use `storefront-next:sfnext-security`), calling SCAPI clients (use `storefront-next:sfnext-scapi`), or sharing sessions with SFRA (use `storefront-next:sfnext-hybrid-storefronts`).",
987
1313
  "entrypoint": "SKILL.md",
988
- "source": "skills/storefront-next/skills/sfnext-configuration/SKILL.md",
989
- "headings": "Configuration Skill | Overview | Adding Configuration | 1. Define the type in `src/types/config.ts` | 2. Set defaults in `config.server.ts` | 3. Override via environment variables | Accessing Configuration | In React Components | In Server Loaders/Actions | In Browser Code (Non-Route Modules) | Environment Variable Rules | Multi-Site Configuration | Security | Common Pitfalls | Related Skills",
1314
+ "frontmatter": {
1315
+ "name": "sfnext-authentication",
1316
+ "description": "Work with Storefront Next's server-only authentication and session architecture (SLAS guest/registered tokens, httpOnly cookies, auth.server.ts middleware). Use for getAuth, useAuth, updateAuth, destroyAuth, protecting account routes, login/logout actions, guest-to-registered basket/wishlist merge, \"session expired\" redirects, 401 recovery loops, cc-at/cc-nx/usid/dwsid cookies, cookie names or expiry, passwordless login, social login, OTP email verification, passkeys, guest order lookup, or refresh-token lifetime settings. Do not use for Turnstile, CSP headers or cookie-domain config (use `storefront-next:sfnext-security`), calling SCAPI clients (use `storefront-next:sfnext-scapi`), or sharing sessions with SFRA (use `storefront-next:sfnext-hybrid-storefronts`)."
1317
+ },
1318
+ "source": "skills/storefront-next/skills/sfnext-authentication/SKILL.md",
1319
+ "headings": "Storefront Next Auth Cookies | Rules | Debugging checklist | Login Flows | Passwordless (magic link) and OTP | Email delivery (email cartridge) | Social login | Passkeys | Guest order lookup | Bot protection on login | Storefront Next Authentication | Request flow | Read auth on the server | Read auth in components | Protect a route | Log in and out | Guest to registered merge | Common SCAPI calls for account data | Configuration | Pitfalls | References | Related Skills",
990
1320
  "files": [
1321
+ {
1322
+ "path": "references/COOKIES.md",
1323
+ "bytes": 4608,
1324
+ "digest": "sha256:b011903a96093ab63e11858e458b945a91084f237e80e1553fa41ceb1cbb04b8"
1325
+ },
1326
+ {
1327
+ "path": "references/LOGIN-FLOWS.md",
1328
+ "bytes": 5797,
1329
+ "digest": "sha256:0153b606a185ea0e54e36896d8db078baff4e1521740d209a0fd1479ddfd60af"
1330
+ },
991
1331
  {
992
1332
  "path": "SKILL.md",
993
- "bytes": 5008
1333
+ "bytes": 8282,
1334
+ "digest": "sha256:9fbf8bfc243dad5e41589b8195f95aa7584387ae0923e988c963a77e6ab76792"
994
1335
  }
995
1336
  ]
996
1337
  },
997
1338
  {
998
- "id": "storefront-next/sfnext-create-component",
1339
+ "id": "storefront-next/sfnext-commerce-features",
999
1340
  "collection": "storefront-next",
1000
- "title": "sfnext-create-component",
1001
- "description": "Author a new Storefront Next design-system component the right way — pick the correct layer (primitive vs composite), reuse-or-extend before creating, define CVA variants bound to semantic tokens, add data-slot attributes, satisfy the accessibility checklist, and ship a Storybook story. Use when asked to create, add, or build a new UI component, button/badge/tile/card variant, or design-system primitive. This is the design-system authoring discipline; for createPage/Suspense/shadcn page-rendering patterns see sfnext-components.",
1341
+ "title": "sfnext-commerce-features",
1342
+ "description": "Catalogue and router for optional Storefront Next commerce features: Shopper Context (qualifiers, source codes), Order Management returns/cancel/tracking (SOM/OMS), delivery estimates, feature stubs (@feature-stub), guest order lookup, the app_storefrontnext_base email cartridge, and the shipped extensions (bnpl, bopis, multiship, store-locator, ratings-reviews, customer-preferences, product-content, shipping-delivery, theme-switcher). For each: which flag, SLAS scope, Business Manager setting, cartridge, or extension registry entry it needs, and which in-project doc to read. Use when asked how to enable a feature, why a feature does not render, what prerequisites a feature has, or which stubs are mock data. Do not use for building a new extension (use `storefront-next:sfnext-extensions`), config loading (use `storefront-next:sfnext-configuration`), or SLAS login flows (use `storefront-next:sfnext-authentication`).",
1002
1343
  "entrypoint": "SKILL.md",
1003
- "source": "skills/storefront-next/skills/sfnext-create-component/SKILL.md",
1004
- "headings": "Component authoring standards | Vertical extensions — existing components always have priority | Decision gate (run this before creating any extension component) | Concrete examples | Extend before create — mandatory check before any new component | Multi-vertical extension governance | Layer model — know which layer you are in before writing a line | Primitives (`src/components/ui/`) | CVA — class-variance-authority | data-slot attributes | TypeScript requirements | Copyright header | Naming conventions | Storybook requirement | Accessibility checklist | Project Structure Reference | Key architecture | Theme file layout (the vertical surface) | App file organization | Common commands | Token System Reference | The one rule that overrides everything else | Token files and what they own | Semantic token meanings — use the right one | Text colors | Background colors | Borders | Header/navigation surfaces | Status and feedback | Dark mode rules | What changes per vertical — and what does not | Changes (vertical-specific, lives in `src/theme/tokens/brand.css`) | Does NOT change (shared, lives in core/header/status/swatch/components) | Tailwind utility bridge | Troubleshooting Reference | Token not found in Tailwind utilities | Colors look wrong in dark mode | Vertical changes leak into other verticals | Component already exists | Local pages won't render without SCAPI | Linter errors after changes | Snapshot tests fail after visual changes | Create a Component Skill | Before you start — scan first (extend before create) | Step 1 — Decide the layer | Step 2 — Create the file with the copyright header | Step 3 — Type the props explicitly | Step 4 — Define CVA variants (if the component has visual states) | Step 5 — Write the component | Step 6 — Create the Storybook story | Step 7 — Accessibility check | Verification | Related Skills | Reference Documentation",
1344
+ "frontmatter": {
1345
+ "name": "sfnext-commerce-features",
1346
+ "description": "Catalogue and router for optional Storefront Next commerce features: Shopper Context (qualifiers, source codes), Order Management returns/cancel/tracking (SOM/OMS), delivery estimates, feature stubs (@feature-stub), guest order lookup, the app_storefrontnext_base email cartridge, and the shipped extensions (bnpl, bopis, multiship, store-locator, ratings-reviews, customer-preferences, product-content, shipping-delivery, theme-switcher). For each: which flag, SLAS scope, Business Manager setting, cartridge, or extension registry entry it needs, and which in-project doc to read. Use when asked how to enable a feature, why a feature does not render, what prerequisites a feature has, or which stubs are mock data. Do not use for building a new extension (use `storefront-next:sfnext-extensions`), config loading (use `storefront-next:sfnext-configuration`), or SLAS login flows (use `storefront-next:sfnext-authentication`)."
1347
+ },
1348
+ "source": "skills/storefront-next/skills/sfnext-commerce-features/SKILL.md",
1349
+ "headings": "Feature prerequisites checklist | Shopper Context | Order Management | Delivery estimates | Guest order lookup | Email cartridge | Extensions | Storefront Next Commerce Features | Feature table | Extensions shipped in src/extensions | Feature stubs | Decision flow when \"the feature is not showing\" | Related Skills",
1005
1350
  "files": [
1006
1351
  {
1007
- "path": "references/COMPONENT-AUTHORING.md",
1008
- "bytes": 8647
1009
- },
1010
- {
1011
- "path": "references/PROJECT-STRUCTURE.md",
1012
- "bytes": 1652
1013
- },
1014
- {
1015
- "path": "references/TOKEN-SYSTEM.md",
1016
- "bytes": 5525
1017
- },
1018
- {
1019
- "path": "references/TROUBLESHOOTING.md",
1020
- "bytes": 1914
1352
+ "path": "references/FEATURE-PREREQUISITES.md",
1353
+ "bytes": 2570,
1354
+ "digest": "sha256:61afb36aae23d6700342df9132e76ceae85f379d5e5b00d5d2830fcfe72a7312"
1021
1355
  },
1022
1356
  {
1023
1357
  "path": "SKILL.md",
1024
- "bytes": 7651
1358
+ "bytes": 6212,
1359
+ "digest": "sha256:913d331d0d9b9c7ae05b2b09de66f0b3981bce54a8d573359f9ffb8beb4735f4"
1025
1360
  }
1026
1361
  ]
1027
1362
  },
1028
1363
  {
1029
- "id": "storefront-next/sfnext-create-vertical",
1364
+ "id": "storefront-next/sfnext-components",
1030
1365
  "collection": "storefront-next",
1031
- "title": "sfnext-create-vertical",
1032
- "description": "Create a new Storefront Next vertical (brand theme / storefront variant) by editing brand design tokens, typography, dark mode, and the Figma kit. Use when asked to create a new vertical, brand, theme, or storefront variant, re-skin the storefront, or change the brand palette. Covers the brand.css token layer, semantic token rules, fixture-based local development, and the extension-vs-base decision. NOT for engineering component patterns — see sfnext-components.",
1366
+ "title": "sfnext-components",
1367
+ "description": "Build and modify UI components in a Storefront Next storefront: page components with Suspense and use()/Await, createPage and withSuspense, Tailwind v4 token classes, shape tokens (rounded-ui, shadow-ui, border-ui), shadcn/ui primitives in src/components/ui (sync-shadcn), CVA variants, data-slot, DynamicImage, lazy-loaded overlays, and Storybook stories with snapshot tests. Use when creating or editing a component in src/components, adding a shadcn primitive, fixing styling that ignores the theme, writing a *.stories.tsx file, or running pnpm storybook:test. Do not use for re-branding colors, fonts, or logos (use `storefront-next:sfnext-theming`), route loaders (use `storefront-next:sfnext-data-fetching`), or Page Designer registration (use `storefront-next:sfnext-page-designer`).",
1033
1368
  "entrypoint": "SKILL.md",
1034
- "source": "skills/storefront-next/skills/sfnext-create-vertical/SKILL.md",
1035
- "headings": "Component authoring standards | Vertical extensions — existing components always have priority | Decision gate (run this before creating any extension component) | Concrete examples | Extend before create — mandatory check before any new component | Multi-vertical extension governance | Layer model — know which layer you are in before writing a line | Primitives (`src/components/ui/`) | CVA — class-variance-authority | data-slot attributes | TypeScript requirements | Copyright header | Naming conventions | Storybook requirement | Accessibility checklist | Project Structure Reference | Key architecture | Theme file layout (the vertical surface) | App file organization | Common commands | Token System Reference | The one rule that overrides everything else | Token files and what they own | Semantic token meanings — use the right one | Text colors | Background colors | Borders | Header/navigation surfaces | Status and feedback | Dark mode rules | What changes per vertical — and what does not | Changes (vertical-specific, lives in `src/theme/tokens/brand.css`) | Does NOT change (shared, lives in core/header/status/swatch/components) | Tailwind utility bridge | Troubleshooting Reference | Token not found in Tailwind utilities | Colors look wrong in dark mode | Vertical changes leak into other verticals | Component already exists | Local pages won't render without SCAPI | Linter errors after changes | Snapshot tests fail after visual changes | Create a Vertical Skill | What a vertical is — and is not | Before you start — read the token layer first | Workflow | 1. Establish the brand palette | 2. Add optional typography overrides | 3. Keep local development stable with fixtures | 4. Run the component extension audit before coding | 5. Validate | 6. Sync the Figma kit | Execution modes | Required outcomes | Verification | Related Skills | Reference Documentation",
1369
+ "frontmatter": {
1370
+ "name": "sfnext-components",
1371
+ "description": "Build and modify UI components in a Storefront Next storefront: page components with Suspense and use()/Await, createPage and withSuspense, Tailwind v4 token classes, shape tokens (rounded-ui, shadow-ui, border-ui), shadcn/ui primitives in src/components/ui (sync-shadcn), CVA variants, data-slot, DynamicImage, lazy-loaded overlays, and Storybook stories with snapshot tests. Use when creating or editing a component in src/components, adding a shadcn primitive, fixing styling that ignores the theme, writing a *.stories.tsx file, or running pnpm storybook:test. Do not use for re-branding colors, fonts, or logos (use `storefront-next:sfnext-theming`), route loaders (use `storefront-next:sfnext-data-fetching`), or Page Designer registration (use `storefront-next:sfnext-page-designer`)."
1372
+ },
1373
+ "source": "skills/storefront-next/skills/sfnext-components/SKILL.md",
1374
+ "headings": "Component Authoring | Workflow | Composite example | Rules of thumb | Editing a shadcn primitive | CSS component class, utility, or React component? | Decorative icons from CSS | Accessibility checklist | Page Designer | Shape Tokens | The bridge-variable trap | Overrides | Don't | Stories and Storybook Checks | Layout | Minimal story | Titles | Writing good stories | Commands | Token System | How a token becomes a class | Token files (`src/theme/tokens/`) | Class cheat sheet | Hard-coded colors | Dark mode | Troubleshooting | Storefront Next Components | Before you create anything | Styling rules | Shape tokens (read before touching Card, Button, Input, Dialog) | Page components and Suspense | Links, navigation, text | Images | Overlays | shadcn primitives | Stories and verification | More detail | Related Skills",
1036
1375
  "files": [
1037
1376
  {
1038
1377
  "path": "references/COMPONENT-AUTHORING.md",
1039
- "bytes": 8647
1378
+ "bytes": 6110,
1379
+ "digest": "sha256:4fd83664c1939c6f08067c6fafa1d619759a29ae2700554432815b0cd2a17195"
1040
1380
  },
1041
1381
  {
1042
- "path": "references/PROJECT-STRUCTURE.md",
1043
- "bytes": 1652
1382
+ "path": "references/SHAPE-TOKENS.md",
1383
+ "bytes": 2758,
1384
+ "digest": "sha256:da4b67e11ece78c764b7a18b70bc85a8811f7e5bb5def38770dab8789b5c42a4"
1385
+ },
1386
+ {
1387
+ "path": "references/STORYBOOK.md",
1388
+ "bytes": 2807,
1389
+ "digest": "sha256:9bb205c5cf1fea0af8ed2e5f94e6faa6021842dcc8a40b11542afbded29678af"
1044
1390
  },
1045
1391
  {
1046
1392
  "path": "references/TOKEN-SYSTEM.md",
1047
- "bytes": 5525
1393
+ "bytes": 4101,
1394
+ "digest": "sha256:83357235dc2616be76f41b33028cebd9f6efa98fe7120f8a2ea9c36462ce32de"
1048
1395
  },
1049
1396
  {
1050
1397
  "path": "references/TROUBLESHOOTING.md",
1051
- "bytes": 1914
1398
+ "bytes": 2141,
1399
+ "digest": "sha256:9576d9b2bbc5750293acb264c0c5335b6460c6e6f23ede6e1748a18420b06519"
1052
1400
  },
1053
1401
  {
1054
1402
  "path": "SKILL.md",
1055
- "bytes": 6608
1403
+ "bytes": 10294,
1404
+ "digest": "sha256:3e0cd247f46eeb9775718457806b44b54c4dfde9a41ef82bbbcc86fe00796bcd"
1056
1405
  }
1057
1406
  ]
1058
1407
  },
1059
1408
  {
1060
- "id": "storefront-next/sfnext-custom-apis",
1409
+ "id": "storefront-next/sfnext-configuration",
1061
1410
  "collection": "storefront-next",
1062
- "title": "sfnext-custom-apis",
1063
- "description": "End-to-end workflow for consuming custom SCAPI endpoints from a Storefront Next project — adding them as typed clients via `b2c sfnext scapi add custom`, discovering their schema, and calling them from loaders/actions/useScapiFetcher. Use this skill whenever the user wants to call a custom API from their Storefront Next app, gets a 404 or 401 when calling a custom endpoint from their sfnext loader, needs to add a custom API as a typed client in their storefront, asks about the full workflow from custom API cartridge to sfnext consumption, or says 'custom API in storefront next'. Also use when they ask how createApiClients exposes custom API methods or how to use useScapiFetcher with a custom endpoint. NOT for writing the custom API cartridge files (schema.yaml/script.js) from scratch — see b2c:b2c-custom-api-development. NOT for just checking registration status — see b2c-cli:b2c-scapi-custom.",
1411
+ "title": "sfnext-configuration",
1412
+ "description": "Configure a Storefront Next app: config.server.ts (defineConfig, metadata/runtime/app), AppConfig types in src/types/config.ts, PUBLIC__ environment variable overrides, getConfig(context) / useConfig(), extension config (app.extension, app.serverExtension), protected paths, server-only secrets, and multi-site settings (commerce.sites, url.prefix, seoRoutes, siteAliasMap, cookie domain). Use when editing config.server.ts, adding a config value, an env var is ignored or \"not applied\", `pnpm config:inspect` / `config:push-env`, \"Ignoring environment variable\" warnings, protected config path errors, setting up a second site or locale URLs, or going through the pre-launch config checklist. Do not use for creating a project or the npm script list (use `storefront-next:sfnext-project-setup`), pushing bundles or MRT env management (use `storefront-next:sfnext-deployment` / `b2c-cli:b2c-mrt`), or hybrid proxy and cookie-sharing with SFRA (use `storefront-next:sfnext-hybrid-storefronts`).",
1064
1413
  "entrypoint": "SKILL.md",
1065
- "source": "skills/storefront-next/skills/sfnext-custom-apis/SKILL.md",
1066
- "headings": "Workflow Examples | Example 1: Shopper Custom API — Loyalty Points | Cartridge Structure | schema.yaml | api.json | Deploy and Register | Add to Storefront Next Project | Discover and Use | Storefront Code | Example 2: Admin Custom API — Inventory Check | Key Differences from Shopper APIs | api.json | Usage in Storefront Context | Example 3: useScapiFetcher with Custom API | How It Works | Custom APIs in Storefront Next | Overview | End-to-End Workflow | Step 1: Create the Custom API | Step 2: Deploy and Register | Step 3: Add as Typed Client | Step 4: Discover the API Shape | Step 5: Call from Loaders and Actions | Calling from a Loader (Shopper API) | Calling from an Action (Mutation) | Using useScapiFetcher (Interactive) | Step 6: Debug Issues | Custom API Client Naming | Shopper vs Admin Custom APIs | Common Pitfalls | Related Skills | Reference Documentation",
1414
+ "frontmatter": {
1415
+ "name": "sfnext-configuration",
1416
+ "description": "Configure a Storefront Next app: config.server.ts (defineConfig, metadata/runtime/app), AppConfig types in src/types/config.ts, PUBLIC__ environment variable overrides, getConfig(context) / useConfig(), extension config (app.extension, app.serverExtension), protected paths, server-only secrets, and multi-site settings (commerce.sites, url.prefix, seoRoutes, siteAliasMap, cookie domain). Use when editing config.server.ts, adding a config value, an env var is ignored or \"not applied\", `pnpm config:inspect` / `config:push-env`, \"Ignoring environment variable\" warnings, protected config path errors, setting up a second site or locale URLs, or going through the pre-launch config checklist. Do not use for creating a project or the npm script list (use `storefront-next:sfnext-project-setup`), pushing bundles or MRT env management (use `storefront-next:sfnext-deployment` / `b2c-cli:b2c-mrt`), or hybrid proxy and cookie-sharing with SFRA (use `storefront-next:sfnext-hybrid-storefronts`)."
1417
+ },
1418
+ "source": "skills/storefront-next/skills/sfnext-configuration/SKILL.md",
1419
+ "headings": "Environment Variables | Where variables come from | Required to run | Required to push to Managed Runtime | Common optional `PUBLIC__` overrides | Server-only (no prefix) | Gotchas | Multi-Site, URLs, Domains, Base Path, and Cookie Domain | Quick decision table | Sites and locales | Reading the current site | URL shape (`app.url`) | Aliases | Building URLs correctly | SEO routes (`url.seoRoutes`) | Multiple domains, one environment | Base path (one domain, many environments) | Cookie domain | Switchers | Storefront Next Configuration | Model | Add a config value | Read config | Environment variable rules | Required variables | Debug \"my env var is not applied\" | Protected paths | Secrets | Extension config | Multi-site and URLs | Pre-launch config gate | Related Skills | Finding more",
1067
1420
  "files": [
1068
1421
  {
1069
- "path": "references/WORKFLOW-EXAMPLES.md",
1070
- "bytes": 7317
1422
+ "path": "references/ENV-VARIABLES.md",
1423
+ "bytes": 3582,
1424
+ "digest": "sha256:b9a2664a67f9c7c3a82b4c0ed37a2d21171dd2fc0dbf1b20b74a9a66dbe32902"
1425
+ },
1426
+ {
1427
+ "path": "references/MULTI-SITE-URLS.md",
1428
+ "bytes": 9611,
1429
+ "digest": "sha256:98ff6029ffb4ba93d5b6151084fc45b69395fc25b8008405fc9cdf9e836cede7"
1071
1430
  },
1072
1431
  {
1073
1432
  "path": "SKILL.md",
1074
- "bytes": 8439
1433
+ "bytes": 9742,
1434
+ "digest": "sha256:3594dc3a80bfc8581239e061b0f273e233f396f9e3e854e3aaf79de043cdbf45"
1075
1435
  }
1076
1436
  ]
1077
1437
  },
@@ -1079,22 +1439,39 @@
1079
1439
  "id": "storefront-next/sfnext-data-fetching",
1080
1440
  "collection": "storefront-next",
1081
1441
  "title": "sfnext-data-fetching",
1082
- "description": "Implement server-side data fetching in Storefront Next using loaders, actions, and useScapiFetcher. Use when writing loader functions, making SCAPI calls, handling form submissions, or implementing interactive data fetching. Covers synchronous loaders, streaming patterns, createApiClients, and parallel requests. NOT for client-side Zustand state — see sfnext-state-management.",
1442
+ "description": "Load and mutate data in a Storefront Next project: route loaders that call SCAPI through createApiClients from @/lib/api-clients.server, critical versus streamed (deferred) data, createBasketAction and BasketAction for cart actions, createActionError and ErrorCode, data() responses, useFetcher and the useScapiFetcher hook with its server allowlist, request-scoped dedupe and MRT timeouts, non-personalized SCAPI responses, shopper context, and custom API clients. Use for \"fetch products in a loader\", \"stream data\", \"add a cart action\", \"call SCAPI from a component\", \"resource route\", \"NormalizedApiError\", or \"loader blocks the page\". Do not use for route files or links (use `storefront-next:sfnext-routing`), when loaders re-run after actions (use `storefront-next:sfnext-revalidation`), Suspense/LCP tuning (use `storefront-next:sfnext-performance`), or defining SCAPI custom APIs (use `storefront-next:sfnext-scapi`).",
1083
1443
  "entrypoint": "SKILL.md",
1444
+ "frontmatter": {
1445
+ "name": "sfnext-data-fetching",
1446
+ "description": "Load and mutate data in a Storefront Next project: route loaders that call SCAPI through createApiClients from @/lib/api-clients.server, critical versus streamed (deferred) data, createBasketAction and BasketAction for cart actions, createActionError and ErrorCode, data() responses, useFetcher and the useScapiFetcher hook with its server allowlist, request-scoped dedupe and MRT timeouts, non-personalized SCAPI responses, shopper context, and custom API clients. Use for \"fetch products in a loader\", \"stream data\", \"add a cart action\", \"call SCAPI from a component\", \"resource route\", \"NormalizedApiError\", or \"loader blocks the page\". Do not use for route files or links (use `storefront-next:sfnext-routing`), when loaders re-run after actions (use `storefront-next:sfnext-revalidation`), Suspense/LCP tuning (use `storefront-next:sfnext-performance`), or defining SCAPI custom APIs (use `storefront-next:sfnext-scapi`)."
1447
+ },
1084
1448
  "source": "skills/storefront-next/skills/sfnext-data-fetching/SKILL.md",
1085
- "headings": "Loader Patterns Reference | Data Flow | Initial Page Load (SSR) | Subsequent Navigation (SPA) | Decision Tree: Which Pattern to Use | Pattern: Multiple API Calls with Dependencies | Pattern: Conditional Data Loading | SCAPI Fetcher Reference | How useScapiFetcher Works | API | loader vs useScapiFetcher | Timeline Comparison | Complete Example: Search Suggestions | Data Fetching Skill | Overview | Loader Patterns | When to Use Each Pattern | Action Functions | useScapiFetcher — Interactive Data Fetching | API Client Usage | Parallel vs Sequential Requests | Common Pitfalls | Related Skills | Reference Documentation",
1449
+ "headings": "Actions and errors | Where to put a mutation | Basket actions: `createBasketAction` | Other actions | Error shape | Client side | After an action | API clients | What you get | Fetch layers | Errors | Custom APIs | Request shaping checklist | Loader patterns | Critical versus streamed | Stable promises | Consuming a promise | Shared layout data | Request context | Shopper context and personalization | Pitfalls | `useScapiFetcher` | Server allowlist (`src/lib/scapi/resource-policy.ts`) | Related hooks | When not to use it | Storefront Next Data Fetching | The rules (same as AGENTS.md) | Loader with critical and streamed data | SCAPI clients | Mutations: actions | Fetching from components | Checklist | Finding more | Related Skills",
1086
1450
  "files": [
1087
1451
  {
1088
- "path": "references/LOADER-PATTERNS.md",
1089
- "bytes": 2807
1452
+ "path": "references/ACTIONS.md",
1453
+ "bytes": 3423,
1454
+ "digest": "sha256:2e6fff138d6cc2464ccfe9670f178942ae33dd1b64f690a069b0622f2bbb6f62"
1455
+ },
1456
+ {
1457
+ "path": "references/API-CLIENTS.md",
1458
+ "bytes": 2065,
1459
+ "digest": "sha256:b2c86a90c435581dee90903ec950f5ebcc3cea10d4ef261d0e830f46b204e4cd"
1460
+ },
1461
+ {
1462
+ "path": "references/LOADERS.md",
1463
+ "bytes": 3911,
1464
+ "digest": "sha256:eaa7a470312eb18b250838412e8ba701609e6015b48d001145eab052cd0d40d3"
1090
1465
  },
1091
1466
  {
1092
1467
  "path": "references/SCAPI-FETCHER.md",
1093
- "bytes": 2527
1468
+ "bytes": 2684,
1469
+ "digest": "sha256:c9fbd9450b70a386f01ff7f3384186ac5255ad11f1f730d647b3369cb26411b5"
1094
1470
  },
1095
1471
  {
1096
1472
  "path": "SKILL.md",
1097
- "bytes": 7497
1473
+ "bytes": 9866,
1474
+ "digest": "sha256:4c20956cee09eb20a75d7618b4941343abe84dda2a49c0050e1e72c884c1afaf"
1098
1475
  }
1099
1476
  ]
1100
1477
  },
@@ -1102,18 +1479,24 @@
1102
1479
  "id": "storefront-next/sfnext-deployment",
1103
1480
  "collection": "storefront-next",
1104
1481
  "title": "sfnext-deployment",
1105
- "description": "Build and deploy Storefront Next storefronts to Managed Runtime (MRT) using the sfnext CLI. Use when running production builds, pushing bundles to MRT with sfnext push, configuring deployment environments, or deploying Page Designer cartridges. This is for Storefront Next deployment — for general MRT management via b2c CLI, see b2c-cli:b2c-mrt.",
1482
+ "description": "Build and deploy a Storefront Next storefront: `pnpm build`, `pnpm push` / `sfnext push` to Managed Runtime (MRT), MRT credentials (MRT_API_KEY, MRT_PROJECT, MRT_TARGET), syncing env vars with `pnpm config:push-env`, deploying the base cartridge and Page Designer metadata (`pnpm cartridge:generate|validate|deploy`), the shipped GitHub Actions deploy workflow, bundle size checks, the pre-launch checklist, and upgrading a project (template vs SDK compatibility, react-router pin). Use when a push fails or is rejected, a deployed site returns 500 or shows stale Page Designer components, \"deploy to staging/production\", or before go-live. Do not use for generic MRT project/environment/redirect/member management or log tailing (use `b2c-cli:b2c-mrt`), for config.server.ts and PUBLIC__ variable rules (use `storefront-next:sfnext-configuration`), or for creating the project (use `storefront-next:sfnext-project-setup`).",
1106
1483
  "entrypoint": "SKILL.md",
1484
+ "frontmatter": {
1485
+ "name": "sfnext-deployment",
1486
+ "description": "Build and deploy a Storefront Next storefront: `pnpm build`, `pnpm push` / `sfnext push` to Managed Runtime (MRT), MRT credentials (MRT_API_KEY, MRT_PROJECT, MRT_TARGET), syncing env vars with `pnpm config:push-env`, deploying the base cartridge and Page Designer metadata (`pnpm cartridge:generate|validate|deploy`), the shipped GitHub Actions deploy workflow, bundle size checks, the pre-launch checklist, and upgrading a project (template vs SDK compatibility, react-router pin). Use when a push fails or is rejected, a deployed site returns 500 or shows stale Page Designer components, \"deploy to staging/production\", or before go-live. Do not use for generic MRT project/environment/redirect/member management or log tailing (use `b2c-cli:b2c-mrt`), for config.server.ts and PUBLIC__ variable rules (use `storefront-next:sfnext-configuration`), or for creating the project (use `storefront-next:sfnext-project-setup`)."
1487
+ },
1107
1488
  "source": "skills/storefront-next/skills/sfnext-deployment/SKILL.md",
1108
- "headings": "MRT Deployment Reference | Managed Runtime (MRT) | Deployment Commands | Environment Variables on MRT | Setting Variables | Variable Limits | Production Configuration Example | Bundle Management | Rollback | Multi-Environment Setup | Deployment Verification | Deployment Skill | Overview | Production Build | Deploying to MRT | Using the Template's Push Script | Deployment Flow | Environment Configuration | MRT Deployment Variables | Application Variables (set in MRT Dashboard) | Page Designer Cartridge Deployment | Pre-Deployment Checklist | Troubleshooting | Related Skills | Reference Documentation",
1489
+ "headings": "Managed Runtime Deployment Reference | What MRT provides | Push flow | What push sends to MRT | Environment variables | Domains, base path, cookies | Rollback | Verifying a deployment | Storefront Next Deployment | Build | Push to Managed Runtime | Environment variables on MRT | Cartridge deployment | CI/CD | Pre-launch checklist | Upgrading a project | Troubleshooting | Related Skills | Finding more",
1109
1490
  "files": [
1110
1491
  {
1111
1492
  "path": "references/MRT-DEPLOYMENT.md",
1112
- "bytes": 3289
1493
+ "bytes": 3898,
1494
+ "digest": "sha256:ca95095aa58d819f8eb79d40e1fa3a9093d6a376e98d816ea4a6500b900f6e0f"
1113
1495
  },
1114
1496
  {
1115
1497
  "path": "SKILL.md",
1116
- "bytes": 5611
1498
+ "bytes": 9243,
1499
+ "digest": "sha256:faf1b093ce6ed02bb58b5744729f2f9847709bda7be74d98eb780fa70f21fda9"
1117
1500
  }
1118
1501
  ]
1119
1502
  },
@@ -1121,22 +1504,39 @@
1121
1504
  "id": "storefront-next/sfnext-extensions",
1122
1505
  "collection": "storefront-next",
1123
1506
  "title": "sfnext-extensions",
1124
- "description": "Build extensions for Storefront Next using target-config.json, target points, extension routes, and translation namespaces. Use when creating modular features, inserting components into UI targets, adding extension routes, adding a section to an existing page, or using SFDC_EXT_ integration markers. Covers the base-audit decision gate (deciding whether to extend at all vs token/variant override), extension structure, targetId configuration, and extension registration in src/extensions/config.json.",
1507
+ "description": "Add or remove modular features in a Storefront Next project with the extension system: src/extensions/<name>/ folders, target-config.json (UITarget components, contextProviders, actionHooks), sfcc.-prefixed UITarget ids, extension routes, per-extension config.ts and locales, SFDC_EXT_ integration markers, the `sfnext extensions create|install|remove|list` commands, and the agent-driven instructions/*.mdc install flow. Use when inserting a component into a UITarget slot (for example sfcc.header.before.cart or sfcc.pdp.bnpl.message), adding a checkout action hook, installing or removing store locator, BOPIS, multiship or a demo extension, listing extension points with pnpm extensions:list, or deciding whether to extend, restyle, or edit the base at all. Do not use for styling or brand changes (use `storefront-next:sfnext-theming`), for new merchant-editable Page Designer blocks (use `storefront-next:sfnext-page-designer`), or for analytics/engagement adapters (use `storefront-next:sfnext-analytics-consent`).",
1125
1508
  "entrypoint": "SKILL.md",
1509
+ "frontmatter": {
1510
+ "name": "sfnext-extensions",
1511
+ "description": "Add or remove modular features in a Storefront Next project with the extension system: src/extensions/<name>/ folders, target-config.json (UITarget components, contextProviders, actionHooks), sfcc.-prefixed UITarget ids, extension routes, per-extension config.ts and locales, SFDC_EXT_ integration markers, the `sfnext extensions create|install|remove|list` commands, and the agent-driven instructions/*.mdc install flow. Use when inserting a component into a UITarget slot (for example sfcc.header.before.cart or sfcc.pdp.bnpl.message), adding a checkout action hook, installing or removing store locator, BOPIS, multiship or a demo extension, listing extension points with pnpm extensions:list, or deciding whether to extend, restyle, or edit the base at all. Do not use for styling or brand changes (use `storefront-next:sfnext-theming`), for new merchant-editable Page Designer blocks (use `storefront-next:sfnext-page-designer`), or for analytics/engagement adapters (use `storefront-next:sfnext-analytics-consent`)."
1512
+ },
1126
1513
  "source": "skills/storefront-next/skills/sfnext-extensions/SKILL.md",
1127
- "headings": "Base Audit Reference | The gate, step by step | Worked examples | Example 1 — duplicate section (wrong) vs additive section (right) | Example 2 — restyle, don't re-render | Example 3 — pick the right layer | Finding the slots and base render points | Extension Examples Reference | Store Locator Extension | target-config.json | Route | Translations | Integration Marker Patterns | Single-Line Import | Block Integration | BOPIS Extension (Buy Online, Pick Up In Store) | Extensions Skill | Overview | Before You Build — Audit the Base First (Decision Gate) | Extension Structure | Target Configuration | Target Points | Extension Routes | Extension Translations | Integration Markers | Best Practices | Related Skills | Reference Documentation",
1514
+ "headings": "Action Hooks | Available hook ids | Register a handler | Semantics | Adding a new hook point | Base Audit: Extend, Restyle, or Edit | The gate | Worked examples (real slots) | Duplicate section (wrong) vs additive section (right) | Restyle, do not re-render | Finding slots and render points | CLI and Install | create | install and remove | Agent-driven install instructions | Markers | After install or remove | Extension Examples | Simplest: BNPL (one slot, one API module) | Several slots: Ratings and Reviews | Routes, provider, middleware: Store Locator | Wrapper slot | Server hook: fraud check | Checklist for a new extension | Storefront Next Extensions | Decision gate: should this be an extension? | Structure | target-config.json | Routes, translations, config | Integration markers | Removing or replacing a demo extension | Best practices | Related Skills",
1128
1515
  "files": [
1516
+ {
1517
+ "path": "references/ACTION-HOOKS.md",
1518
+ "bytes": 3365,
1519
+ "digest": "sha256:7ddc7ea136ebb103abb101fc72aa319a0bb9088450c48f0a5842445007529abd"
1520
+ },
1129
1521
  {
1130
1522
  "path": "references/BASE-AUDIT.md",
1131
- "bytes": 3183
1523
+ "bytes": 4083,
1524
+ "digest": "sha256:425dc9770cb04074aa23fd3c3e3b5339c4519856be0772656f47d2def9c5bdb1"
1525
+ },
1526
+ {
1527
+ "path": "references/CLI-AND-INSTALL.md",
1528
+ "bytes": 4007,
1529
+ "digest": "sha256:40570f1e0bfc4e7286273ac5ee1ec2ebb251b1a6a56bf281304f7b20cf33a82e"
1132
1530
  },
1133
1531
  {
1134
1532
  "path": "references/EXTENSION-EXAMPLES.md",
1135
- "bytes": 2670
1533
+ "bytes": 3572,
1534
+ "digest": "sha256:70d1b9008fbe52828482382c8ddf37aac4d04e7da60f621eb9c373616091136a"
1136
1535
  },
1137
1536
  {
1138
1537
  "path": "SKILL.md",
1139
- "bytes": 5708
1538
+ "bytes": 9491,
1539
+ "digest": "sha256:4e4e7833c4222b457f9c0121c64ae491d493c166d93187f24e146fcab0047bb1"
1140
1540
  }
1141
1541
  ]
1142
1542
  },
@@ -1144,18 +1544,24 @@
1144
1544
  "id": "storefront-next/sfnext-hybrid-storefronts",
1145
1545
  "collection": "storefront-next",
1146
1546
  "title": "sfnext-hybrid-storefronts",
1147
- "description": "Implement hybrid storefronts that run Storefront Next alongside SFRA or SiteGenesis. Use when planning gradual migration from SFRA, configuring hybrid proxy for local development, setting up session bridging between storefronts, or routing traffic between old and new implementations.",
1547
+ "description": "Run Storefront Next alongside an existing SFRA or SiteGenesis storefront for a gradual migration. Use for hybrid mode, PUBLIC__app__hybrid__enabled, legacyRoutes (exact, :param, * wildcard, { pattern, suffix }), HYBRID_PROXY_ENABLED, SFCC_ORIGIN, HYBRID_ROUTING_RULES, vite-plugins/hybrid-proxy.ts, the dwsid session bridge, sharing login/cart between SFRA and Storefront Next, eCDN routing rules, cookie domain for hybrid, \"[Hybrid Proxy] SFCC returned a redirect to 404\", blank proxied pages, or lost sessions when crossing storefronts. Do not use for the cookie-domain settings themselves beyond the hybrid checklist (use `storefront-next:sfnext-security`), auth code (use `storefront-next:sfnext-authentication`), or MRT deployment (use `storefront-next:sfnext-deployment`).",
1148
1548
  "entrypoint": "SKILL.md",
1549
+ "frontmatter": {
1550
+ "name": "sfnext-hybrid-storefronts",
1551
+ "description": "Run Storefront Next alongside an existing SFRA or SiteGenesis storefront for a gradual migration. Use for hybrid mode, PUBLIC__app__hybrid__enabled, legacyRoutes (exact, :param, * wildcard, { pattern, suffix }), HYBRID_PROXY_ENABLED, SFCC_ORIGIN, HYBRID_ROUTING_RULES, vite-plugins/hybrid-proxy.ts, the dwsid session bridge, sharing login/cart between SFRA and Storefront Next, eCDN routing rules, cookie domain for hybrid, \"[Hybrid Proxy] SFCC returned a redirect to 404\", blank proxied pages, or lost sessions when crossing storefronts. Do not use for the cookie-domain settings themselves beyond the hybrid checklist (use `storefront-next:sfnext-security`), auth code (use `storefront-next:sfnext-authentication`), or MRT deployment (use `storefront-next:sfnext-deployment`)."
1552
+ },
1149
1553
  "source": "skills/storefront-next/skills/sfnext-hybrid-storefronts/SKILL.md",
1150
- "headings": "Hybrid Proxy Configuration Reference | Overview | Environment Variables | All Environments | Local Development Only | Routing Rules Format | Required Patterns | Automatically Excluded Paths (never proxied) | Path Transformation | Cookie Handling (Local Dev) | Custom Route Matching | CDN Routing (Production) | Shared Cookie Requirements | Hybrid Storefronts Skill | Overview | Architecture | Configuration | Application Config (All Environments) | Proxy Plugin Config (Local Development Only) | Client-Side Navigation Middleware | Session Bridging | Cookie Handling (Local Dev) | SFRA to Storefront Next | Storefront Next to SFRA | Traffic Routing Patterns | Gradual Migration Strategy | Required Routing Rules | Keep Rules in Sync | Common Considerations | Troubleshooting | Related Skills",
1554
+ "headings": "Hybrid Proxy Configuration Reference | Environment variables | Routing rule format | Path transformation | Cookie layers (local dev) | Custom matcher (last resort) | Gotchas | Hybrid Storefronts | Two sets of configuration | legacyRoutes patterns | Session bridge | Edit the proxy where customers edit it | Automatic behaviors | Troubleshooting | Related Skills",
1151
1555
  "files": [
1152
1556
  {
1153
1557
  "path": "references/HYBRID-PROXY-CONFIG.md",
1154
- "bytes": 4619
1558
+ "bytes": 3836,
1559
+ "digest": "sha256:b26feabb1f3a45d78e78b5076e999ea897167d3ffd612daa5cbf84ca09a03f8a"
1155
1560
  },
1156
1561
  {
1157
1562
  "path": "SKILL.md",
1158
- "bytes": 6744
1563
+ "bytes": 8327,
1564
+ "digest": "sha256:f718b89289b4a42ed1e1f61d23e61faeef9919ecf25ada1ae4f55c1ee1ba73f5"
1159
1565
  }
1160
1566
  ]
1161
1567
  },
@@ -1163,14 +1569,44 @@
1163
1569
  "id": "storefront-next/sfnext-i18n",
1164
1570
  "collection": "storefront-next",
1165
1571
  "title": "sfnext-i18n",
1166
- "description": "Implement internationalization in Storefront Next using i18next with useTranslation for components and getTranslation for server-side code. Use when adding translations, configuring locales, handling pluralization, using the Zod schema factory pattern, or managing extension translations. Covers namespaces, interpolation, and language switching.",
1572
+ "description": "Translate and localize a Storefront Next storefront with i18next: useTranslation in components, getTranslation in loaders/actions/utilities, translations.json namespaces, pluralization and interpolation, Zod validation-message factories, adding a new language or locale, extension translations, and locale/currency switching. Use when adding or editing strings, \"add a Brazilian Portuguese locale\", supportedLngs / fallbackLng / supportedLocales, src/locales, locales:aggregate-extensions, LocaleSwitcher, mockI18nContext, hydration mismatch on translated text, or missing-key problems. Do not use for site/locale URL prefix routing (use `storefront-next:sfnext-routing`), site and currency configuration keys (use `storefront-next:sfnext-configuration`), or extension scaffolding (use `storefront-next:sfnext-extensions`).",
1167
1573
  "entrypoint": "SKILL.md",
1574
+ "frontmatter": {
1575
+ "name": "sfnext-i18n",
1576
+ "description": "Translate and localize a Storefront Next storefront with i18next: useTranslation in components, getTranslation in loaders/actions/utilities, translations.json namespaces, pluralization and interpolation, Zod validation-message factories, adding a new language or locale, extension translations, and locale/currency switching. Use when adding or editing strings, \"add a Brazilian Portuguese locale\", supportedLngs / fallbackLng / supportedLocales, src/locales, locales:aggregate-extensions, LocaleSwitcher, mockI18nContext, hydration mismatch on translated text, or missing-key problems. Do not use for site/locale URL prefix routing (use `storefront-next:sfnext-routing`), site and currency configuration keys (use `storefront-next:sfnext-configuration`), or extension scaffolding (use `storefront-next:sfnext-extensions`)."
1577
+ },
1168
1578
  "source": "skills/storefront-next/skills/sfnext-i18n/SKILL.md",
1169
- "headings": "Internationalization (i18n) Skill | Overview | Translation File Structure | Namespace structure in `translations.json` | Separate namespace file (`product.json`) | Usage in Components | Usage in Server Code | Validation Schemas — Factory Pattern | Language Switching | Extension Translations | Common Pitfalls | Related Skills",
1579
+ "headings": "Locale and currency configuration | Must stay in sync | Currency | Typing | Client loading | Using a different i18n library | Storefront Next Internationalization | Which API to use | File layout | Add a new locale (checklist) | How the active locale is chosen | Extension translations | Validation messages: Zod schema factories | Testing translations | Pitfalls | Finding more | Related Skills",
1170
1580
  "files": [
1581
+ {
1582
+ "path": "references/locale-config.md",
1583
+ "bytes": 2478,
1584
+ "digest": "sha256:f306a09448b136f5910f0b33288f83b85e5a29b7b26f707c279aa154142bc358"
1585
+ },
1171
1586
  {
1172
1587
  "path": "SKILL.md",
1173
- "bytes": 5328
1588
+ "bytes": 9317,
1589
+ "digest": "sha256:f1fa2f89144350371126ae733b2978c07ca5543ff5464c715db550ba6864b0c9"
1590
+ }
1591
+ ]
1592
+ },
1593
+ {
1594
+ "id": "storefront-next/sfnext-overview",
1595
+ "collection": "storefront-next",
1596
+ "title": "sfnext-overview",
1597
+ "description": "Start here for any Salesforce Commerce Storefront Next (sfnext) task: a router that maps what you want to do to the right storefront-next skill, says to read your project's AGENTS.md and docs/README-*.md first, and carries a cheat sheet for the sfnext CLI, the b2c CLI, the b2c-dx-mcp tools, and the docs search fallback. Use when starting work in a Storefront Next project, when unsure which skill applies, when asked \"how do I do X in Storefront Next\", \"what commands exist\", or \"where is the documentation\". Do not use once a specific area is clear; go straight to that skill (for example `storefront-next:sfnext-routing` or `storefront-next:sfnext-seo`).",
1598
+ "entrypoint": "SKILL.md",
1599
+ "frontmatter": {
1600
+ "name": "sfnext-overview",
1601
+ "description": "Start here for any Salesforce Commerce Storefront Next (sfnext) task: a router that maps what you want to do to the right storefront-next skill, says to read your project's AGENTS.md and docs/README-*.md first, and carries a cheat sheet for the sfnext CLI, the b2c CLI, the b2c-dx-mcp tools, and the docs search fallback. Use when starting work in a Storefront Next project, when unsure which skill applies, when asked \"how do I do X in Storefront Next\", \"what commands exist\", or \"where is the documentation\". Do not use once a specific area is clear; go straight to that skill (for example `storefront-next:sfnext-routing` or `storefront-next:sfnext-seo`)."
1602
+ },
1603
+ "source": "skills/storefront-next/skills/sfnext-overview/SKILL.md",
1604
+ "headings": "Storefront Next Overview and Router | Before anything else | Which skill for which task | sfnext CLI cheat sheet | b2c CLI cheat sheet | MCP tools (b2c-dx-mcp, STOREFRONTNEXT toolset) | Docs search fallback | Related Skills",
1605
+ "files": [
1606
+ {
1607
+ "path": "SKILL.md",
1608
+ "bytes": 6454,
1609
+ "digest": "sha256:08b59a319d1c1be26043154e3ca350af2463eb94de4635dedc178d2dca3fe715"
1174
1610
  }
1175
1611
  ]
1176
1612
  },
@@ -1178,22 +1614,44 @@
1178
1614
  "id": "storefront-next/sfnext-page-designer",
1179
1615
  "collection": "storefront-next",
1180
1616
  "title": "sfnext-page-designer",
1181
- "description": "Integrate Page Designer with Storefront Next using React decorators, component registry, and Region rendering. Use when creating merchant-editable pages, adding Page Designer components with @Component/@AttributeDefinition decorators, using fetchPageFromLoader, or rendering Regions. This is for the React/Storefront Next implementation — for classic ISML Page Designer, see b2c:b2c-page-designer.",
1617
+ "description": "Build merchant-editable Page Designer content in a Storefront Next project: components decorated with @Component/@AttributeDefinition/@RegionDefinition, page routes decorated with @PageType, <Region> rendering, fetchPageWithComponentData, component loaders and fallbacks, the generated static registry, and the pnpm cartridge:generate / cartridge:validate / cartridge:deploy workflow. Use when adding or editing a Page Designer component, exposing a region on a route (home, PDP, PLP, search), fetching a page by pageId or aspectType, marking a Region critical, debugging a component that does not appear in the Business Manager palette or renders empty, or reviewing Page Designer code. Do not use for classic ISML/SFRA Page Designer (use `b2c:b2c-page-designer`), for turning a Figma frame into blocks (use `figma-to-sfnext-pagedesigner:figma-to-sfnext-pagedesigner`), or for plain React components that merchants never edit (use `storefront-next:sfnext-components`).",
1182
1618
  "entrypoint": "SKILL.md",
1619
+ "frontmatter": {
1620
+ "name": "sfnext-page-designer",
1621
+ "description": "Build merchant-editable Page Designer content in a Storefront Next project: components decorated with @Component/@AttributeDefinition/@RegionDefinition, page routes decorated with @PageType, <Region> rendering, fetchPageWithComponentData, component loaders and fallbacks, the generated static registry, and the pnpm cartridge:generate / cartridge:validate / cartridge:deploy workflow. Use when adding or editing a Page Designer component, exposing a region on a route (home, PDP, PLP, search), fetching a page by pageId or aspectType, marking a Region critical, debugging a component that does not appear in the Business Manager palette or renders empty, or reviewing Page Designer code. Do not use for classic ISML/SFRA Page Designer (use `b2c:b2c-page-designer`), for turning a Figma frame into blocks (use `figma-to-sfnext-pagedesigner:figma-to-sfnext-pagedesigner`), or for plain React components that merchants never edit (use `storefront-next:sfnext-components`)."
1622
+ },
1183
1623
  "source": "skills/storefront-next/skills/sfnext-page-designer/SKILL.md",
1184
- "headings": "Component Registry Reference | Overview | Static Registry | Component Registration | Component Loaders | Data Flow | Adding a New Page Designer Component | Decorator Patterns Reference | @Component Decorator | @AttributeDefinition Decorator | Attribute Types | Type Inference by MCP Tool | @RegionDefinition Decorator | @PageType Decorator | Complete Component Example | Page Designer Skill | Overview | Which Pages Use Page Designer | Route Setup | In the Loader | In the Layout | Component Setup | Metadata Class with Decorators | React Component | Components with Server Data | Design Mode | MCP Tools | Typical Workflow | Best Practices | Related Skills | Reference Documentation",
1624
+ "headings": "Business Manager Integration | What gets generated | `route` and `aspectTypeIds` | Merchant setup checklist | Design vs preview mode | Where to look next | Registry and Loading | The static registry | Entry wiring (do not break) | How a page renders | Fetching a page | Module contract | Critical regions | Error handling | Decorator Patterns | `@Component(typeId, options)` | `@AttributeDefinition(config)` | Attribute types | `searching` combinations | `@RegionDefinition(regions)` | `@PageType(config)` | Nested regions in a container | Images | Text that is not merchant content | Review Checklist | 1. Metadata | 2. Module contract (components) | 3. Rendering | 4. Anti-patterns | 5. Do not flag | Report format | Troubleshooting Page Designer | Debugging tips | Page Designer in Storefront Next | Pieces and where they live | Workflow | A component | A loader | A page route | Design and preview mode | Verify before you finish | Reference Documentation | Related Skills",
1185
1625
  "files": [
1626
+ {
1627
+ "path": "references/BUSINESS-MANAGER.md",
1628
+ "bytes": 3752,
1629
+ "digest": "sha256:c39b71c138cb40bf0293a5760752bef35c5fff45af32f7a8f96f2256d259421d"
1630
+ },
1186
1631
  {
1187
1632
  "path": "references/COMPONENT-REGISTRY.md",
1188
- "bytes": 2514
1633
+ "bytes": 6853,
1634
+ "digest": "sha256:2c5e129999fba44f60f6c6e00d9cea8ca346df4d1f561e1e2567896a71c68109"
1189
1635
  },
1190
1636
  {
1191
1637
  "path": "references/DECORATOR-PATTERNS.md",
1192
- "bytes": 4638
1638
+ "bytes": 7959,
1639
+ "digest": "sha256:c99d2ceb6f89866523c4aef5f26717558fd003a1e44420ae5a7e4a600d9963b2"
1640
+ },
1641
+ {
1642
+ "path": "references/REVIEW-CHECKLIST.md",
1643
+ "bytes": 5599,
1644
+ "digest": "sha256:07208266ce5156c8209eb5ae3defee4a75a397548987441d4701c12d35e9c0f3"
1645
+ },
1646
+ {
1647
+ "path": "references/TROUBLESHOOTING.md",
1648
+ "bytes": 4467,
1649
+ "digest": "sha256:ed65e8776f61558c5856938e100a389b8db8e1f27be049e2d71d0d9fffa8c117"
1193
1650
  },
1194
1651
  {
1195
1652
  "path": "SKILL.md",
1196
- "bytes": 6108
1653
+ "bytes": 13747,
1654
+ "digest": "sha256:da2e9915fad540c2e9214616ed918c3c0b9ab37a2aa619b9da66b9b99addde9c"
1197
1655
  }
1198
1656
  ]
1199
1657
  },
@@ -1201,14 +1659,29 @@
1201
1659
  "id": "storefront-next/sfnext-performance",
1202
1660
  "collection": "storefront-next",
1203
1661
  "title": "sfnext-performance",
1204
- "description": "Optimize Storefront Next performance with bundle size limits, DynamicImage component, Lighthouse audits, and progressive streaming. Use when checking bundle sizes, optimizing images, improving page load speed, or configuring performance metrics. Covers parallel data fetching, image optimization, and performance monitoring.",
1662
+ "description": "Keep a Storefront Next storefront fast and self-review changes for performance: LCP, CLS and TBT, Suspense placement and granularity, stable promise identity, lazy-loaded modals and drawers with useDeferredUnmount, useDeferredRender, Region critical, DynamicImage and image priority, font loading, resource hints (links.preconnect), bundle size checks (pnpm bundlesize, BUNDLES_SIZE_ANALYZE), Lighthouse CI, and the performance.metrics / Server-Timing flags. Use for \"page is slow\", \"LCP regression\", \"skeleton flashes\", \"bundle too big\", \"review my diff for performance\", \"hydration mismatch or extra re-renders\", \"waterfall of fetches\", or before merging feature work that adds loaders, fetchers, modals and drawers or images. Do not use for loader/action mechanics (use `storefront-next:sfnext-data-fetching`), revalidation policy (use `storefront-next:sfnext-revalidation`), or accessibility (use `storefront-next:sfnext-accessibility`).",
1205
1663
  "entrypoint": "SKILL.md",
1664
+ "frontmatter": {
1665
+ "name": "sfnext-performance",
1666
+ "description": "Keep a Storefront Next storefront fast and self-review changes for performance: LCP, CLS and TBT, Suspense placement and granularity, stable promise identity, lazy-loaded modals and drawers with useDeferredUnmount, useDeferredRender, Region critical, DynamicImage and image priority, font loading, resource hints (links.preconnect), bundle size checks (pnpm bundlesize, BUNDLES_SIZE_ANALYZE), Lighthouse CI, and the performance.metrics / Server-Timing flags. Use for \"page is slow\", \"LCP regression\", \"skeleton flashes\", \"bundle too big\", \"review my diff for performance\", \"hydration mismatch or extra re-renders\", \"waterfall of fetches\", or before merging feature work that adds loaders, fetchers, modals and drawers or images. Do not use for loader/action mechanics (use `storefront-next:sfnext-data-fetching`), revalidation policy (use `storefront-next:sfnext-revalidation`), or accessibility (use `storefront-next:sfnext-accessibility`)."
1667
+ },
1206
1668
  "source": "skills/storefront-next/skills/sfnext-performance/SKILL.md",
1207
- "headings": "Performance Skill | Bundle Size Limits | Built-in Metrics | Parallel Data Fetching | Image Optimization | Image Best Practices | Progressive Streaming | Lighthouse Optimization | Troubleshooting | Related Skills",
1669
+ "headings": "Performance self-review checklist | 1. Fetch efficiency | 2. Fetcher misuse | 3. Suspense placement | 4. Suspense granularity | 5. Promise stability | 6. Hydration and render stability | 7. Revalidation scope | 8. Client-side transforms | 9. Also check | Reporting | Suspense and streaming recipes | Placement | Granularity | Promise stability | Skeletons | Critical Page Designer regions | Errors in streamed data | Storefront Next Performance | Core rules | Lazy modals and drawers | Deferred rendering | Page Designer | Images, fonts, hints | Measure | Review workflow | References | Finding more | Related Skills",
1208
1670
  "files": [
1671
+ {
1672
+ "path": "references/PERFORMANCE-REVIEW-CHECKLIST.md",
1673
+ "bytes": 6642,
1674
+ "digest": "sha256:6b2151b32c0692c4399fc17a5abc5fcc737f4625ed293feafb71f094c6784cae"
1675
+ },
1676
+ {
1677
+ "path": "references/SUSPENSE-AND-STREAMING.md",
1678
+ "bytes": 2629,
1679
+ "digest": "sha256:7f2c2a2e257e9d4da4b870381ff7499003f3473faed8c5fa08fa976b1ca4ece2"
1680
+ },
1209
1681
  {
1210
1682
  "path": "SKILL.md",
1211
- "bytes": 4039
1683
+ "bytes": 7576,
1684
+ "digest": "sha256:7ada212422080fdfc1ae1f0f5eaab5db2e6087cd9b67e7d6f4d4e3eac11c7bca"
1212
1685
  }
1213
1686
  ]
1214
1687
  },
@@ -1216,22 +1689,84 @@
1216
1689
  "id": "storefront-next/sfnext-project-setup",
1217
1690
  "collection": "storefront-next",
1218
1691
  "title": "sfnext-project-setup",
1219
- "description": "Create and configure Storefront Next projects. Use when creating a new storefront, understanding project structure, setting up environment variables, or running the sfnext CLI for the first time. Covers project creation, directory layout, .env configuration, and sfnext CLI basics.",
1692
+ "description": "Create and bootstrap a Storefront Next project, and learn its layout, npm scripts, and first-run workflow. Use when creating a new storefront, running `sfnext create-storefront` (`--vertical` starter theme, `--defaults`, `--template`, `--output-dir`), choosing between Business Manager Storefront Setup and the CLI, fixing `pnpm install` / Node 24 problems, copying `.env.default` to `.env`, asking \"what does this folder do\" or \"which pnpm script do I run\", or running `b2c sfnext` / `pnpm sfnext` commands for the first time. Do not use for config.server.ts or PUBLIC__ env var rules (use `storefront-next:sfnext-configuration`), building/pushing to Managed Runtime (use `storefront-next:sfnext-deployment`), or a conceptual tour of the architecture (use `storefront-next:sfnext-overview`).",
1220
1693
  "entrypoint": "SKILL.md",
1694
+ "frontmatter": {
1695
+ "name": "sfnext-project-setup",
1696
+ "description": "Create and bootstrap a Storefront Next project, and learn its layout, npm scripts, and first-run workflow. Use when creating a new storefront, running `sfnext create-storefront` (`--vertical` starter theme, `--defaults`, `--template`, `--output-dir`), choosing between Business Manager Storefront Setup and the CLI, fixing `pnpm install` / Node 24 problems, copying `.env.default` to `.env`, asking \"what does this folder do\" or \"which pnpm script do I run\", or running `b2c sfnext` / `pnpm sfnext` commands for the first time. Do not use for config.server.ts or PUBLIC__ env var rules (use `storefront-next:sfnext-configuration`), building/pushing to Managed Runtime (use `storefront-next:sfnext-deployment`), or a conceptual tour of the architecture (use `storefront-next:sfnext-overview`)."
1697
+ },
1221
1698
  "source": "skills/storefront-next/skills/sfnext-project-setup/SKILL.md",
1222
- "headings": "Environment Variables Reference | Naming Convention | Rules | Required Variables | Server-Only Variables | Multi-Site Configuration | Setting Complex Values | Security Guidelines | Project Structure Reference | Top-Level Files | Source Directory (`src/`) | `src/routes/` | `src/components/` | `src/config/` | `src/lib/` | `src/locales/` | `src/middlewares/` | `src/extensions/` | `src/test-utils/` | Build Output | Cartridges | Project Setup Skill | Overview | Creating a Project | Via Business Manager (instance-connected storefront) | Via CLI (local exploration) | Project Structure | Environment Setup | Required Variables | Development Commands | Non-Negotiable Rules | Troubleshooting | Related Skills | Reference Documentation",
1699
+ "headings": "Project Structure | Top level | `src/` | Where to look for each concern | Page Designer metadata | Adding UI primitives | Project Scripts | Develop and run | Deploy and operate | Quality | `sfnext` CLI | Project lifecycle | Managed Runtime push | Cartridges (Page Designer metadata) | Configuration and extensions | SCAPI clients | Storefront Next Project Setup | Prerequisites | Choose how to start | Create a project with the CLI | First run | Project layout (short form) | Scripts and CLI | Conventions worth knowing up front | Troubleshooting | Finding more | Related Skills",
1223
1700
  "files": [
1224
1701
  {
1225
- "path": "references/ENV-VARIABLES.md",
1226
- "bytes": 2749
1702
+ "path": "references/PROJECT-STRUCTURE.md",
1703
+ "bytes": 5186,
1704
+ "digest": "sha256:a5a3a8cfc3f98566614781494ac21b2862642f9450abf57b32161a11d2e914bb"
1227
1705
  },
1228
1706
  {
1229
- "path": "references/PROJECT-STRUCTURE.md",
1230
- "bytes": 4013
1707
+ "path": "references/SCRIPTS.md",
1708
+ "bytes": 3010,
1709
+ "digest": "sha256:39aed6194c14e34c50a24319e25c76ddd7c1d739904807900413ddda12b37054"
1710
+ },
1711
+ {
1712
+ "path": "references/SFNEXT-CLI.md",
1713
+ "bytes": 3817,
1714
+ "digest": "sha256:e572df79763594092e58f4f28a746661396a418ddd8eceb8646f986f594464af"
1231
1715
  },
1232
1716
  {
1233
1717
  "path": "SKILL.md",
1234
- "bytes": 7445
1718
+ "bytes": 9419,
1719
+ "digest": "sha256:6e0282eef0605feb23ce76379ad170d1ad39aad900df0b379298da220f0a8be9"
1720
+ }
1721
+ ]
1722
+ },
1723
+ {
1724
+ "id": "storefront-next/sfnext-quality-gates",
1725
+ "collection": "storefront-next",
1726
+ "title": "sfnext-quality-gates",
1727
+ "description": "Run and fix the Storefront Next quality gates before a PR or deploy: OxLint (type-aware, --max-warnings 0) plus Biome formatting, lint:a11y, lint:css, typecheck, the TypeScript-only check, bundle-size budgets, Lighthouse CI, and the pre-PR checklist. Use when pnpm lint, pnpm format:check, pnpm typecheck, pnpm bundlesize or pnpm lighthouse:ci fails, for custom/color-linter or custom/header-format errors, \"unused Tailwind class\" findings, oxlint-disable comments, \"what should I run before opening a PR\", or CI red on lint. Do not use for writing tests (use `storefront-next:sfnext-testing`), accessibility fixes themselves (use `storefront-next:sfnext-accessibility`), or runtime performance tuning (use `storefront-next:sfnext-performance`).",
1728
+ "entrypoint": "SKILL.md",
1729
+ "frontmatter": {
1730
+ "name": "sfnext-quality-gates",
1731
+ "description": "Run and fix the Storefront Next quality gates before a PR or deploy: OxLint (type-aware, --max-warnings 0) plus Biome formatting, lint:a11y, lint:css, typecheck, the TypeScript-only check, bundle-size budgets, Lighthouse CI, and the pre-PR checklist. Use when pnpm lint, pnpm format:check, pnpm typecheck, pnpm bundlesize or pnpm lighthouse:ci fails, for custom/color-linter or custom/header-format errors, \"unused Tailwind class\" findings, oxlint-disable comments, \"what should I run before opening a PR\", or CI red on lint. Do not use for writing tests (use `storefront-next:sfnext-testing`), accessibility fixes themselves (use `storefront-next:sfnext-accessibility`), or runtime performance tuning (use `storefront-next:sfnext-performance`)."
1732
+ },
1733
+ "source": "skills/storefront-next/skills/sfnext-quality-gates/SKILL.md",
1734
+ "headings": "Lint configuration and performance budgets | Configuration files in your project | Editor integration | Bundle size | Lighthouse CI | When a budget fails | Storefront Next Quality Gates | Pre-PR checklist | Commands | Custom rules you will hit | Typical failures | Related Skills",
1735
+ "files": [
1736
+ {
1737
+ "path": "references/lint-and-budgets.md",
1738
+ "bytes": 2597,
1739
+ "digest": "sha256:371c1c9b79be1380d096bba823cc959fc9f6db7ef35e6ce38a312888b976455b"
1740
+ },
1741
+ {
1742
+ "path": "SKILL.md",
1743
+ "bytes": 5271,
1744
+ "digest": "sha256:e6bcaaac4f1ffc3b21e3d19f538b65edc49f6dd1c7bdcafd570094a897f29ac9"
1745
+ }
1746
+ ]
1747
+ },
1748
+ {
1749
+ "id": "storefront-next/sfnext-revalidation",
1750
+ "collection": "storefront-next",
1751
+ "title": "sfnext-revalidation",
1752
+ "description": "Control which Storefront Next loaders re-run after an action or navigation: shouldRevalidate exports, the policy modules in src/lib/revalidation/routes (root, cart, product, category, checkout, home, wishlist, api-client, shared), getActionPath and isAmbientMutation, and the tag primitives in src/lib/revalidation/tags (withRevalidateTags, shouldRevalidateForTags, tagGroup, tagImplications). Use for \"page re-fetches after add to cart\", \"loader runs too often\", \"stale data after a mutation\", \"flash of skeleton after changing a swatch\", \"add shouldRevalidate\", or when a new action or route changes which loaders fire. Do not use for writing loaders or actions (use `storefront-next:sfnext-data-fetching`), Suspense and LCP tuning (use `storefront-next:sfnext-performance`), or client-side state (use `storefront-next:sfnext-state-management`).",
1753
+ "entrypoint": "SKILL.md",
1754
+ "frontmatter": {
1755
+ "name": "sfnext-revalidation",
1756
+ "description": "Control which Storefront Next loaders re-run after an action or navigation: shouldRevalidate exports, the policy modules in src/lib/revalidation/routes (root, cart, product, category, checkout, home, wishlist, api-client, shared), getActionPath and isAmbientMutation, and the tag primitives in src/lib/revalidation/tags (withRevalidateTags, shouldRevalidateForTags, tagGroup, tagImplications). Use for \"page re-fetches after add to cart\", \"loader runs too often\", \"stale data after a mutation\", \"flash of skeleton after changing a swatch\", \"add shouldRevalidate\", or when a new action or route changes which loaders fire. Do not use for writing loaders or actions (use `storefront-next:sfnext-data-fetching`), Suspense and LCP tuning (use `storefront-next:sfnext-performance`), or client-side state (use `storefront-next:sfnext-state-management`)."
1757
+ },
1758
+ "source": "skills/storefront-next/skills/sfnext-revalidation/SKILL.md",
1759
+ "headings": "Policies and tags reference | Policy inputs | Decision table | Modals and drawers | Tags | Root policy | Storefront Next Revalidation | What revalidates | When a re-run is justified | Where the policy lives | Add a policy for a new route | Tags for cross-route contracts | Related levers | Finding more | Related Skills",
1760
+ "files": [
1761
+ {
1762
+ "path": "references/POLICIES-AND-TAGS.md",
1763
+ "bytes": 3253,
1764
+ "digest": "sha256:31a4b039b1162e294cafc48cd75efd4571c67abd91791165c2977ad7b42f3d85"
1765
+ },
1766
+ {
1767
+ "path": "SKILL.md",
1768
+ "bytes": 7924,
1769
+ "digest": "sha256:c9b093f490acc92bdee153578b0a54c1b914880f6760b18b39ca1d16736e2b49"
1235
1770
  }
1236
1771
  ]
1237
1772
  },
@@ -1239,37 +1774,114 @@
1239
1774
  "id": "storefront-next/sfnext-routing",
1240
1775
  "collection": "storefront-next",
1241
1776
  "title": "sfnext-routing",
1242
- "description": "Implement file-based routing in Storefront Next with React Router 7. Use when adding new pages, creating layout routes, defining route parameters, or understanding route module exports (loader, action, component, meta). Covers flat-routes conventions, nested layouts, and the _app prefix.",
1777
+ "description": "Add and change pages in a Storefront Next project: flat-file routes in src/routes, layout routes (_app, _checkout, _empty), splat routes for product and category pages, action.* and resource.* routes, src/route-paths.ts (routes, resourceRoutes, routeHref), site-aware Link and useNavigate wrappers, SeoMeta and JsonLd head tags, multi-site /:siteId/:localeId URL prefixes, url.seoRoutes and excludeRoutes, extension routes, and the SLAS callback routes. Use for \"add a page\", \"new route\", \"why is my link missing the site prefix\", \"route file naming\", \"redirect to login\", or a 404 on a new URL. Do not use for loader/action/fetcher data code (use `storefront-next:sfnext-data-fetching`), shouldRevalidate (use `storefront-next:sfnext-revalidation`), SEO strategy such as sitemaps and canonical rules (use `storefront-next:sfnext-seo`), or Page Designer regions (use `storefront-next:sfnext-page-designer`).",
1243
1778
  "entrypoint": "SKILL.md",
1779
+ "frontmatter": {
1780
+ "name": "sfnext-routing",
1781
+ "description": "Add and change pages in a Storefront Next project: flat-file routes in src/routes, layout routes (_app, _checkout, _empty), splat routes for product and category pages, action.* and resource.* routes, src/route-paths.ts (routes, resourceRoutes, routeHref), site-aware Link and useNavigate wrappers, SeoMeta and JsonLd head tags, multi-site /:siteId/:localeId URL prefixes, url.seoRoutes and excludeRoutes, extension routes, and the SLAS callback routes. Use for \"add a page\", \"new route\", \"why is my link missing the site prefix\", \"route file naming\", \"redirect to login\", or a 404 on a new URL. Do not use for loader/action/fetcher data code (use `storefront-next:sfnext-data-fetching`), shouldRevalidate (use `storefront-next:sfnext-revalidation`), SEO strategy such as sitemaps and canonical rules (use `storefront-next:sfnext-seo`), or Page Designer regions (use `storefront-next:sfnext-page-designer`)."
1782
+ },
1244
1783
  "source": "skills/storefront-next/skills/sfnext-routing/SKILL.md",
1245
- "headings": "Route Conventions Reference | Flat Routes File Naming | Syntax Reference | Common Route Patterns | Layout Nesting | Route Module Exports | Important Notes | Routing Skill | Overview | Route File Conventions | File Name to URL Mapping | Naming Rules | Route Module Exports | loader — Server-side data loading | action — Handle mutations (form submissions) | default — Page component | Layout Routes | Adding a New Page | Resource Routes | Related Skills | Reference Documentation",
1784
+ "headings": "Route conventions | File name to URL | Route module exports | Typed route props | Layout notes | Head tags | Checklist when renaming or deleting a route | Site prefixes, excluded routes and SEO aliases | Rules | Callbacks that cannot carry a prefix | Storefront Next Routing | How routes are discovered | Route tree (what exists) | Add a page | Links and navigation: always use the project wrappers | URL configuration | Protecting routes | Rules to keep in mind | Finding more | Related Skills",
1246
1785
  "files": [
1247
1786
  {
1248
1787
  "path": "references/ROUTE-CONVENTIONS.md",
1249
- "bytes": 2750
1788
+ "bytes": 3438,
1789
+ "digest": "sha256:e0e6b3c74227b233f1fa46d66a9b923f880d3325e44f4041dbf59221558507c1"
1790
+ },
1791
+ {
1792
+ "path": "references/URLS-AND-SEO-ROUTES.md",
1793
+ "bytes": 1801,
1794
+ "digest": "sha256:ae5c2b41f7de46fee78cbb0776c1995f67d4250602fde1ad84de7a6c22cc11df"
1795
+ },
1796
+ {
1797
+ "path": "SKILL.md",
1798
+ "bytes": 9276,
1799
+ "digest": "sha256:834e14427eec5e9addd1b1f1ee96fcdf082a49402327577f6a1f90e1583eaa83"
1800
+ }
1801
+ ]
1802
+ },
1803
+ {
1804
+ "id": "storefront-next/sfnext-scapi",
1805
+ "collection": "storefront-next",
1806
+ "title": "sfnext-scapi",
1807
+ "description": "Use and extend SCAPI clients in a Storefront Next project: createApiClients, the `@/scapi` type barrel, typing `c_*` custom attributes by overriding a built-in client, and adding your own custom API end to end with `b2c sfnext scapi` (add, available, list, remove). Use for \"clients.shopperProducts\", \"c_ attribute is not typed\", \"sfnext scapi add\", \"add custom API to the storefront\", src/scapi/ generated files, custom-clients.ts, calling a loyalty/notify-style custom endpoint from a loader or action, useScapiFetcher, personalized=none for custom clients, or 404 from a custom endpoint. Do not use for writing the cartridge/schema.yaml itself (use `b2c:b2c-custom-api-development`), endpoint registration status (use `b2c-cli:b2c-scapi-custom`), loader/caching strategy (use `storefront-next:sfnext-data-fetching`), or login/session code (use `storefront-next:sfnext-authentication`).",
1808
+ "entrypoint": "SKILL.md",
1809
+ "frontmatter": {
1810
+ "name": "sfnext-scapi",
1811
+ "description": "Use and extend SCAPI clients in a Storefront Next project: createApiClients, the `@/scapi` type barrel, typing `c_*` custom attributes by overriding a built-in client, and adding your own custom API end to end with `b2c sfnext scapi` (add, available, list, remove). Use for \"clients.shopperProducts\", \"c_ attribute is not typed\", \"sfnext scapi add\", \"add custom API to the storefront\", src/scapi/ generated files, custom-clients.ts, calling a loyalty/notify-style custom endpoint from a loader or action, useScapiFetcher, personalized=none for custom clients, or 404 from a custom endpoint. Do not use for writing the cartridge/schema.yaml itself (use `b2c:b2c-custom-api-development`), endpoint registration status (use `b2c-cli:b2c-scapi-custom`), loader/caching strategy (use `storefront-next:sfnext-data-fetching`), or login/session code (use `storefront-next:sfnext-authentication`)."
1812
+ },
1813
+ "source": "skills/storefront-next/skills/sfnext-scapi/SKILL.md",
1814
+ "headings": "Worked Example: the shipped `sfnext-notify` custom API | Storefront Next SCAPI Clients and Custom APIs | The CLI surface | What gets generated | Import rule | Use clients in loaders and actions | End-to-end: a new custom API | Non-personalized caching | Pitfalls | Related Skills",
1815
+ "files": [
1816
+ {
1817
+ "path": "references/WORKED-EXAMPLE.md",
1818
+ "bytes": 2172,
1819
+ "digest": "sha256:f852a9c1f6e915def30d8b7ffdb337dff8e8bcb5062faf4cf6f8bf083749c97b"
1820
+ },
1821
+ {
1822
+ "path": "SKILL.md",
1823
+ "bytes": 9802,
1824
+ "digest": "sha256:19e3aca66aa64cb58c650b3c3e97c092e01f829832f30095a5dfcbfb803cf66a"
1825
+ }
1826
+ ]
1827
+ },
1828
+ {
1829
+ "id": "storefront-next/sfnext-security",
1830
+ "collection": "storefront-next",
1831
+ "title": "sfnext-security",
1832
+ "description": "Configure Storefront Next security response headers, Content Security Policy (CSP), CSP contributors, Cloudflare Turnstile bot protection, and the shared cookie domain. Use for \"Refused to load the script/connect/image\" CSP violations, adding a third-party origin, app.security.headers, defaultCspDirectives, csp reportOnly rollout, writing a CSP contributor under src/middlewares/csp-contributors, HSTS or Permissions-Policy, Turnstile widget or enforceTurnstile, TURNSTILE_SECRET_KEYS, log-only rollout, or app.cookies.domain across subdomains. Do not use for auth tokens, cookie names or login flows (use `storefront-next:sfnext-authentication`), SFRA proxy routing (use `storefront-next:sfnext-hybrid-storefronts`), or consent banners and tracking (use `storefront-next:sfnext-analytics-consent`).",
1833
+ "entrypoint": "SKILL.md",
1834
+ "frontmatter": {
1835
+ "name": "sfnext-security",
1836
+ "description": "Configure Storefront Next security response headers, Content Security Policy (CSP), CSP contributors, Cloudflare Turnstile bot protection, and the shared cookie domain. Use for \"Refused to load the script/connect/image\" CSP violations, adding a third-party origin, app.security.headers, defaultCspDirectives, csp reportOnly rollout, writing a CSP contributor under src/middlewares/csp-contributors, HSTS or Permissions-Policy, Turnstile widget or enforceTurnstile, TURNSTILE_SECRET_KEYS, log-only rollout, or app.cookies.domain across subdomains. Do not use for auth tokens, cookie names or login flows (use `storefront-next:sfnext-authentication`), SFRA proxy routing (use `storefront-next:sfnext-hybrid-storefronts`), or consent banners and tracking (use `storefront-next:sfnext-analytics-consent`)."
1837
+ },
1838
+ "source": "skills/storefront-next/skills/sfnext-security/SKILL.md",
1839
+ "headings": "Cookie domain reference | Resolution order | Business Manager match | Verify | Rollout | Turnstile reference | Modules | Enforcement points | Fail-open vs fail-closed | Verification mode | Cloudflare test keys (local development) | Manual checks | Storefront Next Security | Default headers | Allow a new third-party origin | Roll out or relax safely | CSP contributors | Turnstile bot protection | Cookie domain | Pitfalls | Related Skills",
1840
+ "files": [
1841
+ {
1842
+ "path": "references/COOKIE-DOMAIN.md",
1843
+ "bytes": 1608,
1844
+ "digest": "sha256:5b1d3ee402eb904192d9fd1f3d5952c357369b3aa1477c63660c006ab896111e"
1845
+ },
1846
+ {
1847
+ "path": "references/TURNSTILE.md",
1848
+ "bytes": 2635,
1849
+ "digest": "sha256:cddcdd2111a579e565972bf1ce1679a0b0b4d7f2ac36cae1edc29fc1ee8b186b"
1250
1850
  },
1251
1851
  {
1252
1852
  "path": "SKILL.md",
1253
- "bytes": 5850
1853
+ "bytes": 8964,
1854
+ "digest": "sha256:a18a725bc862f2169dc0010807c4356454033a72ced2710cbf344b4318760234"
1254
1855
  }
1255
1856
  ]
1256
1857
  },
1257
1858
  {
1258
- "id": "storefront-next/sfnext-scapi-management",
1859
+ "id": "storefront-next/sfnext-seo",
1259
1860
  "collection": "storefront-next",
1260
- "title": "sfnext-scapi-management",
1261
- "description": "Add, remove, and list typed SCAPI clients in a Storefront Next project using `b2c sfnext scapi` commands, and browse API schemas to discover endpoints before writing loaders. Use this skill whenever the user says 'sfnext scapi', 'add an API to my storefront next project', 'what SCAPI clients does my sfnext project have', 'remove an API client', 'list available APIs for sfnext', 'browse schema before writing a loader', or asks how to integrate a specific SCAPI (shopper-baskets, shopper-search, etc.) into their Storefront Next project as a typed client. Also use when they want to check what parameters an endpoint accepts before coding. NOT for making actual SCAPI calls from loaders — see sfnext-data-fetching. NOT for standalone schema browsing outside a Storefront Next project — see b2c-cli:b2c-scapi-schemas.",
1861
+ "title": "sfnext-seo",
1862
+ "description": "Storefront Next SEO and AEO/GEO: the SeoMeta component (title, description, noIndex, Open Graph, X cards), JsonLd structured data, canonical URLs and the query-parameter allowlist, hreflang, configurable product/category URLs via url.seoRoutes, semantic URL builders (createProductUrl, createCategoryUrl, useSeoUrlContext), redirectToCanonicalPath, crawler rendering and pagination, and how multi-domain and base path affect generated URLs. Use when adding meta tags or JSON-LD to a route, enabling or changing seoRoutes, fixing duplicate or wrong canonical or og:url URLs, or when a build fails for a missing site in seoRoutes. Do not use for route file naming (use `storefront-next:sfnext-routing`), site/locale config in general (use `storefront-next:sfnext-configuration`), or translations (use `storefront-next:sfnext-i18n`).",
1262
1863
  "entrypoint": "SKILL.md",
1263
- "source": "skills/storefront-next/skills/sfnext-scapi-management/SKILL.md",
1264
- "headings": "CLI Commands Reference | How It Works | `b2c sfnext scapi available` | `b2c sfnext scapi add` | `b2c sfnext scapi list` | `b2c sfnext scapi remove` | Complementary: `b2c scapi schemas` | SCAPI Client Management Skill | Overview | Managing Project Clients | List Available APIs | Add a Client | List Current Project Clients | Remove a Client | Discovering API Shapes | The Schema-First Workflow | Step 1: Find the API | Step 2: See Available Endpoints | Step 3: Expand Endpoint Details | Step 4: Write Your Loader | Example: Adding and Using a New API | Common Pitfalls | Related Skills | Reference Documentation",
1864
+ "frontmatter": {
1865
+ "name": "sfnext-seo",
1866
+ "description": "Storefront Next SEO and AEO/GEO: the SeoMeta component (title, description, noIndex, Open Graph, X cards), JsonLd structured data, canonical URLs and the query-parameter allowlist, hreflang, configurable product/category URLs via url.seoRoutes, semantic URL builders (createProductUrl, createCategoryUrl, useSeoUrlContext), redirectToCanonicalPath, crawler rendering and pagination, and how multi-domain and base path affect generated URLs. Use when adding meta tags or JSON-LD to a route, enabling or changing seoRoutes, fixing duplicate or wrong canonical or og:url URLs, or when a build fails for a missing site in seoRoutes. Do not use for route file naming (use `storefront-next:sfnext-routing`), site/locale config in general (use `storefront-next:sfnext-configuration`), or translations (use `storefront-next:sfnext-i18n`)."
1867
+ },
1868
+ "source": "skills/storefront-next/skills/sfnext-seo/SKILL.md",
1869
+ "headings": "Multi-domain and base path effects on URLs | Multiple domains, one environment | Base path | Adopting url.seoRoutes | What it changes | Checklist before enabling | Avoid breaking indexed URLs | Hybrid deployments | Verifying | Storefront Next SEO | Page metadata: SeoMeta | Structured data: JsonLd | One URL everywhere | Configurable URLs: url.seoRoutes | Multi-domain and base path | Crawlers | Related Skills",
1265
1870
  "files": [
1266
1871
  {
1267
- "path": "references/CLI-COMMANDS.md",
1268
- "bytes": 4184
1872
+ "path": "references/MULTI-DOMAIN-BASE-PATH.md",
1873
+ "bytes": 1237,
1874
+ "digest": "sha256:bc4109c782bd4db9b967e60121028c74bec866f75ea94b7ee2b3471f23508399"
1875
+ },
1876
+ {
1877
+ "path": "references/SEO-ROUTES.md",
1878
+ "bytes": 1971,
1879
+ "digest": "sha256:44284f0267d0c19b1679a680c2d2f3213b2aef6b6f96409b50bedb0985b1ad85"
1269
1880
  },
1270
1881
  {
1271
1882
  "path": "SKILL.md",
1272
- "bytes": 6818
1883
+ "bytes": 5499,
1884
+ "digest": "sha256:c13d2d57d35fa8007772b8eb48ebb8e49ee52764609ba7e5b287fd1253a29c48"
1273
1885
  }
1274
1886
  ]
1275
1887
  },
@@ -1277,14 +1889,24 @@
1277
1889
  "id": "storefront-next/sfnext-state-management",
1278
1890
  "collection": "storefront-next",
1279
1891
  "title": "sfnext-state-management",
1280
- "description": "Manage client-side state in Storefront Next using React context providers and feature-level Zustand stores. Use when handling basket/auth UI state, creating extension stores (for example store locator), or syncing client-visible state after server mutations. NOT for server-side data loading — see sfnext-data-fetching for loader patterns.",
1892
+ "description": "Choose the right state mechanism in a Storefront Next project: loader and action data, useRouteLoaderData, URL state with useSearchParams, cookies and sessions, optimistic UI (fetcher.formData, useNavigation, useOptimistic), React context providers (BasketProvider, AuthProvider, wishlist, product-context), and small useSyncExternalStore stores such as the mini-cart store. Use for \"where should this state live\", \"useBasket\", \"useAuth\", \"share state between components\", \"optimistic add to cart\", \"global client state\", \"hydration mismatch from a store\", or \"do I need Zustand\". Do not use for fetching or mutating data (use `storefront-next:sfnext-data-fetching`), controlling loader re-runs (use `storefront-next:sfnext-revalidation`), or login flows and sessions (use `storefront-next:sfnext-authentication`).",
1281
1893
  "entrypoint": "SKILL.md",
1894
+ "frontmatter": {
1895
+ "name": "sfnext-state-management",
1896
+ "description": "Choose the right state mechanism in a Storefront Next project: loader and action data, useRouteLoaderData, URL state with useSearchParams, cookies and sessions, optimistic UI (fetcher.formData, useNavigation, useOptimistic), React context providers (BasketProvider, AuthProvider, wishlist, product-context), and small useSyncExternalStore stores such as the mini-cart store. Use for \"where should this state live\", \"useBasket\", \"useAuth\", \"share state between components\", \"optimistic add to cart\", \"global client state\", \"hydration mismatch from a store\", or \"do I need Zustand\". Do not use for fetching or mutating data (use `storefront-next:sfnext-data-fetching`), controlling loader re-runs (use `storefront-next:sfnext-revalidation`), or login flows and sessions (use `storefront-next:sfnext-authentication`)."
1897
+ },
1282
1898
  "source": "skills/storefront-next/skills/sfnext-state-management/SKILL.md",
1283
- "headings": "State Management Skill | Overview | Zustand Store Pattern (Feature-Level) | Context Integration | Post-Mutation Sync Pattern | Best Practices | When to Use Each Mechanism | Related Skills",
1899
+ "headings": "State patterns and anti-patterns | Render scope should not exceed data-change scope | Provider value stability | Manager components | Server versus client snapshots | URL state | Cookies | Derived state | Testing state | Storefront Next State Management | Decision table | Existing providers and stores | Optimistic UI | A small external store | Context providers | Common mistakes | Finding more | Related Skills",
1284
1900
  "files": [
1901
+ {
1902
+ "path": "references/PATTERNS.md",
1903
+ "bytes": 2778,
1904
+ "digest": "sha256:1b87bdb3249f2c0a6541f311b454576559e299c8a461344df93793339d68595f"
1905
+ },
1285
1906
  {
1286
1907
  "path": "SKILL.md",
1287
- "bytes": 5079
1908
+ "bytes": 7077,
1909
+ "digest": "sha256:3d08526f70352815d3fbc9cca4562d000bdf9b916a73e81797a6bebd87dafb2d"
1288
1910
  }
1289
1911
  ]
1290
1912
  },
@@ -1292,133 +1914,233 @@
1292
1914
  "id": "storefront-next/sfnext-testing",
1293
1915
  "collection": "storefront-next",
1294
1916
  "title": "sfnext-testing",
1295
- "description": "Write tests for Storefront Next using Vitest unit tests, Storybook stories, interaction tests, snapshot tests, and accessibility tests. Use when writing component tests, creating Storybook stories, running test coverage, or setting up test utilities. Covers testing-library patterns, play functions, and coverage thresholds.",
1917
+ "description": "Write and run tests for a Storefront Next project: Vitest + React Testing Library unit tests, route loader/action tests (createLoaderArgs, createTestContext), Storybook stories with snapshot, interaction (play) and a11y runs, and a pointer to the CodeceptJS/Playwright e2e suite. Use for \"write a test for this component/loader\", \"add a story\", pnpm test, pnpm storybook:test --type=snapshot|interaction|a11y, coverage thresholds, routeLoaderData / scapiMock / mockRoutes story parameters, MSW mocking, fixtures in @/components/__mocks__, failing snapshot updates, or pnpm e2e. Do not use for lint, typecheck, format, bundle-size or Lighthouse gates (use `storefront-next:sfnext-quality-gates`), accessibility rules and fixes (use `storefront-next:sfnext-accessibility`), or translations (use `storefront-next:sfnext-i18n`).",
1296
1918
  "entrypoint": "SKILL.md",
1919
+ "frontmatter": {
1920
+ "name": "sfnext-testing",
1921
+ "description": "Write and run tests for a Storefront Next project: Vitest + React Testing Library unit tests, route loader/action tests (createLoaderArgs, createTestContext), Storybook stories with snapshot, interaction (play) and a11y runs, and a pointer to the CodeceptJS/Playwright e2e suite. Use for \"write a test for this component/loader\", \"add a story\", pnpm test, pnpm storybook:test --type=snapshot|interaction|a11y, coverage thresholds, routeLoaderData / scapiMock / mockRoutes story parameters, MSW mocking, fixtures in @/components/__mocks__, failing snapshot updates, or pnpm e2e. Do not use for lint, typecheck, format, bundle-size or Lighthouse gates (use `storefront-next:sfnext-quality-gates`), accessibility rules and fixes (use `storefront-next:sfnext-accessibility`), or translations (use `storefront-next:sfnext-i18n`)."
1922
+ },
1297
1923
  "source": "skills/storefront-next/skills/sfnext-testing/SKILL.md",
1298
- "headings": "Storybook Patterns Reference | Story File Structure | Story Variants | Interaction Tests (Play Functions) | Decorators | Responsive Testing | Accessibility Testing | Story Coverage | Testing Skill | Unit Tests (Vitest) | Test Utilities | Running Tests | Coverage Requirements | Testing Libraries | Storybook | Story Structure | Storybook Commands | Story Tags | Route Testing | Test Organization | Best Practices | Related Skills | Reference Documentation",
1924
+ "headings": "End-to-end tests | Setup | Run | Keep in mind | Storybook patterns | Principles | Decorator stack | Story parameters | Titles and sidebar | Naming and layout | argTypes | play() functions | Accessibility in stories | Story coverage | Anti-patterns | Unit and route tests | Environment (`vitest.config.ts`, `vitest.setup.ts`) | Helper inventory | Loader/action pattern | MSW | Hooks and components | i18n in tests | Testing Storefront Next | Commands | Unit test | Route loader / action test | Stories | End to end | Pitfalls | Related Skills",
1299
1925
  "files": [
1926
+ {
1927
+ "path": "references/E2E.md",
1928
+ "bytes": 1980,
1929
+ "digest": "sha256:b5c338fe32c6320b0ee3a247bc6247d85ff61d494d68fea16cbb6679ce6525b8"
1930
+ },
1300
1931
  {
1301
1932
  "path": "references/STORYBOOK-PATTERNS.md",
1302
- "bytes": 3059
1933
+ "bytes": 5694,
1934
+ "digest": "sha256:09538ab3d36dd2c1e60b116ff35087883a4a68cc3b1e4227bbf4f5a7d92bf222"
1935
+ },
1936
+ {
1937
+ "path": "references/UNIT-AND-ROUTE-TESTS.md",
1938
+ "bytes": 3916,
1939
+ "digest": "sha256:dfb980474bdc5572171c77738dd3384de534220db4b4c3f51365d2edd3028381"
1303
1940
  },
1304
1941
  {
1305
1942
  "path": "SKILL.md",
1306
- "bytes": 6088
1943
+ "bytes": 8366,
1944
+ "digest": "sha256:d3fdbb661cdb48298f1fe97b8d988d3ad1bcc4d71d4b045318d05694d9303b56"
1307
1945
  }
1308
1946
  ]
1309
1947
  },
1310
1948
  {
1311
- "id": "mcp/b2c-config",
1312
- "collection": "mcp",
1313
- "title": "b2c-config",
1314
- "description": "MCP configuration, authentication setup, external access grants, and masked inspection. Use for setup or unresolved configuration issues; routine config_inspect needs no skill read.",
1949
+ "id": "storefront-next/sfnext-theming",
1950
+ "collection": "storefront-next",
1951
+ "title": "sfnext-theming",
1952
+ "description": "Re-brand and re-skin a Storefront Next storefront: change the color palette, corner radius and shadows (shape tokens), header and footer colors, typography and web fonts, logo, favicon, hero scrims, and brand copy, with WCAG contrast checks. Use when asked to rebrand or restyle the storefront, change the primary color, swap the font, make the header dark, make cards rounded or flat, replace the logo, edit src/theme, core.css, header.css, brand.css, tailwind.css, base.css, or src/lib/fonts.ts, or verify a theme change in the Design System Storybook stories. Do not use for building or styling an individual component (use `storefront-next:sfnext-components`), Figma kit sync (use `storefront-next-figma:sfnext-create-figma-kit`), or site configuration (use `storefront-next:sfnext-configuration`).",
1315
1953
  "entrypoint": "SKILL.md",
1316
- "source": "packages/b2c-dx-mcp/skills/b2c-config/SKILL.md",
1317
- "headings": "MCP Configuration | Inspect resolved values | Where configuration comes from | Setup and access | CLI, when requested | Further reading",
1954
+ "frontmatter": {
1955
+ "name": "sfnext-theming",
1956
+ "description": "Re-brand and re-skin a Storefront Next storefront: change the color palette, corner radius and shadows (shape tokens), header and footer colors, typography and web fonts, logo, favicon, hero scrims, and brand copy, with WCAG contrast checks. Use when asked to rebrand or restyle the storefront, change the primary color, swap the font, make the header dark, make cards rounded or flat, replace the logo, edit src/theme, core.css, header.css, brand.css, tailwind.css, base.css, or src/lib/fonts.ts, or verify a theme change in the Design System Storybook stories. Do not use for building or styling an individual component (use `storefront-next:sfnext-components`), Figma kit sync (use `storefront-next-figma:sfnext-create-figma-kit`), or site configuration (use `storefront-next:sfnext-configuration`)."
1957
+ },
1958
+ "source": "skills/storefront-next/skills/sfnext-theming/SKILL.md",
1959
+ "headings": "Rebrand Checklist | Common mistakes | Theming a Storefront Next Storefront | Where things live | Workflow | 1. Read the current theme | 2. Palette | 3. Header, footer, and newsletter chrome | 4. Shape | 5. Typography | 6. Assets and copy | 7. Dark mode | 8. Verify | Guardrails | Design handoff | Related Skills",
1318
1960
  "files": [
1961
+ {
1962
+ "path": "references/REBRAND-CHECKLIST.md",
1963
+ "bytes": 2019,
1964
+ "digest": "sha256:42c9c65f6ee62b0e6cf5b5014d86f5972c262b14b0d0c1e08b20b75a68f98720"
1965
+ },
1319
1966
  {
1320
1967
  "path": "SKILL.md",
1321
- "bytes": 5153
1968
+ "bytes": 7981,
1969
+ "digest": "sha256:2e67b05dfe53c60a38bb10b2590c7c624fc6b9177c255d7bdc26d78e663e1dec"
1970
+ }
1971
+ ]
1972
+ },
1973
+ {
1974
+ "id": "mcp/b2c-mcp-cip",
1975
+ "collection": "mcp",
1976
+ "title": "b2c-mcp-cip",
1977
+ "description": "Required before cip_query. Discover and run CIP reports or analytics SQL for sales, merchandising, and technical operations; resolve warehouse access, bound results, and interpret site/date scope.",
1978
+ "entrypoint": "SKILL.md",
1979
+ "frontmatter": {
1980
+ "name": "b2c-mcp-cip",
1981
+ "description": "Required before cip_query. Discover and run CIP reports or analytics SQL for sales, merchandising, and technical operations; resolve warehouse access, bound results, and interpret site/date scope."
1982
+ },
1983
+ "source": "packages/b2c-dx-mcp/skills/b2c-mcp-cip/SKILL.md",
1984
+ "headings": "CIP analytics | Choose and discover | Configuration and access | Query and interpret",
1985
+ "files": [
1986
+ {
1987
+ "path": "SKILL.md",
1988
+ "bytes": 5780,
1989
+ "digest": "sha256:d22e54166ca101e095b395c9f56ae8a17bccedb105e43a62c42eb4a115b401ce"
1322
1990
  }
1323
1991
  ],
1324
1992
  "featured": true
1325
1993
  },
1326
1994
  {
1327
- "id": "mcp/cip",
1995
+ "id": "mcp/b2c-mcp-config",
1328
1996
  "collection": "mcp",
1329
- "title": "MCP CIP Analytics",
1330
- "description": "Discover and run CIP reports or analytics SQL for sales, merchandising, and technical operations. Resolve warehouse access, bound results, and interpret site/date scope.",
1331
- "entrypoint": "SKILL.md",
1332
- "source": "packages/b2c-dx-mcp/skills/cip/SKILL.md",
1333
- "headings": "CIP analytics | Choose and discover | Configuration and access | Query and interpret",
1997
+ "title": "b2c-mcp-config",
1998
+ "description": "Resolve B2C MCP configuration, authentication, and external access grants with masked inspection. Use for setup, credential, or wrong-target issues; routine config_inspect needs no skill read.",
1999
+ "entrypoint": "SKILL.md",
2000
+ "frontmatter": {
2001
+ "name": "b2c-mcp-config",
2002
+ "description": "Resolve B2C MCP configuration, authentication, and external access grants with masked inspection. Use for setup, credential, or wrong-target issues; routine config_inspect needs no skill read."
2003
+ },
2004
+ "source": "packages/b2c-dx-mcp/skills/b2c-mcp-config/SKILL.md",
2005
+ "headings": "MCP Configuration | Inspect resolved values | Where configuration comes from | Setup and access | CLI, when requested | Further reading",
1334
2006
  "files": [
1335
2007
  {
1336
2008
  "path": "SKILL.md",
1337
- "bytes": 5633
2009
+ "bytes": 5307,
2010
+ "digest": "sha256:637526b179ec1d284bb094df3d1537e1e415b3392260335479ed7052f99b170b"
1338
2011
  }
1339
2012
  ],
1340
2013
  "featured": true
1341
2014
  },
1342
2015
  {
1343
- "id": "mcp/debugger",
2016
+ "id": "mcp/b2c-mcp-debugger",
1344
2017
  "collection": "mcp",
1345
- "title": "MCP Debugger Usage",
1346
- "description": "Bounded debugger capture, request triggering, state inspection, and reliable session cleanup.",
1347
- "entrypoint": "SKILL.md",
1348
- "source": "packages/b2c-dx-mcp/skills/debugger/SKILL.md",
2018
+ "title": "b2c-mcp-debugger",
2019
+ "description": "Debug B2C Commerce server-side scripts with the MCP debugger tools, using bounded breakpoint capture, request triggering, state inspection, and reliable session cleanup.",
2020
+ "entrypoint": "SKILL.md",
2021
+ "frontmatter": {
2022
+ "name": "b2c-mcp-debugger",
2023
+ "description": "Debug B2C Commerce server-side scripts with the MCP debugger tools, using bounded breakpoint capture, request triggering, state inspection, and reliable session cleanup."
2024
+ },
2025
+ "source": "packages/b2c-dx-mcp/skills/b2c-mcp-debugger/SKILL.md",
1349
2026
  "headings": "MCP Debugger Usage | Prerequisites | Capture and cleanup | Stepping | Recovery | CLI or IDE, when requested",
1350
2027
  "files": [
1351
2028
  {
1352
2029
  "path": "SKILL.md",
1353
- "bytes": 4098
2030
+ "bytes": 4280,
2031
+ "digest": "sha256:3e1abb826568b6fbc62a1ed391c0fc4f29d5064ea1a2f6bd1a434c2871313d22"
1354
2032
  }
1355
2033
  ],
1356
2034
  "featured": true
1357
2035
  },
1358
2036
  {
1359
- "id": "mcp/scapi",
2037
+ "id": "mcp/b2c-mcp-scapi",
1360
2038
  "collection": "mcp",
1361
- "title": "MCP SCAPI Code Mode",
1362
- "description": "Discover standard and live custom SCAPI contracts, compose Admin requests, and verify changes using configured authentication and safety rules.",
2039
+ "title": "b2c-mcp-scapi",
2040
+ "description": "Required before scapi_search or scapi_execute. Discover standard and live custom SCAPI contracts, compose Admin and Shopper requests, and verify changes under configured authentication and Safety Mode.",
1363
2041
  "entrypoint": "SKILL.md",
1364
- "source": "packages/b2c-dx-mcp/skills/scapi/SKILL.md",
1365
- "headings": "Custom Admin APIs | Live custom property definitions | Job review and investigation | Basic product creation | Join campaign assignments to promotions | Save a reusable workflow | Built-in SCAPI snippets | builtin/create-product | builtin/campaign-promotions | builtin/failed-job-triage | builtin/job-execution-review | builtin/job-execution-inspect | builtin/code-version-inspect | builtin/site-cartridge-inspect | Token exports for external clients | Account Manager | SLAS | Output and failures | SCAPI Code Mode | Discover | Task map | Tenant custom properties and APIs | Authentication | Compose and verify | Confirmation and cancellation | Reusable workflows",
2042
+ "frontmatter": {
2043
+ "name": "b2c-mcp-scapi",
2044
+ "description": "Required before scapi_search or scapi_execute. Discover standard and live custom SCAPI contracts, compose Admin and Shopper requests, and verify changes under configured authentication and Safety Mode."
2045
+ },
2046
+ "source": "packages/b2c-dx-mcp/skills/b2c-mcp-scapi/SKILL.md",
2047
+ "headings": "SCAPI authentication | Compose and verify | Confirmation and cancellation | Custom Admin APIs | Live custom property definitions | SCAPI discovery, result limits and tenant schemas | Discover | Task map | Tenant custom properties and APIs | Job review and investigation | Start a job | Basic product creation | Join campaign assignments to promotions | Save a reusable workflow | Built-in SCAPI snippets | builtin/create-product | builtin/campaign-promotions | builtin/failed-job-triage | builtin/job-execution-review | builtin/job-execution-inspect | builtin/code-version-inspect | builtin/site-cartridge-inspect | Token exports for external clients | Account Manager | SLAS | Output and failures | Reusable workflows | SCAPI Code Mode | `spec` shape (search and execute) | Rules | Authentication | Read when needed (do not read all)",
1366
2048
  "files": [
2049
+ {
2050
+ "path": "references/authentication.md",
2051
+ "bytes": 2655,
2052
+ "digest": "sha256:4cbb3cc29ddf7142ab6fd7a00bd6dae99c02e5a08223541dadff7b8fa1999467"
2053
+ },
2054
+ {
2055
+ "path": "references/compose-verify.md",
2056
+ "bytes": 1666,
2057
+ "digest": "sha256:e23fc7d33ec1802817ee54466a95266999d72df5b8ba4d42bab8faa46ff64457"
2058
+ },
2059
+ {
2060
+ "path": "references/confirmation.md",
2061
+ "bytes": 2137,
2062
+ "digest": "sha256:143025f6d98ad56bba5fe7038bb6e4be85929050eb44dc435837deaf256b0e0d"
2063
+ },
1367
2064
  {
1368
2065
  "path": "references/custom-apis.md",
1369
- "bytes": 2734
2066
+ "bytes": 2734,
2067
+ "digest": "sha256:86b1e174c730639ecd8b0809038c735ad81616eeab4b52be5e1b3462c0f56363"
1370
2068
  },
1371
2069
  {
1372
2070
  "path": "references/custom-properties.md",
1373
- "bytes": 1845
2071
+ "bytes": 1845,
2072
+ "digest": "sha256:bc0093b33efd2f4a27167ad66164ae6b0fc9ef776fd51055256b22a153553bb8"
2073
+ },
2074
+ {
2075
+ "path": "references/discover.md",
2076
+ "bytes": 8497,
2077
+ "digest": "sha256:b621643189beba4489a38587a7cbf3304e69139f048a962740d294fb0885a0d6"
1374
2078
  },
1375
2079
  {
1376
2080
  "path": "references/jobs.md",
1377
- "bytes": 1873
2081
+ "bytes": 4159,
2082
+ "digest": "sha256:a1ec68d204f6d72b4356c3783c8835e4ac037c54cfdca9c8eb8fc19a86437f10"
1378
2083
  },
1379
2084
  {
1380
2085
  "path": "references/products.md",
1381
- "bytes": 2355
2086
+ "bytes": 2355,
2087
+ "digest": "sha256:0520e9106ad3dc96ff20c8277ab54fc3ee2e95693cb8b21421734f130a36d5dd"
1382
2088
  },
1383
2089
  {
1384
2090
  "path": "references/promotions.md",
1385
- "bytes": 1065
2091
+ "bytes": 1065,
2092
+ "digest": "sha256:17b5ecb979f47c651511ad8c5f5ab20e19064da4cf54e676b0e4869e735ae293"
1386
2093
  },
1387
2094
  {
1388
2095
  "path": "references/saving.md",
1389
- "bytes": 739
2096
+ "bytes": 739,
2097
+ "digest": "sha256:2c8ce36956f1676a13137ca16d72c6d6f1eed3209bc44a9334987be45d4c8f9e"
1390
2098
  },
1391
2099
  {
1392
2100
  "path": "references/snippets.md",
1393
- "bytes": 3745
2101
+ "bytes": 3745,
2102
+ "digest": "sha256:86408606e6250a365e327fe43c8d577fc6dc1a48234c55adb0da9b288e5f07b2"
1394
2103
  },
1395
2104
  {
1396
2105
  "path": "references/tokens.md",
1397
- "bytes": 2764
2106
+ "bytes": 2764,
2107
+ "digest": "sha256:fc9f783193a9de6b4b5e00d3fd2ab92c08e94901eaf619ac2221876c3f379165"
2108
+ },
2109
+ {
2110
+ "path": "references/workflows.md",
2111
+ "bytes": 1775,
2112
+ "digest": "sha256:324e96343babbda39a308f7710465b29c7e667ee3d35f1adbcad035da90a308f"
1398
2113
  },
1399
2114
  {
1400
2115
  "path": "SKILL.md",
1401
- "bytes": 14035
2116
+ "bytes": 5929,
2117
+ "digest": "sha256:c192bf8e28d9b975686386e167e15aee926a7aad723a4304d9a372ccbe1e7c72"
1402
2118
  }
1403
2119
  ],
1404
2120
  "featured": true
1405
2121
  },
1406
2122
  {
1407
- "id": "mcp/server",
2123
+ "id": "mcp/b2c-mcp-server",
1408
2124
  "collection": "mcp",
1409
- "title": "server",
1410
- "description": "B2C MCP setup, toolset customization, available capabilities, tool choice, and skill discovery.",
2125
+ "title": "b2c-mcp-server",
2126
+ "description": "Index and setup for the B2C Commerce MCP server, covering toolset selection, tool choice by task, and the skill catalog. Use to enable tools, pick the right tool, or find the skill that covers a B2C task.",
1411
2127
  "entrypoint": "SKILL.md",
1412
- "source": "packages/b2c-dx-mcp/skills/server/SKILL.md",
1413
- "headings": "Instance files and cartridge uploads | B2C MCP Server | Server configuration and tool availability | Tool choice and project configuration | Skills | Setup references",
2128
+ "frontmatter": {
2129
+ "name": "b2c-mcp-server",
2130
+ "description": "Index and setup for the B2C Commerce MCP server, covering toolset selection, tool choice by task, and the skill catalog. Use to enable tools, pick the right tool, or find the skill that covers a B2C task."
2131
+ },
2132
+ "source": "packages/b2c-dx-mcp/skills/b2c-mcp-server/SKILL.md",
2133
+ "headings": "Instance files and cartridge uploads | B2C MCP Server | Skill index | Server configuration and tool availability | Tool choice and project configuration | Loading skills | Setup references",
1414
2134
  "files": [
1415
2135
  {
1416
2136
  "path": "references/files.md",
1417
- "bytes": 2373
2137
+ "bytes": 2373,
2138
+ "digest": "sha256:f519924a178eb39d255666923c88fa88730d0eb247f7b05d66eaa33500dab3a6"
1418
2139
  },
1419
2140
  {
1420
2141
  "path": "SKILL.md",
1421
- "bytes": 5965
2142
+ "bytes": 7763,
2143
+ "digest": "sha256:8495f7a86f2e265d9157729f192c21cc996b3c42a15bcc9514dd8aeaab32702f"
1422
2144
  }
1423
2145
  ],
1424
2146
  "featured": true