@salesforce/b2c-dx-mcp 3.0.1 → 3.1.1

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 (69) hide show
  1. package/content/guidance/b2c-cli/b2c-config/SKILL.md +18 -1
  2. package/content/guidance/b2c-cli/b2c-docs/SKILL.md +8 -3
  3. package/content/guidance/b2c-cli/b2c-ecdn/SKILL.md +4 -4
  4. package/content/guidance/b2c-cli/b2c-ecdn/references/ADVANCED.md +21 -6
  5. package/content/guidance/b2c-cli/b2c-ecdn/references/SECURITY.md +4 -4
  6. package/content/guidance/b2c-cli/b2c-job/SKILL.md +2 -0
  7. package/content/guidance/b2c-cli/b2c-job/references/EXPORT.md +9 -3
  8. package/content/guidance/b2c-cli/b2c-job/references/IMPORT.md +12 -0
  9. package/content/guidance/b2c-cli/b2c-mrt/SKILL.md +5 -4
  10. package/content/guidance/b2c-cli/b2c-mrt/references/BUNDLE-COMMANDS.md +21 -3
  11. package/content/guidance/b2c-cli/b2c-mrt/references/ENVIRONMENT-COMMANDS.md +23 -0
  12. package/content/guidance/b2c-cli/b2c-webdav/SKILL.md +17 -0
  13. package/content/guidance/index.json +22 -22
  14. package/content/guidance/mcp/scapi/SKILL.md +46 -14
  15. package/dist/commands/mcp.js +1 -1
  16. package/dist/guidance.js +0 -2
  17. package/dist/registry.js +1 -1
  18. package/dist/server-context.d.ts +2 -0
  19. package/dist/server-context.js +4 -0
  20. package/dist/server.d.ts +2 -4
  21. package/dist/server.js +16 -3
  22. package/dist/services.d.ts +7 -5
  23. package/dist/services.js +19 -8
  24. package/dist/tools/adapter.js +1 -1
  25. package/dist/tools/scapi/execution-registry.d.ts +62 -0
  26. package/dist/tools/scapi/execution-registry.js +303 -0
  27. package/dist/tools/scapi/index.d.ts +2 -1
  28. package/dist/tools/scapi/index.js +2 -2
  29. package/dist/tools/scapi/scapi-code.d.ts +2 -1
  30. package/dist/tools/scapi/scapi-code.js +71 -34
  31. package/dist/utils/types.d.ts +10 -3
  32. package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-CLhGwQTn.d.mts +2 -1
  33. package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-dBHMsxwf.d.cts +2 -1
  34. package/node_modules/@modelcontextprotocol/server/dist/mcp-D7GmuPnv.cjs +1 -1
  35. package/node_modules/@modelcontextprotocol/server/dist/mcp-DXXb3Vv3.mjs +1 -1
  36. package/node_modules/@modelcontextprotocol/server/dist/src-CX2iR2pK.mjs +2 -0
  37. package/node_modules/@modelcontextprotocol/server/dist/src-STyD_Vvf.cjs +2 -0
  38. package/node_modules/@salesforce/b2c-agent-plugins/CHANGELOG.md +30 -0
  39. package/node_modules/@salesforce/b2c-agent-plugins/README.md +4 -2
  40. package/node_modules/@salesforce/b2c-agent-plugins/b2c/.codex-plugin/plugin.json +1 -1
  41. package/node_modules/@salesforce/b2c-agent-plugins/b2c/plugin.json +1 -1
  42. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/.codex-plugin/plugin.json +1 -1
  43. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/plugin.json +1 -1
  44. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-config/SKILL.md +18 -1
  45. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-docs/SKILL.md +8 -3
  46. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-ecdn/SKILL.md +4 -4
  47. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-ecdn/references/ADVANCED.md +21 -6
  48. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-ecdn/references/SECURITY.md +4 -4
  49. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-job/SKILL.md +2 -0
  50. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-job/references/EXPORT.md +9 -3
  51. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-job/references/IMPORT.md +12 -0
  52. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-mrt/SKILL.md +5 -4
  53. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-mrt/references/BUNDLE-COMMANDS.md +21 -3
  54. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-mrt/references/ENVIRONMENT-COMMANDS.md +23 -0
  55. package/node_modules/@salesforce/b2c-agent-plugins/b2c-cli/skills/b2c-webdav/SKILL.md +17 -0
  56. package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/.codex-plugin/plugin.json +1 -1
  57. package/node_modules/@salesforce/b2c-agent-plugins/b2c-ops/plugin.json +1 -1
  58. package/node_modules/@salesforce/b2c-agent-plugins/b2c-python-sdk/.codex-plugin/plugin.json +41 -0
  59. package/node_modules/@salesforce/b2c-agent-plugins/b2c-python-sdk/README.md +35 -0
  60. package/node_modules/@salesforce/b2c-agent-plugins/b2c-python-sdk/assets/logo.svg +31 -0
  61. package/node_modules/@salesforce/b2c-agent-plugins/b2c-python-sdk/plugin.json +45 -0
  62. package/node_modules/@salesforce/b2c-agent-plugins/b2c-python-sdk/skills/using-b2c-tooling-sdk/SKILL.md +226 -0
  63. package/node_modules/@salesforce/b2c-agent-plugins/b2c-python-sdk/skills/using-b2c-tooling-sdk/references/api-catalog.md +154 -0
  64. package/node_modules/@salesforce/b2c-agent-plugins/package.json +1 -1
  65. package/node_modules/@salesforce/b2c-agent-plugins/plugins.json +3 -0
  66. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/.codex-plugin/plugin.json +1 -1
  67. package/node_modules/@salesforce/b2c-agent-plugins/storefront-next/plugin.json +1 -1
  68. package/oclif.manifest.json +2 -2
  69. package/package.json +3 -3
