@salesforce/afv-skills 1.8.0 → 1.9.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 (488) hide show
  1. package/package.json +1 -1
  2. package/skills/activating-datacloud/CREDITS.md +5 -0
  3. package/skills/activating-datacloud/README.md +39 -0
  4. package/skills/activating-datacloud/SKILL.md +118 -0
  5. package/skills/analyzing-omnistudio-dependencies/CREDITS.md +5 -0
  6. package/skills/analyzing-omnistudio-dependencies/SKILL.md +477 -0
  7. package/skills/analyzing-omnistudio-dependencies/references/dependency-patterns.md +508 -0
  8. package/skills/analyzing-omnistudio-dependencies/references/namespace-guide.md +300 -0
  9. package/skills/building-omnistudio-callable-apex/CREDITS.md +9 -0
  10. package/skills/building-omnistudio-callable-apex/README.md +80 -0
  11. package/skills/building-omnistudio-callable-apex/SKILL.md +276 -0
  12. package/skills/building-omnistudio-callable-apex/assets/pattern_callable_openinterface.cls +40 -0
  13. package/skills/building-omnistudio-callable-apex/assets/pattern_callable_vanilla.cls +32 -0
  14. package/skills/building-omnistudio-callable-apex/assets/pattern_migration.cls +54 -0
  15. package/skills/building-omnistudio-callable-apex/assets/pattern_openinterface.cls +45 -0
  16. package/skills/building-omnistudio-callable-apex/assets/pattern_test_class.cls +65 -0
  17. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/IndustriesCallableException.cls +7 -0
  18. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallable.cls +115 -0
  19. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallableTest.cls +189 -0
  20. package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/TRANSCRIPT.md +115 -0
  21. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/IndustriesCallableException.cls +7 -0
  22. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallable.cls +74 -0
  23. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallableTest.cls +146 -0
  24. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomRemoteClass.cls +16 -0
  25. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/TRANSCRIPT.md +120 -0
  26. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/IndustriesCallableException.cls +7 -0
  27. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallable.cls +73 -0
  28. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallableTest.cls +128 -0
  29. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomVlocityOpenInterface2.cls +23 -0
  30. package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/TRANSCRIPT.md +75 -0
  31. package/skills/building-omnistudio-datamapper/CREDITS.md +5 -0
  32. package/skills/building-omnistudio-datamapper/SKILL.md +270 -0
  33. package/skills/building-omnistudio-datamapper/assets/completion-summary-template.md +28 -0
  34. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-extract.json +6 -0
  35. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-item.json +12 -0
  36. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-load.json +6 -0
  37. package/skills/building-omnistudio-datamapper/assets/omni-data-transform-transform.json +6 -0
  38. package/skills/building-omnistudio-datamapper/references/best-practices.md +277 -0
  39. package/skills/building-omnistudio-datamapper/references/naming-conventions.md +145 -0
  40. package/skills/building-omnistudio-flexcard/CREDITS.md +5 -0
  41. package/skills/building-omnistudio-flexcard/SKILL.md +325 -0
  42. package/skills/building-omnistudio-flexcard/assets/omni-ui-card.json +10 -0
  43. package/skills/building-omnistudio-flexcard/references/best-practices.md +291 -0
  44. package/skills/building-omnistudio-flexcard/references/data-binding-guide.md +311 -0
  45. package/skills/building-omnistudio-flexcard/references/scoring-rubric.md +66 -0
  46. package/skills/building-omnistudio-flexcard/scripts/flexcard-commands.sh +24 -0
  47. package/skills/building-omnistudio-integration-procedure/CREDITS.md +5 -0
  48. package/skills/building-omnistudio-integration-procedure/SKILL.md +275 -0
  49. package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-dr-extract.json +10 -0
  50. package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-set-values.json +10 -0
  51. package/skills/building-omnistudio-integration-procedure/assets/omni-process-ip.json +12 -0
  52. package/skills/building-omnistudio-integration-procedure/assets/scoring-report-format.txt +14 -0
  53. package/skills/building-omnistudio-integration-procedure/references/best-practices.md +388 -0
  54. package/skills/building-omnistudio-integration-procedure/references/element-types.md +588 -0
  55. package/skills/building-omnistudio-integration-procedure/scripts/cli-commands.sh +18 -0
  56. package/skills/building-omnistudio-omniscript/CREDITS.md +5 -0
  57. package/skills/building-omnistudio-omniscript/SKILL.md +367 -0
  58. package/skills/building-omnistudio-omniscript/assets/omni-process-element-step.json +10 -0
  59. package/skills/building-omnistudio-omniscript/assets/omni-process-element-text-block.json +11 -0
  60. package/skills/building-omnistudio-omniscript/assets/omni-process-omniscript.json +12 -0
  61. package/skills/building-omnistudio-omniscript/references/best-practices.md +480 -0
  62. package/skills/building-omnistudio-omniscript/references/element-types.md +1172 -0
  63. package/skills/building-omnistudio-omniscript/scripts/check-duplicate-omniscript.sh +13 -0
  64. package/skills/building-omnistudio-omniscript/scripts/cli-reference.sh +21 -0
  65. package/skills/building-omnistudio-omniscript/scripts/deploy-omniscript.sh +29 -0
  66. package/skills/building-sf-integrations/CREDITS.md +5 -0
  67. package/skills/building-sf-integrations/README.md +95 -0
  68. package/skills/building-sf-integrations/SKILL.md +192 -0
  69. package/skills/building-sf-integrations/assets/callouts/callout-retry-handler.cls +167 -0
  70. package/skills/building-sf-integrations/assets/callouts/http-response-handler.cls +257 -0
  71. package/skills/building-sf-integrations/assets/callouts/rest-queueable-callout.cls +262 -0
  72. package/skills/building-sf-integrations/assets/callouts/rest-sync-callout.cls +211 -0
  73. package/skills/building-sf-integrations/assets/cdc/cdc-handler.cls +246 -0
  74. package/skills/building-sf-integrations/assets/cdc/cdc-subscriber-trigger.trigger +139 -0
  75. package/skills/building-sf-integrations/assets/endpoint-security/example.cspTrustedSite-meta.xml +58 -0
  76. package/skills/building-sf-integrations/assets/endpoint-security/example.remoteSite-meta.xml +39 -0
  77. package/skills/building-sf-integrations/assets/external-credentials/jwt-external-credential.externalCredential-meta.xml +90 -0
  78. package/skills/building-sf-integrations/assets/external-credentials/oauth-external-credential.externalCredential-meta.xml +87 -0
  79. package/skills/building-sf-integrations/assets/external-services/external-service-operations.md +221 -0
  80. package/skills/building-sf-integrations/assets/external-services/openapi-registration.externalServiceRegistration-meta.xml +193 -0
  81. package/skills/building-sf-integrations/assets/named-credentials/certificate-auth.namedCredential-meta.xml +62 -0
  82. package/skills/building-sf-integrations/assets/named-credentials/custom-auth.namedCredential-meta.xml +71 -0
  83. package/skills/building-sf-integrations/assets/named-credentials/oauth-client-credentials.namedCredential-meta.xml +51 -0
  84. package/skills/building-sf-integrations/assets/named-credentials/oauth-jwt-bearer.namedCredential-meta.xml +67 -0
  85. package/skills/building-sf-integrations/assets/platform-events/event-publisher.cls +191 -0
  86. package/skills/building-sf-integrations/assets/platform-events/event-subscriber-action.cls +295 -0
  87. package/skills/building-sf-integrations/assets/platform-events/event-subscriber-trigger.trigger +108 -0
  88. package/skills/building-sf-integrations/assets/platform-events/platform-event-definition.object-meta.xml +124 -0
  89. package/skills/building-sf-integrations/assets/soap/soap-callout-service.cls +186 -0
  90. package/skills/building-sf-integrations/assets/soap/wsdl2apex-guide.md +213 -0
  91. package/skills/building-sf-integrations/hooks/scripts/suggest_credential_setup.py +271 -0
  92. package/skills/building-sf-integrations/hooks/scripts/validate_integration.py +363 -0
  93. package/skills/building-sf-integrations/references/callout-patterns.md +719 -0
  94. package/skills/building-sf-integrations/references/cdc-guide.md +288 -0
  95. package/skills/building-sf-integrations/references/cli-reference.md +94 -0
  96. package/skills/building-sf-integrations/references/event-driven-architecture-guide.md +266 -0
  97. package/skills/building-sf-integrations/references/event-patterns.md +838 -0
  98. package/skills/building-sf-integrations/references/external-services-guide.md +303 -0
  99. package/skills/building-sf-integrations/references/messaging-api-v2.md +609 -0
  100. package/skills/building-sf-integrations/references/named-credentials-automation.md +201 -0
  101. package/skills/building-sf-integrations/references/named-credentials-guide.md +173 -0
  102. package/skills/building-sf-integrations/references/platform-events-guide.md +288 -0
  103. package/skills/building-sf-integrations/references/rest-callout-patterns.md +288 -0
  104. package/skills/building-sf-integrations/references/scoring-rubric.md +59 -0
  105. package/skills/building-sf-integrations/references/security-best-practices.md +248 -0
  106. package/skills/building-sf-integrations/scripts/README.md +100 -0
  107. package/skills/building-sf-integrations/scripts/configure-named-credential.sh +236 -0
  108. package/skills/building-sf-integrations/scripts/set-api-credential.sh +146 -0
  109. package/skills/building-sf-integrations/scripts/templates/setup-credentials-with-csp.sh +158 -0
  110. package/skills/configuring-connected-apps/CREDITS.md +3 -0
  111. package/skills/configuring-connected-apps/README.md +99 -0
  112. package/skills/configuring-connected-apps/SKILL.md +224 -0
  113. package/skills/configuring-connected-apps/assets/connected-app-basic.xml +29 -0
  114. package/skills/configuring-connected-apps/assets/connected-app-canvas.xml +62 -0
  115. package/skills/configuring-connected-apps/assets/connected-app-jwt.xml +49 -0
  116. package/skills/configuring-connected-apps/assets/connected-app-oauth.xml +65 -0
  117. package/skills/configuring-connected-apps/assets/eca-global-oauth.xml +36 -0
  118. package/skills/configuring-connected-apps/assets/eca-oauth-settings.xml +36 -0
  119. package/skills/configuring-connected-apps/assets/eca-policies.xml +36 -0
  120. package/skills/configuring-connected-apps/assets/external-client-app.xml +35 -0
  121. package/skills/configuring-connected-apps/references/example-usage.md +256 -0
  122. package/skills/configuring-connected-apps/references/migration-guide.md +328 -0
  123. package/skills/configuring-connected-apps/references/oauth-flows-reference.md +660 -0
  124. package/skills/configuring-connected-apps/references/security-checklist.md +209 -0
  125. package/skills/configuring-connected-apps/references/testing-validation-guide.md +275 -0
  126. package/skills/connecting-datacloud/CREDITS.md +5 -0
  127. package/skills/connecting-datacloud/README.md +59 -0
  128. package/skills/connecting-datacloud/SKILL.md +155 -0
  129. package/skills/connecting-datacloud/examples/connections/heroku-postgres.json +15 -0
  130. package/skills/connecting-datacloud/examples/connections/ingest-api-connection.json +5 -0
  131. package/skills/connecting-datacloud/examples/connections/ingest-api-schema.json +31 -0
  132. package/skills/connecting-datacloud/examples/connections/redshift.json +16 -0
  133. package/skills/connecting-datacloud/examples/connections/sharepoint-unstructured.json +20 -0
  134. package/skills/connecting-datacloud/examples/connections/snowflake-connection.json +42 -0
  135. package/skills/debugging-apex-logs/CREDITS.md +22 -0
  136. package/skills/debugging-apex-logs/README.md +74 -0
  137. package/skills/debugging-apex-logs/SKILL.md +172 -0
  138. package/skills/debugging-apex-logs/assets/benchmarking-template.cls +327 -0
  139. package/skills/debugging-apex-logs/assets/cpu-heap-optimization.cls +307 -0
  140. package/skills/debugging-apex-logs/assets/dml-in-loop-fix.cls +219 -0
  141. package/skills/debugging-apex-logs/assets/null-pointer-fix.cls +252 -0
  142. package/skills/debugging-apex-logs/assets/soql-in-loop-fix.cls +157 -0
  143. package/skills/debugging-apex-logs/references/analysis-playbook.md +53 -0
  144. package/skills/debugging-apex-logs/references/benchmarking-guide.md +287 -0
  145. package/skills/debugging-apex-logs/references/cli-commands.md +368 -0
  146. package/skills/debugging-apex-logs/references/common-issues.md +68 -0
  147. package/skills/debugging-apex-logs/references/debug-log-reference.md +328 -0
  148. package/skills/debugging-apex-logs/references/log-analysis-tools.md +248 -0
  149. package/skills/debugging-apex-logs/references/scoring-rubric.md +21 -0
  150. package/skills/deploying-metadata/CREDITS.md +25 -0
  151. package/skills/deploying-metadata/README.md +104 -0
  152. package/skills/deploying-metadata/SKILL.md +214 -0
  153. package/skills/deploying-metadata/assets/destructiveChanges.xml +143 -0
  154. package/skills/deploying-metadata/assets/package.xml +121 -0
  155. package/skills/deploying-metadata/references/agent-deployment-guide.md +628 -0
  156. package/skills/deploying-metadata/references/deploy.sh +73 -0
  157. package/skills/deploying-metadata/references/deployment-report-template.md +89 -0
  158. package/skills/deploying-metadata/references/deployment-workflows.md +395 -0
  159. package/skills/deploying-metadata/references/orchestration.md +183 -0
  160. package/skills/deploying-metadata/references/trigger-deployment-safety.md +376 -0
  161. package/skills/deploying-omnistudio-datapacks/CREDITS.md +5 -0
  162. package/skills/deploying-omnistudio-datapacks/README.md +88 -0
  163. package/skills/deploying-omnistudio-datapacks/SKILL.md +174 -0
  164. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/TRANSCRIPT.md +124 -0
  165. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +11 -0
  166. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/TRANSCRIPT.md +142 -0
  167. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/deploy-business-internet-plus-bundle.yaml +10 -0
  168. package/skills/deploying-omnistudio-datapacks/references/job-file-template.md +42 -0
  169. package/skills/deploying-omnistudio-datapacks/references/troubleshooting-matrix.md +24 -0
  170. package/skills/developing-agentforce/assets/metadata/http-callout-flow.flow-meta.xml +1 -1
  171. package/skills/developing-agentforce/references/actions-reference.md +8 -8
  172. package/skills/fetching-salesforce-docs/README.md +66 -0
  173. package/skills/fetching-salesforce-docs/SKILL.md +209 -0
  174. package/skills/fetching-salesforce-docs/requirements.txt +2 -0
  175. package/skills/fetching-salesforce-docs/scripts/extract_help_salesforce.py +497 -0
  176. package/skills/fetching-salesforce-docs/scripts/extract_salesforce_doc.py +357 -0
  177. package/skills/fetching-salesforce-docs/scripts/runtime_bootstrap.py +58 -0
  178. package/skills/generating-apex/CREDITS.md +1 -26
  179. package/skills/generating-apex-test/CREDITS.md +2 -27
  180. package/skills/generating-lwc-components/CREDITS.md +5 -0
  181. package/skills/generating-lwc-components/README.md +126 -0
  182. package/skills/generating-lwc-components/SKILL.md +191 -0
  183. package/skills/generating-lwc-components/assets/apex-controller/LwcController.cls +327 -0
  184. package/skills/generating-lwc-components/assets/basic-component/basicComponent.css +72 -0
  185. package/skills/generating-lwc-components/assets/basic-component/basicComponent.html +111 -0
  186. package/skills/generating-lwc-components/assets/basic-component/basicComponent.js +163 -0
  187. package/skills/generating-lwc-components/assets/basic-component/basicComponent.js-meta.xml +137 -0
  188. package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.html +111 -0
  189. package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.js +367 -0
  190. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.css +63 -0
  191. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.html +154 -0
  192. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js +348 -0
  193. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js-meta.xml +87 -0
  194. package/skills/generating-lwc-components/assets/form-component/formComponent.html +165 -0
  195. package/skills/generating-lwc-components/assets/form-component/formComponent.js +275 -0
  196. package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.html +100 -0
  197. package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.js +336 -0
  198. package/skills/generating-lwc-components/assets/jest-test/componentName.test.js.example +371 -0
  199. package/skills/generating-lwc-components/assets/message-channel/RecordSelected.messageChannel-meta.xml +71 -0
  200. package/skills/generating-lwc-components/assets/message-channel/lmsPublisher.js +103 -0
  201. package/skills/generating-lwc-components/assets/message-channel/lmsSubscriber.js +181 -0
  202. package/skills/generating-lwc-components/assets/modal-component/modalComponent.html +85 -0
  203. package/skills/generating-lwc-components/assets/modal-component/modalComponent.js +199 -0
  204. package/skills/generating-lwc-components/assets/record-picker/recordPicker.html +55 -0
  205. package/skills/generating-lwc-components/assets/record-picker/recordPicker.js +199 -0
  206. package/skills/generating-lwc-components/assets/state-store/store.js +282 -0
  207. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.css +65 -0
  208. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.html +95 -0
  209. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.js-meta.xml +75 -0
  210. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.test.ts.example +301 -0
  211. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.ts +295 -0
  212. package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.html +71 -0
  213. package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.js +316 -0
  214. package/skills/generating-lwc-components/hooks/scripts/lwc-lsp-validate.py +295 -0
  215. package/skills/generating-lwc-components/hooks/scripts/post-tool-validate.py +347 -0
  216. package/skills/generating-lwc-components/hooks/scripts/slds_data/deprecated_patterns.json +74 -0
  217. package/skills/generating-lwc-components/hooks/scripts/slds_data/styling_hooks.json +111 -0
  218. package/skills/generating-lwc-components/hooks/scripts/slds_data/valid_slds_classes.json +127 -0
  219. package/skills/generating-lwc-components/hooks/scripts/slds_linter_wrapper.py +294 -0
  220. package/skills/generating-lwc-components/hooks/scripts/slds_rules/__init__.py +22 -0
  221. package/skills/generating-lwc-components/hooks/scripts/template_validator.py +332 -0
  222. package/skills/generating-lwc-components/hooks/scripts/validate_slds.py +595 -0
  223. package/skills/generating-lwc-components/references/accessibility-guide.md +843 -0
  224. package/skills/generating-lwc-components/references/advanced-features.md +108 -0
  225. package/skills/generating-lwc-components/references/async-notification-patterns.md +661 -0
  226. package/skills/generating-lwc-components/references/cli-commands.md +545 -0
  227. package/skills/generating-lwc-components/references/component-patterns.md +1476 -0
  228. package/skills/generating-lwc-components/references/flow-integration-guide.md +675 -0
  229. package/skills/generating-lwc-components/references/jest-testing.md +1011 -0
  230. package/skills/generating-lwc-components/references/lms-guide.md +860 -0
  231. package/skills/generating-lwc-components/references/lwc-best-practices.md +1310 -0
  232. package/skills/generating-lwc-components/references/performance-guide.md +861 -0
  233. package/skills/generating-lwc-components/references/scoring-and-testing.md +116 -0
  234. package/skills/generating-lwc-components/references/slds-blueprints.json +14389 -0
  235. package/skills/generating-lwc-components/references/slds-design-guide.md +166 -0
  236. package/skills/generating-lwc-components/references/state-management.md +642 -0
  237. package/skills/generating-lwc-components/references/template-anti-patterns.md +948 -0
  238. package/skills/generating-lwc-components/references/triangle-pattern.md +365 -0
  239. package/skills/generating-lwc-components/scripts/local-dev-preview.sh +34 -0
  240. package/skills/generating-mermaid-diagrams/CREDITS.md +46 -0
  241. package/skills/generating-mermaid-diagrams/README.md +114 -0
  242. package/skills/generating-mermaid-diagrams/SKILL.md +218 -0
  243. package/skills/generating-mermaid-diagrams/assets/agentforce/agent-flow.md +313 -0
  244. package/skills/generating-mermaid-diagrams/assets/architecture/system-landscape.md +351 -0
  245. package/skills/generating-mermaid-diagrams/assets/datamodel/b2b-commerce-erd.md +317 -0
  246. package/skills/generating-mermaid-diagrams/assets/datamodel/campaigns-erd.md +195 -0
  247. package/skills/generating-mermaid-diagrams/assets/datamodel/consent-erd.md +262 -0
  248. package/skills/generating-mermaid-diagrams/assets/datamodel/files-erd.md +266 -0
  249. package/skills/generating-mermaid-diagrams/assets/datamodel/forecasting-erd.md +261 -0
  250. package/skills/generating-mermaid-diagrams/assets/datamodel/fsl-erd.md +332 -0
  251. package/skills/generating-mermaid-diagrams/assets/datamodel/party-model-erd.md +237 -0
  252. package/skills/generating-mermaid-diagrams/assets/datamodel/quote-order-erd.md +277 -0
  253. package/skills/generating-mermaid-diagrams/assets/datamodel/revenue-cloud-erd.md +343 -0
  254. package/skills/generating-mermaid-diagrams/assets/datamodel/sales-cloud-erd.md +192 -0
  255. package/skills/generating-mermaid-diagrams/assets/datamodel/salesforce-erd.md +209 -0
  256. package/skills/generating-mermaid-diagrams/assets/datamodel/scheduler-erd.md +276 -0
  257. package/skills/generating-mermaid-diagrams/assets/datamodel/service-cloud-erd.md +217 -0
  258. package/skills/generating-mermaid-diagrams/assets/datamodel/territory-management-erd.md +241 -0
  259. package/skills/generating-mermaid-diagrams/assets/integration/api-sequence.md +387 -0
  260. package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code-pkce.md +197 -0
  261. package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code.md +152 -0
  262. package/skills/generating-mermaid-diagrams/assets/oauth/client-credentials.md +233 -0
  263. package/skills/generating-mermaid-diagrams/assets/oauth/device-authorization.md +295 -0
  264. package/skills/generating-mermaid-diagrams/assets/oauth/jwt-bearer.md +256 -0
  265. package/skills/generating-mermaid-diagrams/assets/oauth/refresh-token.md +281 -0
  266. package/skills/generating-mermaid-diagrams/assets/oauth/user-agent-social-sign-on.md +281 -0
  267. package/skills/generating-mermaid-diagrams/assets/role-hierarchy/user-hierarchy.md +322 -0
  268. package/skills/generating-mermaid-diagrams/references/color-palette.md +464 -0
  269. package/skills/generating-mermaid-diagrams/references/diagram-conventions.md +313 -0
  270. package/skills/generating-mermaid-diagrams/references/erd-conventions.md +320 -0
  271. package/skills/generating-mermaid-diagrams/references/mermaid-reference.md +434 -0
  272. package/skills/generating-mermaid-diagrams/references/mermaid-styling.md +81 -0
  273. package/skills/generating-mermaid-diagrams/references/preview-guide.md +49 -0
  274. package/skills/generating-mermaid-diagrams/references/usage-examples.md +340 -0
  275. package/skills/generating-mermaid-diagrams/scripts/README.md +160 -0
  276. package/skills/generating-mermaid-diagrams/scripts/mermaid_preview.py +654 -0
  277. package/skills/generating-mermaid-diagrams/scripts/query-org-metadata.py +293 -0
  278. package/skills/generating-visual-diagrams/CREDITS.md +80 -0
  279. package/skills/generating-visual-diagrams/README.md +83 -0
  280. package/skills/generating-visual-diagrams/SKILL.md +208 -0
  281. package/skills/generating-visual-diagrams/assets/architecture/integration-flow.md +55 -0
  282. package/skills/generating-visual-diagrams/assets/erd/core-objects.md +131 -0
  283. package/skills/generating-visual-diagrams/assets/erd/custom-objects.md +60 -0
  284. package/skills/generating-visual-diagrams/assets/lwc/dashboard-card.md +45 -0
  285. package/skills/generating-visual-diagrams/assets/lwc/data-table.md +57 -0
  286. package/skills/generating-visual-diagrams/assets/lwc/record-form.md +60 -0
  287. package/skills/generating-visual-diagrams/assets/review/apex-review.md +57 -0
  288. package/skills/generating-visual-diagrams/assets/review/lwc-review.md +48 -0
  289. package/skills/generating-visual-diagrams/references/architect-aesthetic-guide.md +257 -0
  290. package/skills/generating-visual-diagrams/references/examples-index.md +35 -0
  291. package/skills/generating-visual-diagrams/references/gemini-cli-setup.md +65 -0
  292. package/skills/generating-visual-diagrams/references/interview-questions.md +529 -0
  293. package/skills/generating-visual-diagrams/references/iteration-workflow.md +173 -0
  294. package/skills/generating-visual-diagrams/scripts/check-prerequisites.sh +101 -0
  295. package/skills/generating-visual-diagrams/scripts/generate_image.py +243 -0
  296. package/skills/handling-sf-data/CREDITS.md +5 -0
  297. package/skills/handling-sf-data/README.md +112 -0
  298. package/skills/handling-sf-data/SKILL.md +235 -0
  299. package/skills/handling-sf-data/assets/bulk/bulk-insert-10000.apex +293 -0
  300. package/skills/handling-sf-data/assets/bulk/bulk-insert-200.apex +208 -0
  301. package/skills/handling-sf-data/assets/bulk/bulk-insert-500.apex +219 -0
  302. package/skills/handling-sf-data/assets/bulk/bulk-upsert-external-id.apex +324 -0
  303. package/skills/handling-sf-data/assets/cleanup/delete-by-created-date.apex +319 -0
  304. package/skills/handling-sf-data/assets/cleanup/delete-by-name.apex +240 -0
  305. package/skills/handling-sf-data/assets/cleanup/delete-test-data.apex +311 -0
  306. package/skills/handling-sf-data/assets/cleanup/rollback-transaction.apex +266 -0
  307. package/skills/handling-sf-data/assets/csv/account-import.csv +11 -0
  308. package/skills/handling-sf-data/assets/csv/contact-import.csv +11 -0
  309. package/skills/handling-sf-data/assets/csv/custom-object-import.csv +11 -0
  310. package/skills/handling-sf-data/assets/csv/opportunity-import.csv +11 -0
  311. package/skills/handling-sf-data/assets/factories/account-factory.apex +165 -0
  312. package/skills/handling-sf-data/assets/factories/case-factory.apex +237 -0
  313. package/skills/handling-sf-data/assets/factories/contact-factory.apex +168 -0
  314. package/skills/handling-sf-data/assets/factories/custom-object-factory.apex +260 -0
  315. package/skills/handling-sf-data/assets/factories/event-factory.apex +275 -0
  316. package/skills/handling-sf-data/assets/factories/hierarchy-factory.apex +372 -0
  317. package/skills/handling-sf-data/assets/factories/lead-factory.apex +190 -0
  318. package/skills/handling-sf-data/assets/factories/opportunity-factory.apex +206 -0
  319. package/skills/handling-sf-data/assets/factories/task-factory.apex +246 -0
  320. package/skills/handling-sf-data/assets/factories/user-factory.apex +278 -0
  321. package/skills/handling-sf-data/assets/json/account-contact-tree.json +130 -0
  322. package/skills/handling-sf-data/assets/json/account-opportunity-tree.json +110 -0
  323. package/skills/handling-sf-data/assets/json/full-hierarchy-tree.json +188 -0
  324. package/skills/handling-sf-data/assets/soql/aggregate.soql +226 -0
  325. package/skills/handling-sf-data/assets/soql/child-to-parent.soql +162 -0
  326. package/skills/handling-sf-data/assets/soql/parent-to-child.soql +153 -0
  327. package/skills/handling-sf-data/assets/soql/polymorphic.soql +198 -0
  328. package/skills/handling-sf-data/assets/soql/subquery.soql +287 -0
  329. package/skills/handling-sf-data/references/anonymous-apex-guide.md +98 -0
  330. package/skills/handling-sf-data/references/bulk-operations-guide.md +94 -0
  331. package/skills/handling-sf-data/references/bulk-testing-example.md +194 -0
  332. package/skills/handling-sf-data/references/cleanup-rollback-example.md +322 -0
  333. package/skills/handling-sf-data/references/cleanup-rollback-guide.md +84 -0
  334. package/skills/handling-sf-data/references/crud-workflow-example.md +183 -0
  335. package/skills/handling-sf-data/references/governor-limits-reference.md +74 -0
  336. package/skills/handling-sf-data/references/orchestration.md +174 -0
  337. package/skills/handling-sf-data/references/relationship-query-examples.md +249 -0
  338. package/skills/handling-sf-data/references/sf-cli-data-commands.md +158 -0
  339. package/skills/handling-sf-data/references/soql-relationship-guide.md +84 -0
  340. package/skills/handling-sf-data/references/test-data-best-practices.md +104 -0
  341. package/skills/handling-sf-data/references/test-data-factory-usage.md +290 -0
  342. package/skills/handling-sf-data/references/test-data-patterns.md +98 -0
  343. package/skills/handling-sf-data/scripts/soql_validator.py +292 -0
  344. package/skills/handling-sf-data/scripts/validate_data_operation.py +379 -0
  345. package/skills/harmonizing-datacloud/CREDITS.md +3 -0
  346. package/skills/harmonizing-datacloud/README.md +31 -0
  347. package/skills/harmonizing-datacloud/SKILL.md +117 -0
  348. package/skills/modeling-omnistudio-epc-catalog/CREDITS.md +14 -0
  349. package/skills/modeling-omnistudio-epc-catalog/README.md +89 -0
  350. package/skills/modeling-omnistudio-epc-catalog/SKILL.md +395 -0
  351. package/skills/modeling-omnistudio-epc-catalog/assets/attribute-assignment-template.json +402 -0
  352. package/skills/modeling-omnistudio-epc-catalog/assets/compiled-attribute-overrides-template.json +43 -0
  353. package/skills/modeling-omnistudio-epc-catalog/assets/completion-block-template.txt +8 -0
  354. package/skills/modeling-omnistudio-epc-catalog/assets/decomposition-relationships-template.json +233 -0
  355. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_AttributeAssignments.json +514 -0
  356. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_CompiledAttributeOverrides.json +21 -0
  357. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DataPack.json +649 -0
  358. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DecompositionRelationships.json +200 -0
  359. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ObjectFieldAttributes.json +138 -0
  360. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OrchestrationScenarios.json +54 -0
  361. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OverrideDefinitions.json +266 -0
  362. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ParentKeys.json +23 -0
  363. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PriceListEntries.json +54 -0
  364. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PricebookEntries.json +35 -0
  365. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ProductChildItems.json +34 -0
  366. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_RuleAssignments.json +21 -0
  367. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_AttributeAssignments.json +410 -0
  368. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DataPack.json +535 -0
  369. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DecompositionRelationships.json +35 -0
  370. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ObjectFieldAttributes.json +138 -0
  371. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_OrchestrationScenarios.json +28 -0
  372. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ParentKeys.json +23 -0
  373. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PriceListEntries.json +220 -0
  374. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PricebookEntries.json +35 -0
  375. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ProductChildItems.json +414 -0
  376. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_AttributeAssignments.json +382 -0
  377. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DataPack.json +565 -0
  378. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DecompositionRelationships.json +35 -0
  379. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ObjectFieldAttributes.json +104 -0
  380. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_OrchestrationScenarios.json +28 -0
  381. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ParentKeys.json +13 -0
  382. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PriceListEntries.json +106 -0
  383. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PricebookEntries.json +35 -0
  384. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ProductChildItems.json +72 -0
  385. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_AttributeAssignments.json +142 -0
  386. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DataPack.json +377 -0
  387. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DecompositionRelationships.json +35 -0
  388. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ObjectFieldAttributes.json +36 -0
  389. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ParentKeys.json +8 -0
  390. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PriceListEntries.json +54 -0
  391. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PricebookEntries.json +35 -0
  392. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ProductChildItems.json +34 -0
  393. package/skills/modeling-omnistudio-epc-catalog/assets/object-field-attributes-template.json +138 -0
  394. package/skills/modeling-omnistudio-epc-catalog/assets/orchestration-scenarios-template.json +54 -0
  395. package/skills/modeling-omnistudio-epc-catalog/assets/override-definitions-template.json +134 -0
  396. package/skills/modeling-omnistudio-epc-catalog/assets/parent-keys-template.json +29 -0
  397. package/skills/modeling-omnistudio-epc-catalog/assets/price-list-entries-template.json +158 -0
  398. package/skills/modeling-omnistudio-epc-catalog/assets/pricebook-entries-template.json +35 -0
  399. package/skills/modeling-omnistudio-epc-catalog/assets/product-child-item-template.json +338 -0
  400. package/skills/modeling-omnistudio-epc-catalog/assets/product2-offer-template.json +527 -0
  401. package/skills/modeling-omnistudio-epc-catalog/examples/.gitkeep +1 -0
  402. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_AttributeAssignments.json +95 -0
  403. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_CompiledAttributeOverrides.json +1 -0
  404. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DataPack.json +214 -0
  405. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DecompositionRelationships.json +28 -0
  406. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ObjectFieldAttributes.json +98 -0
  407. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OrchestrationScenarios.json +22 -0
  408. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OverrideDefinitions.json +1 -0
  409. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ParentKeys.json +13 -0
  410. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PriceListEntries.json +35 -0
  411. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PricebookEntries.json +28 -0
  412. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ProductChildItems.json +110 -0
  413. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/TRANSCRIPT.md +58 -0
  414. package/skills/modeling-omnistudio-epc-catalog/references/epc-field-guide.md +90 -0
  415. package/skills/modeling-omnistudio-epc-catalog/references/naming-conventions.md +80 -0
  416. package/skills/modeling-omnistudio-epc-catalog/references/scoring-model.md +57 -0
  417. package/skills/modeling-omnistudio-epc-catalog/scripts/cli-validation-commands.sh +19 -0
  418. package/skills/modeling-omnistudio-epc-catalog/scripts/sample-invocations.sh +18 -0
  419. package/skills/orchestrating-datacloud/CREDITS.md +15 -0
  420. package/skills/orchestrating-datacloud/README.md +129 -0
  421. package/skills/orchestrating-datacloud/SKILL.md +236 -0
  422. package/skills/orchestrating-datacloud/UPSTREAM.md +45 -0
  423. package/skills/orchestrating-datacloud/assets/definitions/activation-target.template.json +5 -0
  424. package/skills/orchestrating-datacloud/assets/definitions/activation.template.json +7 -0
  425. package/skills/orchestrating-datacloud/assets/definitions/calculated-insight.template.json +7 -0
  426. package/skills/orchestrating-datacloud/assets/definitions/data-action-target.template.json +5 -0
  427. package/skills/orchestrating-datacloud/assets/definitions/data-action.template.json +5 -0
  428. package/skills/orchestrating-datacloud/assets/definitions/data-graph.template.json +21 -0
  429. package/skills/orchestrating-datacloud/assets/definitions/data-stream.template.json +55 -0
  430. package/skills/orchestrating-datacloud/assets/definitions/dmo.template.json +17 -0
  431. package/skills/orchestrating-datacloud/assets/definitions/identity-resolution.template.json +30 -0
  432. package/skills/orchestrating-datacloud/assets/definitions/mapping.template.json +14 -0
  433. package/skills/orchestrating-datacloud/assets/definitions/relationship.template.json +12 -0
  434. package/skills/orchestrating-datacloud/assets/definitions/search-index.template.json +9 -0
  435. package/skills/orchestrating-datacloud/assets/definitions/segment.template.json +16 -0
  436. package/skills/orchestrating-datacloud/references/feature-readiness.md +157 -0
  437. package/skills/orchestrating-datacloud/references/plugin-setup.md +140 -0
  438. package/skills/orchestrating-datacloud/scripts/bootstrap-plugin.sh +53 -0
  439. package/skills/orchestrating-datacloud/scripts/diagnose-org.mjs +511 -0
  440. package/skills/orchestrating-datacloud/scripts/generate-manifest.mjs +68 -0
  441. package/skills/orchestrating-datacloud/scripts/verify-plugin.sh +58 -0
  442. package/skills/preparing-datacloud/CREDITS.md +7 -0
  443. package/skills/preparing-datacloud/README.md +51 -0
  444. package/skills/preparing-datacloud/SKILL.md +191 -0
  445. package/skills/preparing-datacloud/examples/ingestion-api/.env.example +8 -0
  446. package/skills/preparing-datacloud/examples/ingestion-api/README.md +48 -0
  447. package/skills/preparing-datacloud/examples/ingestion-api/send-data.py +144 -0
  448. package/skills/querying-soql/CREDITS.md +21 -0
  449. package/skills/querying-soql/README.md +41 -0
  450. package/skills/querying-soql/SKILL.md +143 -0
  451. package/skills/querying-soql/assets/aggregate-queries.soql +242 -0
  452. package/skills/querying-soql/assets/basic-queries.soql +188 -0
  453. package/skills/querying-soql/assets/bulkified-query-pattern.cls +280 -0
  454. package/skills/querying-soql/assets/optimization-patterns.soql +259 -0
  455. package/skills/querying-soql/assets/relationship-queries.soql +203 -0
  456. package/skills/querying-soql/assets/selector-class.cls +219 -0
  457. package/skills/querying-soql/references/anti-patterns.md +348 -0
  458. package/skills/querying-soql/references/cli-commands.md +358 -0
  459. package/skills/querying-soql/references/field-coverage-rules.md +514 -0
  460. package/skills/querying-soql/references/query-optimization.md +142 -0
  461. package/skills/querying-soql/references/selector-patterns.md +479 -0
  462. package/skills/querying-soql/references/soql-reference.md +227 -0
  463. package/skills/querying-soql/references/soql-syntax-reference.md +208 -0
  464. package/skills/querying-soql/scripts/post-tool-validate.py +322 -0
  465. package/skills/retrieving-datacloud/CREDITS.md +7 -0
  466. package/skills/retrieving-datacloud/README.md +44 -0
  467. package/skills/retrieving-datacloud/SKILL.md +120 -0
  468. package/skills/retrieving-datacloud/examples/search-indexes/hybrid-structured.json +44 -0
  469. package/skills/retrieving-datacloud/examples/search-indexes/vector-knowledge.json +43 -0
  470. package/skills/running-apex-tests/CREDITS.md +22 -0
  471. package/skills/running-apex-tests/README.md +94 -0
  472. package/skills/running-apex-tests/SKILL.md +158 -0
  473. package/skills/running-apex-tests/assets/basic-test.cls +169 -0
  474. package/skills/running-apex-tests/assets/bulk-test.cls +255 -0
  475. package/skills/running-apex-tests/assets/dml-mock.cls +339 -0
  476. package/skills/running-apex-tests/assets/mock-callout-test.cls +353 -0
  477. package/skills/running-apex-tests/assets/stub-provider-example.cls +364 -0
  478. package/skills/running-apex-tests/assets/test-data-factory.cls +328 -0
  479. package/skills/running-apex-tests/hooks/scripts/parse-test-results.py +364 -0
  480. package/skills/running-apex-tests/references/cli-commands.md +289 -0
  481. package/skills/running-apex-tests/references/mocking-patterns.md +500 -0
  482. package/skills/running-apex-tests/references/performance-optimization.md +283 -0
  483. package/skills/running-apex-tests/references/test-fix-loop.md +49 -0
  484. package/skills/running-apex-tests/references/test-patterns.md +154 -0
  485. package/skills/running-apex-tests/references/testing-best-practices.md +509 -0
  486. package/skills/segmenting-datacloud/CREDITS.md +3 -0
  487. package/skills/segmenting-datacloud/README.md +36 -0
  488. package/skills/segmenting-datacloud/SKILL.md +115 -0
