@salesforce/afv-skills 1.7.5 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (513) 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/building-ui-bundle-frontend/SKILL.md +2 -0
  111. package/skills/configuring-connected-apps/CREDITS.md +3 -0
  112. package/skills/configuring-connected-apps/README.md +99 -0
  113. package/skills/configuring-connected-apps/SKILL.md +224 -0
  114. package/skills/configuring-connected-apps/assets/connected-app-basic.xml +29 -0
  115. package/skills/configuring-connected-apps/assets/connected-app-canvas.xml +62 -0
  116. package/skills/configuring-connected-apps/assets/connected-app-jwt.xml +49 -0
  117. package/skills/configuring-connected-apps/assets/connected-app-oauth.xml +65 -0
  118. package/skills/configuring-connected-apps/assets/eca-global-oauth.xml +36 -0
  119. package/skills/configuring-connected-apps/assets/eca-oauth-settings.xml +36 -0
  120. package/skills/configuring-connected-apps/assets/eca-policies.xml +36 -0
  121. package/skills/configuring-connected-apps/assets/external-client-app.xml +35 -0
  122. package/skills/configuring-connected-apps/references/example-usage.md +256 -0
  123. package/skills/configuring-connected-apps/references/migration-guide.md +328 -0
  124. package/skills/configuring-connected-apps/references/oauth-flows-reference.md +660 -0
  125. package/skills/configuring-connected-apps/references/security-checklist.md +209 -0
  126. package/skills/configuring-connected-apps/references/testing-validation-guide.md +275 -0
  127. package/skills/connecting-datacloud/CREDITS.md +5 -0
  128. package/skills/connecting-datacloud/README.md +59 -0
  129. package/skills/connecting-datacloud/SKILL.md +155 -0
  130. package/skills/connecting-datacloud/examples/connections/heroku-postgres.json +15 -0
  131. package/skills/connecting-datacloud/examples/connections/ingest-api-connection.json +5 -0
  132. package/skills/connecting-datacloud/examples/connections/ingest-api-schema.json +31 -0
  133. package/skills/connecting-datacloud/examples/connections/redshift.json +16 -0
  134. package/skills/connecting-datacloud/examples/connections/sharepoint-unstructured.json +20 -0
  135. package/skills/connecting-datacloud/examples/connections/snowflake-connection.json +42 -0
  136. package/skills/debugging-apex-logs/CREDITS.md +22 -0
  137. package/skills/debugging-apex-logs/README.md +74 -0
  138. package/skills/debugging-apex-logs/SKILL.md +172 -0
  139. package/skills/debugging-apex-logs/assets/benchmarking-template.cls +327 -0
  140. package/skills/debugging-apex-logs/assets/cpu-heap-optimization.cls +307 -0
  141. package/skills/debugging-apex-logs/assets/dml-in-loop-fix.cls +219 -0
  142. package/skills/debugging-apex-logs/assets/null-pointer-fix.cls +252 -0
  143. package/skills/debugging-apex-logs/assets/soql-in-loop-fix.cls +157 -0
  144. package/skills/debugging-apex-logs/references/analysis-playbook.md +53 -0
  145. package/skills/debugging-apex-logs/references/benchmarking-guide.md +287 -0
  146. package/skills/debugging-apex-logs/references/cli-commands.md +368 -0
  147. package/skills/debugging-apex-logs/references/common-issues.md +68 -0
  148. package/skills/debugging-apex-logs/references/debug-log-reference.md +328 -0
  149. package/skills/debugging-apex-logs/references/log-analysis-tools.md +248 -0
  150. package/skills/debugging-apex-logs/references/scoring-rubric.md +21 -0
  151. package/skills/deploying-metadata/CREDITS.md +25 -0
  152. package/skills/deploying-metadata/README.md +104 -0
  153. package/skills/deploying-metadata/SKILL.md +214 -0
  154. package/skills/deploying-metadata/assets/destructiveChanges.xml +143 -0
  155. package/skills/deploying-metadata/assets/package.xml +121 -0
  156. package/skills/deploying-metadata/references/agent-deployment-guide.md +628 -0
  157. package/skills/deploying-metadata/references/deploy.sh +73 -0
  158. package/skills/deploying-metadata/references/deployment-report-template.md +89 -0
  159. package/skills/deploying-metadata/references/deployment-workflows.md +395 -0
  160. package/skills/deploying-metadata/references/orchestration.md +183 -0
  161. package/skills/deploying-metadata/references/trigger-deployment-safety.md +376 -0
  162. package/skills/deploying-omnistudio-datapacks/CREDITS.md +5 -0
  163. package/skills/deploying-omnistudio-datapacks/README.md +88 -0
  164. package/skills/deploying-omnistudio-datapacks/SKILL.md +174 -0
  165. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/TRANSCRIPT.md +124 -0
  166. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +11 -0
  167. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/TRANSCRIPT.md +142 -0
  168. package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/deploy-business-internet-plus-bundle.yaml +10 -0
  169. package/skills/deploying-omnistudio-datapacks/references/job-file-template.md +42 -0
  170. package/skills/deploying-omnistudio-datapacks/references/troubleshooting-matrix.md +24 -0
  171. package/skills/deploying-ui-bundle/SKILL.md +2 -0
  172. package/skills/developing-agentforce/SKILL.md +1 -1
  173. package/skills/developing-agentforce/assets/metadata/http-callout-flow.flow-meta.xml +1 -1
  174. package/skills/developing-agentforce/references/actions-reference.md +8 -8
  175. package/skills/fetching-salesforce-docs/README.md +66 -0
  176. package/skills/fetching-salesforce-docs/SKILL.md +209 -0
  177. package/skills/fetching-salesforce-docs/requirements.txt +2 -0
  178. package/skills/fetching-salesforce-docs/scripts/extract_help_salesforce.py +497 -0
  179. package/skills/fetching-salesforce-docs/scripts/extract_salesforce_doc.py +357 -0
  180. package/skills/fetching-salesforce-docs/scripts/runtime_bootstrap.py +58 -0
  181. package/skills/generating-apex/CREDITS.md +1 -26
  182. package/skills/generating-apex/SKILL.md +4 -2
  183. package/skills/generating-apex-test/CREDITS.md +2 -27
  184. package/skills/generating-apex-test/SKILL.md +3 -1
  185. package/skills/generating-custom-application/SKILL.md +2 -0
  186. package/skills/generating-custom-field/SKILL.md +3 -1
  187. package/skills/generating-custom-lightning-type/SKILL.md +2 -0
  188. package/skills/generating-custom-object/SKILL.md +3 -1
  189. package/skills/generating-custom-tab/SKILL.md +3 -1
  190. package/skills/generating-flexipage/SKILL.md +2 -0
  191. package/skills/generating-flow/SKILL.md +2 -0
  192. package/skills/generating-lightning-app/SKILL.md +1 -1
  193. package/skills/generating-list-view/SKILL.md +2 -0
  194. package/skills/generating-lwc-components/CREDITS.md +5 -0
  195. package/skills/generating-lwc-components/README.md +126 -0
  196. package/skills/generating-lwc-components/SKILL.md +191 -0
  197. package/skills/generating-lwc-components/assets/apex-controller/LwcController.cls +327 -0
  198. package/skills/generating-lwc-components/assets/basic-component/basicComponent.css +72 -0
  199. package/skills/generating-lwc-components/assets/basic-component/basicComponent.html +111 -0
  200. package/skills/generating-lwc-components/assets/basic-component/basicComponent.js +163 -0
  201. package/skills/generating-lwc-components/assets/basic-component/basicComponent.js-meta.xml +137 -0
  202. package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.html +111 -0
  203. package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.js +367 -0
  204. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.css +63 -0
  205. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.html +154 -0
  206. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js +348 -0
  207. package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js-meta.xml +87 -0
  208. package/skills/generating-lwc-components/assets/form-component/formComponent.html +165 -0
  209. package/skills/generating-lwc-components/assets/form-component/formComponent.js +275 -0
  210. package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.html +100 -0
  211. package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.js +336 -0
  212. package/skills/generating-lwc-components/assets/jest-test/componentName.test.js.example +371 -0
  213. package/skills/generating-lwc-components/assets/message-channel/RecordSelected.messageChannel-meta.xml +71 -0
  214. package/skills/generating-lwc-components/assets/message-channel/lmsPublisher.js +103 -0
  215. package/skills/generating-lwc-components/assets/message-channel/lmsSubscriber.js +181 -0
  216. package/skills/generating-lwc-components/assets/modal-component/modalComponent.html +85 -0
  217. package/skills/generating-lwc-components/assets/modal-component/modalComponent.js +199 -0
  218. package/skills/generating-lwc-components/assets/record-picker/recordPicker.html +55 -0
  219. package/skills/generating-lwc-components/assets/record-picker/recordPicker.js +199 -0
  220. package/skills/generating-lwc-components/assets/state-store/store.js +282 -0
  221. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.css +65 -0
  222. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.html +95 -0
  223. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.js-meta.xml +75 -0
  224. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.test.ts.example +301 -0
  225. package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.ts +295 -0
  226. package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.html +71 -0
  227. package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.js +316 -0
  228. package/skills/generating-lwc-components/hooks/scripts/lwc-lsp-validate.py +295 -0
  229. package/skills/generating-lwc-components/hooks/scripts/post-tool-validate.py +347 -0
  230. package/skills/generating-lwc-components/hooks/scripts/slds_data/deprecated_patterns.json +74 -0
  231. package/skills/generating-lwc-components/hooks/scripts/slds_data/styling_hooks.json +111 -0
  232. package/skills/generating-lwc-components/hooks/scripts/slds_data/valid_slds_classes.json +127 -0
  233. package/skills/generating-lwc-components/hooks/scripts/slds_linter_wrapper.py +294 -0
  234. package/skills/generating-lwc-components/hooks/scripts/slds_rules/__init__.py +22 -0
  235. package/skills/generating-lwc-components/hooks/scripts/template_validator.py +332 -0
  236. package/skills/generating-lwc-components/hooks/scripts/validate_slds.py +595 -0
  237. package/skills/generating-lwc-components/references/accessibility-guide.md +843 -0
  238. package/skills/generating-lwc-components/references/advanced-features.md +108 -0
  239. package/skills/generating-lwc-components/references/async-notification-patterns.md +661 -0
  240. package/skills/generating-lwc-components/references/cli-commands.md +545 -0
  241. package/skills/generating-lwc-components/references/component-patterns.md +1476 -0
  242. package/skills/generating-lwc-components/references/flow-integration-guide.md +675 -0
  243. package/skills/generating-lwc-components/references/jest-testing.md +1011 -0
  244. package/skills/generating-lwc-components/references/lms-guide.md +860 -0
  245. package/skills/generating-lwc-components/references/lwc-best-practices.md +1310 -0
  246. package/skills/generating-lwc-components/references/performance-guide.md +861 -0
  247. package/skills/generating-lwc-components/references/scoring-and-testing.md +116 -0
  248. package/skills/generating-lwc-components/references/slds-blueprints.json +14389 -0
  249. package/skills/generating-lwc-components/references/slds-design-guide.md +166 -0
  250. package/skills/generating-lwc-components/references/state-management.md +642 -0
  251. package/skills/generating-lwc-components/references/template-anti-patterns.md +948 -0
  252. package/skills/generating-lwc-components/references/triangle-pattern.md +365 -0
  253. package/skills/generating-lwc-components/scripts/local-dev-preview.sh +34 -0
  254. package/skills/generating-mermaid-diagrams/CREDITS.md +46 -0
  255. package/skills/generating-mermaid-diagrams/README.md +114 -0
  256. package/skills/generating-mermaid-diagrams/SKILL.md +218 -0
  257. package/skills/generating-mermaid-diagrams/assets/agentforce/agent-flow.md +313 -0
  258. package/skills/generating-mermaid-diagrams/assets/architecture/system-landscape.md +351 -0
  259. package/skills/generating-mermaid-diagrams/assets/datamodel/b2b-commerce-erd.md +317 -0
  260. package/skills/generating-mermaid-diagrams/assets/datamodel/campaigns-erd.md +195 -0
  261. package/skills/generating-mermaid-diagrams/assets/datamodel/consent-erd.md +262 -0
  262. package/skills/generating-mermaid-diagrams/assets/datamodel/files-erd.md +266 -0
  263. package/skills/generating-mermaid-diagrams/assets/datamodel/forecasting-erd.md +261 -0
  264. package/skills/generating-mermaid-diagrams/assets/datamodel/fsl-erd.md +332 -0
  265. package/skills/generating-mermaid-diagrams/assets/datamodel/party-model-erd.md +237 -0
  266. package/skills/generating-mermaid-diagrams/assets/datamodel/quote-order-erd.md +277 -0
  267. package/skills/generating-mermaid-diagrams/assets/datamodel/revenue-cloud-erd.md +343 -0
  268. package/skills/generating-mermaid-diagrams/assets/datamodel/sales-cloud-erd.md +192 -0
  269. package/skills/generating-mermaid-diagrams/assets/datamodel/salesforce-erd.md +209 -0
  270. package/skills/generating-mermaid-diagrams/assets/datamodel/scheduler-erd.md +276 -0
  271. package/skills/generating-mermaid-diagrams/assets/datamodel/service-cloud-erd.md +217 -0
  272. package/skills/generating-mermaid-diagrams/assets/datamodel/territory-management-erd.md +241 -0
  273. package/skills/generating-mermaid-diagrams/assets/integration/api-sequence.md +387 -0
  274. package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code-pkce.md +197 -0
  275. package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code.md +152 -0
  276. package/skills/generating-mermaid-diagrams/assets/oauth/client-credentials.md +233 -0
  277. package/skills/generating-mermaid-diagrams/assets/oauth/device-authorization.md +295 -0
  278. package/skills/generating-mermaid-diagrams/assets/oauth/jwt-bearer.md +256 -0
  279. package/skills/generating-mermaid-diagrams/assets/oauth/refresh-token.md +281 -0
  280. package/skills/generating-mermaid-diagrams/assets/oauth/user-agent-social-sign-on.md +281 -0
  281. package/skills/generating-mermaid-diagrams/assets/role-hierarchy/user-hierarchy.md +322 -0
  282. package/skills/generating-mermaid-diagrams/references/color-palette.md +464 -0
  283. package/skills/generating-mermaid-diagrams/references/diagram-conventions.md +313 -0
  284. package/skills/generating-mermaid-diagrams/references/erd-conventions.md +320 -0
  285. package/skills/generating-mermaid-diagrams/references/mermaid-reference.md +434 -0
  286. package/skills/generating-mermaid-diagrams/references/mermaid-styling.md +81 -0
  287. package/skills/generating-mermaid-diagrams/references/preview-guide.md +49 -0
  288. package/skills/generating-mermaid-diagrams/references/usage-examples.md +340 -0
  289. package/skills/generating-mermaid-diagrams/scripts/README.md +160 -0
  290. package/skills/generating-mermaid-diagrams/scripts/mermaid_preview.py +654 -0
  291. package/skills/generating-mermaid-diagrams/scripts/query-org-metadata.py +293 -0
  292. package/skills/generating-ui-bundle-features/SKILL.md +2 -0
  293. package/skills/generating-ui-bundle-metadata/SKILL.md +2 -0
  294. package/skills/generating-ui-bundle-site/SKILL.md +2 -0
  295. package/skills/generating-validation-rule/SKILL.md +2 -0
  296. package/skills/generating-visual-diagrams/CREDITS.md +80 -0
  297. package/skills/generating-visual-diagrams/README.md +83 -0
  298. package/skills/generating-visual-diagrams/SKILL.md +208 -0
  299. package/skills/generating-visual-diagrams/assets/architecture/integration-flow.md +55 -0
  300. package/skills/generating-visual-diagrams/assets/erd/core-objects.md +131 -0
  301. package/skills/generating-visual-diagrams/assets/erd/custom-objects.md +60 -0
  302. package/skills/generating-visual-diagrams/assets/lwc/dashboard-card.md +45 -0
  303. package/skills/generating-visual-diagrams/assets/lwc/data-table.md +57 -0
  304. package/skills/generating-visual-diagrams/assets/lwc/record-form.md +60 -0
  305. package/skills/generating-visual-diagrams/assets/review/apex-review.md +57 -0
  306. package/skills/generating-visual-diagrams/assets/review/lwc-review.md +48 -0
  307. package/skills/generating-visual-diagrams/references/architect-aesthetic-guide.md +257 -0
  308. package/skills/generating-visual-diagrams/references/examples-index.md +35 -0
  309. package/skills/generating-visual-diagrams/references/gemini-cli-setup.md +65 -0
  310. package/skills/generating-visual-diagrams/references/interview-questions.md +529 -0
  311. package/skills/generating-visual-diagrams/references/iteration-workflow.md +173 -0
  312. package/skills/generating-visual-diagrams/scripts/check-prerequisites.sh +101 -0
  313. package/skills/generating-visual-diagrams/scripts/generate_image.py +243 -0
  314. package/skills/handling-sf-data/CREDITS.md +5 -0
  315. package/skills/handling-sf-data/README.md +112 -0
  316. package/skills/handling-sf-data/SKILL.md +235 -0
  317. package/skills/handling-sf-data/assets/bulk/bulk-insert-10000.apex +293 -0
  318. package/skills/handling-sf-data/assets/bulk/bulk-insert-200.apex +208 -0
  319. package/skills/handling-sf-data/assets/bulk/bulk-insert-500.apex +219 -0
  320. package/skills/handling-sf-data/assets/bulk/bulk-upsert-external-id.apex +324 -0
  321. package/skills/handling-sf-data/assets/cleanup/delete-by-created-date.apex +319 -0
  322. package/skills/handling-sf-data/assets/cleanup/delete-by-name.apex +240 -0
  323. package/skills/handling-sf-data/assets/cleanup/delete-test-data.apex +311 -0
  324. package/skills/handling-sf-data/assets/cleanup/rollback-transaction.apex +266 -0
  325. package/skills/handling-sf-data/assets/csv/account-import.csv +11 -0
  326. package/skills/handling-sf-data/assets/csv/contact-import.csv +11 -0
  327. package/skills/handling-sf-data/assets/csv/custom-object-import.csv +11 -0
  328. package/skills/handling-sf-data/assets/csv/opportunity-import.csv +11 -0
  329. package/skills/handling-sf-data/assets/factories/account-factory.apex +165 -0
  330. package/skills/handling-sf-data/assets/factories/case-factory.apex +237 -0
  331. package/skills/handling-sf-data/assets/factories/contact-factory.apex +168 -0
  332. package/skills/handling-sf-data/assets/factories/custom-object-factory.apex +260 -0
  333. package/skills/handling-sf-data/assets/factories/event-factory.apex +275 -0
  334. package/skills/handling-sf-data/assets/factories/hierarchy-factory.apex +372 -0
  335. package/skills/handling-sf-data/assets/factories/lead-factory.apex +190 -0
  336. package/skills/handling-sf-data/assets/factories/opportunity-factory.apex +206 -0
  337. package/skills/handling-sf-data/assets/factories/task-factory.apex +246 -0
  338. package/skills/handling-sf-data/assets/factories/user-factory.apex +278 -0
  339. package/skills/handling-sf-data/assets/json/account-contact-tree.json +130 -0
  340. package/skills/handling-sf-data/assets/json/account-opportunity-tree.json +110 -0
  341. package/skills/handling-sf-data/assets/json/full-hierarchy-tree.json +188 -0
  342. package/skills/handling-sf-data/assets/soql/aggregate.soql +226 -0
  343. package/skills/handling-sf-data/assets/soql/child-to-parent.soql +162 -0
  344. package/skills/handling-sf-data/assets/soql/parent-to-child.soql +153 -0
  345. package/skills/handling-sf-data/assets/soql/polymorphic.soql +198 -0
  346. package/skills/handling-sf-data/assets/soql/subquery.soql +287 -0
  347. package/skills/handling-sf-data/references/anonymous-apex-guide.md +98 -0
  348. package/skills/handling-sf-data/references/bulk-operations-guide.md +94 -0
  349. package/skills/handling-sf-data/references/bulk-testing-example.md +194 -0
  350. package/skills/handling-sf-data/references/cleanup-rollback-example.md +322 -0
  351. package/skills/handling-sf-data/references/cleanup-rollback-guide.md +84 -0
  352. package/skills/handling-sf-data/references/crud-workflow-example.md +183 -0
  353. package/skills/handling-sf-data/references/governor-limits-reference.md +74 -0
  354. package/skills/handling-sf-data/references/orchestration.md +174 -0
  355. package/skills/handling-sf-data/references/relationship-query-examples.md +249 -0
  356. package/skills/handling-sf-data/references/sf-cli-data-commands.md +158 -0
  357. package/skills/handling-sf-data/references/soql-relationship-guide.md +84 -0
  358. package/skills/handling-sf-data/references/test-data-best-practices.md +104 -0
  359. package/skills/handling-sf-data/references/test-data-factory-usage.md +290 -0
  360. package/skills/handling-sf-data/references/test-data-patterns.md +98 -0
  361. package/skills/handling-sf-data/scripts/soql_validator.py +292 -0
  362. package/skills/handling-sf-data/scripts/validate_data_operation.py +379 -0
  363. package/skills/harmonizing-datacloud/CREDITS.md +3 -0
  364. package/skills/harmonizing-datacloud/README.md +31 -0
  365. package/skills/harmonizing-datacloud/SKILL.md +117 -0
  366. package/skills/implementing-ui-bundle-agentforce-conversation-client/SKILL.md +1 -1
  367. package/skills/implementing-ui-bundle-file-upload/SKILL.md +2 -0
  368. package/skills/modeling-omnistudio-epc-catalog/CREDITS.md +14 -0
  369. package/skills/modeling-omnistudio-epc-catalog/README.md +89 -0
  370. package/skills/modeling-omnistudio-epc-catalog/SKILL.md +395 -0
  371. package/skills/modeling-omnistudio-epc-catalog/assets/attribute-assignment-template.json +402 -0
  372. package/skills/modeling-omnistudio-epc-catalog/assets/compiled-attribute-overrides-template.json +43 -0
  373. package/skills/modeling-omnistudio-epc-catalog/assets/completion-block-template.txt +8 -0
  374. package/skills/modeling-omnistudio-epc-catalog/assets/decomposition-relationships-template.json +233 -0
  375. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_AttributeAssignments.json +514 -0
  376. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_CompiledAttributeOverrides.json +21 -0
  377. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DataPack.json +649 -0
  378. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DecompositionRelationships.json +200 -0
  379. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ObjectFieldAttributes.json +138 -0
  380. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OrchestrationScenarios.json +54 -0
  381. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OverrideDefinitions.json +266 -0
  382. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ParentKeys.json +23 -0
  383. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PriceListEntries.json +54 -0
  384. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PricebookEntries.json +35 -0
  385. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ProductChildItems.json +34 -0
  386. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_RuleAssignments.json +21 -0
  387. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_AttributeAssignments.json +410 -0
  388. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DataPack.json +535 -0
  389. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DecompositionRelationships.json +35 -0
  390. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ObjectFieldAttributes.json +138 -0
  391. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_OrchestrationScenarios.json +28 -0
  392. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ParentKeys.json +23 -0
  393. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PriceListEntries.json +220 -0
  394. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PricebookEntries.json +35 -0
  395. package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ProductChildItems.json +414 -0
  396. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_AttributeAssignments.json +382 -0
  397. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DataPack.json +565 -0
  398. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DecompositionRelationships.json +35 -0
  399. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ObjectFieldAttributes.json +104 -0
  400. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_OrchestrationScenarios.json +28 -0
  401. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ParentKeys.json +13 -0
  402. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PriceListEntries.json +106 -0
  403. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PricebookEntries.json +35 -0
  404. package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ProductChildItems.json +72 -0
  405. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_AttributeAssignments.json +142 -0
  406. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DataPack.json +377 -0
  407. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DecompositionRelationships.json +35 -0
  408. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ObjectFieldAttributes.json +36 -0
  409. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ParentKeys.json +8 -0
  410. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PriceListEntries.json +54 -0
  411. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PricebookEntries.json +35 -0
  412. package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ProductChildItems.json +34 -0
  413. package/skills/modeling-omnistudio-epc-catalog/assets/object-field-attributes-template.json +138 -0
  414. package/skills/modeling-omnistudio-epc-catalog/assets/orchestration-scenarios-template.json +54 -0
  415. package/skills/modeling-omnistudio-epc-catalog/assets/override-definitions-template.json +134 -0
  416. package/skills/modeling-omnistudio-epc-catalog/assets/parent-keys-template.json +29 -0
  417. package/skills/modeling-omnistudio-epc-catalog/assets/price-list-entries-template.json +158 -0
  418. package/skills/modeling-omnistudio-epc-catalog/assets/pricebook-entries-template.json +35 -0
  419. package/skills/modeling-omnistudio-epc-catalog/assets/product-child-item-template.json +338 -0
  420. package/skills/modeling-omnistudio-epc-catalog/assets/product2-offer-template.json +527 -0
  421. package/skills/modeling-omnistudio-epc-catalog/examples/.gitkeep +1 -0
  422. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_AttributeAssignments.json +95 -0
  423. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_CompiledAttributeOverrides.json +1 -0
  424. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DataPack.json +214 -0
  425. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DecompositionRelationships.json +28 -0
  426. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ObjectFieldAttributes.json +98 -0
  427. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OrchestrationScenarios.json +22 -0
  428. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OverrideDefinitions.json +1 -0
  429. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ParentKeys.json +13 -0
  430. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PriceListEntries.json +35 -0
  431. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PricebookEntries.json +28 -0
  432. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ProductChildItems.json +110 -0
  433. package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/TRANSCRIPT.md +58 -0
  434. package/skills/modeling-omnistudio-epc-catalog/references/epc-field-guide.md +90 -0
  435. package/skills/modeling-omnistudio-epc-catalog/references/naming-conventions.md +80 -0
  436. package/skills/modeling-omnistudio-epc-catalog/references/scoring-model.md +57 -0
  437. package/skills/modeling-omnistudio-epc-catalog/scripts/cli-validation-commands.sh +19 -0
  438. package/skills/modeling-omnistudio-epc-catalog/scripts/sample-invocations.sh +18 -0
  439. package/skills/observing-agentforce/SKILL.md +1 -1
  440. package/skills/orchestrating-datacloud/CREDITS.md +15 -0
  441. package/skills/orchestrating-datacloud/README.md +129 -0
  442. package/skills/orchestrating-datacloud/SKILL.md +236 -0
  443. package/skills/orchestrating-datacloud/UPSTREAM.md +45 -0
  444. package/skills/orchestrating-datacloud/assets/definitions/activation-target.template.json +5 -0
  445. package/skills/orchestrating-datacloud/assets/definitions/activation.template.json +7 -0
  446. package/skills/orchestrating-datacloud/assets/definitions/calculated-insight.template.json +7 -0
  447. package/skills/orchestrating-datacloud/assets/definitions/data-action-target.template.json +5 -0
  448. package/skills/orchestrating-datacloud/assets/definitions/data-action.template.json +5 -0
  449. package/skills/orchestrating-datacloud/assets/definitions/data-graph.template.json +21 -0
  450. package/skills/orchestrating-datacloud/assets/definitions/data-stream.template.json +55 -0
  451. package/skills/orchestrating-datacloud/assets/definitions/dmo.template.json +17 -0
  452. package/skills/orchestrating-datacloud/assets/definitions/identity-resolution.template.json +30 -0
  453. package/skills/orchestrating-datacloud/assets/definitions/mapping.template.json +14 -0
  454. package/skills/orchestrating-datacloud/assets/definitions/relationship.template.json +12 -0
  455. package/skills/orchestrating-datacloud/assets/definitions/search-index.template.json +9 -0
  456. package/skills/orchestrating-datacloud/assets/definitions/segment.template.json +16 -0
  457. package/skills/orchestrating-datacloud/references/feature-readiness.md +157 -0
  458. package/skills/orchestrating-datacloud/references/plugin-setup.md +140 -0
  459. package/skills/orchestrating-datacloud/scripts/bootstrap-plugin.sh +53 -0
  460. package/skills/orchestrating-datacloud/scripts/diagnose-org.mjs +511 -0
  461. package/skills/orchestrating-datacloud/scripts/generate-manifest.mjs +68 -0
  462. package/skills/orchestrating-datacloud/scripts/verify-plugin.sh +58 -0
  463. package/skills/preparing-datacloud/CREDITS.md +7 -0
  464. package/skills/preparing-datacloud/README.md +51 -0
  465. package/skills/preparing-datacloud/SKILL.md +191 -0
  466. package/skills/preparing-datacloud/examples/ingestion-api/.env.example +8 -0
  467. package/skills/preparing-datacloud/examples/ingestion-api/README.md +48 -0
  468. package/skills/preparing-datacloud/examples/ingestion-api/send-data.py +144 -0
  469. package/skills/querying-soql/CREDITS.md +21 -0
  470. package/skills/querying-soql/README.md +41 -0
  471. package/skills/querying-soql/SKILL.md +143 -0
  472. package/skills/querying-soql/assets/aggregate-queries.soql +242 -0
  473. package/skills/querying-soql/assets/basic-queries.soql +188 -0
  474. package/skills/querying-soql/assets/bulkified-query-pattern.cls +280 -0
  475. package/skills/querying-soql/assets/optimization-patterns.soql +259 -0
  476. package/skills/querying-soql/assets/relationship-queries.soql +203 -0
  477. package/skills/querying-soql/assets/selector-class.cls +219 -0
  478. package/skills/querying-soql/references/anti-patterns.md +348 -0
  479. package/skills/querying-soql/references/cli-commands.md +358 -0
  480. package/skills/querying-soql/references/field-coverage-rules.md +514 -0
  481. package/skills/querying-soql/references/query-optimization.md +142 -0
  482. package/skills/querying-soql/references/selector-patterns.md +479 -0
  483. package/skills/querying-soql/references/soql-reference.md +227 -0
  484. package/skills/querying-soql/references/soql-syntax-reference.md +208 -0
  485. package/skills/querying-soql/scripts/post-tool-validate.py +322 -0
  486. package/skills/retrieving-datacloud/CREDITS.md +7 -0
  487. package/skills/retrieving-datacloud/README.md +44 -0
  488. package/skills/retrieving-datacloud/SKILL.md +120 -0
  489. package/skills/retrieving-datacloud/examples/search-indexes/hybrid-structured.json +44 -0
  490. package/skills/retrieving-datacloud/examples/search-indexes/vector-knowledge.json +43 -0
  491. package/skills/running-apex-tests/CREDITS.md +22 -0
  492. package/skills/running-apex-tests/README.md +94 -0
  493. package/skills/running-apex-tests/SKILL.md +158 -0
  494. package/skills/running-apex-tests/assets/basic-test.cls +169 -0
  495. package/skills/running-apex-tests/assets/bulk-test.cls +255 -0
  496. package/skills/running-apex-tests/assets/dml-mock.cls +339 -0
  497. package/skills/running-apex-tests/assets/mock-callout-test.cls +353 -0
  498. package/skills/running-apex-tests/assets/stub-provider-example.cls +364 -0
  499. package/skills/running-apex-tests/assets/test-data-factory.cls +328 -0
  500. package/skills/running-apex-tests/hooks/scripts/parse-test-results.py +364 -0
  501. package/skills/running-apex-tests/references/cli-commands.md +289 -0
  502. package/skills/running-apex-tests/references/mocking-patterns.md +500 -0
  503. package/skills/running-apex-tests/references/performance-optimization.md +283 -0
  504. package/skills/running-apex-tests/references/test-fix-loop.md +49 -0
  505. package/skills/running-apex-tests/references/test-patterns.md +154 -0
  506. package/skills/running-apex-tests/references/testing-best-practices.md +509 -0
  507. package/skills/segmenting-datacloud/CREDITS.md +3 -0
  508. package/skills/segmenting-datacloud/README.md +36 -0
  509. package/skills/segmenting-datacloud/SKILL.md +115 -0
  510. package/skills/switching-org/SKILL.md +1 -1
  511. package/skills/testing-agentforce/SKILL.md +1 -1
  512. package/skills/uplifting-components-to-slds2/SKILL.md +3 -1
  513. package/skills/using-ui-bundle-salesforce-data/SKILL.md +2 -0
