@salesforce/afv-skills 1.29.0 → 1.31.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 (234) hide show
  1. package/README.md +2 -0
  2. package/package.json +1 -1
  3. package/skills/agentforce-architecture-analyze/README.md +2 -8
  4. package/skills/agentforce-architecture-analyze/SKILL.md +2 -2
  5. package/skills/agentforce-architecture-analyze/references/contract.json +4 -4
  6. package/skills/agentforce-architecture-analyze/references/soql_fields.md +1 -1
  7. package/skills/data360-activate/README.md +0 -1
  8. package/skills/data360-activate/SKILL.md +0 -2
  9. package/skills/data360-code-extension-generate/SKILL.md +15 -2
  10. package/skills/data360-connect/README.md +0 -2
  11. package/skills/data360-connect/SKILL.md +0 -2
  12. package/skills/data360-harmonize/SKILL.md +0 -1
  13. package/skills/data360-orchestrate/README.md +0 -7
  14. package/skills/data360-orchestrate/SKILL.md +0 -2
  15. package/skills/data360-prepare/README.md +0 -1
  16. package/skills/data360-prepare/SKILL.md +0 -1
  17. package/skills/data360-query/README.md +0 -1
  18. package/skills/data360-query/SKILL.md +0 -1
  19. package/skills/data360-segment/README.md +0 -1
  20. package/skills/data360-segment/SKILL.md +0 -2
  21. package/skills/dx-pkg-post-install-configure/SKILL.md +184 -0
  22. package/skills/experience-cms-brand-apply/SKILL.md +47 -16
  23. package/skills/experience-lwc-generate/README.md +3 -2
  24. package/skills/experience-lwc-generate/references/async-notification-patterns.md +1 -1
  25. package/skills/experience-lwc-generate/references/component-patterns.md +3 -3
  26. package/skills/experience-lwc-generate/references/flow-integration-guide.md +1 -1
  27. package/skills/experience-lwc-generate/references/lwc-best-practices.md +4 -4
  28. package/skills/experience-lwc-generate/references/scoring-and-testing.md +1 -1
  29. package/skills/experience-lwc-generate/references/state-management.md +2 -2
  30. package/skills/experience-lwc-generate/references/triangle-pattern.md +3 -3
  31. package/skills/experience-lwc-generate/scripts/post-tool-validate.py +2 -2
  32. package/skills/experience-lwc-generate/scripts/template_validator.py +1 -1
  33. package/skills/experience-ui-bundle-app-coordinate/SKILL.md +198 -34
  34. package/skills/experience-ui-bundle-app-coordinate/scripts/check-hosting-target.sh +26 -0
  35. package/skills/experience-ui-bundle-app-coordinate/scripts/check-sfdx-project.sh +15 -0
  36. package/skills/experience-ui-bundle-metadata-generate/SKILL.md +19 -8
  37. package/skills/experience-ui-bundle-metadata-generate/references/csp-metadata-format.md +2 -2
  38. package/skills/experience-ui-bundle-metadata-generate/scripts/check-api-version.sh +30 -0
  39. package/skills/external-diagram-mermaid-generate/README.md +2 -2
  40. package/skills/external-diagram-mermaid-generate/SKILL.md +1 -3
  41. package/skills/external-diagram-mermaid-generate/assets/agentforce/agent-flow.md +4 -4
  42. package/skills/external-diagram-mermaid-generate/assets/architecture/system-landscape.md +1 -1
  43. package/skills/external-diagram-mermaid-generate/assets/datamodel/b2b-commerce-erd.md +3 -3
  44. package/skills/external-diagram-mermaid-generate/assets/datamodel/campaigns-erd.md +1 -1
  45. package/skills/external-diagram-mermaid-generate/assets/datamodel/consent-erd.md +2 -2
  46. package/skills/external-diagram-mermaid-generate/assets/datamodel/files-erd.md +2 -2
  47. package/skills/external-diagram-mermaid-generate/assets/datamodel/forecasting-erd.md +2 -2
  48. package/skills/external-diagram-mermaid-generate/assets/datamodel/fsl-erd.md +2 -2
  49. package/skills/external-diagram-mermaid-generate/assets/datamodel/party-model-erd.md +1 -1
  50. package/skills/external-diagram-mermaid-generate/assets/datamodel/quote-order-erd.md +3 -3
  51. package/skills/external-diagram-mermaid-generate/assets/datamodel/revenue-cloud-erd.md +2 -2
  52. package/skills/external-diagram-mermaid-generate/assets/datamodel/sales-cloud-erd.md +1 -1
  53. package/skills/external-diagram-mermaid-generate/assets/datamodel/salesforce-erd.md +1 -1
  54. package/skills/external-diagram-mermaid-generate/assets/datamodel/scheduler-erd.md +2 -2
  55. package/skills/external-diagram-mermaid-generate/assets/datamodel/service-cloud-erd.md +3 -3
  56. package/skills/external-diagram-mermaid-generate/assets/datamodel/territory-management-erd.md +1 -1
  57. package/skills/external-diagram-mermaid-generate/assets/integration/api-sequence.md +1 -1
  58. package/skills/external-diagram-mermaid-generate/assets/oauth/authorization-code-pkce.md +1 -1
  59. package/skills/external-diagram-mermaid-generate/assets/oauth/authorization-code.md +1 -1
  60. package/skills/external-diagram-mermaid-generate/assets/oauth/client-credentials.md +1 -1
  61. package/skills/external-diagram-mermaid-generate/assets/oauth/device-authorization.md +2 -2
  62. package/skills/external-diagram-mermaid-generate/assets/oauth/jwt-bearer.md +2 -2
  63. package/skills/external-diagram-mermaid-generate/assets/oauth/refresh-token.md +1 -1
  64. package/skills/external-diagram-mermaid-generate/assets/oauth/user-agent-social-sign-on.md +2 -2
  65. package/skills/external-diagram-mermaid-generate/assets/role-hierarchy/user-hierarchy.md +1 -1
  66. package/skills/external-diagram-mermaid-generate/references/color-palette.md +13 -13
  67. package/skills/external-diagram-mermaid-generate/references/diagram-conventions.md +5 -5
  68. package/skills/external-diagram-mermaid-generate/references/erd-conventions.md +1 -1
  69. package/skills/external-diagram-mermaid-generate/references/mermaid-styling.md +2 -2
  70. package/skills/external-diagram-mermaid-generate/references/preview-guide.md +1 -1
  71. package/skills/external-diagram-mermaid-generate/references/usage-examples.md +9 -9
  72. package/skills/external-diagram-mermaid-generate/scripts/README.md +1 -1
  73. package/skills/integration-connectivity-connected-app-configure/README.md +4 -5
  74. package/skills/integration-connectivity-connected-app-configure/SKILL.md +2 -2
  75. package/skills/integration-connectivity-connected-app-configure/references/example-usage.md +7 -7
  76. package/skills/integration-connectivity-connected-app-configure/references/migration-guide.md +1 -1
  77. package/skills/integration-connectivity-connected-app-configure/references/oauth-flows-reference.md +1 -1
  78. package/skills/integration-connectivity-connected-app-configure/references/testing-validation-guide.md +3 -3
  79. package/skills/integration-connectivity-generate/README.md +1 -1
  80. package/skills/integration-connectivity-generate/SKILL.md +6 -0
  81. package/skills/integration-connectivity-generate/assets/callouts/rest-queueable-callout.cls +1 -1
  82. package/skills/integration-connectivity-generate/assets/external-services/external-service-operations.md +1 -1
  83. package/skills/integration-connectivity-generate/assets/soap/wsdl2apex-guide.md +1 -1
  84. package/skills/integration-connectivity-generate/references/callout-patterns.md +4 -0
  85. package/skills/integration-connectivity-generate/references/cdc-guide.md +2 -2
  86. package/skills/integration-connectivity-generate/references/event-driven-architecture-guide.md +5 -5
  87. package/skills/integration-connectivity-generate/references/event-patterns.md +3 -2
  88. package/skills/integration-connectivity-generate/references/external-services-guide.md +4 -1
  89. package/skills/integration-connectivity-generate/references/messaging-api-v2.md +2 -2
  90. package/skills/integration-connectivity-generate/references/named-credentials-automation.md +1 -1
  91. package/skills/integration-connectivity-generate/references/named-credentials-guide.md +12 -2
  92. package/skills/integration-connectivity-generate/references/platform-events-guide.md +3 -3
  93. package/skills/integration-connectivity-generate/references/rest-callout-patterns.md +1 -1
  94. package/skills/integration-connectivity-generate/references/scoring-rubric.md +1 -1
  95. package/skills/integration-connectivity-generate/references/security-best-practices.md +5 -2
  96. package/skills/integration-connectivity-generate/scripts/configure-named-credential.sh +16 -5
  97. package/skills/integration-connectivity-generate/scripts/set-api-credential.sh +11 -2
  98. package/skills/integration-connectivity-generate/scripts/suggest_credential_setup.py +4 -3
  99. package/skills/integration-connectivity-generate/scripts/validate_integration.py +1 -1
  100. package/skills/omnistudio-callable-apex-generate/README.md +1 -5
  101. package/skills/omnistudio-callable-apex-generate/SKILL.md +14 -4
  102. package/skills/omnistudio-callable-apex-generate/assets/pattern_callable_vanilla.cls +8 -1
  103. package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterface2Conversion/TRANSCRIPT.md +1 -1
  104. package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterfaceConversion/TRANSCRIPT.md +1 -1
  105. package/skills/omnistudio-datamapper-generate/SKILL.md +1 -1
  106. package/skills/omnistudio-datamapper-generate/assets/completion-summary-template.md +2 -2
  107. package/skills/omnistudio-datamapper-generate/references/best-practices.md +9 -9
  108. package/skills/omnistudio-datamapper-generate/references/naming-conventions.md +6 -6
  109. package/skills/omnistudio-datapacks-deploy/README.md +1 -1
  110. package/skills/omnistudio-datapacks-deploy/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +1 -1
  111. package/skills/omnistudio-dependencies-analyze/SKILL.md +12 -5
  112. package/skills/omnistudio-dependencies-analyze/references/dependency-patterns.md +9 -9
  113. package/skills/omnistudio-dependencies-analyze/references/namespace-guide.md +1 -1
  114. package/skills/omnistudio-epc-catalog-generate/README.md +1 -1
  115. package/skills/omnistudio-flexcard-generate/SKILL.md +11 -4
  116. package/skills/omnistudio-flexcard-generate/references/best-practices.md +6 -6
  117. package/skills/omnistudio-flexcard-generate/references/data-binding-guide.md +9 -9
  118. package/skills/omnistudio-integration-procedure-generate/SKILL.md +9 -1
  119. package/skills/omnistudio-integration-procedure-generate/references/element-types.md +3 -3
  120. package/skills/omnistudio-omniscript-generate/SKILL.md +2 -2
  121. package/skills/omnistudio-omniscript-generate/references/best-practices.md +1 -1
  122. package/skills/omnistudio-omniscript-generate/scripts/check-duplicate-omniscript.sh +8 -0
  123. package/skills/omnistudio-omniscript-generate/scripts/deploy-omniscript.sh +8 -0
  124. package/skills/platform-apex-logs-debug/README.md +2 -2
  125. package/skills/platform-apex-logs-debug/references/cli-commands.md +2 -2
  126. package/skills/platform-apex-logs-debug/references/debug-log-reference.md +16 -16
  127. package/skills/platform-apex-logs-debug/references/log-analysis-tools.md +2 -2
  128. package/skills/platform-apex-test-run/README.md +1 -1
  129. package/skills/platform-apex-test-run/references/test-fix-loop.md +2 -2
  130. package/skills/platform-apex-test-run/references/testing-best-practices.md +3 -3
  131. package/skills/platform-custom-field-generate/SKILL.md +12 -11
  132. package/skills/platform-custom-field-generate/references/advanced-picklists.md +17 -17
  133. package/skills/platform-custom-report-type-generate/SKILL.md +259 -0
  134. package/skills/platform-custom-report-type-generate/examples/AccountProjectsWithTasks.reportType-meta.xml +51 -0
  135. package/skills/platform-custom-report-type-generate/examples/AccountsWithIndustry.reportType-meta.xml +27 -0
  136. package/skills/platform-custom-report-type-generate/examples/AccountsWithProjects.reportType-meta.xml +44 -0
  137. package/skills/platform-custom-report-type-generate/references/category-values.md +32 -0
  138. package/skills/platform-custom-report-type-generate/references/errors-and-troubleshooting.md +24 -0
  139. package/skills/platform-data-manage/README.md +4 -4
  140. package/skills/platform-data-manage/references/bulk-testing-example.md +1 -1
  141. package/skills/platform-data-manage/references/crud-workflow-example.md +2 -2
  142. package/skills/platform-data-manage/references/orchestration.md +6 -6
  143. package/skills/platform-dataspace-access-configure/SKILL.md +318 -0
  144. package/skills/platform-docs-get/SKILL.md +4 -0
  145. package/skills/platform-docs-get/scripts/extract_salesforce_doc.py +78 -13
  146. package/skills/platform-encryption-configure/SKILL.md +122 -0
  147. package/skills/platform-encryption-configure/assets/EncryptionKey.settings-meta.xml +17 -0
  148. package/skills/platform-encryption-configure/assets/PlatformEncryption.settings-meta.xml +15 -0
  149. package/skills/platform-encryption-configure/assets/encrypted-field.field-meta.xml +22 -0
  150. package/skills/platform-encryption-configure/examples/cache-only-keys.settings-meta.xml +11 -0
  151. package/skills/platform-encryption-configure/references/encryption-schemes.md +34 -0
  152. package/skills/platform-encryption-configure/references/key-models.md +34 -0
  153. package/skills/platform-encryption-configure/references/tenant-secret-lifecycle.md +23 -0
  154. package/skills/platform-encryption-configure/scripts/validate-encryption-metadata.sh +54 -0
  155. package/skills/platform-flexipage-generate/SKILL.md +281 -346
  156. package/skills/platform-flexipage-generate/references/cli_commands.md +39 -0
  157. package/skills/platform-flexipage-generate/references/flexipage_fieldSection.md +162 -0
  158. package/skills/platform-flexipage-generate/references/flexipage_richText.md +84 -0
  159. package/skills/platform-flexipage-generate/references/identifiers_and_regions.md +167 -0
  160. package/skills/platform-flexipage-generate/references/mcp_action_examples.md +104 -0
  161. package/skills/platform-flexipage-generate/references/record_flexipage_dynamicHighlights.md +119 -0
  162. package/skills/platform-flexipage-generate/references/xml_rules.md +335 -0
  163. package/skills/platform-flexipage-generate/scripts/resolve-component-instructions.sh +42 -0
  164. package/skills/platform-flexipage-generate/scripts/scan-lwc-components.sh +113 -0
  165. package/skills/platform-metadata-api-context-get/SKILL.md +13 -10
  166. package/skills/platform-metadata-deploy/README.md +2 -2
  167. package/skills/platform-metadata-deploy/references/agent-deployment-guide.md +2 -2
  168. package/skills/platform-metadata-deploy/references/deployment-workflows.md +16 -16
  169. package/skills/platform-metadata-deploy/references/orchestration.md +3 -3
  170. package/skills/platform-metadata-deploy/references/trigger-deployment-safety.md +2 -2
  171. package/skills/platform-models-api-configure/SKILL.md +140 -0
  172. package/skills/platform-models-api-configure/scripts/get-orgjwt.sh +48 -0
  173. package/skills/platform-policy-rule-generate/SKILL.md +260 -0
  174. package/skills/platform-policy-rule-generate/references/deploy-errors.md +54 -0
  175. package/skills/platform-policy-rule-generate/references/fixtures-index.md +29 -0
  176. package/skills/platform-policy-rule-generate/references/policy-schema-full.md +250 -0
  177. package/skills/platform-policy-rule-generate/references/templates-access.md +132 -0
  178. package/skills/platform-policy-rule-generate/references/templates-advanced.md +58 -0
  179. package/skills/platform-policy-rule-generate/references/templates-record.md +75 -0
  180. package/skills/platform-policy-rule-generate/references/templates-transform.md +70 -0
  181. package/skills/platform-policy-rule-generate/references/templates.md +10 -0
  182. package/skills/platform-policy-rule-generate/references/ui-compatibility.md +142 -0
  183. package/skills/platform-soql-query/README.md +1 -1
  184. package/skills/platform-soql-query/SKILL.md +1 -1
  185. package/skills/platform-soql-query/references/anti-patterns.md +1 -1
  186. package/skills/platform-soql-query/references/field-coverage-rules.md +1 -1
  187. package/skills/platform-soql-query/references/query-optimization.md +1 -1
  188. package/skills/platform-soql-query/scripts/post-tool-validate.py +3 -3
  189. package/skills/data360-activate/CREDITS.md +0 -5
  190. package/skills/data360-connect/CREDITS.md +0 -5
  191. package/skills/data360-harmonize/CREDITS.md +0 -3
  192. package/skills/data360-orchestrate/CREDITS.md +0 -15
  193. package/skills/data360-orchestrate/UPSTREAM.md +0 -45
  194. package/skills/data360-prepare/CREDITS.md +0 -7
  195. package/skills/data360-query/CREDITS.md +0 -7
  196. package/skills/data360-segment/CREDITS.md +0 -3
  197. package/skills/experience-lwc-generate/CREDITS.md +0 -5
  198. package/skills/external-diagram-mermaid-generate/CREDITS.md +0 -46
  199. package/skills/external-diagram-visual-generate/CREDITS.md +0 -80
  200. package/skills/external-diagram-visual-generate/README.md +0 -83
  201. package/skills/external-diagram-visual-generate/SKILL.md +0 -207
  202. package/skills/external-diagram-visual-generate/assets/architecture/integration-flow.md +0 -55
  203. package/skills/external-diagram-visual-generate/assets/erd/core-objects.md +0 -131
  204. package/skills/external-diagram-visual-generate/assets/erd/custom-objects.md +0 -60
  205. package/skills/external-diagram-visual-generate/assets/lwc/dashboard-card.md +0 -45
  206. package/skills/external-diagram-visual-generate/assets/lwc/data-table.md +0 -57
  207. package/skills/external-diagram-visual-generate/assets/lwc/record-form.md +0 -60
  208. package/skills/external-diagram-visual-generate/assets/review/apex-review.md +0 -57
  209. package/skills/external-diagram-visual-generate/assets/review/lwc-review.md +0 -48
  210. package/skills/external-diagram-visual-generate/references/architect-aesthetic-guide.md +0 -257
  211. package/skills/external-diagram-visual-generate/references/examples-index.md +0 -35
  212. package/skills/external-diagram-visual-generate/references/gemini-cli-setup.md +0 -65
  213. package/skills/external-diagram-visual-generate/references/interview-questions.md +0 -529
  214. package/skills/external-diagram-visual-generate/references/iteration-workflow.md +0 -173
  215. package/skills/external-diagram-visual-generate/scripts/check-prerequisites.sh +0 -101
  216. package/skills/external-diagram-visual-generate/scripts/generate_image.py +0 -243
  217. package/skills/integration-connectivity-connected-app-configure/CREDITS.md +0 -3
  218. package/skills/integration-connectivity-generate/CREDITS.md +0 -5
  219. package/skills/omnistudio-callable-apex-generate/CREDITS.md +0 -9
  220. package/skills/omnistudio-datamapper-generate/CREDITS.md +0 -5
  221. package/skills/omnistudio-datapacks-deploy/CREDITS.md +0 -5
  222. package/skills/omnistudio-dependencies-analyze/CREDITS.md +0 -5
  223. package/skills/omnistudio-epc-catalog-generate/CREDITS.md +0 -14
  224. package/skills/omnistudio-flexcard-generate/CREDITS.md +0 -5
  225. package/skills/omnistudio-integration-procedure-generate/CREDITS.md +0 -5
  226. package/skills/omnistudio-omniscript-generate/CREDITS.md +0 -5
  227. package/skills/platform-apex-generate/CREDITS.md +0 -5
  228. package/skills/platform-apex-logs-debug/CREDITS.md +0 -22
  229. package/skills/platform-apex-test-generate/CREDITS.md +0 -5
  230. package/skills/platform-apex-test-run/CREDITS.md +0 -22
  231. package/skills/platform-data-manage/CREDITS.md +0 -5
  232. package/skills/platform-metadata-deploy/CREDITS.md +0 -25
  233. package/skills/platform-soql-query/CREDITS.md +0 -21
  234. /package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterfaceConversion/{MyCustomVlocityOpenInterface2.cls → MyCustomClass.cls} +0 -0