@@ -31,6 +31,23 @@ Sources, in resolution order (highest priority first):
31
31
 
32
32
  For unexpected values, inspect resolved configuration and sources with `config_inspect` or `b2c setup inspect`.
33
33
 
34
+ ### Storefront Next Environment Compatibility
35
+
36
+ The resolver accepts these Storefront Next variables as fallbacks, so a project
37
+ can reuse its existing B2C Commerce and SLAS configuration:
38
+
39
+ | Storefront Next variable | Resolved field | Default toolkit variable |
40
+ | -------------------------------------------- | ------------------ | ------------------------- |
41
+ | `PUBLIC__app__commerce__api__clientId` | `slasClientId` | `SFCC_SLAS_CLIENT_ID` |
42
+ | `PUBLIC__app__commerce__api__organizationId` | `tenantId` | `SFCC_TENANT_ID` |
43
+ | `PUBLIC__app__commerce__api__shortCode` | `shortCode` | `SFCC_SHORTCODE` |
44
+ | `COMMERCE_API_SLAS_SECRET` | `slasClientSecret` | `SFCC_SLAS_CLIENT_SECRET` |
45
+ | `PUBLIC__app__defaultSiteId` | `siteId` | `SFCC_SITE_ID` |
46
+ | `MRT_PROJECT` | `mrtProject` | `MRT_PROJECT` |
47
+ | `MRT_TARGET` | `mrtEnvironment` | `MRT_ENVIRONMENT` |
48
+
49
+ Explicit flags and default toolkit variables win over these fallbacks.
50
+
34
51
  ### Shared Global Default
35
52
 
36
53
  Use a shared fallback when the same `dw.json`-format file should work across the CLI, MCP server, and B2C DX VS Code extension:
@@ -263,7 +280,7 @@ The `setup inspect` command displays configuration organized by category:
263
280
  - **Managed Runtime (MRT)**: mrtProject, mrtEnvironment, mrtApiKey, mrtOrigin (if set)
264
281
  - **Project**: configured deployment, content, and documentation defaults
265
282
  - **Metadata**: siteId, instanceName, and projectDirectory (only shown when configured)
266
- - **Safety**: safety configuration (only shown when configured)
283
+ - **Safety**: effective level, level-based confirmation, source column, and rule count after combining instance, global-file, and environment settings (only shown when configured). `SafetyFile` identifies the global file listed in Sources; `SafetyEnv` identifies environment settings. Use `--verbose` for numbered rules in matching order with their sources, or `--json` for the complete effective safety object. Explicit confirmation rules still apply when level confirmation is disabled.
267
284
  - **Sources**: List of all configuration sources that were loaded
268
285
 
269
286
  Each value shows its source in brackets:
@@ -17,7 +17,7 @@ Use the `b2c` CLI to search and read B2C Commerce documentation spanning multipl
17
17
 
18
18
  - **Multi-corpus search** — Search across Script API, Developer Center guides, Salesforce Help (admin + merchandising), internal tooling docs (guides, CLI reference, MCP, and VS Code extension), job steps, and schemas in a unified index
19
19
  - **Workspace-aware search** — Auto-detects project type (cartridges, SFRA, PWA Kit, Storefront Next) and boosts relevant documentation while de-boosting competing storefront frameworks
20
- - **Category filtering** — Use `--category` to narrow results to a specific corpus (e.g., `commerce-api`, `pwa-kit-managed-runtime`, `sfra`, `script-api`, `help-admin`, `help-merchant`)
20
+ - **Category filtering** — Use `--category` to narrow results to a specific corpus (e.g., `commerce-api`, `pwa-kit-managed-runtime`, `sfra`, `script-api`, `help-admin`, `help-merchant`, `help-kb`)
21
21
  - **Triage metadata** — Search results include `category`, `summary`, `keywords`, and `url` to help identify the right match without reading full content
22
22
  - **Online content with local cache** — Script API, Developer Center guides, and Salesforce Help are fetched online when you read them and cached locally (memory + on-disk, 7-day TTL) so repeat reads avoid the network; graceful offline fallback shows the summary + headings + both URLs
23
23
  - **Content-aware ranking** — BM25-style search indexes titles, section headings, summaries, and keywords for better recall on conceptual questions
@@ -54,6 +54,9 @@ b2c docs search "site import export" --category help-admin
54
54
  # Search Salesforce Help — merchandising (catalogs, promotions, search, pricing)
55
55
  b2c docs search "price book assignment" --category help-merchant
56
56
 
57
+ # Search Salesforce Help Knowledge Articles — troubleshooting, known issues, how-to answers
58
+ b2c docs search "code upload certificate hyperforce" --category help-kb
59
+
57
60
  # Search tooling documentation
58
61
  b2c docs search "authentication setup" --category tooling
59
62
  b2c docs search "import set" --category tooling
@@ -153,6 +156,7 @@ b2c docs read pwa-kit-managed-runtime/getting-started
153
156
  # Read Salesforce Help articles by namespaced ID
154
157
  b2c docs read help-admin/b2c_site_import_export
155
158
  b2c docs read help-merchant/b2c_creating_price_books
159
+ b2c docs read help-kb/002772125
156
160
 
157
161
  # Read tooling guides
158
162
  b2c docs read guide-authentication
@@ -239,10 +243,11 @@ xmllint --schema "$(b2c docs schema catalog --path)" my-catalog.xml --noout
239
243
  | `job-step` | Standard (system) job step catalog | `ImportCatalog`, `ExportCatalog`, `job-steps` |
