@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,509 @@
1
+ <!-- Parent: running-apex-tests/SKILL.md -->
2
+ # Apex Testing Best Practices
3
+
4
+ ## Overview
5
+
6
+ This guide covers best practices for writing effective, maintainable Apex tests that ensure code quality and prevent regressions.
7
+
8
+ ## The Testing Pyramid
9
+
10
+ ```
11
+ ╱╲
12
+ ╱ ╲
13
+ ╱ E2E╲ Few end-to-end tests
14
+ ╱──────╲
15
+ ╱ ╲
16
+ ╱Integration╲ Moderate integration tests
17
+ ╱────────────╲
18
+ ╱ ╲
19
+ ╱ Unit Tests ╲ Many unit tests
20
+ ╱──────────────────╲
21
+ ```
22
+
23
+ ## Core Principles
24
+
25
+ ### 1. Test One Thing Per Method
26
+
27
+ ```apex
28
+ // ❌ BAD: Testing multiple things
29
+ @IsTest
30
+ static void testEverything() {
31
+ Account acc = new Account(Name = 'Test');
32
+ insert acc;
33
+ acc.Name = 'Updated';
34
+ update acc;
35
+ delete acc;
36
+ // What exactly are we testing?
37
+ }
38
+
39
+ // ✅ GOOD: Single responsibility
40
+ @IsTest
41
+ static void testAccountInsert_ValidName_Success() {
42
+ Account acc = new Account(Name = 'Test');
43
+ insert acc;
44
+ Assert.isNotNull(acc.Id, 'Account should be inserted');
45
+ }
46
+
47
+ @IsTest
48
+ static void testAccountUpdate_ChangeName_Success() {
49
+ Account acc = TestDataFactory.createAndInsertAccounts(1)[0];
50
+ acc.Name = 'Updated';
51
+ update acc;
52
+ Account updated = [SELECT Name FROM Account WHERE Id = :acc.Id];
53
+ Assert.areEqual('Updated', updated.Name, 'Name should be updated');
54
+ }
55
+ ```
56
+
57
+ ### 2. Use Descriptive Test Names
58
+
59
+ ```apex
60
+ // ❌ BAD: Unclear names
61
+ @IsTest static void test1() { }
62
+ @IsTest static void testMethod() { }
63
+
64
+ // ✅ GOOD: Describes scenario, condition, and expectation
65
+ @IsTest static void testCreateAccount_WithValidData_ReturnsId() { }
66
+ @IsTest static void testCreateAccount_WithNullName_ThrowsException() { }
67
+ @IsTest static void testBulkInsert_251Records_AllSucceed() { }
68
+ ```
69
+
70
+ ### 3. Follow AAA Pattern (Arrange-Act-Assert)
71
+
72
+ ```apex
73
+ @IsTest
74
+ static void testCalculateDiscount_VIPCustomer_Returns20Percent() {
75
+ // ARRANGE - Set up test data
76
+ Account vipAccount = new Account(
77
+ Name = 'VIP Customer',
78
+ Type = 'VIP'
79
+ );
80
+ insert vipAccount;
81
+
82
+ // ACT - Execute the code under test
83
+ Test.startTest();
84
+ Decimal discount = DiscountService.calculateDiscount(vipAccount.Id);
85
+ Test.stopTest();
86
+
87
+ // ASSERT - Verify results
88
+ Assert.areEqual(0.20, discount, 'VIP customers should get 20% discount');
89
+ }
90
+ ```
91
+
92
+ ## Test Data Factory Pattern
93
+
94
+ ### Why Use Test Data Factory?
95
+
96
+ 1. **Consistency**: Same data creation logic everywhere
97
+ 2. **Maintainability**: Change in one place affects all tests
98
+ 3. **Readability**: Tests focus on logic, not data setup
99
+ 4. **Flexibility**: Easy to create variations
100
+
101
+ ### Factory Methods
102
+
103
+ ```apex
104
+ @IsTest
105
+ public class TestDataFactory {
106
+
107
+ // Basic creation (no insert)
108
+ public static List<Account> createAccounts(Integer count) {
109
+ List<Account> accounts = new List<Account>();
110
+ for (Integer i = 0; i < count; i++) {
111
+ accounts.add(new Account(
112
+ Name = 'Test Account ' + i,
113
+ Industry = 'Technology'
114
+ ));
115
+ }
116
+ return accounts;
117
+ }
118
+
119
+ // Create and insert
120
+ public static List<Account> createAndInsertAccounts(Integer count) {
121
+ List<Account> accounts = createAccounts(count);
122
+ insert accounts;
123
+ return accounts;
124
+ }
125
+
126
+ // With specific attributes
127
+ public static Account createAccount(String name, String industry) {
128
+ return new Account(Name = name, Industry = industry);
129
+ }
130
+ }
131
+ ```
132
+
133
+ ## @TestSetup for Efficiency
134
+
135
+ ```apex
136
+ @IsTest
137
+ private class AccountServiceTest {
138
+
139
+ @TestSetup
140
+ static void setupTestData() {
141
+ // This runs ONCE for all test methods in the class
142
+ // Data is rolled back after each test method
143
+ List<Account> accounts = TestDataFactory.createAccounts(10);
144
+ insert accounts;
145
+
146
+ List<Contact> contacts = new List<Contact>();
147
+ for (Account acc : accounts) {
148
+ contacts.addAll(TestDataFactory.createContacts(5, acc.Id));
149
+ }
150
+ insert contacts;
151
+ }
152
+
153
+ @IsTest
154
+ static void testMethod1() {
155
+ // Has access to 10 accounts and 50 contacts
156
+ List<Account> accounts = [SELECT Id FROM Account];
157
+ Assert.areEqual(10, accounts.size());
158
+ }
159
+
160
+ @IsTest
161
+ static void testMethod2() {
162
+ // ALSO has access to 10 accounts and 50 contacts
163
+ // @TestSetup data is available to all test methods
164
+ List<Contact> contacts = [SELECT Id FROM Contact];
165
+ Assert.areEqual(50, contacts.size());
166
+ }
167
+ }
168
+ ```
169
+
170
+ ## Bulk Testing (251+ Records)
171
+
172
+ ### Why 251 Records?
173
+
174
+ Triggers process records in batches of 200. Testing with 251 records ensures:
175
+ - First batch: 200 records
176
+ - Second batch: 51 records
177
+ - Crosses the batch boundary, revealing bulkification issues
178
+
179
+ ```apex
180
+ @IsTest
181
+ static void testTrigger_BulkInsert_NoDMLInLoop() {
182
+ // ARRANGE
183
+ List<Account> accounts = TestDataFactory.createAccounts(251);
184
+
185
+ // ACT
186
+ Test.startTest();
187
+ insert accounts; // Trigger fires twice: 200, then 51
188
+ Test.stopTest();
189
+
190
+ // ASSERT
191
+ Assert.areEqual(251, [SELECT COUNT() FROM Account],
192
+ 'All 251 accounts should be created');
193
+
194
+ // Verify governor limits not approached
195
+ Assert.isTrue(Limits.getQueries() < 90,
196
+ 'Should not approach SOQL limit');
197
+ }
198
+ ```
199
+
200
+ ## Negative Testing
201
+
202
+ ### Test for Expected Failures
203
+
204
+ ```apex
205
+ @IsTest
206
+ static void testCreateAccount_NullName_ThrowsException() {
207
+ try {
208
+ Account acc = new Account(Name = null);
209
+ insert acc;
210
+ Assert.fail('Expected DmlException was not thrown');
211
+ } catch (DmlException e) {
212
+ Assert.isTrue(
213
+ e.getMessage().contains('REQUIRED_FIELD_MISSING'),
214
+ 'Should throw required field error'
215
+ );
216
+ }
217
+ }
218
+
219
+ @IsTest
220
+ static void testWithdraw_InsufficientFunds_ReturnsFalse() {
221
+ Account acc = TestDataFactory.createAndInsertAccounts(1)[0];
222
+ acc.AnnualRevenue = 100;
223
+ update acc;
224
+
225
+ Test.startTest();
226
+ Boolean result = AccountService.withdraw(acc.Id, 200);
227
+ Test.stopTest();
228
+
229
+ Assert.isFalse(result, 'Withdrawal should fail with insufficient funds');
230
+ }
231
+ ```
232
+
233
+ ## Mock Framework Patterns
234
+
235
+ ### HttpCalloutMock
236
+
237
+ ```apex
238
+ private class SuccessHttpMock implements HttpCalloutMock {
239
+ public HttpResponse respond(HttpRequest req) {
240
+ HttpResponse res = new HttpResponse();
241
+ res.setStatusCode(200);
242
+ res.setBody('{"success": true}');
243
+ return res;
244
+ }
245
+ }
246
+
247
+ @IsTest
248
+ static void testExternalAPICall_Success() {
249
+ Test.setMock(HttpCalloutMock.class, new SuccessHttpMock());
250
+
251
+ Test.startTest();
252
+ String result = MyService.callExternalAPI();
253
+ Test.stopTest();
254
+
255
+ Assert.isTrue(result.contains('success'));
256
+ }
257
+ ```
258
+
259
+ ### Stub API (Test.StubProvider)
260
+
261
+ ```apex
262
+ @IsTest
263
+ private class AccountServiceTest {
264
+
265
+ // Stub for dependency injection
266
+ private class SelectorStub implements System.StubProvider {
267
+ public Object handleMethodCall(
268
+ Object stubbedObject,
269
+ String stubbedMethodName,
270
+ Type returnType,
271
+ List<Type> paramTypes,
272
+ List<String> paramNames,
273
+ List<Object> args
274
+ ) {
275
+ if (stubbedMethodName == 'getAccountById') {
276
+ return new Account(Name = 'Mocked Account');
277
+ }
278
+ return null;
279
+ }
280
+ }
281
+
282
+ @IsTest
283
+ static void testServiceWithMockedSelector() {
284
+ // Create stub
285
+ AccountSelector mockSelector = (AccountSelector) Test.createStub(
286
+ AccountSelector.class,
287
+ new SelectorStub()
288
+ );
289
+
290
+ // Inject into service
291
+ AccountService service = new AccountService(mockSelector);
292
+
293
+ // Test with mocked dependency
294
+ Test.startTest();
295
+ Account result = service.getAccount('001xx000000001');
296
+ Test.stopTest();
297
+
298
+ Assert.areEqual('Mocked Account', result.Name);
299
+ }
300
+ }
301
+ ```
302
+
303
+ ## Governor Limit Testing
304
+
305
+ ```apex
306
+ @IsTest
307
+ static void testBulkOperation_StaysWithinLimits() {
308
+ List<Account> accounts = TestDataFactory.createAccounts(200);
309
+
310
+ Test.startTest();
311
+ insert accounts;
312
+ Test.stopTest();
313
+
314
+ // Assert limits not exceeded
315
+ System.debug('SOQL queries used: ' + Limits.getQueries());
316
+ System.debug('DML statements used: ' + Limits.getDmlStatements());
317
+
318
+ Assert.isTrue(Limits.getQueries() < 100,
319
+ 'Should stay under SOQL limit: ' + Limits.getQueries());
320
+ Assert.isTrue(Limits.getDmlStatements() < 150,
321
+ 'Should stay under DML limit: ' + Limits.getDmlStatements());
322
+ }
323
+ ```
324
+
325
+ ## Common Anti-Patterns to Avoid
326
+
327
+ ### ❌ SeeAllData=true
328
+
329
+ ```apex
330
+ // ❌ BAD: Depends on org data
331
+ @IsTest(SeeAllData=true)
332
+ static void testBadPattern() {
333
+ Account acc = [SELECT Id FROM Account LIMIT 1];
334
+ // This will fail in empty orgs!
335
+ }
336
+
337
+ // ✅ GOOD: Creates own data
338
+ @IsTest
339
+ static void testGoodPattern() {
340
+ Account acc = TestDataFactory.createAndInsertAccounts(1)[0];
341
+ // Works in any org
342
+ }
343
+ ```
344
+
345
+ ### ❌ No Assertions
346
+
347
+ ```apex
348
+ // ❌ BAD: No assertions - test passes even if code is broken
349
+ @IsTest
350
+ static void testNoAssertions() {
351
+ Account acc = new Account(Name = 'Test');
352
+ insert acc;
353
+ // Test "passes" but proves nothing
354
+ }
355
+
356
+ // ✅ GOOD: Meaningful assertions
357
+ @IsTest
358
+ static void testWithAssertions() {
359
+ Account acc = new Account(Name = 'Test');
360
+ insert acc;
361
+ Assert.isNotNull(acc.Id, 'Account should have an Id after insert');
362
+ Account inserted = [SELECT Name FROM Account WHERE Id = :acc.Id];
363
+ Assert.areEqual('Test', inserted.Name, 'Name should be preserved');
364
+ }
365
+ ```
366
+
367
+ ### ❌ Hardcoded IDs
368
+
369
+ ```apex
370
+ // ❌ BAD: Hardcoded IDs fail across orgs
371
+ Account acc = [SELECT Id FROM Account WHERE Id = '001xx0000000001'];
372
+
373
+ // ✅ GOOD: Query or create dynamically
374
+ Account acc = TestDataFactory.createAndInsertAccounts(1)[0];
375
+ ```
376
+
377
+ ## Test Method Template
378
+
379
+ ```apex
380
+ /**
381
+ * @description Tests [method] with [condition] expecting [outcome]
382
+ */
383
+ @IsTest
384
+ static void test[Method]_[Condition]_[ExpectedOutcome]() {
385
+ // ═══════════════════════════════════════════════════════════════
386
+ // ARRANGE - Set up test data and conditions
387
+ // ═══════════════════════════════════════════════════════════════
388
+ // Create test data using TestDataFactory
389
+ // Set up any mocks needed
390
+
391
+ // ═══════════════════════════════════════════════════════════════
392
+ // ACT - Execute the code under test
393
+ // ═══════════════════════════════════════════════════════════════
394
+ Test.startTest();
395
+ // Call the method being tested
396
+ Test.stopTest();
397
+
398
+ // ═══════════════════════════════════════════════════════════════
399
+ // ASSERT - Verify expected outcomes
400
+ // ═══════════════════════════════════════════════════════════════
401
+ // Assert.areEqual(expected, actual, 'Descriptive message');
402
+ // Assert.isTrue(condition, 'Descriptive message');
403
+ // Assert.isNotNull(value, 'Descriptive message');
404
+ }
405
+ ```
406
+
407
+ ---
408
+
409
+ ## Test Speed Philosophy
410
+
411
+ ### Why Test Speed Matters
412
+
413
+ Fast tests enable continuous integration. Slow tests become barriers to frequent commits.
414
+
415
+ ### Target Metrics
416
+
417
+ | Test Type | Target Speed | Purpose |
418
+ |-----------|--------------|---------|
419
+ | Unit test (no DML) | < 50ms | Test pure business logic |
420
+ | Unit test (mocked DML) | < 100ms | Test with stubbed database |
421
+ | Integration test | < 500ms | Verify real database behavior |
422
+ | Full scenario test | < 2000ms | End-to-end validation |
423
+
424
+ ### Speed Strategy
425
+
426
+ ```
427
+ ┌─────────────────────────────────────────────────────────────┐
428
+ │ INTEGRATION TESTS (Few) │
429
+ │ - Real DML, real triggers │
430
+ │ - Test happy path completely │
431
+ │ - Slow but high confidence │
432
+ └─────────────────────────────────────────────────────────────┘
433
+
434
+
435
+ ┌─────────────────────────────────────────────────────────────┐
436
+ │ UNIT TESTS WITH MOCKS (Many) │
437
+ │ - Stub database operations │
438
+ │ - Test edge cases, variations │
439
+ │ - Fast, run on every save │
440
+ └─────────────────────────────────────────────────────────────┘
441
+ ```
442
+
443
+ ### Balance Reality vs Speed
444
+
445
+ ```apex
446
+ // INTEGRATION TEST: Full database interaction (slower, realistic)
447
+ @IsTest
448
+ static void testAccountCreation_Integration() {
449
+ Test.startTest();
450
+ Account acc = new Account(Name = 'Test');
451
+ insert acc;
452
+ Test.stopTest();
453
+
454
+ Account queried = [SELECT Name, Status__c FROM Account WHERE Id = :acc.Id];
455
+ Assert.areEqual('Active', queried.Status__c, 'Trigger should set status');
456
+ }
457
+
458
+ // UNIT TEST: Mocked database (faster, tests logic only)
459
+ @IsTest
460
+ static void testAccountRules_IsHighValue() {
461
+ // No database interaction - tests pure logic
462
+ Account acc = new Account(AnnualRevenue = 1500000);
463
+ Assert.isTrue(AccountRules.isHighValue(acc), 'Should be high value');
464
+
465
+ Account lowValue = new Account(AnnualRevenue = 500000);
466
+ Assert.isFalse(AccountRules.isHighValue(lowValue), 'Should not be high value');
467
+ }
468
+ ```
469
+
470
+ ### Techniques for Faster Tests
471
+
472
+ | Technique | Benefit | Trade-off |
473
+ |-----------|---------|-----------|
474
+ | @TestSetup | Reuse data across methods | Small setup overhead |
475
+ | Stub API | No real DML | Less realistic |
476
+ | Selector mocking | Skip SOQL | Must trust Selector |
477
+ | Domain class testing | Pure logic, no DB | Limited scope |
478
+ | Avoid SeeAllData | Predictable data | Must create test data |
479
+
480
+ ### When to Prioritize Speed vs Reality
481
+
482
+ | Scenario | Priority | Approach |
483
+ |----------|----------|----------|
484
+ | Business logic validation | Speed | Unit test with mocks |
485
+ | Trigger behavior | Reality | Integration test |
486
+ | Edge case coverage | Speed | Many unit tests |
487
+ | Deployment validation | Reality | RunLocalTests |
488
+ | Developer feedback loop | Speed | Fast unit tests |
489
+
490
+ ### Measuring Test Speed
491
+
492
+ ```bash
493
+ # Run tests and view timing
494
+ sf apex run test --test-level RunLocalTests --target-org alias --result-format human
495
+
496
+ # Check individual test timing
497
+ sf apex get test --test-run-id [id] --code-coverage --result-format json | jq '.tests[] | {name: .MethodName, time: .RunTime}'
498
+ ```
499
+
500
+ ### Fast Test Checklist
501
+
502
+ ```
503
+ □ Is there a pure logic portion that can be unit tested?
504
+ □ Can database operations be mocked for edge cases?
505
+ □ Is @TestSetup reused across multiple test methods?
506
+ □ Are tests avoiding SeeAllData=true?
507
+ □ Are integration tests reserved for critical paths only?
508
+ □ Can SOQL be mocked via Selector pattern?
509
+ ```
@@ -0,0 +1,3 @@
1
+ # Credits & Acknowledgments
2
+
3
+ This skill is part of the `*-datacloud` family of skills covering the Salesforce Data Cloud workflow phases. Shared definitions, templates, and readiness scripts for this family live in the `orchestrating-datacloud` skill directory.
@@ -0,0 +1,36 @@
1
+ # segmenting-datacloud
2
+
3
+ Audience and insight workflows for Salesforce Data Cloud.
4
+
5
+ ## Use this skill for
6
+
7
+ - creating and publishing segments
8
+ - managing calculated insights
9
+ - checking segment counts
10
+ - troubleshooting segment SQL
11
+ - understanding why a segment is empty or unexpectedly large
12
+
13
+ ## Example requests
14
+
15
+ ```text
16
+ "Create a high-value customer segment in Data Cloud"
17
+ "Why is my segment returning zero members?"
18
+ "Run this calculated insight and help me verify it"
19
+ "Show me how to get member counts for this segment"
20
+ ```
21
+
22
+ ## Common commands
23
+
24
+ ```bash
25
+ sf data360 segment list -o myorg 2>/dev/null
26
+ sf data360 segment create -o myorg -f segment.json --api-version 64.0 2>/dev/null
27
+ sf data360 segment publish -o myorg --name High_Value_Customers 2>/dev/null
28
+ sf data360 calculated-insight list -o myorg 2>/dev/null
29
+ ```
30
+
31
+ ## References
32
+
33
+ - [SKILL.md](SKILL.md)
34
+ - [../orchestrating-datacloud/assets/definitions/calculated-insight.template.json](../orchestrating-datacloud/assets/definitions/calculated-insight.template.json)
35
+ - [../orchestrating-datacloud/assets/definitions/segment.template.json](../orchestrating-datacloud/assets/definitions/segment.template.json)
36
+ - [CREDITS.md](CREDITS.md)
@@ -0,0 +1,115 @@
1
+ ---
2
+ name: segmenting-datacloud
3
+ description: "Salesforce Data Cloud Segment phase. Use this skill when the user creates or publishes segments, manages calculated insights, or troubleshoots audience SQL in Data Cloud. TRIGGER when: user creates or publishes segments, manages calculated insights, inspects segment counts or membership, or troubleshoots audience SQL in Data Cloud. DO NOT TRIGGER when: the task is DMO/mapping/identity-resolution work (use harmonizing-datacloud), activation work (use activating-datacloud), query/search-index work (use retrieving-datacloud), or Standard Data Model (STDM)/session tracing (use observing-agentforce)."
4
+ license: MIT
5
+ compatibility: "Requires an external community sf data360 CLI plugin and a Data Cloud-enabled org"
6
+ metadata:
7
+ version: "1.0"
8
+ ---
9
+
10
+ # segmenting-datacloud: Data Cloud Segment Phase
11
+
12
+ Use this skill when the user needs **audience and insight work**: segments, calculated insights, publish workflows, member counts, or troubleshooting Data Cloud segment SQL.
13
+
14
+ ## When This Skill Owns the Task
15
+
16
+ Use `segmenting-datacloud` when the work involves:
17
+ - `sf data360 segment *`
18
+ - `sf data360 calculated-insight *`
19
+ - segment publish workflows
20
+ - member counts and segment troubleshooting
21
+ - calculated insight execution and verification
22
+
23
+ Delegate elsewhere when the user is:
24
+ - still building Data Model Objects (DMOs), mappings, or identity resolution → [harmonizing-datacloud](../harmonizing-datacloud/SKILL.md)
25
+ - activating a segment downstream → [activating-datacloud](../activating-datacloud/SKILL.md)
26
+ - writing read-only SQL or search-index queries → [retrieving-datacloud](../retrieving-datacloud/SKILL.md)
27
+
28
+ ---
29
+
30
+ ## Required Context to Gather First
31
+
32
+ Ask for or infer:
33
+ - target org alias
34
+ - unified DMO (Data Model Object) or base entity name
35
+ - whether the user wants create, publish, inspect, or troubleshoot
36
+ - whether the asset is a segment or calculated insight
37
+ - expected success metric: member count, aggregate value, or publish status
38
+
39
+ ---
40
+
41
+ ## Core Operating Rules
42
+
43
+ - Treat Data Cloud segment SQL as distinct from CRM SOQL.
44
+ - Run the shared readiness classifier from the `orchestrating-datacloud` skill before mutating audience assets: `node ../orchestrating-datacloud/scripts/diagnose-org.mjs -o <org> --phase segment --json`.
45
+ - Prefer reusable JSON definitions for repeatable segment and CI creation.
46
+ - Use `--api-version 64.0` when segment creation behavior is unstable on newer defaults.
47
+ - Verify with counts or SQL after publish/run steps instead of assuming success.
48
+ - Use SQL joins rather than `segment members` when readable member details are needed.
49
+
50
+ ---
51
+
52
+ ## Recommended Workflow
53
+
54
+ ### 1. Classify readiness for segment work
55
+ ```bash
56
+ node ../orchestrating-datacloud/scripts/diagnose-org.mjs -o <org> --phase segment --json
57
+ ```
58
+
59
+ ### 2. Inspect current state
60
+ ```bash
61
+ sf data360 segment list -o <org> 2>/dev/null
62
+ sf data360 calculated-insight list -o <org> 2>/dev/null
63
+ ```
64
+
65
+ ### 3. Create with reusable JSON definitions
66
+ ```bash
67
+ sf data360 segment create -o <org> -f segment.json --api-version 64.0 2>/dev/null
68
+ sf data360 calculated-insight create -o <org> -f ci.json 2>/dev/null
69
+ ```
70
+
71
+ ### 4. Publish or run explicitly
72
+ ```bash
73
+ sf data360 segment publish -o <org> --name My_Segment 2>/dev/null
74
+ sf data360 calculated-insight run -o <org> --name Lifetime_Value 2>/dev/null
75
+ ```
76
+
77
+ ### 5. Verify with counts or SQL
78
+ ```bash
79
+ sf data360 segment count -o <org> --name My_Segment 2>/dev/null
80
+ sf data360 query sql -o <org> --sql 'SELECT COUNT(*) FROM "UnifiedssotIndividualMain__dlm"' 2>/dev/null
81
+ ```
82
+
83
+ ---
84
+
85
+ ## High-Signal Gotchas
86
+
87
+ - Segment creation can require `--api-version 64.0`.
88
+ - `segment members` returns opaque IDs; use SQL joins when human-readable member details are needed.
89
+ - Segment SQL is not SOQL.
90
+ - Calculated insight assets and segment SQL have different limitations.
91
+ - Publish/run steps may kick off asynchronous work even when the command returns quickly.
92
+ - An empty segment or calculated-insight list usually means the module is reachable but unconfigured, not unavailable.
93
+
94
+ ---
95
+
96
+ ## Output Format
97
+
98
+ ```text
99
+ Segment task: <segment / calculated-insight>
100
+ Action: <create / publish / inspect / troubleshoot>
101
+ Target org: <alias>
102
+ Artifacts: <definition files / commands>
103
+ Verification: <member count / query result / publish state>
104
+ Next step: <act / retrieve / follow-up>
105
+ ```
106
+
107
+ ---
108
+
109
+ ## References
110
+
111
+ - [README.md](README.md)
112
+ - [../orchestrating-datacloud/assets/definitions/calculated-insight.template.json](../orchestrating-datacloud/assets/definitions/calculated-insight.template.json)
113
+ - [../orchestrating-datacloud/assets/definitions/segment.template.json](../orchestrating-datacloud/assets/definitions/segment.template.json)
114
+ - [../orchestrating-datacloud/references/feature-readiness.md](../orchestrating-datacloud/references/feature-readiness.md)
115
+ - [../orchestrating-datacloud/UPSTREAM.md](../orchestrating-datacloud/UPSTREAM.md)