@salesforce/afv-skills 1.8.0 → 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 (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,266 @@
1
+ /**
2
+ * ═══════════════════════════════════════════════════════════════════════════════
3
+ * TRANSACTION ROLLBACK PATTERN
4
+ * Using Database.Savepoint for test isolation
5
+ * ═══════════════════════════════════════════════════════════════════════════════
6
+ *
7
+ * PURPOSE:
8
+ * Create test data, run tests, then roll back all changes.
9
+ * This ensures complete test isolation without leaving orphan data.
10
+ *
11
+ * HOW IT WORKS:
12
+ * 1. Create a savepoint BEFORE creating any test data
13
+ * 2. Create your test data
14
+ * 3. Run your test/validation logic
15
+ * 4. Roll back to the savepoint (deletes all created records)
16
+ *
17
+ * USE CASES:
18
+ * • Unit testing with data setup
19
+ * • Integration testing without pollution
20
+ * • Manual testing with automatic cleanup
21
+ * • Validation runs that shouldn't persist
22
+ *
23
+ * LIMITATIONS:
24
+ * • Cannot roll back asynchronous operations
25
+ * • Savepoints don't persist across transactions
26
+ * • Maximum 5 savepoints per transaction
27
+ *
28
+ * ═══════════════════════════════════════════════════════════════════════════════
29
+ */
30
+
31
+ // ═══════════════════════════════════════════════════════════════════════════════
32
+ // BASIC SAVEPOINT/ROLLBACK PATTERN
33
+ // ═══════════════════════════════════════════════════════════════════════════════
34
+
35
+ System.debug('═══════════════════════════════════════════════════════════════');
36
+ System.debug('TRANSACTION ROLLBACK DEMONSTRATION');
37
+ System.debug('═══════════════════════════════════════════════════════════════');
38
+
39
+ // Step 1: Create savepoint BEFORE any DML
40
+ Savepoint sp = Database.setSavepoint();
41
+ System.debug('✓ Savepoint created');
42
+
43
+ // Track what we create for verification
44
+ Set<Id> createdAccountIds = new Set<Id>();
45
+ Set<Id> createdContactIds = new Set<Id>();
46
+
47
+ try {
48
+ // ═══════════════════════════════════════════════════════════════════════
49
+ // Step 2: Create test data
50
+ // ═══════════════════════════════════════════════════════════════════════
51
+
52
+ System.debug('');
53
+ System.debug('Creating test data...');
54
+
55
+ // Create Accounts
56
+ List<Account> testAccounts = new List<Account>();
57
+ for (Integer i = 0; i < 10; i++) {
58
+ testAccounts.add(new Account(
59
+ Name = 'Rollback Test Account ' + i,
60
+ Industry = 'Technology',
61
+ Description = 'This record will be rolled back'
62
+ ));
63
+ }
64
+ insert testAccounts;
65
+ for (Account acc : testAccounts) {
66
+ createdAccountIds.add(acc.Id);
67
+ }
68
+ System.debug(' Created ' + testAccounts.size() + ' Accounts');
69
+
70
+ // Create Contacts
71
+ List<Contact> testContacts = new List<Contact>();
72
+ for (Account acc : testAccounts) {
73
+ testContacts.add(new Contact(
74
+ FirstName = 'Test',
75
+ LastName = 'Contact',
76
+ AccountId = acc.Id,
77
+ Email = 'test@rollback.example.com'
78
+ ));
79
+ }
80
+ insert testContacts;
81
+ for (Contact con : testContacts) {
82
+ createdContactIds.add(con.Id);
83
+ }
84
+ System.debug(' Created ' + testContacts.size() + ' Contacts');
85
+
86
+ // ═══════════════════════════════════════════════════════════════════════
87
+ // Step 3: Verify data exists
88
+ // ═══════════════════════════════════════════════════════════════════════
89
+
90
+ System.debug('');
91
+ System.debug('Verifying data exists...');
92
+
93
+ Integer accountCount = [SELECT COUNT() FROM Account WHERE Id IN :createdAccountIds];
94
+ Integer contactCount = [SELECT COUNT() FROM Contact WHERE Id IN :createdContactIds];
95
+
96
+ System.debug(' Accounts in database: ' + accountCount);
97
+ System.debug(' Contacts in database: ' + contactCount);
98
+
99
+ // ═══════════════════════════════════════════════════════════════════════
100
+ // Step 4: Run your test logic here
101
+ // ═══════════════════════════════════════════════════════════════════════
102
+
103
+ System.debug('');
104
+ System.debug('Running test logic...');
105
+
106
+ // Example: Verify trigger fired correctly
107
+ // Example: Check field calculations
108
+ // Example: Validate workflow results
109
+
110
+ System.debug(' Test logic completed');
111
+
112
+ } finally {
113
+ // ═══════════════════════════════════════════════════════════════════════
114
+ // Step 5: Roll back ALL changes
115
+ // ═══════════════════════════════════════════════════════════════════════
116
+
117
+ System.debug('');
118
+ System.debug('Rolling back transaction...');
119
+
120
+ Database.rollback(sp);
121
+
122
+ System.debug('✓ Rollback complete');
123
+ }
124
+
125
+ // ═══════════════════════════════════════════════════════════════════════════════
126
+ // Step 6: Verify rollback worked
127
+ // ═══════════════════════════════════════════════════════════════════════════════
128
+
129
+ System.debug('');
130
+ System.debug('Verifying rollback...');
131
+
132
+ Integer accountCountAfter = [SELECT COUNT() FROM Account WHERE Id IN :createdAccountIds];
133
+ Integer contactCountAfter = [SELECT COUNT() FROM Contact WHERE Id IN :createdContactIds];
134
+
135
+ System.debug(' Accounts remaining: ' + accountCountAfter + ' (expected: 0)');
136
+ System.debug(' Contacts remaining: ' + contactCountAfter + ' (expected: 0)');
137
+
138
+ if (accountCountAfter == 0 && contactCountAfter == 0) {
139
+ System.debug('');
140
+ System.debug('═══════════════════════════════════════════════════════════════');
141
+ System.debug('✅ ROLLBACK SUCCESSFUL - All test data removed');
142
+ System.debug('═══════════════════════════════════════════════════════════════');
143
+ } else {
144
+ System.debug('');
145
+ System.debug('⚠️ WARNING: Some records were not rolled back');
146
+ }
147
+
148
+ // ═══════════════════════════════════════════════════════════════════════════════
149
+ // PATTERN: TEST METHOD WITH SAVEPOINT
150
+ // ═══════════════════════════════════════════════════════════════════════════════
151
+
152
+ /*
153
+ @isTest
154
+ public class MyTestClass {
155
+
156
+ @isTest
157
+ static void testWithRollback() {
158
+ // In test methods, DML is automatically rolled back
159
+ // This example shows explicit savepoint usage
160
+
161
+ Savepoint sp = Database.setSavepoint();
162
+
163
+ try {
164
+ // Create test data
165
+ Account testAccount = new Account(Name = 'Test');
166
+ insert testAccount;
167
+
168
+ // Run the test
169
+ Test.startTest();
170
+ MyClass.processAccount(testAccount.Id);
171
+ Test.stopTest();
172
+
173
+ // Assert results
174
+ Account result = [SELECT Field__c FROM Account WHERE Id = :testAccount.Id];
175
+ System.assertEquals('Expected', result.Field__c);
176
+
177
+ } finally {
178
+ // Optional explicit rollback (tests auto-rollback anyway)
179
+ Database.rollback(sp);
180
+ }
181
+ }
182
+ }
183
+ */
184
+
185
+ // ═══════════════════════════════════════════════════════════════════════════════
186
+ // PATTERN: NESTED SAVEPOINTS
187
+ // ═══════════════════════════════════════════════════════════════════════════════
188
+
189
+ /*
190
+ // You can have up to 5 savepoints
191
+
192
+ Savepoint sp1 = Database.setSavepoint();
193
+
194
+ // Create data set 1
195
+ insert accounts;
196
+
197
+ Savepoint sp2 = Database.setSavepoint();
198
+
199
+ // Create data set 2
200
+ insert contacts;
201
+
202
+ // Rollback to sp2 (removes contacts, keeps accounts)
203
+ Database.rollback(sp2);
204
+
205
+ // Rollback to sp1 (removes everything)
206
+ Database.rollback(sp1);
207
+ */
208
+
209
+ // ═══════════════════════════════════════════════════════════════════════════════
210
+ // PATTERN: CONDITIONAL ROLLBACK
211
+ // ═══════════════════════════════════════════════════════════════════════════════
212
+
213
+ /*
214
+ Savepoint sp = Database.setSavepoint();
215
+ Boolean shouldCommit = true;
216
+
217
+ try {
218
+ // Create data
219
+ insert records;
220
+
221
+ // Validate
222
+ if (!isValid(records)) {
223
+ shouldCommit = false;
224
+ }
225
+
226
+ } finally {
227
+ if (!shouldCommit) {
228
+ Database.rollback(sp);
229
+ System.debug('Changes rolled back due to validation failure');
230
+ } else {
231
+ System.debug('Changes committed');
232
+ }
233
+ }
234
+ */
235
+
236
+ // ═══════════════════════════════════════════════════════════════════════════════
237
+ // IMPORTANT NOTES
238
+ // ═══════════════════════════════════════════════════════════════════════════════
239
+
240
+ /*
241
+ 1. SAVEPOINT LIMITATIONS:
242
+ • Max 5 savepoints per transaction
243
+ • Cannot cross transaction boundaries
244
+ • Does not roll back @future, Queueable, or Batch operations
245
+ • Does not roll back platform events
246
+ • Does not roll back email sends
247
+
248
+ 2. WHAT GETS ROLLED BACK:
249
+ ✓ All DML operations (insert, update, delete, undelete)
250
+ ✓ Workflow field updates triggered by DML
251
+ ✓ Process Builder / Flow changes triggered by DML
252
+
253
+ 3. WHAT DOES NOT GET ROLLED BACK:
254
+ ✗ Asynchronous operations (@future, Queueable, Batch, Scheduled)
255
+ ✗ Platform events
256
+ ✗ Outbound messages
257
+ ✗ Email sends
258
+ ✗ Callouts (HTTP requests)
259
+ ✗ Debug logs
260
+
261
+ 4. BEST PRACTICES:
262
+ • Create savepoint as early as possible
263
+ • Always use try-finally to ensure rollback
264
+ • Verify rollback worked by querying records
265
+ • Don't rely on savepoints for async operations
266
+ */
@@ -0,0 +1,11 @@
1
+ Name,Industry,Type,AnnualRevenue,NumberOfEmployees,BillingStreet,BillingCity,BillingState,BillingPostalCode,BillingCountry,Phone,Website,Description
2
+ Test Import Account 001,Technology,Prospect,1000000,100,100 Main Street,San Francisco,CA,94102,USA,(555) 100-0001,https://testaccount001.example.com,Test account for import validation
3
+ Test Import Account 002,Healthcare,Customer,2500000,250,200 Oak Avenue,New York,NY,10001,USA,(555) 100-0002,https://testaccount002.example.com,Healthcare customer account
4
+ Test Import Account 003,Finance,Partner,5000000,500,300 Wall Street,Chicago,IL,60601,USA,(555) 100-0003,https://testaccount003.example.com,Financial services partner
5
+ Test Import Account 004,Manufacturing,Prospect,750000,75,400 Industrial Way,Detroit,MI,48201,USA,(555) 100-0004,https://testaccount004.example.com,Manufacturing prospect
6
+ Test Import Account 005,Retail,Customer,3000000,350,500 Shopping Lane,Los Angeles,CA,90001,USA,(555) 100-0005,https://testaccount005.example.com,Retail chain customer
7
+ Test Import Account 006,Education,Other,500000,50,600 Campus Drive,Boston,MA,02101,USA,(555) 100-0006,https://testaccount006.example.com,Educational institution
8
+ Test Import Account 007,Energy,Prospect,10000000,1000,700 Pipeline Road,Houston,TX,77001,USA,(555) 100-0007,https://testaccount007.example.com,Energy sector prospect
9
+ Test Import Account 008,Media,Customer,1500000,150,800 Broadcast Blvd,Atlanta,GA,30301,USA,(555) 100-0008,https://testaccount008.example.com,Media company
10
+ Test Import Account 009,Technology,Customer,8000000,800,900 Tech Park,Seattle,WA,98101,USA,(555) 100-0009,https://testaccount009.example.com,Enterprise tech customer
11
+ Test Import Account 010,Healthcare,Prospect,2000000,200,1000 Medical Center,Denver,CO,80201,USA,(555) 100-0010,https://testaccount010.example.com,Healthcare prospect
@@ -0,0 +1,11 @@
1
+ FirstName,LastName,Email,Phone,MobilePhone,Title,Department,MailingStreet,MailingCity,MailingState,MailingPostalCode,MailingCountry,Account.Name,Description
2
+ John,Smith,john.smith@testimport.example.com,(555) 200-0001,(555) 300-0001,CEO,Executive,100 Main Street,San Francisco,CA,94102,USA,Test Import Account 001,Primary contact for account
3
+ Jane,Doe,jane.doe@testimport.example.com,(555) 200-0002,(555) 300-0002,CFO,Finance,100 Main Street,San Francisco,CA,94102,USA,Test Import Account 001,Finance lead
4
+ Robert,Johnson,robert.johnson@testimport.example.com,(555) 200-0003,(555) 300-0003,CTO,Technology,200 Oak Avenue,New York,NY,10001,USA,Test Import Account 002,Technical decision maker
5
+ Emily,Williams,emily.williams@testimport.example.com,(555) 200-0004,(555) 300-0004,VP Sales,Sales,200 Oak Avenue,New York,NY,10001,USA,Test Import Account 002,Sales executive
6
+ Michael,Brown,michael.brown@testimport.example.com,(555) 200-0005,(555) 300-0005,Director,Operations,300 Wall Street,Chicago,IL,60601,USA,Test Import Account 003,Operations director
7
+ Sarah,Davis,sarah.davis@testimport.example.com,(555) 200-0006,(555) 300-0006,Manager,Marketing,400 Industrial Way,Detroit,MI,48201,USA,Test Import Account 004,Marketing manager
8
+ David,Miller,david.miller@testimport.example.com,(555) 200-0007,(555) 300-0007,Senior Developer,Engineering,500 Shopping Lane,Los Angeles,CA,90001,USA,Test Import Account 005,Technical lead
9
+ Jennifer,Wilson,jennifer.wilson@testimport.example.com,(555) 200-0008,(555) 300-0008,Analyst,Analytics,600 Campus Drive,Boston,MA,02101,USA,Test Import Account 006,Data analyst
10
+ Christopher,Moore,christopher.moore@testimport.example.com,(555) 200-0009,(555) 300-0009,Consultant,Consulting,700 Pipeline Road,Houston,TX,77001,USA,Test Import Account 007,External consultant
11
+ Amanda,Taylor,amanda.taylor@testimport.example.com,(555) 200-0010,(555) 300-0010,Project Manager,PMO,800 Broadcast Blvd,Atlanta,GA,30301,USA,Test Import Account 008,Project lead
@@ -0,0 +1,11 @@
1
+ Name,Status__c,Type__c,Amount__c,Date__c,Description__c,Account__r.Name
2
+ Test Custom Record 001,Draft,Standard,1000.00,2025-03-01,Test custom object record 1,Test Import Account 001
3
+ Test Custom Record 002,Active,Premium,2500.00,2025-03-02,Test custom object record 2,Test Import Account 001
4
+ Test Custom Record 003,Pending,Standard,1500.00,2025-03-03,Test custom object record 3,Test Import Account 002
5
+ Test Custom Record 004,Active,Enterprise,5000.00,2025-03-04,Test custom object record 4,Test Import Account 002
6
+ Test Custom Record 005,Complete,Standard,750.00,2025-03-05,Test custom object record 5,Test Import Account 003
7
+ Test Custom Record 006,Draft,Premium,3000.00,2025-03-06,Test custom object record 6,Test Import Account 003
8
+ Test Custom Record 007,Active,Standard,1250.00,2025-03-07,Test custom object record 7,Test Import Account 004
9
+ Test Custom Record 008,Pending,Enterprise,7500.00,2025-03-08,Test custom object record 8,Test Import Account 005
10
+ Test Custom Record 009,Complete,Premium,4000.00,2025-03-09,Test custom object record 9,Test Import Account 006
11
+ Test Custom Record 010,Active,Standard,2000.00,2025-03-10,Test custom object record 10,Test Import Account 007
@@ -0,0 +1,11 @@
1
+ Name,StageName,CloseDate,Amount,Probability,Type,LeadSource,NextStep,Description,Account.Name
2
+ Test Opportunity 001,Prospecting,2025-03-15,50000,10,New Customer,Web,Initial discovery call,New opportunity from website lead,Test Import Account 001
3
+ Test Opportunity 002,Qualification,2025-03-20,75000,20,New Customer,Phone Inquiry,Schedule demo,Qualified lead from phone inquiry,Test Import Account 001
4
+ Test Opportunity 003,Needs Analysis,2025-03-25,100000,40,Existing Customer - Upgrade,Partner Referral,Present solution options,Upgrade opportunity from partner,Test Import Account 002
5
+ Test Opportunity 004,Value Proposition,2025-04-01,150000,50,New Customer,Trade Show,Send proposal,Trade show lead in negotiation,Test Import Account 002
6
+ Test Opportunity 005,Proposal/Price Quote,2025-04-10,200000,65,New Customer,Web,Follow up on proposal,Proposal sent awaiting response,Test Import Account 003
7
+ Test Opportunity 006,Negotiation/Review,2025-04-15,250000,80,Existing Customer - Replacement,Employee Referral,Finalize contract terms,Replacement deal in final stages,Test Import Account 003
8
+ Test Opportunity 007,Prospecting,2025-04-20,30000,10,New Customer,Other,Initial outreach,Cold outreach opportunity,Test Import Account 004
9
+ Test Opportunity 008,Qualification,2025-04-25,45000,20,New Customer,Web,Qualify budget,Inbound lead qualification,Test Import Account 005
10
+ Test Opportunity 009,Needs Analysis,2025-05-01,125000,40,New Customer,Partner Referral,Technical assessment,Partner referral in analysis,Test Import Account 006
11
+ Test Opportunity 010,Closed Won,2025-02-28,175000,100,New Customer,Trade Show,Contract signed,Successfully closed deal,Test Import Account 007
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Test Data Factory for Account records
3
+ * Supports bulk creation with configurable field values
4
+ *
5
+ * Usage:
6
+ * List<Account> accounts = TestDataFactory_Account.create(200);
7
+ * List<Account> accountsNoInsert = TestDataFactory_Account.create(200, false);
8
+ * List<Account> customAccounts = TestDataFactory_Account.createWithIndustry(50, 'Healthcare');
9
+ */
10
+ public class TestDataFactory_Account {
11
+
12
+ private static final String DEFAULT_NAME_PREFIX = 'Test Account ';
13
+ private static final String DEFAULT_INDUSTRY = 'Technology';
14
+ private static final String DEFAULT_TYPE = 'Prospect';
15
+
16
+ /**
17
+ * Create and insert Account records with default values
18
+ * @param count Number of records to create
19
+ * @return List of inserted Account records with IDs
20
+ */
21
+ public static List<Account> create(Integer count) {
22
+ return create(count, true);
23
+ }
24
+
25
+ /**
26
+ * Create Account records with insert option
27
+ * @param count Number of records to create
28
+ * @param doInsert Whether to insert records (true) or return without inserting (false)
29
+ * @return List of Account records
30
+ */
31
+ public static List<Account> create(Integer count, Boolean doInsert) {
32
+ List<Account> records = new List<Account>();
33
+ for (Integer i = 0; i < count; i++) {
34
+ records.add(buildRecord(i));
35
+ }
36
+ if (doInsert && !records.isEmpty()) {
37
+ insert records;
38
+ }
39
+ return records;
40
+ }
41
+
42
+ /**
43
+ * Create Account records with specific Industry
44
+ * @param count Number of records to create
45
+ * @param industry Industry picklist value
46
+ * @return List of inserted Account records
47
+ */
48
+ public static List<Account> createWithIndustry(Integer count, String industry) {
49
+ List<Account> records = new List<Account>();
50
+ for (Integer i = 0; i < count; i++) {
51
+ Account acc = buildRecord(i);
52
+ acc.Industry = industry;
53
+ records.add(acc);
54
+ }
55
+ if (!records.isEmpty()) {
56
+ insert records;
57
+ }
58
+ return records;
59
+ }
60
+
61
+ /**
62
+ * Create Account records with varying Industries for comprehensive testing
63
+ * Distributes records across multiple Industry values
64
+ * @param count Number of records to create
65
+ * @return List of inserted Account records with varied Industries
66
+ */
67
+ public static List<Account> createWithVariedIndustries(Integer count) {
68
+ List<String> industries = new List<String>{
69
+ 'Technology', 'Healthcare', 'Finance', 'Manufacturing',
70
+ 'Retail', 'Education', 'Energy', 'Media'
71
+ };
72
+
73
+ List<Account> records = new List<Account>();
74
+ for (Integer i = 0; i < count; i++) {
75
+ Account acc = buildRecord(i);
76
+ acc.Industry = industries[Math.mod(i, industries.size())];
77
+ records.add(acc);
78
+ }
79
+ if (!records.isEmpty()) {
80
+ insert records;
81
+ }
82
+ return records;
83
+ }
84
+
85
+ /**
86
+ * Create Account hierarchy (parent-child accounts)
87
+ * @param parentCount Number of parent accounts
88
+ * @param childrenPerParent Number of child accounts per parent
89
+ * @return Map with 'parents' and 'children' lists
90
+ */
91
+ public static Map<String, List<Account>> createHierarchy(Integer parentCount, Integer childrenPerParent) {
92
+ // Create parent accounts
93
+ List<Account> parents = create(parentCount);
94
+
95
+ // Create child accounts
96
+ List<Account> children = new List<Account>();
97
+ for (Account parent : parents) {
98
+ for (Integer i = 0; i < childrenPerParent; i++) {
99
+ Account child = new Account(
100
+ Name = parent.Name + ' - Child ' + i,
101
+ ParentId = parent.Id,
102
+ Industry = parent.Industry,
103
+ Type = 'Customer'
104
+ );
105
+ children.add(child);
106
+ }
107
+ }
108
+ if (!children.isEmpty()) {
109
+ insert children;
110
+ }
111
+
112
+ return new Map<String, List<Account>>{
113
+ 'parents' => parents,
114
+ 'children' => children
115
+ };
116
+ }
117
+
118
+ /**
119
+ * Build a single Account record with default values
120
+ * @param index Record index for unique naming
121
+ * @return Account record (not inserted)
122
+ */
123
+ private static Account buildRecord(Integer index) {
124
+ return new Account(
125
+ Name = DEFAULT_NAME_PREFIX + String.valueOf(index).leftPad(5, '0'),
126
+ Industry = DEFAULT_INDUSTRY,
127
+ Type = DEFAULT_TYPE,
128
+ BillingStreet = '123 Test Street',
129
+ BillingCity = 'San Francisco',
130
+ BillingState = 'CA',
131
+ BillingPostalCode = '94102',
132
+ BillingCountry = 'USA',
133
+ Phone = '(555) 123-' + String.valueOf(1000 + index),
134
+ Website = 'https://testaccount' + index + '.example.com',
135
+ NumberOfEmployees = 100 + (index * 10),
136
+ AnnualRevenue = 1000000 + (index * 50000),
137
+ Description = 'Test account created by TestDataFactory for automated testing'
138
+ );
139
+ }
140
+
141
+ /**
142
+ * Get IDs of created records for cleanup
143
+ * @param records List of Account records
144
+ * @return Set of Account IDs
145
+ */
146
+ public static Set<Id> getIds(List<Account> records) {
147
+ Set<Id> ids = new Set<Id>();
148
+ for (Account acc : records) {
149
+ if (acc.Id != null) {
150
+ ids.add(acc.Id);
151
+ }
152
+ }
153
+ return ids;
154
+ }
155
+
156
+ /**
157
+ * Delete records by IDs (cleanup utility)
158
+ * @param recordIds Set of Account IDs to delete
159
+ */
160
+ public static void cleanup(Set<Id> recordIds) {
161
+ if (!recordIds.isEmpty()) {
162
+ delete [SELECT Id FROM Account WHERE Id IN :recordIds];
163
+ }
164
+ }
165
+ }