240
244
  | `help-admin` | Salesforce Help — administration/ops (import/export, jobs, replication, security, Account Manager, permissions, logs, inventory) | `help-admin/b2c_site_import_export` |
241
245
  | `help-merchant` | Salesforce Help — merchandising (catalogs, products, promotions, search, content, analytics, SEO) | `help-merchant/b2c_creating_price_books` |
246
+ | `help-kb` | Salesforce Help Knowledge Articles — troubleshooting, known issues, and how-to answers (keyed by article number) | `help-kb/002772125` |
242
247
 
243
- > **URLs:** All categories except `job-step` carry both `url` (human .html page) and `sourceUrl` (machine-readable .md). For `help-admin`/`help-merchant`, `url` is the live help.salesforce.com article and content is read from `sourceUrl`. `job-step` entries have neither (content is bundled inline).
248
+ > **URLs:** All categories except `job-step` carry both `url` (human .html page) and `sourceUrl` (machine-readable .md). For `help-admin`/`help-merchant`/`help-kb`, `url` is the live help.salesforce.com article and content is read from `sourceUrl`. `job-step` entries have neither (content is bundled inline).
244
249
  >
245
- > **Caching:** Content for the online corpora (`script-api`, the guide categories, `help-admin`/`help-merchant`, `tooling`) is fetched on `docs read` and cached locally. Use `b2c docs cache` to inspect it and `b2c docs cache --clear` to purge it (forces a re-fetch).
250
+ > **Caching:** Content for the online corpora (`script-api`, the guide categories, `help-admin`/`help-merchant`/`help-kb`, `tooling`) is fetched on `docs read` and cached locally. Use `b2c docs cache` to inspect it and `b2c docs cache --clear` to purge it (forces a re-fetch).
246
251
 
247
252
  ## Common Script API Classes
248
253
 
@@ -60,10 +60,10 @@ b2c ecdn cache purge --zone my-zone --tag product-123 --tag category-456
60
60
  b2c ecdn certificates list --zone my-zone
61
61
 
62
62
  # add a new certificate
63
- b2c ecdn certificates add --zone my-zone --hostname www.example.com --certificate-file ./cert.pem --private-key-file ./key.pem
63
+ b2c ecdn certificates add --zone my-zone --hostname www.example.com --type custom --certificate-file ./cert.pem --private-key-file ./key.pem
64
64
 
65
65
  # validate a custom hostname
66
- b2c ecdn certificates validate --zone my-zone --certificate-id abc123
66
+ b2c ecdn certificates validate --zone my-zone --custom-hostname-id abc123
67
67
  ```
68
68
 
69
69
  ### Manage Rate Limiting Rules
@@ -92,7 +92,7 @@ b2c ecdn rate-limit delete --zone my-zone --rule-id 2c0fc9fa937b11eaa1b71c4d701a
92
92
  b2c ecdn security get --zone my-zone
93
93
 
94
94
  # update security settings
95
- b2c ecdn security update --zone my-zone --ssl-mode full --min-tls-version 1.2 --always-use-https
95
+ b2c ecdn security update --zone my-zone --security-level medium --always-use-https --tls13
96
96
  ```
97
97
 
98
98
  ### Speed Settings
@@ -102,7 +102,7 @@ b2c ecdn security update --zone my-zone --ssl-mode full --min-tls-version 1.2 --
102
102
  b2c ecdn speed get --zone my-zone
103
103
 
104
104
  # update speed settings
105
- b2c ecdn speed update --zone my-zone --browser-cache-ttl 14400 --auto-minify-html --auto-minify-css
105
+ b2c ecdn speed update --zone my-zone --brotli on --http3 on --webp on
106
106
  ```
107
107
 
108
108
  ## Additional Topics
@@ -41,17 +41,32 @@ b2c ecdn mrt-rules delete --zone my-zone
41
41
 
42
42
  ## mTLS Certificates
43
43
 
44
+ Code upload certificates enable two-factor (mTLS) code upload to staging instances (`_stg` tenants only). Upload a CA certificate to eCDN, then issue client certificates (`.p12`) signed by that CA for each user or pipeline. The CA private key must be kept secret (treat like a password); the CA certificate bundle must have a maximum validity of 1 year and be renewed before expiry. On Hyperforce, use the `staging-<realm>-<customer>.demandware.net` code upload hostname (not legacy `cert.staging.*`).
45
+
46
+ For the complete workflow, security guidance, and renewal instructions, see [Deploying to Hyperforce: Code Upload Certificates](https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/hyperforce#code-upload-certificates).
47
+
44
48
  ```bash
45
- # list mTLS certificates (organization level)
46
- b2c ecdn mtls list
49
+ # interactive wizard: generate CA, upload, issue your client cert, update dw.json
50
+ b2c ecdn mtls setup
51
+
52
+ # non-interactive: generate CA + upload + issue first client cert
53
+ b2c ecdn mtls create --name code-upload --generate
54
+ b2c ecdn mtls create --name code-upload --generate --out-dir ./certs --client-name jsmith
47
55
 
48
- # create mTLS certificate for code upload authentication
49
- b2c ecdn mtls create --name "Build Server" --ca-certificate-file ./ca.pem --leaf-certificate-file ./leaf.pem
56
+ # upload an existing CA
57
+ b2c ecdn mtls create --name code-upload --certificate-file ./ca.pem --private-key-file ./ca.key
58
+
59
+ # issue additional client certificates (local-only, no API call)
60
+ b2c ecdn mtls issue --ca-cert-file ./certs/ca.pem --ca-key-file ./certs/ca.key --name jane.doe
61
+ b2c ecdn mtls issue --ca-cert-file ca.pem --ca-key-file ca.key --name ci --output ci.p12 --days 90
62
+
63
+ # list uploaded CA certificates
64
+ b2c ecdn mtls list
50
65
 