package/README.md CHANGED
@@ -4,6 +4,8 @@ This repository provides a curated collection of Salesforce agent skills for bui
4
4
 
5
5
  The skills are contributed by Salesforce and the broader community. It’s optimized for Agentforce Vibes and can be used with any AI tool that supports skills.
6
6
 
7
+ > ⚠️ **Expect frequent changes.** The Salesforce skills library is evolving rapidly as we refine patterns and incorporate feedback. Skills may be renamed, restructured, or removed between releases — they do not follow the same stability guarantees as GA platform APIs. If you’ve forked or synced the repository, be prepared for upstream changes that may conflict with local modifications. This repository is always the source of truth.
8
+
7
9
  ## 🗂️ Structure
8
10
 
9
11
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/afv-skills",
3
- "version": "1.29.0",
3
+ "version": "1.31.0",
4
4
  "description": "Salesforce skills for Agentforce Vibes",
5
5
  "license": "CC-BY-NC-4.0",
6
6
  "files": [
@@ -44,7 +44,7 @@ See `SKILL.md` for the full flag table and sample prompts.
44
44
 
45
45
  ## Directory layout
46
46
 
47
- ```
47
+ ```text
48
48
  agentforce-architecture-analyze/
49
49
  ├── SKILL.md Skill contract (inputs, outputs, pipeline, invariants)
50
50
  ├── README.md This file
@@ -86,7 +86,7 @@ agentforce-architecture-analyze/
86
86
 
87
87
  ### Channel strategy — SOQL-first
88
88
 
89
- ```
89
+ ```text
90
90
  Seed query: planner_definition_by_agent_chain (chain-LIKE lookup → planner id)
91
91
 
92
92
  6 parallel Tooling SOQL channels (keyed on the resolved planner id):
@@ -147,9 +147,3 @@ Per-branch ancestor-path cycle detection is the primary termination primitive: t
147
147
  | `INVALID_FIELD` from a SOQL asset | Salesforce renamed / removed the field in a quarterly release. Run with `--reprobe` to refresh the 7-day channel cache and pick up the new schema |
148
148
  | `STATUS=PROBE_FAILED` on first run | Channel probe saw a mandatory field missing. Check `channels.json` under the probe cache dir for which sObject / field — may require org-side feature enablement |
149
149
  | Tree for classic ReAct agent shows `_unresolved` entries for NGA plugins | Expected — the NGA external-plugin retrieve is skipped when the planner shape is classic. Those entries can be ignored |
150
-
151
- ---
152
-
153
- ## Author
154
-
155
- Raghul Jayagopal (RJ), Salesforce ANZ FDE.
@@ -157,14 +157,14 @@ exit "$_rc"
157
157
 
158
158
  All artifacts under `~/.vibe/data/agentforce-architecture-analyze/<org_id15>/<agent_api_name>__<agent_version>/` (default; override with `--data-dir <path>`):
159
159
 
160
- ```
160
+ ```xml
161
161
  <agent>_<ver>_metadata_tree.json primary artifact — normalized planner/topic/action/flow/apex/prompt/plugin tree
162
162
  <agent>_<ver>_architecture.md human-readable section-by-section rendering (H1 + 7 numbered sections, plus a conditional Dependency graph appendix). Mermaid diagrams are embedded inside the relevant sections (Action tree, Data flow, and Dependency graph)
163
163
  ```
164
164
 
165
165
  ## Pipeline — inline, no subagent
166
166
 
167
- ```
167
+ ```text
168
168
  resolve_bot.py → BotDefinition + BotVersion + planner name lookup
169
169
  retrieve_planner.py → Metadata API zip retrieve for GenAiPlannerBundle (+ NGA plugins if present)
170
170
  parallel_retrieve.py → 6 parallel Tooling SOQL channels fan out from the planner id
@@ -1,5 +1,5 @@
1
1
  {
2
- "_doc": "retired-name references replaced with plugin-scoped layout. Machine-readable I/O contract for investigating-agentforce-architecture. Orchestrator code reads this file (not SKILL.md prose) to discover the input schema, output keys, STATUS enum, and error-contract rules. The architecture skill runs inline (no subagent).",
2
+ "_doc": "retired-name references replaced with plugin-scoped layout. Machine-readable I/O contract for agentforce-architecture-analyze. Orchestrator code reads this file (not SKILL.md prose) to discover the input schema, output keys, STATUS enum, and error-contract rules. The architecture skill runs inline (no subagent).",
3
3
  "_schema_version": "3.1",
4
4
  "_schema_notes": "3.1 (2026-05-05) canonicalizes `invocation_type` on STANDARD_ACTION / UNKNOWN nodes in the metadata tree. Prior versions split this across `raw_invocation_type` (bundle-sourced nodes) and `raw_action_type` (flow-actionCall-sourced nodes). Both legacy keys are still tolerated by readers for one release.",
5
5
  "input": {
@@ -35,15 +35,15 @@
35
35
  },
36
36
  "work_dir": {
37
37
  "type": "absolute_path",
38
- "description": "Ephemeral scratch. Default: /tmp/investigating-agentforce-architecture-<epoch>-<rand>."
38
+ "description": "Ephemeral scratch. Default: /tmp/agentforce-architecture-analyze-<epoch>-<rand>."
39
39
  },
40
40
  "cache_root": {
41
41
  "type": "absolute_path",
42
- "description": "Internal rebuildable cache root. Default: ~/.vibe/cache/investigating-agentforce-architecture. Override with --cache-dir <path>."
42
+ "description": "Internal rebuildable cache root. Default: ~/.vibe/cache/agentforce-architecture-analyze. Override with --cache-dir <path>."
43
43
  },
44
44
  "data_root": {
45
45
  "type": "absolute_path",
46
- "description": "Durable user-facing output root. Default: ~/.vibe/data/investigating-agentforce-architecture. Override with --data-dir <path>."
46
+ "description": "Durable user-facing output root. Default: ~/.vibe/data/agentforce-architecture-analyze. Override with --data-dir <path>."
47
47
  },
48
48
  "force_refresh": {
49
49
  "type": "boolean",
@@ -64,7 +64,7 @@ Every edge is strictly **forward** from the entry query
64
64
  (`GenAiPlannerDefinition WHERE DeveloperName = :planner_name`). No
65
65
  backward lookups.
66
66
 
67
- ```
67
+ ```text
68
68
  BotDefinition (Data API, PK Id, matched by DeveloperName)
69
69
  └── BotVersion (Data API, FK BotDefinitionId)
70
70
  │ [resolved to planner name via Bot metadata retrieve]
@@ -36,4 +36,3 @@ sf data360 data-action-target list -o myorg 2>/dev/null
36
36
  - [../data360-orchestrate/assets/definitions/data-action-target.template.json](../data360-orchestrate/assets/definitions/data-action-target.template.json)
37
37
  - [../data360-orchestrate/assets/definitions/data-action.template.json](../data360-orchestrate/assets/definitions/data-action.template.json)
38
38
  - [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
39
- - [CREDITS.md](CREDITS.md)
@@ -107,11 +107,9 @@ Next step: <destination validation or downstream testing>
107
107
 
108
108
  ## References
109
109
 
110
- - [README.md](README.md)
111
110
  - [../data360-orchestrate/assets/definitions/activation-target.template.json](../data360-orchestrate/assets/definitions/activation-target.template.json)
112
111
  - [../data360-orchestrate/assets/definitions/activation.template.json](../data360-orchestrate/assets/definitions/activation.template.json)
113
112
  - [../data360-orchestrate/assets/definitions/data-action-target.template.json](../data360-orchestrate/assets/definitions/data-action-target.template.json)
114
113
  - [../data360-orchestrate/assets/definitions/data-action.template.json](../data360-orchestrate/assets/definitions/data-action.template.json)
115
- - [../data360-orchestrate/UPSTREAM.md](../data360-orchestrate/UPSTREAM.md)
116
114
  - [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
117
115
  - [../data360-orchestrate/references/feature-readiness.md](../data360-orchestrate/references/feature-readiness.md)
@@ -3,6 +3,19 @@ name: data360-code-extension-generate
3
3
  description: "Develop and deploy Data Cloud Code Extensions using SF CLI plugin. Use this skill when creating custom Python transformations for Data Cloud, deploying code extensions, or testing data transformations. Supports init, run, scan, and deploy operations."
4
4
  metadata:
5
5
  version: "1.0"
6
+ relatedSkills:
7
+ - "data360-schema-get"
8
+ cliTools:
9
+ - tool: ["sf"]
10
+ semver: ">=2.0.0"
11
+ - tool: ["pip"]
12
+ semver: ">=21.0.0"
13
+ - tool: ["python3"]
14
+ semver: ">=3.11.0"
15
+ - tool: ["docker"]
16
+ semver: ">=20.0.0"
17
+ - tool: ["git"]
18
+ semver: ">=2.0.0"
6
19
  ---
7
20
 
8
21
  # data360-code-extension-generate Skill
@@ -30,7 +43,7 @@ Before executing any code extension commands, verify prerequisites:
30
43
  ```
31
44
  If not installed:
32
45
  ```bash
33
- sf plugins install @salesforce/plugin-data-codeextension
46
+ sf plugins install @salesforce/plugin-data-code-extension
34
47
  ```
35
48
 
36
49
  2. **Python 3.11**
@@ -254,7 +267,7 @@ sf data-code-extension script deploy --target-org <org_alias> --name <name> --pa
254
267
 
255
268
  | Error | Solution |
256
269
  |-------|----------|
257
- | `command data-code-extension not found` | `sf plugins install @salesforce/plugin-data-codeextension` |
270
+ | `command data-code-extension not found` | `sf plugins install @salesforce/plugin-data-code-extension` |
258
271
  | `datacustomcode CLI not found` | `pip install salesforce-data-customcode` |
259
272
  | `Python version mismatch` | Use pyenv: `pyenv install 3.11.0 && pyenv local 3.11.0` |
260
273
  | `Cannot connect to Docker daemon` | Start Docker Desktop |
@@ -55,5 +55,3 @@ sf data360 connection schema-upsert -o myorg --name <connector-id> -f examples/c
55
55
 
56
56
  - [SKILL.md](SKILL.md)
57
57
  - [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
58
- - [../data360-orchestrate/UPSTREAM.md](../data360-orchestrate/UPSTREAM.md)
59
- - [CREDITS.md](CREDITS.md)
@@ -142,7 +142,6 @@ Next step: <prepare phase or connector follow-up>
142
142
 
143
143
  ## References
144
144
 
145
- - [README.md](README.md)
146
145
  - [examples/connections/heroku-postgres.json](examples/connections/heroku-postgres.json)
147
146
  - [examples/connections/redshift.json](examples/connections/redshift.json)
148
147
  - [examples/connections/sharepoint-unstructured.json](examples/connections/sharepoint-unstructured.json)
@@ -151,4 +150,3 @@ Next step: <prepare phase or connector follow-up>
151
150
  - [examples/connections/ingest-api-schema.json](examples/connections/ingest-api-schema.json)
152
151
  - [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
153
152
  - [../data360-orchestrate/references/feature-readiness.md](../data360-orchestrate/references/feature-readiness.md)
154
- - [../data360-orchestrate/UPSTREAM.md](../data360-orchestrate/UPSTREAM.md)
@@ -107,7 +107,6 @@ Next step: <segment / retrieve / follow-up>
107
107
 
108
108
  ## References
109
109
 
110
- - [README.md](README.md)
111
110
  - [../data360-orchestrate/assets/definitions/dmo.template.json](../data360-orchestrate/assets/definitions/dmo.template.json)
112
111
  - [../data360-orchestrate/assets/definitions/mapping.template.json](../data360-orchestrate/assets/definitions/mapping.template.json)
113
112
  - [../data360-orchestrate/assets/definitions/relationship.template.json](../data360-orchestrate/assets/definitions/relationship.template.json)
@@ -47,7 +47,6 @@ See [references/plugin-setup.md](references/plugin-setup.md).
47
47
  | [scripts/diagnose-org.mjs](scripts/diagnose-org.mjs) | Classify org readiness by phase before mutating Data Cloud assets |
48
48
  | [references/feature-readiness.md](references/feature-readiness.md) | Map high-signal errors and feature gates to concrete next steps |
49
49
  | [assets/definitions/](assets/definitions/) | Generic JSON templates for repeatable Data Cloud definition files |
50
- | [UPSTREAM.md](UPSTREAM.md) | Upstream mapping for future distillation and maintenance |
51
50
 
52
51
  ## Generic templates
53
52
 
@@ -119,9 +118,3 @@ sf data360 activation platforms -o myorg 2>/dev/null
119
118
  - [SKILL.md](SKILL.md) - Orchestrator guidance
120
119
  - [references/plugin-setup.md](references/plugin-setup.md) - Plugin install and verification
121
120
  - [references/feature-readiness.md](references/feature-readiness.md) - Readiness classification and setup guidance
122
- - [UPSTREAM.md](UPSTREAM.md) - Upstream tracking and distillation policy
123
- - [CREDITS.md](CREDITS.md) - Contributor and source attribution
124
-
125
- ## Primary contributor
126
-
127
- **Gnanasekaran Thoppae** — primary contributor for the data360-orchestrate family.
@@ -215,10 +215,8 @@ Next step: <next phase, setup guidance, or cross-skill handoff>
215
215
  ## Reference Map
216
216
 
217
217
  ### Start here
218
- - [README.md](README.md)
219
218
  - [references/plugin-setup.md](references/plugin-setup.md)
220
219
  - [references/feature-readiness.md](references/feature-readiness.md)
221
- - [UPSTREAM.md](UPSTREAM.md)
222
220
 
223
221
  ### Phase skills
224
222
  - [data360-connect](../data360-connect/SKILL.md)
@@ -48,4 +48,3 @@ sf data360 connection run-existing -o myorg --name <connection-id> 2>/dev/null
48
48
  - [SKILL.md](SKILL.md)
49
49
  - [examples/ingestion-api/README.md](examples/ingestion-api/README.md)
50
50
  - [../data360-orchestrate/assets/definitions/data-stream.template.json](../data360-orchestrate/assets/definitions/data-stream.template.json)
51
- - [CREDITS.md](CREDITS.md)
@@ -183,7 +183,6 @@ Next step: <harmonize or retrieve>
183
183
 
184
184
  ## References
185
185
 
186
- - [README.md](README.md)
187
186
  - [examples/ingestion-api/README.md](examples/ingestion-api/README.md)
188
187
  - [../data360-orchestrate/assets/definitions/data-stream.template.json](../data360-orchestrate/assets/definitions/data-stream.template.json)
189
188
  - [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
@@ -41,4 +41,3 @@ sf data360 query hybrid -o myorg --index Knowledge_Index --query "reset password
41
41
 
42
42
  - [SKILL.md](SKILL.md)
43
43
  - [../data360-orchestrate/assets/definitions/search-index.template.json](../data360-orchestrate/assets/definitions/search-index.template.json)
44
- - [CREDITS.md](CREDITS.md)
@@ -111,7 +111,6 @@ Next step: <segment / harmonize / follow-up>
111
111
 
112
112
  ## References
113
113
 
114
- - [README.md](README.md)
115
114
  - [examples/search-indexes/vector-knowledge.json](examples/search-indexes/vector-knowledge.json)
116
115
  - [examples/search-indexes/hybrid-structured.json](examples/search-indexes/hybrid-structured.json)
117
116
  - [../data360-orchestrate/assets/definitions/search-index.template.json](../data360-orchestrate/assets/definitions/search-index.template.json)
@@ -33,4 +33,3 @@ sf data360 calculated-insight list -o myorg 2>/dev/null
33
33
  - [SKILL.md](SKILL.md)
34
34
  - [../data360-orchestrate/assets/definitions/calculated-insight.template.json](../data360-orchestrate/assets/definitions/calculated-insight.template.json)
35
35
  - [../data360-orchestrate/assets/definitions/segment.template.json](../data360-orchestrate/assets/definitions/segment.template.json)
36
- - [CREDITS.md](CREDITS.md)
@@ -107,8 +107,6 @@ Next step: <act / retrieve / follow-up>
107
107
 
108
108
  ## References
109
109
 
110
- - [README.md](README.md)
111
110
  - [../data360-orchestrate/assets/definitions/calculated-insight.template.json](../data360-orchestrate/assets/definitions/calculated-insight.template.json)
112
111
  - [../data360-orchestrate/assets/definitions/segment.template.json](../data360-orchestrate/assets/definitions/segment.template.json)
113
112
  - [../data360-orchestrate/references/feature-readiness.md](../data360-orchestrate/references/feature-readiness.md)
114
- - [../data360-orchestrate/UPSTREAM.md](../data360-orchestrate/UPSTREAM.md)
@@ -0,0 +1,184 @@
1
+ ---
2
+ name: dx-pkg-post-install-configure
3
+ description: "Use this skill to automate managed package post-install configuration. Package-agnostic — works with any managed package (LMA, FMA, work.com, Certinia, etc.). TRIGGER when: user installs a managed package and needs post-install configuration, mentions LMA/FMA/work.com post-install setup, asks to configure permission sets/FLS/page layouts for an installed package, says 'post-install', 'package setup', 'configure LMA', 'set up FMA', 'post-install steps'. DO NOT TRIGGER for: standalone permission set assignment (use dx-org-permission-set-assign), generating permission set metadata XML (use platform-permission-set-generate), package installation, or org switching."
4
+ metadata:
5
+ version: "2.2"
6
+ minApiVersion: "67.0"
7
+ cliTools:
8
+ - tool: ["sf"]
9
+ semver: ">=2.0.0"
10
+ ---
11
+
12
+ ## When to Use This Skill
13
+
14
+ Use when automating post-install configuration for any Salesforce managed package. This skill reads the package's post-install documentation, discovers available execution methods, and automates the configuration steps — including permission sets, object/field permissions, page layouts, Visualforce page access, and tab settings.
15
+
16
+ ## Input
17
+
18
+ - **Required:** Package name (e.g., `LMA`, `FMA`, `work.com`)
19
+ - **Optional:** Path to post-install doc (PDF, markdown, URL)
20
+
21
+ If no doc is provided, ask the user to supply it.
22
+
23
+ ## Workflow
24
+
25
+ Execute phases in order. Each phase must pass before proceeding.
26
+
27
+ ---
28
+
29
+ ### Phase 1: Discover Available Execution Methods
30
+
31
+ **Priority order:**
32
+ 1. Org-native platform MCP servers (highest — direct org access via Headless 360)
33
+ 2. Claude Code external MCP servers (sf-sobject-all, sf-sobject-all-sb, etc.)
34
+ 3. sf CLI fallback (always available if authenticated)
35
+
36
+ #### Step 1A: Resolve org API version
37
+
38
+ Discover the org's current API version dynamically — never hardcode a version number:
39
+
40
+ ```bash
41
+ sf org display --target-org <alias> --json
42
+ ```
43
+
44
+ From the JSON response, read `result.apiVersion` (e.g., `"67.0"`). Store this value and use it as `v<apiVersion>` in all subsequent REST paths. If the command fails, fall back to the `minApiVersion` declared in this skill's metadata (`67.0`).
45
+
46
+ #### Step 1B: Check for org-native platform MCP servers
47
+
48
+ Query the Tooling API for MCP server availability:
49
+
50
+ ```bash
51
+ sf api request rest "/services/data/v<apiVersion>/tooling/query?q=SELECT+Id,DeveloperName,MasterLabel+FROM+McpServerAccess" --target-org <alias>
52
+ ```
53
+
54
+ #### Step 1C: Determine execution method
55
+
56
+ Check which Claude Code MCP tools are available and authenticated.
57
+
58
+ **MCP tool prefixes by org type:**
59
+
60
+ | Org Type | Tool Prefix |
61
+ |---|---|
62
+ | Production | `mcp__sf-sobject-all__` |
63
+ | Sandbox | `mcp__sf-sobject-all-sb__` |
64
+ | Falcon Test (pc-rnd) | `mcp__sf-sobject-all-falcon__` |
65
+
66
+ If MCP needs auth, call the authenticate tool. If auth fails, fall back to sf CLI.
67
+
68
+ ---
69
+
70
+ ### Phase 2: Verify Authentication & Org Identity
71
+
72
+ 1. Run a lightweight test query (`SELECT Id, Name, IsSandbox FROM Organization`)
73
+ 2. If MCP auth fails, automatically fall back to sf CLI
74
+ 3. Display org info and ask user to confirm before proceeding
75
+
76
+ ---
77
+
78
+ ### Phase 3: Verify Package Installation
79
+
80
+ 1. Determine the package namespace (ask user if unknown)
81
+ 2. Check via Tooling API (`InstalledSubscriberPackage`) — do NOT use `PackageLicense`
82
+ 3. If package not found, stop and inform user
83
+
84
+ ---
85
+
86
+ ### Phase 4: Read and Parse Post-Install Document
87
+
88
+ Read the provided document and extract discrete configuration steps.
89
+
90
+ **Supported formats:** PDF, markdown, URL (via WebFetch), pasted text.
91
+
92
+ **Parsing approach:**
93
+ 1. Extract each numbered/bulleted step from the document
94
+ 2. Present the extracted steps to the user for validation before proceeding
95
+
96
+ ---
97
+
98
+ ### Phase 5: Classify Steps & Interactive Plan Review
99
+
100
+ For each step extracted from the doc, classify as Automated or Manual.
101
+
102
+ #### Automation capabilities reference
103
+
104
+ **Via MCP (sobject-all) or sf CLI CRUD:**
105
+ - Record CRUD on any standard or custom object (PermissionSet, ObjectPermissions,
106
+ FieldPermissions, SetupEntityAccess, PermissionSetTabSetting, PermissionSetAssignment, etc.)
107
+
108
+ **Via Metadata API retrieve/deploy (sf CLI):**
109
+ - Page layout modifications (add related lists, fields, sections)
110
+ - Profile settings
111
+ - Custom metadata type records
112
+
113
+ **Via sf CLI Tooling API:**
114
+ - Tooling queries (InstalledSubscriberPackage, ApexPage, ApexClass, etc.)
115
+ - Any REST-accessible Tooling operation
116
+
117
+ **Manual (no API path — requires Setup UI):**
118
+ - System permissions not exposed via REST
119
+ - Connected app OAuth configuration
120
+ - Environment Hub linkage
121
+
122
+ #### Interactive approval
123
+
124
+ Present the classified plan and let the user choose:
125
+ - **"Approve all"** — Execute all steps as planned
126
+ - **"Let me choose"** — Select which steps to approve/skip
127
+ - **"I have questions"** — Discuss specific steps before deciding
128
+
129
+ ---
130
+
131
+ ### Phase 6: Execute Approved Steps
132
+
133
+ For each approved step, use the resolved execution method.
134
+
135
+ #### Execution method reference
136
+
137
+ | Operation | Via MCP | Via sf CLI |
138
+ |---|---|---|
139
+ | SOQL query | `soqlQuery` tool | `sf data query --query "<SOQL>" --target-org <alias> --json` |
140
+ | Create record | `createSobjectRecord` tool | `sf data create record --sobject <Object> --values "..." --target-org <alias> --json` |
141
+ | Update record | `updateSobjectRecord` tool | `sf data update record --sobject <Object> --record-id <id> --values "..." --target-org <alias> --json` |
142
+ | Describe object | `getObjectSchema` tool | `sf api request rest "/services/data/v<apiVersion>/sobjects/<Object>/describe" --target-org <alias>` |
143
+ | Page layout | N/A | Metadata API retrieve/deploy |
144
+
145
+ #### Page layout modifications via Metadata API
146
+
147
+ Use `sf project retrieve start` → edit the layout XML → `sf project deploy start`.
148
+
149
+ #### Execution rules
150
+
151
+ - **Idempotency:** Before creating any record, query to check if it already exists. Skip if so.
152
+ - **Report after each step:** Show success count, skipped items, and reasons.
153
+ - **Automatic fallback:** If MCP fails mid-execution, retry via sf CLI.
154
+ - **On failure:** Report error, ask user to retry/skip/stop.
155
+
156
+ ---
157
+
158
+ ### Phase 7: Guide Manual Steps (if any)
159
+
160
+ If any steps could not be automated, present each with Setup navigation instructions.
161
+ Wait for user confirmation before proceeding to the next.
162
+
163
+ ---
164
+
165
+ ### Phase 8: Summary
166
+
167
+ Display final summary with step-by-step status, method used, and any skipped items.
168
+
169
+ ---
170
+
171
+ ## Error Handling
172
+
173
+ - **Auth failure mid-execution:** Stop, ask user to re-auth, offer to resume
174
+ - **Duplicate record errors:** Treat as "already configured", skip and continue
175
+ - **Permission errors:** Report which permission is missing, suggest resolution
176
+ - **Unknown step type:** Ask user to clarify, offer to mark as manual
177
+
178
+ ## Notes
179
+
180
+ - **Priority: org-native MCP > Claude Code MCP > sf CLI > manual**
181
+ - sf CLI is always a valid fallback for all CRUD and Tooling API operations
182
+ - Page layout modifications are automated via Metadata API retrieve/deploy
183
+ - Always verify org identity before making changes
184
+ - All actions respect the authenticated user's permissions
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: experience-cms-brand-apply
3
3
  description: "Extracts, retrieves, and applies CMS brand guidelines (voice, tone, style, colors, typography) to generated content. Use this skill ANY TIME a user request involves branding, brand voice, brand tone, brand guidelines, brand identity, brand styling, or applying a brand to content. Triggers for requests like \"apply my brand\", \"use our brand voice\", \"match our brand guidelines\", \"find my brand\", \"search for brand\", \"get brand instructions\", \"apply brand tone\". Handles the full workflow: searching for brands in Salesforce CMS, extracting brand instructions, and applying brand voice/tone/guidelines to generated content. Does not apply to media/image search (use experience-content-media-search skill), logo search, or creating new brand definitions."
4
- compatibility: "Requires get_brand_instructions and/or search_brands MCP tools"
4
+ compatibility: "Requires get_brand_instructions and/or search_media_cms_channels MCP tools"
5
5
  metadata:
6
6
  version: "1.0"
7
7
  ---
@@ -44,7 +44,7 @@ When a user requests branded content:
44
44
 
45
45
  Copy this checklist and track your progress:
46
46
 
47
- ```
47
+ ```text
48
48
  CMS Branding Progress:
49
49
  - [ ] Step 1: Determine if brand is already identified or needs search
50
50
  - [ ] Step 2: Search for brands (if needed) and present options to user
@@ -63,35 +63,63 @@ Check if the user has already specified which brand to use:
63
63
 
64
64
  ## Step 2: Search for Brands
65
65
 
66
- **Tool:** `search_brands`
66
+ **Tool:** `search_media_cms_channels`
67
+
68
+ Brands are stored as CMS content of type `sfdc_cms__brand`. Search for them by
69
+ querying the CMS channels with the brand content type.
70
+
71
+ > **Note:** Brand content search (`contentTypeFqn=sfdc_cms__brand`) is explicitly
72
+ > excluded from the `experience-content-media-search` skill's scope. Calling
73
+ > `search_media_cms_channels` directly here is correct and intentional — do not
74
+ > route brand search through `experience-content-media-search`.
67
75
 
68
76
  **Process:**
69
77
 
70
- 1. **Determine search query** — Use the user's description, company name, or a general keyword
71
- 2. **Build the request:**
78
+ 1. **Determine search query** — Use the user's keyword. Brand search matches on
79
+ brand title and description.
80
+ 2. **Build the request** with the fixed brand-search input contract:
72
81
 
73
82
  ```json
74
83
  {
75
84
  "inputs": [{
76
- "searchQuery": "keyword or brand name"
85
+ "searchKeyword": "keyword",
86
+ "searchLanguage": "<detected_language>",
87
+ "channelType": "PublicUnauthenticated",
88
+ "contentTypeFqn": "sfdc_cms__brand",
89
+ "pageOffset": 0,
90
+ "searchLimit": 25
77
91
  }]
78
92
  }
79
93
  ```
80
94
 
81
- 3. **Call `search_brands`** with the query
82
- 4. **Parse the response** Extract brand results:
95
+ Field rules:
96
+ - `searchKeyword` the user's keyword input
97
+ - `searchLanguage` — auto-detect from the user's input; if unsure, use `en_US`
98
+ - `channelType` — always `PublicUnauthenticated` (brand content is delivered
99
+ via the public CMS channel; authenticated-channel brand search is not
100
+ supported by this tool)
101
+ - `contentTypeFqn` — always `sfdc_cms__brand`
102
+ - `pageOffset` — `0`
103
+ - `searchLimit` — `25`
104
+
105
+ 3. **Call `search_media_cms_channels`** with the request
106
+ 4. **Parse the response** — A brand result has an ID starting with **`9Ps`**. Extract:
83
107
  - `managedContentId` — Unique ID (use this for extraction in Step 3)
84
108
  - `managedContentKey` — Content key identifier
85
109
  - `title` — Brand display name
86
- - `contentUrl` — URL to the brand content
87
- - `totalResults` — Number of brands found
110
+ - `contentUrl` — URL to the brand content, found under
111
+ `managedContentChannelDeliveryDetails[0].contentUrl`
112
+ - `pageNumber`, `pageSize`, `totalResults` — pagination summary
88
113
 
89
114
  ### Presenting Brand Results
90
115
 
91
- **If multiple brands found**, use `ask_followup_question` to present options:
116
+ **If brands found**, first show a summary line, then use `ask_followup_question`
117
+ to present options:
92
118
 
93
- ```
94
- I found [N] brands in your CMS. Which one should I apply?
119
+ ```text
120
+ Showing [N] of [totalResults] total results (page [pageNumber], page size [pageSize]).
121
+
122
+ Which brand should I apply?
95
123
 
96
124
  1. [Brand Title 1]
97
125
  2. [Brand Title 2]
@@ -100,15 +128,18 @@ I found [N] brands in your CMS. Which one should I apply?
100
128
  Which brand would you like to use?
101
129
  ```
102
130
 
131
+ When the user replies with their selection, do NOT perform another search —
132
+ proceed immediately to Step 3.
133
+
103
134
  **If one brand found**, confirm with the user:
104
135
 
105
- ```
136
+ ```text
106
137
  I found the brand "[Brand Title]". Should I apply this brand's guidelines to the content?
107
138
  ```
108
139
 
109
140
  **If no brands found:**
110
141
 
111
- ```
142
+ ```text
112
143
  No brands found in Salesforce CMS. To use branding:
113
144
  1. Create a brand in Salesforce CMS (Content Type: sfdc_cms__brand)
114
145
  2. Provide brand guidelines directly in this conversation
@@ -152,7 +183,7 @@ The extracted brand instructions typically include:
152
183
 
153
184
  | Error | Response |
154
185
  |---|---|
155
- | `search_brands` unavailable | "Brand search is unavailable. Please provide your brand name or guidelines directly." |
186
+ | `search_media_cms_channels` unavailable | "Brand search is unavailable. Please provide your brand name or guidelines directly." |
156
187
  | `get_brand_instructions` unavailable | "Cannot retrieve brand instructions. Please share your brand guidelines in this conversation and I'll apply them manually." |
157
188
  | Org lacks Vibes branding | "CMS branding is not enabled for this org. Contact your admin to enable the Agentforce Vibes branding feature." |
158
189
  | Permission denied | "You don't have permission to access CMS brands. Ensure you have Managed Content Authoring permission." |
@@ -15,7 +15,7 @@ Lightning Web Components development skill with PICKLES architecture methodology
15
15
 
16
16
  ### 1. Invoke the skill
17
17
 
18
- ```
18
+ ```yaml
19
19
  Skill: experience-lwc-generate
20
20
  Request: "Create a data table component for Account records"
21
21
  ```
@@ -39,7 +39,7 @@ The skill generates:
39
39
 
40
40
  ## PICKLES Framework
41
41
 
42
- ```
42
+ ```text
43
43
  P → Prototype │ Validate ideas with wireframes & mock data
44
44
  I → Integrate │ Choose data source (LDS, Apex, GraphQL, API)
45
45
  C → Composition │ Structure component hierarchy & communication
@@ -80,6 +80,7 @@ S → Security │ Enforce permissions, FLS, and data protection
80
80
  | generating-metadata | Create Lightning Message Channels |
81
81
  | platform-metadata-deploy | Deploy component to org |
82
82
 
83
+
83
84
  ## Spring '26 Features (API 66.0)
84
85
 
85
86
  - **lwc:on directive**: Dynamic event binding from JavaScript
@@ -7,7 +7,7 @@ This guide covers real-time notification patterns for Lightning Web Components u
7
7
 
8
8
  ## Overview
9
9
 
10
- ```
10
+ ```text
11
11
  ┌─────────────────────────────────────────────────────────────────────────┐
12
12
  │ ASYNC NOTIFICATION ARCHITECTURE │
13
13
  ├─────────────────────────────────────────────────────────────────────────┤
@@ -154,7 +154,7 @@ LWC can interact with Apex in two ways: **@wire** (reactive/declarative) and **i
154
154
 
155
155
  #### Quick Comparison
156
156
 
157
- ```
157
+ ```text
158
158
  ┌─────────────────────────────────────────────────────────────────────────────────────┐
159
159
  │ WIRE vs IMPERATIVE APEX CALLS │
160
160
  ├──────────────────┬──────────────────────────────┬────────────────────────────────────┤
@@ -254,7 +254,7 @@ export default class ImperativeExample extends LightningElement {
254
254
 
255
255
  #### Decision Tree
256
256
 
257
- ```
257
+ ```text
258
258
  ┌─────────────────────────────┐
259
259
  │ Need to modify data? │
260
260
  │ (Insert/Update/Delete) │
@@ -955,7 +955,7 @@ export default class AccountList extends LightningElement {
955
955
 
956
956
  When two child components need to communicate but share the same parent, use the **parent as middleware**. This is the recommended pattern for master-detail UIs.
957
957
 
958
- ```
958
+ ```text
959
959
  ┌─────────────────────────────────────────────────────────────────────┐
960
960
  │ SIBLING COMMUNICATION FLOW │
961
961
  ├─────────────────────────────────────────────────────────────────────┤