@@ -0,0 +1,348 @@
1
+ <!-- Parent: querying-soql/SKILL.md -->
2
+ # SOQL Anti-Patterns: What to Avoid
3
+
4
+ A catalog of common SOQL mistakes and their solutions. Avoiding these patterns will help you stay within governor limits, improve query performance, and write more maintainable code.
5
+
6
+ ---
7
+
8
+ ## Anti-Pattern #1: SOQL Inside Loops
9
+
10
+ **The Problem**: Executing queries inside a loop quickly exhausts the 100 SOQL query limit.
11
+
12
+ ```apex
13
+ // ❌ ANTI-PATTERN: Query per record
14
+ for (Contact c : Trigger.new) {
15
+ Account a = [SELECT Name FROM Account WHERE Id = :c.AccountId];
16
+ c.Account_Name__c = a.Name;
17
+ }
18
+ // 200 contacts = 200 queries = LIMIT EXCEEDED
19
+ ```
20
+
21
+ **The Solution**: Query once, use a Map for lookups.
22
+
23
+ ```apex
24
+ // ✅ CORRECT: Single query with Map lookup
25
+ Set<Id> accountIds = new Set<Id>();
26
+ for (Contact c : Trigger.new) {
27
+ accountIds.add(c.AccountId);
28
+ }
29
+
30
+ Map<Id, Account> accountMap = new Map<Id, Account>(
31
+ [SELECT Id, Name FROM Account WHERE Id IN :accountIds]
32
+ );
33
+
34
+ for (Contact c : Trigger.new) {
35
+ Account a = accountMap.get(c.AccountId);
36
+ if (a != null) {
37
+ c.Account_Name__c = a.Name;
38
+ }
39
+ }
40
+ // 200 contacts = 1 query = SAFE
41
+ ```
42
+
43
+ **Key Insight**: Collect IDs first, query once with `IN` clause, then use Map for O(1) lookups.
44
+
45
+ ---
46
+
47
+ ## Anti-Pattern #2: Non-Selective WHERE Clauses
48
+
49
+ **The Problem**: Queries on non-indexed fields cause full table scans, which fail on large objects (100k+ records).
50
+
51
+ ```apex
52
+ // ❌ ANTI-PATTERN: Non-selective filter
53
+ SELECT Id FROM Lead WHERE Status = 'Open'
54
+ // Status is not indexed - scans ALL Lead records
55
+ ```
56
+
57
+ **The Solution**: Add an indexed field to make the query selective.
58
+
59
+ ```apex
60
+ // ✅ CORRECT: Add indexed field filter
61
+ SELECT Id FROM Lead
62
+ WHERE Status = 'Open'
63
+ AND CreatedDate = LAST_N_DAYS:30
64
+ // CreatedDate is indexed - uses index
65
+
66
+ // ✅ ALTERNATIVE: Use OwnerId (indexed)
67
+ SELECT Id FROM Lead
68
+ WHERE Status = 'Open'
69
+ AND OwnerId = :UserInfo.getUserId()
70
+ ```
71
+
72
+ **Indexed Fields** (Always use these in WHERE):
73
+ - `Id`, `Name`, `OwnerId`, `CreatedDate`, `LastModifiedDate`
74
+ - `RecordTypeId`, External ID fields, Master-Detail fields
75
+ - Standard indexed fields: `Account.AccountNumber`, `Contact.Email`, `Case.CaseNumber`
76
+
77
+ ---
78
+
79
+ ## Anti-Pattern #3: Leading Wildcards
80
+
81
+ **The Problem**: `LIKE '%value'` cannot use indexes and scans all records.
82
+
83
+ ```apex
84
+ // ❌ ANTI-PATTERN: Leading wildcard
85
+ SELECT Id FROM Account WHERE Name LIKE '%Corporation'
86
+ // Cannot use index - full table scan
87
+ ```
88
+
89
+ **The Solution**: Use trailing wildcards or exact matches.
90
+
91
+ ```apex
92
+ // ✅ CORRECT: Trailing wildcard (uses index)
93
+ SELECT Id FROM Account WHERE Name LIKE 'Acme%'
94
+
95
+ // ✅ CORRECT: Exact match
96
+ SELECT Id FROM Account WHERE Name = 'Acme Corporation'
97
+
98
+ // ✅ CORRECT: Contains check (if absolutely necessary)
99
+ // Do the filtering in Apex after a selective query
100
+ List<Account> allAccounts = [
101
+ SELECT Id, Name FROM Account
102
+ WHERE CreatedDate = THIS_YEAR
103
+ ];
104
+ List<Account> filtered = new List<Account>();
105
+ for (Account a : allAccounts) {
106
+ if (a.Name.contains('Corporation')) {
107
+ filtered.add(a);
108
+ }
109
+ }
110
+ ```
111
+
112
+ ---
113
+
114
+ ## Anti-Pattern #4: Negative Operators
115
+
116
+ **The Problem**: `!=`, `NOT IN`, `NOT LIKE` often prevent index usage.
117
+
118
+ ```apex
119
+ // ❌ ANTI-PATTERN: Negative operators
120
+ SELECT Id FROM Opportunity WHERE StageName != 'Closed Lost'
121
+ SELECT Id FROM Contact WHERE AccountId NOT IN :excludedIds
122
+ ```
123
+
124
+ **The Solution**: Query for what you want, not what you don't want.
125
+
126
+ ```apex
127
+ // ✅ CORRECT: Positive filter with specific values
128
+ SELECT Id FROM Opportunity
129
+ WHERE StageName IN ('Prospecting', 'Qualification', 'Proposal', 'Negotiation')
130
+
131
+ // ✅ CORRECT: Use a formula field for complex exclusions
132
+ // Create IsExcluded__c formula, then:
133
+ SELECT Id FROM Contact WHERE IsExcluded__c = false
134
+ ```
135
+
136
+ ---
137
+
138
+ ## Anti-Pattern #5: Querying for NULL
139
+
140
+ **The Problem**: `WHERE Field = null` is non-selective and scans all records.
141
+
142
+ ```apex
143
+ // ❌ ANTI-PATTERN: Null check in WHERE
144
+ SELECT Id FROM Contact WHERE Email = null
145
+ // Non-selective - scans all contacts
146
+ ```
147
+
148
+ **The Solution**: Combine with selective filters or redesign data model.
149
+
150
+ ```apex
151
+ // ✅ CORRECT: Add selective filter
152
+ SELECT Id FROM Contact
153
+ WHERE Email = null
154
+ AND CreatedDate = LAST_N_DAYS:30
155
+
156
+ // ✅ BETTER: Use a checkbox field
157
+ // Create HasEmail__c formula checkbox
158
+ SELECT Id FROM Contact WHERE HasEmail__c = false
159
+ ```
160
+
161
+ ---
162
+
163
+ ## Anti-Pattern #6: SELECT * (All Fields)
164
+
165
+ **The Problem**: Querying all fields wastes resources and can hit heap limits.
166
+
167
+ ```apex
168
+ // ❌ ANTI-PATTERN: Selecting everything
169
+ SELECT FIELDS(ALL) FROM Account LIMIT 200
170
+ // Loads ALL fields into memory
171
+
172
+ // ❌ ANTI-PATTERN: Listing every field manually
173
+ SELECT Id, Name, Description, BillingStreet, BillingCity,
174
+ BillingState, BillingPostalCode, BillingCountry, ...
175
+ FROM Account
176
+ ```
177
+
178
+ **The Solution**: Query only the fields you need.
179
+
180
+ ```apex
181
+ // ✅ CORRECT: Minimal field selection
182
+ SELECT Id, Name, Industry FROM Account
183
+
184
+ // ✅ FOR DISPLAY: Just display fields
185
+ SELECT Id, Name FROM Account
186
+
187
+ // ✅ FOR PROCESSING: Just processing fields
188
+ SELECT Id, Status__c, ProcessedDate__c FROM Account
189
+ ```
190
+
191
+ ---
192
+
193
+ ## Anti-Pattern #7: No LIMIT on Queries
194
+
195
+ **The Problem**: Unbounded queries can return 50,000 records and consume heap memory.
196
+
197
+ ```apex
198
+ // ❌ ANTI-PATTERN: No limit
199
+ SELECT Id, Name FROM Account
200
+ // Could return 50,000 records!
201
+
202
+ // ❌ ANTI-PATTERN: Excessive limit
203
+ SELECT Id, Name FROM Account LIMIT 50000
204
+ ```
205
+
206
+ **The Solution**: Use appropriate limits for your use case.
207
+
208
+ ```apex
209
+ // ✅ CORRECT: Reasonable limit for UI display
210
+ SELECT Id, Name FROM Account LIMIT 200
211
+
212
+ // ✅ CORRECT: Pagination
213
+ SELECT Id, Name FROM Account
214
+ ORDER BY Name
215
+ LIMIT 50 OFFSET 0
216
+
217
+ // ✅ CORRECT: Single record lookup
218
+ SELECT Id, Name FROM Account WHERE Name = 'Acme' LIMIT 1
219
+
220
+ // ✅ CORRECT: Existence check
221
+ SELECT Id FROM Account WHERE Name = 'Acme' LIMIT 1
222
+ // In Apex: if (!results.isEmpty()) { /* exists */ }
223
+ ```
224
+
225
+ ---
226
+
227
+ ## Anti-Pattern #8: Deep Relationship Traversal
228
+
229
+ **The Problem**: Deep nesting (>3 levels) hurts performance and readability.
230
+
231
+ ```apex
232
+ // ❌ ANTI-PATTERN: Deep traversal
233
+ SELECT Id,
234
+ Account.Owner.Manager.Department.Name
235
+ FROM Contact
236
+ // 4 levels deep - hard to maintain, performance hit
237
+ ```
238
+
239
+ **The Solution**: Flatten queries or use multiple queries.
240
+
241
+ ```apex
242
+ // ✅ CORRECT: Flatten to 1-2 levels
243
+ SELECT Id, Account.Name, Account.OwnerId FROM Contact
244
+
245
+ // Then query Owner separately if needed
246
+ Map<Id, User> owners = new Map<Id, User>(
247
+ [SELECT Id, ManagerId FROM User WHERE Id IN :ownerIds]
248
+ );
249
+ ```
250
+
251
+ ---
252
+
253
+ ## Anti-Pattern #9: Unfiltered Subqueries
254
+
255
+ **The Problem**: Child subqueries without filters can return massive datasets.
256
+
257
+ ```apex
258
+ // ❌ ANTI-PATTERN: Unfiltered subquery
259
+ SELECT Id,
260
+ (SELECT Id FROM Contacts),
261
+ (SELECT Id FROM Opportunities)
262
+ FROM Account
263
+ // Could return thousands of child records per account
264
+ ```
265
+
266
+ **The Solution**: Always filter and limit subqueries.
267
+
268
+ ```apex
269
+ // ✅ CORRECT: Filtered and limited subqueries
270
+ SELECT Id,
271
+ (SELECT Id, Name FROM Contacts
272
+ WHERE IsActive__c = true
273
+ LIMIT 5),
274
+ (SELECT Id, Name FROM Opportunities
275
+ WHERE StageName != 'Closed Lost'
276
+ LIMIT 5)
277
+ FROM Account
278
+ WHERE Industry = 'Technology'
279
+ ```
280
+
281
+ ---
282
+
283
+ ## Anti-Pattern #10: Formula Fields in WHERE
284
+
285
+ **The Problem**: Formula fields are not indexed and require full table scans.
286
+
287
+ ```apex
288
+ // ❌ ANTI-PATTERN: Filter on formula field
289
+ SELECT Id FROM Opportunity
290
+ WHERE Days_Since_Created__c > 30
291
+ // Formula field - cannot use index
292
+ ```
293
+
294
+ **The Solution**: Use the underlying indexed field.
295
+
296
+ ```apex
297
+ // ✅ CORRECT: Use base field
298
+ SELECT Id FROM Opportunity
299
+ WHERE CreatedDate < LAST_N_DAYS:30
300
+
301
+ // ✅ ALTERNATIVE: Store computed value in regular field
302
+ // Use workflow/flow to update a Number field
303
+ SELECT Id FROM Opportunity
304
+ WHERE Days_Open__c > 30
305
+ ```
306
+
307
+ ---
308
+
309
+ ## Quick Reference: Selectivity Rules
310
+
311
+ ```
312
+ A filter is SELECTIVE when:
313
+ ├── Uses an indexed field, AND
314
+ ├── Returns < 10% of first million records, OR
315
+ ├── Returns < 5% of records beyond first million
316
+ └── Absolute max: 333,333 records (1M / 3)
317
+ ```
318
+
319
+ **Always Indexed Fields**:
320
+ - `Id`, `Name`, `OwnerId`, `CreatedDate`, `LastModifiedDate`
321
+ - `RecordTypeId`, External ID fields, Master-Detail relationship fields
322
+
323
+ **Request Custom Index**: Contact Salesforce Support with:
324
+ - Object name and field API name
325
+ - Sample SOQL query
326
+ - Cardinality (unique values count)
327
+ - Business justification
328
+
329
+ ---
330
+
331
+ ## Testing Checklist
332
+
333
+ Before deploying SOQL to production:
334
+
335
+ 1. [ ] Run Query Plan tool (Developer Console or CLI)
336
+ 2. [ ] Verify `LeadingOperationType` is "Index" not "TableScan"
337
+ 3. [ ] Test with 200+ records in trigger context
338
+ 4. [ ] Verify query count stays under 100 per transaction
339
+ 5. [ ] Check heap usage for large result sets
340
+
341
+ ```bash
342
+ # CLI Query Plan
343
+ sf data query \
344
+ --query "SELECT Id FROM Account WHERE Name = 'Test'" \
345
+ --target-org my-org \
346
+ --use-tooling-api \
347
+ --plan
348
+ ```
@@ -0,0 +1,358 @@
1
+ <!-- Parent: querying-soql/SKILL.md -->
2
+ # Salesforce CLI SOQL Commands
3
+
4
+ ## Quick Reference
5
+
6
+ | Task | Command |
7
+ |------|---------|
8
+ | Run query | `sf data query --query "SELECT..."` |
9
+ | JSON output | `sf data query --query "..." --json` |
10
+ | CSV output | `sf data query --query "..." --result-format csv` |
11
+ | Bulk export | `sf data export bulk --query "SELECT..." --target-org alias` |
12
+ | Query plan | `sf api request rest '/query/?explain=<SOQL>' --target-org alias` |
13
+
14
+ ---
15
+
16
+ ## Basic Queries
17
+
18
+ ### Run a Query
19
+
20
+ ```bash
21
+ sf data query \
22
+ --query "SELECT Id, Name, Industry FROM Account LIMIT 10" \
23
+ --target-org my-sandbox
24
+ ```
25
+
26
+ ### Query with Filters
27
+
28
+ ```bash
29
+ sf data query \
30
+ --query "SELECT Id, Name FROM Account WHERE Industry = 'Technology'" \
31
+ --target-org my-sandbox
32
+ ```
33
+
34
+ ### Query Relationships
35
+
36
+ ```bash
37
+ # Child-to-parent
38
+ sf data query \
39
+ --query "SELECT Id, Name, Account.Name FROM Contact LIMIT 10" \
40
+ --target-org my-sandbox
41
+
42
+ # Parent-to-child
43
+ sf data query \
44
+ --query "SELECT Id, Name, (SELECT Id, Name FROM Contacts) FROM Account LIMIT 5" \
45
+ --target-org my-sandbox
46
+ ```
47
+
48
+ ---
49
+
50
+ ## Output Formats
51
+
52
+ ### Human-Readable (Default)
53
+
54
+ ```bash
55
+ sf data query \
56
+ --query "SELECT Id, Name FROM Account LIMIT 5" \
57
+ --target-org my-sandbox
58
+ ```
59
+
60
+ ### JSON
61
+
62
+ ```bash
63
+ sf data query \
64
+ --query "SELECT Id, Name FROM Account LIMIT 5" \
65
+ --target-org my-sandbox \
66
+ --json
67
+ ```
68
+
69
+ ### CSV
70
+
71
+ ```bash
72
+ sf data query \
73
+ --query "SELECT Id, Name, Industry FROM Account" \
74
+ --target-org my-sandbox \
75
+ --result-format csv > accounts.csv
76
+ ```
77
+
78
+ ### Direct to File
79
+
80
+ ```bash
81
+ sf data query \
82
+ --query "SELECT Id, Name, Industry FROM Account" \
83
+ --target-org my-sandbox \
84
+ --result-format csv \
85
+ --output-file accounts.csv
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Bulk Data Export
91
+
92
+ For large result sets (> 2,000 records), use the dedicated bulk export command:
93
+
94
+ ```bash
95
+ # Export to CSV (default)
96
+ sf data export bulk \
97
+ --query "SELECT Id, Name FROM Account" \
98
+ --target-org my-sandbox \
99
+ --output-file accounts.csv
100
+
101
+ # Export as JSON
102
+ sf data export bulk \
103
+ --query "SELECT Id, Name FROM Account" \
104
+ --target-org my-sandbox \
105
+ --output-file accounts.json \
106
+ --result-format json
107
+ ```
108
+
109
+ > **Note**: `--bulk` and `--wait` flags on `sf data query` were removed in v2.87.7. Use `sf data export bulk` instead.
110
+
111
+ ---
112
+
113
+ ## Query Plan Analysis
114
+
115
+ Analyze query performance before running:
116
+
117
+ ```bash
118
+ sf data query \
119
+ --query "SELECT Id FROM Account WHERE Name = 'Acme'" \
120
+ --target-org my-sandbox \
121
+ --use-tooling-api \
122
+ --plan
123
+ ```
124
+
125
+ ### Understanding Query Plan Output
126
+
127
+ ```json
128
+ {
129
+ "plans": [{
130
+ "cardinality": 50, // Estimated rows returned
131
+ "fields": ["Name"], // Fields used for filtering
132
+ "leadingOperationType": "Index", // Index = good, TableScan = bad
133
+ "relativeCost": 0.1, // Lower is better
134
+ "sobjectCardinality": 10000, // Total records in object
135
+ "sobjectType": "Account"
136
+ }]
137
+ }
138
+ ```
139
+
140
+ **Key Indicators:**
141
+ - `leadingOperationType: "Index"` = Query uses index (good)
142
+ - `leadingOperationType: "TableScan"` = Full table scan (bad for large tables)
143
+ - `relativeCost < 1` = Efficient query
144
+ - `cardinality` = Expected number of results
145
+
146
+ ---
147
+
148
+ ## Tooling API Queries
149
+
150
+ Query metadata objects:
151
+
152
+ ```bash
153
+ # Query ApexClass
154
+ sf data query \
155
+ --query "SELECT Id, Name, Body FROM ApexClass WHERE Name = 'MyController'" \
156
+ --target-org my-sandbox \
157
+ --use-tooling-api
158
+
159
+ # Query CustomField
160
+ sf data query \
161
+ --query "SELECT Id, DeveloperName, TableEnumOrId FROM CustomField WHERE TableEnumOrId = 'Account'" \
162
+ --target-org my-sandbox \
163
+ --use-tooling-api
164
+ ```
165
+
166
+ ---
167
+
168
+ ## Query from File
169
+
170
+ Store query in file and execute:
171
+
172
+ ```bash
173
+ # Create query file
174
+ echo "SELECT Id, Name FROM Account WHERE Industry = 'Technology'" > query.soql
175
+
176
+ # Execute from file
177
+ sf data query \
178
+ --file query.soql \
179
+ --target-org my-sandbox
180
+ ```
181
+
182
+ ---
183
+
184
+ ## Useful Patterns
185
+
186
+ ### Get Record Count
187
+
188
+ ```bash
189
+ sf data query \
190
+ --query "SELECT COUNT() FROM Account" \
191
+ --target-org my-sandbox
192
+ ```
193
+
194
+ ### Export to File
195
+
196
+ ```bash
197
+ # CSV export
198
+ sf data query \
199
+ --query "SELECT Id, Name, Industry, Phone FROM Account" \
200
+ --target-org my-sandbox \
201
+ --result-format csv > accounts.csv
202
+
203
+ # JSON export
204
+ sf data query \
205
+ --query "SELECT Id, Name, Industry FROM Account" \
206
+ --target-org my-sandbox \
207
+ --json > accounts.json
208
+ ```
209
+
210
+ ### Query with jq Processing
211
+
212
+ ```bash
213
+ # Get just the names
214
+ sf data query \
215
+ --query "SELECT Name FROM Account LIMIT 10" \
216
+ --target-org my-sandbox \
217
+ --json | jq -r '.result.records[].Name'
218
+
219
+ # Count records
220
+ sf data query \
221
+ --query "SELECT Id FROM Account" \
222
+ --target-org my-sandbox \
223
+ --json | jq '.result.totalSize'
224
+
225
+ # Filter in shell
226
+ sf data query \
227
+ --query "SELECT Id, Name, Industry FROM Account" \
228
+ --target-org my-sandbox \
229
+ --json | jq '.result.records[] | select(.Industry == "Technology")'
230
+ ```
231
+
232
+ ### Query with Dates
233
+
234
+ ```bash
235
+ # Records created today
236
+ sf data query \
237
+ --query "SELECT Id, Name FROM Account WHERE CreatedDate = TODAY" \
238
+ --target-org my-sandbox
239
+
240
+ # Records from last 30 days
241
+ sf data query \
242
+ --query "SELECT Id, Name FROM Account WHERE CreatedDate = LAST_N_DAYS:30" \
243
+ --target-org my-sandbox
244
+ ```
245
+
246
+ ### Aggregate Queries
247
+
248
+ ```bash
249
+ # Count by industry
250
+ sf data query \
251
+ --query "SELECT Industry, COUNT(Id) FROM Account GROUP BY Industry" \
252
+ --target-org my-sandbox
253
+
254
+ # Sum of amounts
255
+ sf data query \
256
+ --query "SELECT SUM(Amount) FROM Opportunity WHERE StageName = 'Closed Won'" \
257
+ --target-org my-sandbox
258
+ ```
259
+
260
+ ---
261
+
262
+ ## Troubleshooting
263
+
264
+ ### Query Timeout
265
+
266
+ For long-running queries, export via bulk API:
267
+
268
+ ```bash
269
+ sf data export bulk \
270
+ --query "SELECT Id, Name FROM Account" \
271
+ --target-org my-sandbox \
272
+ --output-file results.csv
273
+ ```
274
+
275
+ ### Too Many Results
276
+
277
+ Add LIMIT or filter:
278
+
279
+ ```bash
280
+ # With limit
281
+ sf data query \
282
+ --query "SELECT Id, Name FROM Account LIMIT 1000" \
283
+ --target-org my-sandbox
284
+
285
+ # With filter
286
+ sf data query \
287
+ --query "SELECT Id, Name FROM Account WHERE CreatedDate = THIS_YEAR" \
288
+ --target-org my-sandbox
289
+ ```
290
+
291
+ ### Non-Selective Query Error
292
+
293
+ Add indexed field to WHERE:
294
+
295
+ ```bash
296
+ # Add CreatedDate filter (indexed)
297
+ sf data query \
298
+ --query "SELECT Id FROM Lead WHERE Status = 'Open' AND CreatedDate = LAST_N_DAYS:90" \
299
+ --target-org my-sandbox
300
+ ```
301
+
302
+ ### Permission Errors
303
+
304
+ Check field-level security:
305
+
306
+ ```bash
307
+ # Query accessible fields only
308
+ sf data query \
309
+ --query "SELECT Id, Name FROM Account" \
310
+ --target-org my-sandbox
311
+ ```
312
+
313
+ ---
314
+
315
+ ## Integration with Other Tools
316
+
317
+ ### Pipe to File
318
+
319
+ ```bash
320
+ sf data query \
321
+ --query "SELECT Id, Name FROM Account" \
322
+ --target-org my-sandbox \
323
+ --result-format csv | tee accounts.csv
324
+ ```
325
+
326
+ ### Use in Scripts
327
+
328
+ ```bash
329
+ #!/bin/bash
330
+
331
+ ORG=${1:-"my-sandbox"}
332
+
333
+ # Get count
334
+ COUNT=$(sf data query \
335
+ --query "SELECT COUNT() FROM Account" \
336
+ --target-org $ORG \
337
+ --json | jq -r '.result.totalSize')
338
+
339
+ echo "Total accounts: $COUNT"
340
+
341
+ # Get top accounts
342
+ sf data query \
343
+ --query "SELECT Name, AnnualRevenue FROM Account ORDER BY AnnualRevenue DESC LIMIT 10" \
344
+ --target-org $ORG
345
+ ```
346
+
347
+ ### Compare Orgs
348
+
349
+ ```bash
350
+ #!/bin/bash
351
+
352
+ PROD_COUNT=$(sf data query --query "SELECT COUNT() FROM Account" --target-org prod --json | jq '.result.totalSize')
353
+ SANDBOX_COUNT=$(sf data query --query "SELECT COUNT() FROM Account" --target-org sandbox --json | jq '.result.totalSize')
354
+
355
+ echo "Production accounts: $PROD_COUNT"
356
+ echo "Sandbox accounts: $SANDBOX_COUNT"
357
+ echo "Difference: $((PROD_COUNT - SANDBOX_COUNT))"
358
+ ```