51
- # get mTLS certificate details
66
+ # get certificate details
52
67
  b2c ecdn mtls get --certificate-id abc123
53
68
 
54
- # delete mTLS certificate
69
+ # delete a CA certificate (uploaded CA stops accepting client certs)
55
70
  b2c ecdn mtls delete --certificate-id abc123
56
71
  ```
57
72
 
@@ -33,10 +33,10 @@ b2c ecdn waf migrate --zone my-zone
33
33
  b2c ecdn firewall list --zone my-zone
34
34
 
35
35
  # create a firewall rule
36
- b2c ecdn firewall create --zone my-zone --description "Block bad bots" --action block --filter '(cf.client.bot)'
36
+ b2c ecdn firewall create --zone my-zone --description "Block bad bots" --expression '(cf.client.bot)' --actions block
37
37
 
38
38
  # update a firewall rule
39
- b2c ecdn firewall update --zone my-zone --rule-id abc123 --action challenge
39
+ b2c ecdn firewall update --zone my-zone --rule-id abc123 --actions managed_challenge
40
40
 
41
41
  # reorder firewall rules
42
42
  b2c ecdn firewall reorder --zone my-zone --rule-ids id1,id2,id3
@@ -49,7 +49,7 @@ b2c ecdn firewall reorder --zone my-zone --rule-ids id1,id2,id3
49
49
  b2c ecdn rate-limit list --zone my-zone
50
50
 
51
51
  # create a rate limiting rule
52
- b2c ecdn rate-limit create --zone my-zone --description "API rate limit" --threshold 100 --period 60 --action block --match-url '/api/*'
52
+ b2c ecdn rate-limit create --zone my-zone --description "API rate limit" --expression '(http.request.uri.path matches "^/api/")' --characteristics cf.unique_visitor_id --action block --period 60 --requests-per-period 100 --mitigation-timeout 600
53
53
 
54
54
  # delete a rate limiting rule
55
55
  b2c ecdn rate-limit delete --zone my-zone --rule-id abc123
@@ -62,7 +62,7 @@ b2c ecdn rate-limit delete --zone my-zone --rule-id abc123
62
62
  b2c ecdn page-shield notifications list
63
63
 
64
64
  # create a notification webhook
65
- b2c ecdn page-shield notifications create --url https://example.com/webhook --secret my-secret --zones zone1,zone2
65
+ b2c ecdn page-shield notifications create --webhook-url https://example.com/webhook --secret my-secret --zones zone1,zone2
66
66
 
67
67
  # list Page Shield policies (zone level)
68
68
  b2c ecdn page-shield policies list --zone my-zone
@@ -39,7 +39,9 @@ Deletion removes completed execution records; it does not cancel jobs.
39
39
 
40
40
  ```bash
41
41
  b2c job import ./archive --show-log
42
+ b2c job import ./storefront-export.zip --wait-for-storefront
42
43
  b2c job export --site MySite --site-data campaigns_and_promotions --output ./export
44
+ b2c job export --storefront my-storefront --output ./export
43
45
  ```
44
46
 
45
47
  Import/export wait by default and transfer files over WebDAV. Jobs prefer SCAPI
@@ -39,6 +39,9 @@ b2c job export --site RefArch
39
39
  # export a site with specific site data units
40
40
  b2c job export --site RefArch --site-data content,site_preferences
41
41
 
42
+ # export one composable storefront by storefront name
43
+ b2c job export --storefront my-storefront
44
+
42
45
  # export multiple sites
43
46
  b2c job export --site RefArch --site SiteGenesis --site-data campaigns_and_promotions
44
47
 
@@ -98,6 +101,7 @@ Do not require a temporary directory and copy step for export-based migrations.
98
101
  | Flag | Description |
99
102
  | ------------------ | ------------------------------------------------------------------------------ |
100
103
  | `--site` | Site IDs to export (use `--site-data` to pick specific units, defaults to all) |
104
+ | `--storefront` | One composable storefront name |
101
105
  | `--catalog` | Catalog IDs |
102
106
  | `--library` | Library IDs |
103
107
  | `--inventory-list` | Inventory list IDs |
@@ -106,10 +110,12 @@ Do not require a temporary directory and copy step for export-based migrations.
106
110
 
107
111
  **Site data units** (use with `--site-data`):
108
112
 
109
- `ab_tests`, `active_data_feeds`, `all`, `cache_settings`, `campaigns_and_promotions`, `content`, `coupons`, `custom_objects`, `customer_cdn_settings`, `customer_groups`, `distributed_commerce_extensions`, `dynamic_file_resources`, `gift_certificates`, `ocapi_settings`, `payment_methods`, `payment_processors`, `redirect_urls`, `search_settings`, `shipping`, `site_descriptor`, `site_preferences`, `sitemap_settings`, `slots`, `sorting_rules`, `source_codes`, `static_dynamic_alias_mappings`, `stores`, `tax`, `url_rules`
113
+ `ab_tests`, `active_data_feeds`, `all`, `cache_settings`, `campaigns_and_promotions`, `channels`, `commerce_feature_states`, `content`, `coupons`, `custom_objects`, `customer_cdn_settings`, `customer_groups`, `distributed_commerce_extensions`, `dynamic_file_resources`, `gift_certificates`, `ocapi_settings`, `payment_methods`, `payment_processors`, `point_of_sale_channels`, `redirect_urls`, `search_settings`, `shipping`, `site_descriptor`, `site_preferences`, `sitemap_settings`, `slots`, `sorting_rules`, `source_codes`, `static_dynamic_alias_mappings`, `stores`, `tax`, `url_rules`
110
114
 
111
115
  **Global data units** (use with `--global-data`):
112
116
 
113
- `access_roles`, `all`, `csc_settings`, `csrf_whitelists`, `custom_preference_groups`, `custom_quota_settings`, `custom_types`, `geolocations`, `global_custom_objects`, `job_schedules`, `job_schedules_deprecated`, `locales`, `meta_data`, `oauth_providers`, `ocapi_settings`, `page_meta_tags`, `preferences`, `price_adjustment_limits`, `services`, `sorting_rules`, `static_resources`, `system_type_definitions`, `users`, `webdav_client_permissions`
117
+ `access_roles`, `all`, `csc_settings`, `csrf_whitelists`, `custom_preference_groups`, `custom_quota_settings`, `custom_types`, `event_routing`, `geolocations`, `global_custom_objects`, `job_schedules`, `job_schedules_deprecated`, `locales`, `meta_data`, `oauth_providers`, `ocapi_settings`, `page_meta_tags`, `preferences`, `price_adjustment_limits`, `services`, `sorting_rules`, `static_resources`, `system_type_definitions`, `users`, `webdav_client_permissions`
118
+
119
+ For full control over the export configuration (including `assignments`, `catalog_static_resources`, `library_static_resources`, and `customer_lists`), use `--data-units` with a JSON string matching the `ExportDataUnitsConfiguration` shape. The `storefronts` object is keyed by storefront name and may select only one storefront.
114
120
 
115
- For full control over the export configuration (including `catalog_static_resources`, `library_static_resources`, and `customer_lists`), use `--data-units` with a JSON string matching the `ExportDataUnitsConfiguration` shape.
121
+ The `storefronts` export data unit requires B2C Commerce 26.10 or later. Failed storefront exports include a version note alongside the original error; check the instance version when the server rejects this data unit.
@@ -23,12 +23,24 @@ b2c job import existing-archive.zip --remote
23
23
  # show job log on failure
24
24
  b2c job import ./my-site-data --show-log
25
25
 
26
+ # wait for Storefront Next post-import setup after the archive import succeeds
27
+ b2c job import ./storefront-export.zip --wait-for-storefront
28
+
26
29
  # import only a subset of a directory (extra positionals are paths/globs
27
30
  # resolved against the directory; preserves layout inside the archive)
28
31
  b2c job import ./my-site-data sites/RefArch libraries/mylib
29
32
  b2c job import ./my-site-data 'libraries/**'
30
33
  ```