@@ -0,0 +1,45 @@
1
+ # Upstream Distillation Map for orchestrating-datacloud
2
+
3
+ This file exists to make downstream maintenance easy without sacrificing sf-skills consistency.
4
+
5
+ ## Maintenance contract
6
+
7
+ When upstream changes, do **not** copy blindly.
8
+
9
+ Instead:
10
+ 1. review new upstream commits
11
+ 2. identify changed command behaviors, install patterns, or gotchas
12
+ 3. update sf-skills prompts and templates in a distilled form
13
+ 4. keep naming, attribution, and cross-skill boundaries consistent with sf-skills
14
+ 5. update this file with the new reviewed commit SHAs
15
+
16
+ ## High-priority upstream areas to re-check
17
+
18
+ - installation / linking workflow for the community plugin
19
+ - command counts and topic coverage
20
+ - API-version guidance
21
+ - known issues and bug-fix notes
22
+ - live-tested command set
23
+ - any new commands affecting Connect / Prepare / Harmonize / Segment / Act / Retrieve boundaries
24
+ - connector-specific payload examples worth distilling into generic repo-safe examples
25
+ - search-index / hybrid-search guidance and any command-surface changes around hybrid scoring or prefilter behavior
26
+ - Ingestion API schema-upload flow, send-data examples, and problem-record guidance
27
+ - unstructured-source setup differences between connection-level reruns, stream refreshes, and initial UI seeding
28
+ - UI-only gaps where upstream introduces browser automation; validate before importing
29
+
30
+ ## Cross-skill boundary reminders
31
+
32
+ Keep Data Cloud product work in `*-datacloud`, but do not blur into:
33
+ - `observing-agentforce` for STDM/session tracing/parquet workflows
34
+ - `querying-soql` for CRM SOQL-only tasks
35
+ - `handling-sf-data` for CRM record seeding/cleanup
36
+ - `generating-*` skills for CRM schema creation (custom objects, fields, validation rules, etc.)
37
+
38
+ ## Local helper files in this family
39
+
40
+ - `references/plugin-setup.md`
41
+ - `scripts/bootstrap-plugin.sh`
42
+ - `scripts/verify-plugin.sh`
43
+ - `assets/definitions/`
44
+
45
+ These are sf-skills-owned conveniences and should evolve independently from upstream when that improves user experience.
@@ -0,0 +1,5 @@
1
+ {
2
+ "developerName": "CRM_Target",
3
+ "displayName": "CRM Target",
4
+ "description": "Example activation target definition for a downstream destination"
5
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "developerName": "High_Value_Customers_Activation",
3
+ "displayName": "High Value Customers Activation",
4
+ "description": "Example activation linking a published segment to a destination target",
5
+ "segmentName": "High_Value_Customers",
6
+ "activationTargetName": "CRM_Target"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "developerName": "Lifetime_Value",
3
+ "displayName": "Lifetime Value",
4
+ "description": "Example calculated insight over an order-style DMO",
5
+ "definitionType": "CALCULATED_METRIC",
6
+ "expression": "SELECT ssot__IndividualId__c, SUM(ssot__TotalAmount__c) AS total_spend FROM ssot__SalesOrder__dlm GROUP BY ssot__IndividualId__c"
7
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "developerName": "Webhook_Target",
3
+ "displayName": "Webhook Target",
4
+ "description": "Example data action target for downstream delivery"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "developerName": "Notify_High_Value_Customer_System",
3
+ "displayName": "Notify High Value Customer System",
4
+ "description": "Example data action definition that uses a downstream data action target"
5
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "developerName": "Customer_360_Graph",
3
+ "displayName": "Customer 360 Graph",
4
+ "description": "Example Data Graph rooted on a unified customer entity",
5
+ "sourceObject": {
6
+ "name": "UnifiedssotIndividualMain__dlm",
7
+ "type": "derived",
8
+ "fields": [
9
+ {
10
+ "name": "ssot__Id__c"
11
+ },
12
+ {
13
+ "name": "ssot__FirstName__c"
14
+ },
15
+ {
16
+ "name": "ssot__LastName__c"
17
+ }
18
+ ],
19
+ "relatedObjects": []
20
+ }
21
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "Customer_Stream",
3
+ "label": "Customer Stream",
4
+ "datasource": "SalesforceDotCom_Home",
5
+ "datastreamType": "CONNECTORSFRAMEWORK",
6
+ "connectorInfo": {
7
+ "connectorType": "SalesforceDotCom",
8
+ "connectorDetails": {
9
+ "name": "SalesforceDotCom_Home",
10
+ "sourceObject": "Custom_Object__c"
11
+ }
12
+ },
13
+ "dataLakeObjectInfo": {
14
+ "label": "Customer",
15
+ "name": "Customer__dll",
16
+ "category": "Profile",
17
+ "dataspaceInfo": [
18
+ {
19
+ "name": "Default"
20
+ }
21
+ ],
22
+ "dataLakeFieldInputRepresentations": [
23
+ {
24
+ "name": "Id",
25
+ "label": "Record ID",
26
+ "dataType": "Text",
27
+ "isPrimaryKey": true
28
+ },
29
+ {
30
+ "name": "External_Id_c",
31
+ "label": "External ID",
32
+ "dataType": "Text",
33
+ "isPrimaryKey": false
34
+ }
35
+ ]
36
+ },
37
+ "sourceFields": [
38
+ {
39
+ "name": "Id",
40
+ "dataType": "Text"
41
+ },
42
+ {
43
+ "name": "External_Id__c",
44
+ "dataType": "Text"
45
+ }
46
+ ],
47
+ "mappings": [],
48
+ "refreshConfig": {
49
+ "isAccelerationEnabled": true,
50
+ "refreshMode": "UPSERT",
51
+ "frequency": {
52
+ "frequencyType": "HOURLY"
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "developerName": "Customer_Profile__dlm",
3
+ "label": "Customer Profile",
4
+ "category": "Profile",
5
+ "fields": [
6
+ {
7
+ "name": "External_Id_c__c",
8
+ "label": "External ID",
9
+ "type": "Text"
10
+ },
11
+ {
12
+ "name": "Preferred_Tier_c__c",
13
+ "label": "Preferred Tier",
14
+ "type": "Text"
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "label": "Main",
3
+ "description": "Generic identity resolution ruleset using customer identifiers and contact points",
4
+ "configurationType": "individual",
5
+ "rulesetId": "main",
6
+ "doesRunAutomatically": false,
7
+ "matchRules": [
8
+ {
9
+ "label": "Exact Email",
10
+ "criteria": [
11
+ {
12
+ "entityName": "ssot__ContactPointEmail__dlm",
13
+ "fieldName": "ssot__EmailAddress__c",
14
+ "matchMethodType": "exactnormalized",
15
+ "caseSensitiveMatch": false,
16
+ "shouldMatchOnBlank": false
17
+ }
18
+ ]
19
+ }
20
+ ],
21
+ "reconciliationRules": [
22
+ {
23
+ "entityName": "ssot__Individual__dlm",
24
+ "ruleType": "lastupdated",
25
+ "shouldIgnoreEmptyValue": true,
26
+ "sources": [],
27
+ "fields": []
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "sourceObjectName": "Customer__dll",
3
+ "targetObjectName": "Customer_Profile__dlm",
4
+ "fieldMappings": [
5
+ {
6
+ "sourceFieldName": "External_Id_c",
7
+ "targetFieldName": "External_Id_c__c"
8
+ },
9
+ {
10
+ "sourceFieldName": "Preferred_Tier_c",
11
+ "targetFieldName": "Preferred_Tier_c__c"
12
+ }
13
+ ]
14
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "relationships": [
3
+ {
4
+ "sourceObjectName": "Order_Header__dlm",
5
+ "targetObjectName": "ssot__Individual__dlm",
6
+ "cardinality": "ManyToOne",
7
+ "sourceFieldName": "Customer_ID_c__c",
8
+ "targetFieldName": "ssot__PartyId__c",
9
+ "relationshipOwner": "DataCloud"
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "developerName": "Knowledge_Index",
3
+ "displayName": "Knowledge Index",
4
+ "description": "Example semantic search index for a structured or unstructured Data Cloud source",
5
+ "sourceObject": "KnowledgeArticleVersion__dlm",
6
+ "embeddingModel": "e5_large_v2",
7
+ "chunkingStrategy": "passage_extraction",
8
+ "similarityMetric": "COSINE"
9
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "displayName": "High Value Customers",
3
+ "developerName": "High_Value_Customers",
4
+ "description": "Example segment built from a unified DMO",
5
+ "segmentType": "Dbt",
6
+ "includeDbt": {
7
+ "models": {
8
+ "models": [
9
+ {
10
+ "name": "UnifiedCustomers",
11
+ "sql": "SELECT ui.ssot__Id__c FROM UnifiedssotIndividualMain__dlm ui JOIN ssot__SalesOrder__dlm so ON ui.ssot__Id__c = so.ssot__IndividualId__c GROUP BY ui.ssot__Id__c HAVING SUM(so.ssot__TotalAmount__c) > 1000"
12
+ }
13
+ ]
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,157 @@
1
+ # Data Cloud Feature Readiness
2
+
3
+ Use this guide when a Data Cloud command fails and you need to decide whether the issue is:
4
+ - runtime / plugin setup
5
+ - org authentication
6
+ - product provisioning
7
+ - feature gating
8
+ - empty-but-enabled configuration
9
+ - a bad table name or wrong probe
10
+
11
+ The goal is to **detect first, classify second, and guide third** instead of blindly executing a command and surfacing a raw error.
12
+
13
+ ## Core principle
14
+
15
+ Do **not** treat one failing command as proof that all of Data Cloud is unavailable.
16
+
17
+ Different command families hit different backend surfaces. A failure in one area can coexist with successful read-only access in another.
18
+
19
+ Examples:
20
+ - `sf data360 doctor` checks the **search-index** endpoint only.
21
+ - `sf data360 query describe` checks the **query** plane and requires a real DMO/DLO table name.
22
+ - `sf data360 dmo list` checks a **catalog/listing** endpoint.
23
+ - `sf data360 activation platforms` checks the **activation destination** surface.
24
+
25
+ ## Recommended first step
26
+
27
+ Run the shared readiness classifier before mutation-heavy work:
28
+
29
+ ```bash
30
+ node ~/.claude/skills/orchestrating-datacloud/scripts/diagnose-org.mjs -o myorg --json
31
+ ```
32
+
33
+ For retrieve/query work, only add a table probe when you already know the table name is real:
34
+
35
+ ```bash
36
+ node ~/.claude/skills/orchestrating-datacloud/scripts/diagnose-org.mjs -o myorg --phase retrieve --describe-table MyDMO__dlm --json
37
+ ```
38
+
39
+ ## Signal matrix
40
+
41
+ | Signal | What it usually means | What to do next | What **not** to assume |
42
+ |---|---|---|---|
43
+ | `sf data360 man` fails | Runtime/plugin missing | Install or relink the community runtime | Do not debug org features yet |
44
+ | `sf org display -o <org>` fails | Org auth missing | Re-authenticate the org | Do not blame Data Cloud |
45
+ | `No results.` | Feature is reachable but currently empty | Continue with create/setup flow | Do not say the feature is disabled |
46
+ | `This feature is not currently enabled for this user type or org: [CdpXxx]` | Specific module is gated for the current org/user | Guide the user to setup/provisioning/permission review for that module | Do not say the entire product is disabled |
47
+ | `Couldn't find CDP tenant ID. Please enable CDP first.` | The **query** plane could not resolve a CDP tenant for that request | Re-check broader readiness with `data-space list`, `dmo list`, and `doctor`; then retry with a known table if appropriate | Do not treat this as universal proof that all Data Cloud endpoints are off |
48
+ | `NOT_FOUND: DataModelEntity ... is not found` | The table name is not queryable in that org | Pick a real DMO/DLO from `dmo list`, `dlo list`, or `dmo get` | Do not say the whole query feature is unavailable |
49
+ | `Request failed` | Generic endpoint failure or inconclusive response | Fall back to neighboring read-only probes | Do not stop after one generic failure |
50
+
51
+ ## High-signal feature gates
52
+
53
+ ### `CdpDataStreams`
54
+ Typical impact:
55
+ - `sf data360 data-stream list`
56
+ - prepare / ingestion workflows
57
+
58
+ Suggested guidance:
59
+ - review Data Cloud Setup provisioning
60
+ - review source connector readiness
61
+ - confirm the user has the right Data Cloud permissions
62
+ - for Salesforce CRM ingestion, confirm the connector/integration user has object + field read access in the source org
63
+
64
+ ### `CdpIdentityResolution`
65
+ Typical impact:
66
+ - `sf data360 identity-resolution list`
67
+ - harmonize / unified profile workflows
68
+
69
+ Suggested guidance:
70
+ - review harmonization and identity-resolution entitlements
71
+ - verify Data Cloud permission sets for the acting user
72
+ - confirm upstream DLO/DMO work is already healthy before retrying IR
73
+
74
+ ### `CdpActivationTarget`
75
+ Typical impact:
76
+ - `sf data360 activation-target list`
77
+ - downstream audience delivery setup
78
+
79
+ Suggested guidance:
80
+ - review Data Cloud activation permissions
81
+ - review target/destination setup in Data Cloud Setup
82
+ - confirm the org/edition actually exposes activation-target management for that user
83
+
84
+ ### `CdpActivationExternalPlatform`
85
+ Typical impact:
86
+ - `sf data360 activation platforms`
87
+ - platform catalog for destinations such as ads or storage targets
88
+
89
+ Suggested guidance:
90
+ - review Activation Targets setup
91
+ - review destination-specific authentication/configuration
92
+ - check whether the org exposes additional toggles in **Data Cloud Setup → Feature Manager**
93
+
94
+ ### `CdpDataSpace`
95
+ Typical impact:
96
+ - `sf data360 data-space list`
97
+ - core multi-space administration
98
+
99
+ Suggested guidance:
100
+ - review core Data Cloud provisioning and user access
101
+ - confirm the user is intended to administer/view data spaces
102
+
103
+ ## What is usually **not** fully programmatic
104
+
105
+ Do not promise a pure CLI flow for:
106
+ - initial Data Cloud tenant provisioning
107
+ - license assignment
108
+ - every org-wide Data Cloud enablement step
109
+
110
+ These commonly require Setup UI, provisioning, licensing, or account-level activation.
111
+
112
+ ## What is often programmatic **after** provisioning
113
+
114
+ Once the org is properly provisioned, many workflows are programmatic through `sf data360`, including:
115
+ - data-space listing / get / create / update
116
+ - DMO catalog inspection and some DMO mutations
117
+ - segment and calculated insight lifecycle operations
118
+ - activation target and data action target operations
119
+ - search-index lifecycle operations
120
+ - hybrid search and related retrieve-plane workflows on newer runtime versions
121
+
122
+ Exact coverage still depends on org entitlements and the user's permissions.
123
+
124
+ ## Known partial-automation gap
125
+
126
+ Some external database connectors can be created via API while the corresponding data-stream creation flow still requires UI steps or org-specific browser automation.
127
+
128
+ Practical guidance:
129
+ - treat connection creation and stream creation as separate capability checks
130
+ - do not assume a successful external connection create call means `data-stream create` will work for that connector
131
+ - if the org relies on that path, guide the user toward manual UI creation or a locally validated Playwright/browser automation helper rather than promising a generic CLI-only workflow
132
+
133
+ ## User-facing guidance model
134
+
135
+ When blocked, respond in this order:
136
+ 1. **Classify the failing surface** — runtime, auth, provisioning, feature gate, empty state, or bad table
137
+ 2. **Show the evidence** — the specific command + high-signal error text
138
+ 3. **Give the next setup step** — Data Cloud Setup, permissions, Feature Manager, source-object permissions, destination auth, etc.
139
+ 4. **Avoid false claims** — don't say "Data Cloud is off" unless multiple core probes support that conclusion
140
+
141
+ ## Setup guidance to point users toward
142
+
143
+ Depending on the failing feature, guide users to review:
144
+ - **Setup → Data Cloud Setup** for core provisioning / Get Started flow
145
+ - **Standard Data Cloud permission sets** appropriate to the task (for example Architect/Admin vs activation-focused roles)
146
+ - **Data Cloud Setup → Feature Manager** for org-specific toggles or beta features that are actually exposed there
147
+ - **Source org permissions** for CRM ingestion users when streams/connectors depend on object/field access
148
+ - **Activation target and destination authentication** when activation features are partially enabled but not usable yet
149
+
150
+ ## Skill author checklist
151
+
152
+ Before telling the user a feature is unavailable:
153
+ - [ ] Did I run a targeted probe for this phase?
154
+ - [ ] Did I check at least one neighboring read-only probe?
155
+ - [ ] Did I avoid treating `doctor` as a full product readiness check?
156
+ - [ ] Did I avoid treating `query describe` as a universal tenant probe?
157
+ - [ ] Did I tell the user exactly what setup area to review next?
@@ -0,0 +1,140 @@
1
+ # Data Cloud Community Plugin Setup
2
+
3
+ The orchestrating-datacloud family uses a **community `sf data360` CLI runtime**. sf-skills does not vendor or fork that plugin.
4
+
5
+ ## Why this setup exists
6
+
7
+ - keeps sf-skills focused on skills, prompts, docs, and templates
8
+ - lets the upstream runtime continue to evolve independently
9
+ - avoids MCP and keeps execution deterministic
10
+
11
+ ## Prerequisites
12
+
13
+ - Node.js 18+
14
+ - yarn
15
+ - Salesforce CLI (`sf`)
16
+ - git
17
+ - a Data Cloud-enabled org authenticated with `sf org login web -a <alias>`
18
+
19
+ ## Recommended setup path
20
+
21
+ The command examples below assume the skill is installed under `~/.claude/skills/` via the full Claude Code installer. If you are working from a cloned sf-skills repo instead, run the same scripts from that checkout path.
22
+
23
+ If you use the Python installer, it can install this optional runtime for you:
24
+
25
+ ```bash
26
+ python3 ~/.claude/sf-skills-install.py --with-datacloud-runtime
27
+ ```
28
+
29
+ Or use the helper script directly:
30
+
31
+ ```bash
32
+ bash ~/.claude/skills/orchestrating-datacloud/scripts/bootstrap-plugin.sh
33
+ ```
34
+
35
+ By default it clones the plugin into `~/.sf-community-tools/datacloud/sf-cli-plugin-data360`, installs dependencies, compiles it, and links it into the local Salesforce CLI.
36
+
37
+ ## Manual setup
38
+
39
+ ```bash
40
+ git clone https://github.com/Jaganpro/sf-cli-plugin-data360.git
41
+ cd sf-cli-plugin-data360
42
+ yarn install
43
+ npx tsc
44
+ node ~/.claude/skills/orchestrating-datacloud/scripts/generate-manifest.mjs .
45
+ sf plugins link .
46
+ ```
47
+
48
+ ## Verification
49
+
50
+ ```bash
51
+ sf data360 man
52
+ bash ~/.claude/skills/orchestrating-datacloud/scripts/verify-plugin.sh
53
+ bash ~/.claude/skills/orchestrating-datacloud/scripts/verify-plugin.sh myorg
54
+ node ~/.claude/skills/orchestrating-datacloud/scripts/diagnose-org.mjs -o myorg --json
55
+ ```
56
+
57
+ For newer command families such as `sf data360 query hybrid` and recent pagination fixes, update the community runtime to the latest upstream commit by re-running the bootstrap helper.
58
+
59
+ `sf data360 doctor` is useful, but it is not the only readiness signal. On partially provisioned orgs it can fail even when other read-only Data Cloud commands still work. The helper script treats `doctor` as advisory and falls back to additional smoke checks.
60
+
61
+ Use `diagnose-org.mjs` when you need phase-specific readiness classification instead of a simple pass/fail check. It helps distinguish:
62
+ - empty-but-enabled modules
63
+ - feature-gated modules
64
+ - query-plane issues
65
+ - runtime/auth failures
66
+
67
+ ## Output-noise tip
68
+
69
+ When using linked community plugins, stderr can include warning noise. For normal usage, prefer:
70
+
71
+ ```bash
72
+ sf data360 dmo list --all -o myorg 2>/dev/null
73
+ sf data360 segment list -o myorg 2>/dev/null
74
+ ```
75
+
76
+ ## Troubleshooting
77
+
78
+ ### ESM auto-transpile warning
79
+
80
+ If you see `Warning: @gthoppae/sf-cli-plugin-data360 is a linked ESM module and cannot be auto-transpiled`, generate the oclif command manifest:
81
+
82
+ ```bash
83
+ node ~/.claude/skills/orchestrating-datacloud/scripts/generate-manifest.mjs ~/.sf-community-tools/datacloud/sf-cli-plugin-data360
84
+ ```
85
+
86
+ This tells oclif to use pre-compiled output directly instead of attempting auto-transpilation. The `npx oclif manifest` alternative may fail on newer Node.js versions due to `@oclif/core` version mismatches.
87
+
88
+ ### Clone error references `gthoppae/sf-cli-plugin-data360`
89
+
90
+ If the clone failure mentions `gthoppae/sf-cli-plugin-data360`, your local `~/.claude/sf-skills-install.py` copy is outdated. Refresh the installer first, then retry the optional runtime install:
91
+
92
+ ```bash
93
+ python3 ~/.claude/sf-skills-install.py --force-update
94
+ python3 ~/.claude/sf-skills-install.py --with-datacloud-runtime
95
+ ```
96
+
97
+ Or rerun the latest installer directly from GitHub:
98
+
99
+ ```bash
100
+ curl -sSL https://raw.githubusercontent.com/Jaganpro/sf-skills/main/tools/install.py | python3 - --with-datacloud-runtime
101
+ ```
102
+
103
+ ### Plugin not found after install
104
+
105
+ If `sf` was installed globally (with `sudo`), the default data directory may be root-owned. Set `SF_DATA_DIR` in your shell profile:
106
+
107
+ ```bash
108
+ export SF_DATA_DIR="${HOME}/.local/share/sf"
109
+ ```
110
+
111
+ Then re-run `sf plugins link .` from the plugin directory, or re-run the bootstrap script.
112
+
113
+ ## What to do if the plugin is missing
114
+
115
+ 1. run the bootstrap script
116
+ 2. re-open your shell if `sf` plugin discovery is stale
117
+ 3. verify with `sf data360 man`
118
+ 4. only then start live Data Cloud work
119
+
120
+ ## Setup guidance reminder
121
+
122
+ The runtime can help you **detect** missing capability, but it cannot fully replace Setup for:
123
+ - initial Data Cloud provisioning / tenant creation
124
+ - license assignment
125
+ - every org-wide feature enablement step
126
+
127
+ When a module is gated, guide users toward the right setup area instead of promising a fully programmatic enablement flow. See [feature-readiness.md](feature-readiness.md).
128
+
129
+ ## Scope reminder
130
+
131
+ This setup is for the Data Cloud product family:
132
+ - `orchestrating-datacloud`
133
+ - `connecting-datacloud`
134
+ - `preparing-datacloud`
135
+ - `harmonizing-datacloud`
136
+ - `segmenting-datacloud`
137
+ - `activating-datacloud`
138
+ - `retrieving-datacloud`
139
+
140
+ For STDM/session tracing/parquet work, use `observing-agentforce` instead of this plugin-focused family.
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ PLUGIN_REPO="${PLUGIN_REPO:-https://github.com/Jaganpro/sf-cli-plugin-data360.git}"
5
+ BASE_DIR="${1:-${HOME}/.sf-community-tools/datacloud}"
6
+ PLUGIN_DIR="${BASE_DIR}/sf-cli-plugin-data360"
7
+ export SF_DATA_DIR="${SF_DATA_DIR:-${HOME}/.local/share/sf}"
8
+
9
+ need() {
10
+ command -v "$1" >/dev/null 2>&1 || {
11
+ echo "Missing required command: $1" >&2
12
+ exit 1
13
+ }
14
+ }
15
+
16
+ need git
17
+ need node
18
+ need yarn
19
+ need sf
20
+ need npx
21
+
22
+ mkdir -p "${BASE_DIR}"
23
+
24
+ if [[ -d "${PLUGIN_DIR}/.git" ]]; then
25
+ echo "Updating existing plugin checkout: ${PLUGIN_DIR}"
26
+ git -C "${PLUGIN_DIR}" pull --ff-only
27
+ else
28
+ echo "Cloning plugin into: ${PLUGIN_DIR}"
29
+ git clone "${PLUGIN_REPO}" "${PLUGIN_DIR}"
30
+ fi
31
+
32
+ cd "${PLUGIN_DIR}"
33
+
34
+ echo "Installing dependencies..."
35
+ yarn install
36
+
37
+ echo "Compiling plugin..."
38
+ npx tsc
39
+
40
+ echo "Generating oclif command manifest..."
41
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
42
+ node "${SCRIPT_DIR}/generate-manifest.mjs" "${PLUGIN_DIR}"
43
+
44
+ echo "Linking plugin into Salesforce CLI..."
45
+ mkdir -p "${SF_DATA_DIR}"
46
+ sf plugins link .
47
+
48
+ echo "Verifying runtime..."
49
+ sf data360 man >/dev/null
50
+
51
+ echo "Done. Community Data Cloud runtime is linked."
52
+ echo "Location: ${PLUGIN_DIR}"
53
+ echo "Try: sf data360 man"