31
34
 
35
+ `--wait-for-storefront` snapshots existing setup-job executions before import,
36
+ waits for the archive import to succeed, and then polls briefly for the newly
37
+ triggered `sfcc-post-import-setup-storefront` execution before waiting for it to
38
+ finish. It cannot be combined with `--no-wait`. If no new setup execution appears
39
+ within 60 seconds, the CLI checks available import logs and includes `[DATAERROR]`
40
+ entries in the timeout error. Logs are downloaded for this diagnostic only on
41
+ discovery timeout. Resolve any reported data errors before retrying; if logs are
42
+ unavailable or contain no data errors, inspect the import contents and recent job executions.
43
+
32
44
  ### Import Sets
33
45
 
34
46
  `job import-set` first applies site import/export archives from discovered cartridge `metadata/` sources, then applies archives in `./migrations`, and skips archives already recorded on the target instance:
@@ -17,15 +17,16 @@ Run `b2c setup inspect` to see the resolved configuration and which source provi
17
17
 
18
18
  ### MRT Backends (legacy vs SCAPI)
19
19
 
20
- Most MRT commands run against the legacy MRT Cloud API (API key). Two commands — `mrt bundle history` and `mrt bundle deploy <bundleId>` — can also run over the SCAPI MRT backend. Choose with `--mrt-backend` (`MRT_BACKEND` / `SFCC_MRT_BACKEND`, or `mrtBackend` in `dw.json`):
20
+ Most MRT commands run against the legacy MRT Cloud API (API key). Several commands can also run over the SCAPI MRT backend: `mrt bundle history`, `mrt bundle list`, `mrt bundle deploy` (both the local-build push and deploying an existing `<bundleId>`), and the `mrt env var` family (`list` / `set` / `push` / `delete`). Choose with `--mrt-backend` (`MRT_BACKEND` / `SFCC_MRT_BACKEND`, or `mrtBackend` in `dw.json`):
21
21
 
22
- - `auto` (default) — use SCAPI when it's configured (`--short-code` + `--tenant-id` + client-credentials or JWT Bearer auth; scopes `sfcc.storefront.deployments[.rw]`), otherwise legacy. Falls back to legacy on safe pre-execution errors.
22
+ - `auto` (default) — use SCAPI when it's configured (`--short-code` + `--tenant-id` + client-credentials or JWT Bearer auth), otherwise legacy. Falls back to legacy on safe pre-execution errors. Each command requests its own scopes: bundle commands use `sfcc.storefront.deployments[.rw]`; env var commands use `sfcc.storefront.environments[.rw]` (reads accept either tier, writes require `.rw`).
23
23
  - `legacy` — always the MRT Cloud API.
24
- - `scapi` — always SCAPI, with no fallback; errors if prerequisites are missing. Also errors on unsupported commands and on the local-build push path (`deploy` with no bundle ID).
24
+ - `scapi` — always SCAPI, with no fallback; errors if prerequisites are missing. Also errors on unsupported commands (every MRT command except the bundle and env var commands above).
25
25
 
26
26
  Notes:
27
27
 
28
- - Under `--json`, these commands emit the **serving backend's native shape** (legacy `{count, next, previous, deployments}` vs SCAPI `{limit, offset, total, data}`). The human table is normalized; `--json` is not. Pin `legacy` or `scapi` when a script needs a stable shape.
28
+ - Under `--json`, these commands emit the **serving backend's native shape** (e.g. `bundle history` is legacy `{count, next, previous, deployments}` vs SCAPI `{limit, offset, total, data}`; `env var list` is legacy `{count, variables}` vs the SCAPI native environment-variables map). The human table is normalized; `--json` is not. Pin `legacy` or `scapi` when a script needs a stable shape.
29
+ - Env vars over SCAPI use the Storefront Environments API. `set` and `delete` apply a merge-PATCH (only the keys you pass change; `delete` sends the key with a `null` value); values are always masked by both backends. `push` resolves the backend once from its initial read and pins every write to it, so a single `push` never crosses backends.
29
30
  - Legacy-only flags (`--api-key`, `--cloud-origin` / `-u`, `--credentials-file` / `-c`) are ignored — with a warning — when SCAPI serves the request.
30
31
  - `--storefront` (long) and `-s` (short) are aliases of `--project` / `-p` — the SCAPI storefront ID is the project slug, so all four are interchangeable on every `mrt` command. On `mrt project create` this flag sets the new project's slug (auto-generated from the name if omitted); `mrt bundle save` uses `-d` for `--save-dir`, keeping `-s` free for the storefront alias.
31
32
 
@@ -31,11 +31,22 @@ b2c mrt bundle deploy -p my-storefront --ssr-param SSRProxyPath=/api
31
31
  b2c mrt bundle deploy -p my-storefront \
32
32
  --ssr-param SSRProxyPath=/api \
33
33
  --ssr-param SSRTimeout=30000
34
+
35
+ # Push a local build and deploy it via the SCAPI backend
36
+ b2c mrt bundle deploy -p my-storefront -e staging --mrt-backend scapi
37
+
38
+ # Push via SCAPI with a custom v2 archive layout
39
+ b2c mrt bundle deploy -p my-storefront --mrt-backend scapi --root-dir bld --match-mode ignore_missing
40
+
41
+ # Push via the legacy v2 endpoint (opt in with --v2)
42
+ b2c mrt bundle deploy -p my-storefront --mrt-backend legacy --v2 --match-mode ignore_missing
34
43
  ```
35
44
 
45
+ **Bundle format:** SCAPI always uploads the v2 format. The legacy backend defaults to v1; pass `--v2` to upload through the legacy v2 endpoint (upload, plus a separate deploy when `-e` is given). `--root-dir`, `--config-path`, and `--match-mode` control the v2 archive layout and only take effect on a v2 upload — on a legacy v1 push they are ignored and the command warns (pass `--v2` to enable them). `b2c mrt bundle deploy --v2` performs the same v2 upload as `b2c mrt bundle upload-v2` and can also deploy in one step.
46
+
36
47
  ### Deploy Existing Bundle
37
48
 
38
- Deploying an existing bundle (with a bundle ID) is backend-aware — it honors `--mrt-backend` (`auto` / `legacy` / `scapi`). Pushing a local build is legacy-pinned. See the "MRT Backends" section in the skill overview.
49
+ Both the local-build push and deploying an existing bundle (with a bundle ID) are backend-aware — they honor `--mrt-backend` (`auto` / `legacy` / `scapi`). For a local-build push under `auto`, a safe SCAPI upload failure falls back to legacy, but once the bundle is uploaded a later deploy failure is not retried on legacy (so a bundle is never uploaded twice). See the "MRT Backends" section in the skill overview.
39
50
 
40
51
  ```bash
41
52
  # Deploy existing bundle by ID
@@ -55,6 +66,10 @@ b2c mrt bundle deploy 12345 -p my-storefront -e production --mrt-backend scapi -
55
66
  | `--build-dir`, `-b` | Path to build directory | `build` |
56
67
  | `--ssr-only` | Server-only file patterns | `ssr.js,ssr.mjs,server/**/*` |
57
68
  | `--ssr-shared` | Shared file patterns | `static/**/*,client/**/*` |
69
+ | `--v2` | Use the v2 bundle format/endpoint (SCAPI always uses v2; opt in on legacy) | `false` |
70
+ | `--root-dir` | Archive path prefix for built files and the config file (v2 uploads only) | `bld` |
71
+ | `--config-path` | In-archive config file path, relative to `--root-dir` (v2 uploads only) | `.mrt/config.json` |
72
+ | `--match-mode` | Handling of SSR patterns matching no files — `strict` or `ignore_missing` (v2 uploads only) | `strict` |
58
73
  | `--node-version`, `-n` | Node.js version for SSR | `24.x` |
59
74
  | `--ssr-param` | SSR parameters (key=value, can repeat) | |
60
75
 
@@ -102,16 +117,19 @@ b2c mrt bundle upload-v2 -p my-storefront --dependencies @./deps.json --cc-overr
102
117
 
103
118
  ## Bundle List
104
119
 
105
- List bundles in a project.
120
+ List bundles in a project. Backend-aware (`--mrt-backend`); under `--json` it returns the serving backend's native response verbatim (legacy vs SCAPI shapes differ).
106
121
 
107
122
  ```bash
108
123
  b2c mrt bundle list --project my-storefront
109
124
  b2c mrt bundle list -p my-storefront --limit 10
110
125
  b2c mrt bundle list -p my-storefront --offset 20
111
126
  b2c mrt bundle list -p my-storefront --json
127
+
128
+ # Force the SCAPI backend
129
+ b2c mrt bundle list -p my-storefront --mrt-backend scapi
112
130
  ```
113
131
 
114
- **Output columns:** Bundle ID, Message, Status, Created
132
+ **Output columns:** Bundle ID, Message, Status, User, Created
115
133
 
116
134
  ## Bundle History
117
135
 
@@ -110,11 +110,16 @@ b2c mrt env b2c -p my-storefront -e production --clear-sites
110
110
 
111
111
  ## Environment Variables
112
112
 
113
+ The `mrt env var` commands (`list` / `set` / `push` / `delete`) are backend-aware: they honor `--mrt-backend` (`auto` / `legacy` / `scapi`) and, over SCAPI, use the Storefront Environments API (scopes `sfcc.storefront.environments` for reads, `sfcc.storefront.environments.rw` for writes). See the [MRT Backends](../SKILL.md#mrt-backends-legacy-vs-scapi) section for backend selection. Values are always masked by both backends. `set` and `delete` apply a merge-PATCH — only the keys you pass change (`delete` sends the key with a `null` value); other variables are preserved. Under `--json`, each command returns the serving backend's native shape.
114
+
113
115
  ### List Variables
114
116
 
115
117
  ```bash
116
118
  b2c mrt env var list --project my-storefront --environment production
117
119
  b2c mrt env var list -p my-storefront -e staging --json
120
+
121
+ # Force the SCAPI backend
122
+ b2c mrt env var list -p my-storefront -e staging --mrt-backend scapi
118
123
  ```
119
124
 
120
125
  ### Set Variables
@@ -130,6 +135,9 @@ b2c mrt env var set API_KEY=secret DEBUG=true FEATURE_FLAG=enabled \
130
135
  # Value with spaces (use quotes)
131
136
  b2c mrt env var set "MESSAGE=hello world" -p my-storefront -e production
132
137
 
138
+ # Force the SCAPI backend
139
+ b2c mrt env var set API_KEY=secret -p my-storefront -e staging --mrt-backend scapi
140
+
133
141
  # Using environment variables for auth
134
142
  export MRT_API_KEY=your-api-key
135
143
  export MRT_PROJECT=my-storefront
@@ -137,10 +145,25 @@ export MRT_ENVIRONMENT=staging
137
145
  b2c mrt env var set MY_VAR=value
138
146
  ```
139
147
 
148
+ ### Push Variables from a .env File
149
+
150
+ Diff a local `.env` file against the remote environment and apply the additions/updates (remote-only variables are not deleted). `push` resolves the backend once from its initial read and pins every write to it; over SCAPI the changes are applied as a single merge-PATCH.
151
+
152
+ ```bash
153
+ # Push ./.env, with confirmation prompt
154
+ b2c mrt env var push -p my-storefront -e production
155
+
156
+ # Push a custom file, skipping confirmation, over SCAPI
157
+ b2c mrt env var push -p my-storefront -e staging --file config/.env --yes --mrt-backend scapi
158
+ ```
159
+
140
160
  ### Delete Variable
141
161
 
142
162
  ```bash
143
163
  b2c mrt env var delete MY_VAR -p my-storefront -e production
164
+
165
+ # Force the SCAPI backend
166
+ b2c mrt env var delete MY_VAR -p my-storefront -e production --mrt-backend scapi
144
167
  ```
145
168
 
146
169
  ## URL Redirects
@@ -37,11 +37,28 @@ The `--root` flag specifies the WebDAV directory:
37
37
  - `catalogs` - Product catalogs
38
38
  - `libraries` - Content libraries
39
39
  - `static` - Static resources
40
+ - `dynamic` - Site-specific files, including Velocity templates
40
41
  - `logs` - Application logs
41
42
  - `securitylogs` - Security logs
42
43
 
43
44
  ## Examples
44
45
 
46
+ ### Dynamic Site Files
47
+
48
+ Use `--root=dynamic` with the site ID as the first remote path segment. For example,
49
+ `MySite/mockData/mock.vm` resolves to `Sites/Dynamic/MySite/mockData/mock.vm`.
50
+ This location holds site-specific files independently of code versions, including
51
+ Velocity templates used by `dw.template.Velocity.renderTemplate()`.
52
+
53
+ ```bash
54
+ b2c webdav ls --root=dynamic MySite/
55
+ b2c webdav mkdir --root=dynamic MySite/mockData
56
+ b2c webdav put --root=dynamic ./mock.vm MySite/mockData/
57
+ b2c webdav get --root=dynamic MySite/mockData/mock.vm -o ./mock.vm
58
+ ```
59
+
60
+ The same root and site-prefixed paths work with `rm`, `zip`, and `unzip`.
61
+
45
62
  ### List Files
46
63
 
47
64
  ```bash
@@ -129,11 +129,11 @@
129
129
  "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
130
  "entrypoint": "SKILL.md",
131
131
  "source": "skills/b2c-cli/skills/b2c-config/SKILL.md",
132
- "headings": "B2C Config Skill | How the CLI Discovers Configuration | 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 | 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",
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 | 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
133
  "files": [
134
134
  {
135
135
  "path": "SKILL.md",
136
- "bytes": 22816
136
+ "bytes": 24384
137
137
  }
138
138
  ]
139
139
  },
@@ -178,7 +178,7 @@
178
178
  "files": [
179
179
  {
180
180
  "path": "SKILL.md",
181
- "bytes": 17299
181
+ "bytes": 17746
182
182
  }
183
183
  ]
184
184
  },
@@ -193,15 +193,15 @@
193
193
  "files": [
194
194
  {
195
195
  "path": "references/ADVANCED.md",
196
- "bytes": 2420
196
+ "bytes": 3709
197
197
  },
198
198
  {
199
199
  "path": "references/SECURITY.md",
200
- "bytes": 2082
200
+ "bytes": 2213
201
201
  },
202
202
  {
203
203
  "path": "SKILL.md",
204
- "bytes": 4881
204
+ "bytes": 4863
205
205
  }
206
206
  ]
207
207
  },
@@ -231,11 +231,11 @@
231
231
  "files": [
232
232
  {
233
233
  "path": "references/EXPORT.md",
234
- "bytes": 5933
234
+ "bytes": 6540
235
235
  },
236
236
  {
237
237
  "path": "references/IMPORT.md",
238
- "bytes": 2106
238
+ "bytes": 2904
239
239
  },
240
240
  {
241
241
  "path": "references/RUN-AND-MONITOR.md",
@@ -243,7 +243,7 @@
243
243
  },
244
244
  {
245
245
  "path": "SKILL.md",
246
- "bytes": 2740
246
+ "bytes": 2861
247
247
  }
248
248
  ]
249
249
  },
@@ -284,15 +284,15 @@
284
284
  "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
285
  "entrypoint": "SKILL.md",
286
286
  "source": "skills/b2c-cli/skills/b2c-mrt/SKILL.md",
287
- "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 | 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",
287
+ "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
288
  "files": [
289
289
  {
290
290
  "path": "references/BUNDLE-COMMANDS.md",
291
- "bytes": 7241
291
+ "bytes": 9061
292
292
  },
293
293
  {
294
294
  "path": "references/ENVIRONMENT-COMMANDS.md",
295
- "bytes": 5493
295
+ "bytes": 7026
296
296
  },
297
297
  {
298
298
  "path": "references/PROJECT-COMMANDS.md",
@@ -300,7 +300,7 @@
300
300
  },
301
301
  {
302
302
  "path": "SKILL.md",
303
- "bytes": 7994
303
+ "bytes": 8753
304
304
  }
305
305
  ]
306
306
  },
@@ -417,11 +417,11 @@
417
417
  "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
418
  "entrypoint": "SKILL.md",
419
419
  "source": "skills/b2c-cli/skills/b2c-webdav/SKILL.md",
420
- "headings": "B2C WebDAV Skill | MCP equivalent | Configuration & Authentication | WebDAV Roots | Examples | List Files | Download Files | Upload Files | Create Directories | Delete Files | Delete Cartridges | Zip/Unzip Remote Files | Import-Set Managed State | More Commands | Related Skills",
420
+ "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
421
  "files": [
422
422
  {
423
423
  "path": "SKILL.md",
424
- "bytes": 6088
424
+ "bytes": 6788
425
425
  }
426
426
  ]
427
427
  },
@@ -1313,7 +1313,7 @@
1313
1313
  "title": "b2c-config",
1314
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.",
1315
1315
  "entrypoint": "SKILL.md",
1316
- "source": "guidance/mcp/b2c-config/SKILL.md",
1316
+ "source": "packages/b2c-dx-mcp/skills/b2c-config/SKILL.md",
1317
1317
  "headings": "MCP Configuration | Inspect resolved values | Where configuration comes from | Setup and access | CLI, when requested | Further reading",
1318
1318
  "files": [
1319
1319
  {
@@ -1329,7 +1329,7 @@
1329
1329
  "title": "MCP CIP Analytics",
1330
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
1331
  "entrypoint": "SKILL.md",
1332
- "source": "guidance/mcp/cip/SKILL.md",
1332
+ "source": "packages/b2c-dx-mcp/skills/cip/SKILL.md",
1333
1333
  "headings": "CIP analytics | Choose and discover | Configuration and access | Query and interpret",
1334
1334
  "files": [
1335
1335
  {
@@ -1345,7 +1345,7 @@
1345
1345
  "title": "MCP Debugger Usage",
1346
1346
  "description": "Bounded debugger capture, request triggering, state inspection, and reliable session cleanup.",
1347
1347
  "entrypoint": "SKILL.md",
1348
- "source": "guidance/mcp/debugger/SKILL.md",
1348
+ "source": "packages/b2c-dx-mcp/skills/debugger/SKILL.md",
1349
1349
  "headings": "MCP Debugger Usage | Prerequisites | Capture and cleanup | Stepping | Recovery | CLI or IDE, when requested",
1350
1350
  "files": [
1351
1351
  {
@@ -1361,8 +1361,8 @@
1361
1361
  "title": "MCP SCAPI Code Mode",
1362
1362
  "description": "Discover standard and live custom SCAPI contracts, compose Admin requests, and verify changes using configured authentication and safety rules.",
1363
1363
  "entrypoint": "SKILL.md",
1364
- "source": "guidance/mcp/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 | Reusable workflows",
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",
1366
1366
  "files": [
1367
1367
  {
1368
1368
  "path": "references/custom-apis.md",
@@ -1398,7 +1398,7 @@
1398
1398
  },
1399
1399
  {
1400
1400
  "path": "SKILL.md",
1401
- "bytes": 9669
1401
+ "bytes": 12530
1402
1402
  }
1403
1403
  ],
1404
1404
  "featured": true
@@ -1409,7 +1409,7 @@
1409
1409
  "title": "server",
1410
1410
  "description": "B2C MCP setup, toolset customization, available capabilities, tool choice, and skill discovery.",
1411
1411
  "entrypoint": "SKILL.md",
1412
- "source": "guidance/mcp/server/SKILL.md",
1412
+ "source": "packages/b2c-dx-mcp/skills/server/SKILL.md",
1413
1413
  "headings": "Instance files and cartridge uploads | B2C MCP Server | Server configuration and tool availability | Tool choice and project configuration | Skills | Setup references",
1414
1414
  "files": [
1415
1415
  {