@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,120 @@
1
+ ---
2
+ name: retrieving-datacloud
3
+ description: "Salesforce Data Cloud Retrieve phase. Use this skill when the user runs Data Cloud SQL, async queries, vector search, search-index workflows, or metadata introspection for Data Cloud objects. TRIGGER when: user runs Data Cloud SQL, describe, async queries, vector search, search-index workflows, or metadata introspection for Data Cloud objects. DO NOT TRIGGER when: the task is standard CRM SOQL (use querying-soql), segment creation or calculated insight design (use segmenting-datacloud), or STDM/session tracing/parquet analysis (use observing-agentforce)."
4
+ license: MIT
5
+ compatibility: "Requires an external community sf data360 CLI plugin and a Data Cloud-enabled org"
6
+ metadata:
7
+ version: "1.0"
8
+ ---
9
+
10
+ # retrieving-datacloud: Data Cloud Retrieve Phase
11
+
12
+ Use this skill when the user needs **query, search, and metadata introspection** for Data Cloud: sync SQL, paginated SQL, async query workflows, table describe, vector search, hybrid search, or search index operations.
13
+
14
+ ## When This Skill Owns the Task
15
+
16
+ Use `retrieving-datacloud` when the work involves:
17
+ - `sf data360 query *`
18
+ - `sf data360 search-index *`
19
+ - `sf data360 metadata *`
20
+ - `sf data360 profile *` or `sf data360 insight *` inspection
21
+ - understanding Data Cloud SQL results or query shape
22
+
23
+ Delegate elsewhere when the user is:
24
+ - writing standard CRM SOQL only → [querying-soql](../querying-soql/SKILL.md)
25
+ - designing segment or calculated insight assets → [segmenting-datacloud](../segmenting-datacloud/SKILL.md)
26
+ - analyzing STDM/session tracing/parquet telemetry → [observing-agentforce](../observing-agentforce/SKILL.md)
27
+
28
+ ---
29
+
30
+ ## Required Context to Gather First
31
+
32
+ Ask for or infer:
33
+ - target org alias
34
+ - whether the user needs quick count, medium result set, large export, schema inspection, or semantic search
35
+ - table/index name if known
36
+ - whether the task is read-only SQL or search-index lifecycle management
37
+
38
+ ---
39
+
40
+ ## Core Operating Rules
41
+
42
+ - Treat Data Cloud SQL as its own query language, not SOQL.
43
+ - Run the shared readiness classifier before relying on query/search surfaces: `node ~/.claude/skills/orchestrating-datacloud/scripts/diagnose-org.mjs -o <org> --phase retrieve --json`.
44
+ - Use describe before guessing columns.
45
+ - Prefer `sqlv2` or async query flows for larger result sets.
46
+ - Use vector search or hybrid search only when the search index lifecycle is healthy.
47
+ - Keep STDM/parquet/session-tracing workflows out of this skill family.
48
+
49
+ ---
50
+
51
+ ## Recommended Workflow
52
+
53
+ ### 1. Classify readiness for retrieve work
54
+ ```bash
55
+ node ~/.claude/skills/orchestrating-datacloud/scripts/diagnose-org.mjs -o <org> --phase retrieve --json
56
+ # optional query-plane probe, only with a real table name
57
+ node ~/.claude/skills/orchestrating-datacloud/scripts/diagnose-org.mjs -o <org> --phase retrieve --describe-table MyDMO__dlm --json
58
+ ```
59
+
60
+ ### 2. Choose the smallest correct query shape
61
+ ```bash
62
+ sf data360 query sql -o <org> --sql 'SELECT COUNT(*) FROM "ssot__Individual__dlm"' 2>/dev/null
63
+ sf data360 query sqlv2 -o <org> --sql 'SELECT * FROM "ssot__Individual__dlm"' 2>/dev/null
64
+ sf data360 query async-create -o <org> --sql 'SELECT * FROM "ssot__Individual__dlm"' 2>/dev/null
65
+ ```
66
+
67
+ ### 3. Use describe before guessing fields
68
+ ```bash
69
+ sf data360 query describe -o <org> --table ssot__Individual__dlm 2>/dev/null
70
+ ```
71
+
72
+ ### 4. Use vector or hybrid search only when an index exists
73
+ ```bash
74
+ sf data360 search-index list -o <org> 2>/dev/null
75
+ sf data360 query vector -o <org> --index Knowledge_Index --query "reset password" --limit 5 2>/dev/null
76
+ sf data360 query hybrid -o <org> --index Knowledge_Index --query "reset password" --limit 5 2>/dev/null
77
+ sf data360 query hybrid -o <org> --index Insurance_Index --query "weather damage coverage" --prefilter "Type_of_Insurance__c='Home'" --limit 10 2>/dev/null
78
+ ```
79
+
80
+ ### 5. Reuse curated search-index examples when creating indexes
81
+ Use the phase-owned examples instead of inventing JSON from scratch:
82
+ - `examples/search-indexes/vector-knowledge.json`
83
+ - `examples/search-indexes/hybrid-structured.json`
84
+
85
+ ---
86
+
87
+ ## High-Signal Gotchas
88
+
89
+ - Data Cloud SQL is not SOQL.
90
+ - Table names should be double-quoted in SQL.
91
+ - `sqlv2` is better than ad hoc OFFSET paging for medium result sets.
92
+ - async query is preferable for large results.
93
+ - search-index operations and vector/hybrid queries depend on the index lifecycle being healthy.
94
+ - Hybrid search can use `--prefilter`, but only on fields configured as prefilter-capable when the search index was created.
95
+ - HNSW index parameters are typically read-only on create; leave `userValues: []` unless the platform explicitly documents otherwise.
96
+ - `query describe` is not a universal tenant probe; only run it with a known DMO or DLO table after broader readiness has been confirmed.
97
+
98
+ ---
99
+
100
+ ## Output Format
101
+
102
+ ```text
103
+ Retrieve task: <sql / sqlv2 / async / describe / vector / search-index>
104
+ Target org: <alias>
105
+ Target object: <table or index>
106
+ Commands: <key commands run>
107
+ Verification: <query rows / schema / status>
108
+ Next step: <segment / harmonize / follow-up>
109
+ ```
110
+
111
+ ---
112
+
113
+ ## References
114
+
115
+ - [README.md](README.md)
116
+ - [examples/search-indexes/vector-knowledge.json](examples/search-indexes/vector-knowledge.json)
117
+ - [examples/search-indexes/hybrid-structured.json](examples/search-indexes/hybrid-structured.json)
118
+ - [../orchestrating-datacloud/assets/definitions/search-index.template.json](../orchestrating-datacloud/assets/definitions/search-index.template.json)
119
+ - [../orchestrating-datacloud/references/plugin-setup.md](../orchestrating-datacloud/references/plugin-setup.md)
120
+ - [../orchestrating-datacloud/references/feature-readiness.md](../orchestrating-datacloud/references/feature-readiness.md)
@@ -0,0 +1,44 @@
1
+ {
2
+ "label": "<INDEX_NAME>",
3
+ "developerName": "<INDEX_NAME>",
4
+ "description": "Hybrid search index on a structured Data Cloud DMO",
5
+ "sourceDmoDeveloperName": "<SOURCE_DMO>__dlm",
6
+ "chunkDmoName": "<INDEX_NAME> chunk",
7
+ "chunkDmoDeveloperName": "<INDEX_NAME>_chunk",
8
+ "vectorDmoName": "<INDEX_NAME> index",
9
+ "vectorDmoDeveloperName": "<INDEX_NAME>_index",
10
+ "searchType": "HYBRID",
11
+ "vectorEmbedding": {
12
+ "vectorEmbeddingRelatedFields": []
13
+ },
14
+ "rankingConfigurations": [],
15
+ "chunkingConfiguration": {
16
+ "fieldLevelConfigurations": [
17
+ {
18
+ "sourceDmoDeveloperName": "<SOURCE_DMO>__dlm",
19
+ "sourceDmoFieldDeveloperName": "<TEXT_FIELD>__c",
20
+ "config": {
21
+ "id": "passage_extraction",
22
+ "userValues": [
23
+ { "id": "max_tokens", "value": "512" },
24
+ { "id": "strip_html", "value": "true" }
25
+ ]
26
+ }
27
+ }
28
+ ]
29
+ },
30
+ "vectorEmbeddingConfiguration": {
31
+ "embeddingModel": {
32
+ "id": "e5_large_v2",
33
+ "userValues": [
34
+ { "id": "dimension", "value": "1024" },
35
+ { "id": "max_token_limit", "value": "512" }
36
+ ]
37
+ },
38
+ "index": {
39
+ "id": "HNSW",
40
+ "userValues": []
41
+ },
42
+ "similarityMetric": "COSINE"
43
+ }
44
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "label": "My_kav",
3
+ "developerName": "My_kav",
4
+ "sourceDmoDeveloperName": "ssot__KnowledgeArticleVersion__dlm",
5
+ "chunkDmoName": "My_kav chunk",
6
+ "chunkDmoDeveloperName": "My_kav_chunk",
7
+ "vectorDmoName": "My_kav index",
8
+ "vectorDmoDeveloperName": "My_kav_index",
9
+ "searchType": "VECTOR",
10
+ "vectorEmbedding": {
11
+ "vectorEmbeddingRelatedFields": []
12
+ },
13
+ "chunkingConfiguration": {
14
+ "fieldLevelConfigurations": [
15
+ {
16
+ "sourceDmoDeveloperName": "ssot__KnowledgeArticleVersion__dlm",
17
+ "sourceDmoFieldDeveloperName": "ssot__Name__c",
18
+ "config": {
19
+ "id": "passage_extraction",
20
+ "userValues": [
21
+ { "id": "strip_html", "value": "true" },
22
+ { "id": "max_tokens", "value": "512" }
23
+ ]
24
+ }
25
+ }
26
+ ]
27
+ },
28
+ "vectorEmbeddingConfiguration": {
29
+ "embeddingModel": {
30
+ "id": "e5_large_v2",
31
+ "userValues": [
32
+ { "id": "dimension", "value": "1024" },
33
+ { "id": "max_token_limit", "value": "512" }
34
+ ]
35
+ },
36
+ "index": {
37
+ "id": "HNSW",
38
+ "userValues": []
39
+ },
40
+ "similarityMetric": "COSINE"
41
+ },
42
+ "rankingConfigurations": []
43
+ }
@@ -0,0 +1,22 @@
1
+ # Credits & Acknowledgments
2
+
3
+ This skill integrates concepts and patterns from Salesforce documentation and the broader Salesforce developer community. The goal is to move beyond minimum coverage targets toward true unit testing with proper isolation, mocking, and disciplined test-fix workflows.
4
+
5
+ ---
6
+
7
+ ## Key Patterns Integrated
8
+
9
+ | Pattern | Integration |
10
+ |---------|-------------|
11
+ | DML Mocking | `assets/dml-mock.cls` |
12
+ | Mocking vs Stubbing | `references/mocking-patterns.md` |
13
+ | Test Data Factory | `assets/test-data-factory.cls` |
14
+ | HttpCalloutMock | `assets/mock-callout-test.cls` |
15
+ | StubProvider | `assets/stub-provider-example.cls` |
16
+ | Performant Tests | `references/performance-optimization.md` |
17
+
18
+ ---
19
+
20
+ ## Philosophy
21
+
22
+ This skill teaches Apex developers how to write fast, reliable, maintainable tests using vanilla Apex patterns — no external packages or libraries required. All patterns work in any Salesforce org out of the box.
@@ -0,0 +1,94 @@
1
+ # running-apex-tests
2
+
3
+ Comprehensive Salesforce testing skill with test execution, code coverage analysis, and agentic test-fix loops. Run tests, analyze coverage, and automatically fix failing tests.
4
+
5
+ ## Features
6
+
7
+ - **Test Execution**: Run Apex tests via sf CLI with coverage analysis
8
+ - **Coverage Analysis**: Parse reports, identify untested code paths
9
+ - **Failure Analysis**: Parse failures, identify root causes, suggest fixes
10
+ - **Agentic Test-Fix Loop**: Automatically fix failing tests and re-run
11
+ - **120-Point Scoring**: Validation across 6 categories
12
+ - **Bulk Testing**: Validate with 251+ records for governor limits
13
+
14
+ ## Quick Start
15
+
16
+ ### 1. Invoke the skill
17
+
18
+ ```
19
+ Skill: running-apex-tests
20
+ Request: "Run all tests and show coverage report for org dev"
21
+ ```
22
+
23
+ ### 2. Common operations
24
+
25
+ | Operation | Example Request |
26
+ |-----------|-----------------|
27
+ | Run class | "Run AccountServiceTest in org dev" |
28
+ | Run all | "Run all local tests with coverage" |
29
+ | Coverage report | "Show code coverage for AccountService" |
30
+ | Fix loop | "Run tests and fix failures automatically" |
31
+ | Generate tests | "Create tests for AccountService class" |
32
+
33
+ ## Key Commands
34
+
35
+ ```bash
36
+ # Run single test class
37
+ sf apex run test --class-names MyClassTest --code-coverage --result-format json --target-org [alias]
38
+
39
+ # Run all local tests
40
+ sf apex run test --test-level RunLocalTests --code-coverage --result-format json --target-org [alias]
41
+
42
+ # Run specific methods
43
+ sf apex run test --tests MyClassTest.testMethod1 --target-org [alias]
44
+
45
+ # Run with output directory
46
+ sf apex run test --class-names MyClassTest --output-dir test-results --target-org [alias]
47
+ ```
48
+
49
+ ## Scoring System (120 Points)
50
+
51
+ | Category | Points | Focus |
52
+ |----------|--------|-------|
53
+ | Coverage | 25 | Overall and per-class coverage |
54
+ | Assertions | 25 | Meaningful assertions, edge cases |
55
+ | Bulk Testing | 20 | 251+ records, governor limits |
56
+ | Data Isolation | 20 | @TestSetup, test data factories |
57
+ | Negative Tests | 15 | Error paths, exceptions |
58
+ | Documentation | 15 | Test descriptions, clear naming |
59
+
60
+ ## Test Thresholds
61
+
62
+ | Level | Coverage | Purpose |
63
+ |-------|----------|---------|
64
+ | Production | 75% minimum | Required for deployment |
65
+ | Recommended | 90%+ | Best practice target |
66
+ | Critical paths | 100% | Business-critical code |
67
+
68
+ ## Cross-Skill Integration
69
+
70
+ | Related Skill | When to Use |
71
+ |---------------|-------------|
72
+ | sf-apex | Fix failing Apex code |
73
+ | debugging-apex-logs | Analyze test failures with debug logs |
74
+ | handling-sf-data | Generate 251+ bulk test records |
75
+ | deploying-metadata | Validate before deployment |
76
+
77
+ ## Agentic Test-Fix Loop
78
+
79
+ When enabled, the skill will:
80
+ 1. Run tests and capture failures
81
+ 2. Analyze error messages and stack traces
82
+ 3. Generate fixes for common issues
83
+ 4. Apply fixes and re-run tests
84
+ 5. Repeat until all tests pass or max iterations reached
85
+
86
+ ## Documentation
87
+
88
+ - [Testing Best Practices](references/testing-best-practices.md)
89
+
90
+ ## Requirements
91
+
92
+ - sf CLI v2
93
+ - Target Salesforce org
94
+ - Test classes in org or local project
@@ -0,0 +1,158 @@
1
+ ---
2
+ name: running-apex-tests
3
+ description: "Apex test execution, coverage analysis, and test-fix loops with 120-point scoring. Use when the user needs to run Apex tests, check code coverage, fix failing tests, or work with *Test.cls / *_Test.cls files. TRIGGER when: user runs Apex tests, checks code coverage, fixes failing tests, or touches *Test.cls / *_Test.cls files. DO NOT TRIGGER when: writing Apex production code (use generating-apex), Agentforce agent testing (use testing-agentforce), or Jest/LWC tests (use generating-lwc-components)."
4
+ license: MIT
5
+ metadata:
6
+ version: "1.1"
7
+ ---
8
+
9
+ # running-apex-tests: Salesforce Test Execution & Coverage Analysis
10
+
11
+ Use this skill when the user needs **Apex test execution and failure analysis**: running tests, checking coverage, interpreting failures, improving coverage, and managing a disciplined test-fix loop for Salesforce code.
12
+
13
+ ## When This Skill Owns the Task
14
+
15
+ Use `running-apex-tests` when the work involves:
16
+ - `sf apex run test` workflows
17
+ - Apex unit-test failures
18
+ - code coverage analysis
19
+ - identifying uncovered lines and missing test scenarios
20
+ - structured test-fix loops for Apex code
21
+
22
+ Delegate elsewhere when the user is:
23
+ - writing or refactoring production Apex → `generating-apex` skill
24
+ - testing Agentforce agents → `testing-agentforce` skill
25
+ - testing LWC with Jest → [generating-lwc-components](../generating-lwc-components/SKILL.md)
26
+
27
+ ---
28
+
29
+ ## Required Context to Gather First
30
+
31
+ Ask for or infer:
32
+ - target org alias
33
+ - desired test scope: single class, specific methods, suite, or local tests
34
+ - coverage threshold expectation
35
+ - whether the user wants diagnosis only or a test-fix loop
36
+ - whether related test data factories already exist
37
+
38
+ ---
39
+
40
+ ## Recommended Workflow
41
+
42
+ ### 1. Discover test scope
43
+ Identify:
44
+ - existing test classes
45
+ - target production classes
46
+ - test data factories / setup helpers
47
+
48
+ ### 2. Run the smallest useful test set first
49
+ Start narrow when debugging a failure; widen only after the fix is stable.
50
+
51
+ ### 3. Analyze results
52
+ Focus on:
53
+ - failing methods
54
+ - exception types and stack traces
55
+ - uncovered lines / weak coverage areas
56
+ - whether failures indicate bad test data, brittle assertions, or broken production logic
57
+
58
+ ### 4. Run a disciplined fix loop
59
+ When the issue is code or test quality:
60
+ - delegate code fixes to `generating-apex` skill when needed
61
+ - add or improve tests
62
+ - rerun focused tests before broader regression
63
+
64
+ ### 5. Improve coverage intentionally
65
+ Cover:
66
+ - positive path
67
+ - negative / exception path
68
+ - bulk path (251+ records where appropriate)
69
+ - callout or async path when relevant
70
+
71
+ ---
72
+
73
+ ## High-Signal Rules
74
+
75
+ | Rule | Rationale |
76
+ |------|-----------|
77
+ | Default to `SeeAllData=false` | Ensures test isolation; prevents reliance on org-specific data |
78
+ | Every test must assert meaningful outcomes | Tests with no assertions prove nothing and give false confidence |
79
+ | Test bulk behavior with 251+ records | Triggers process in batches of 200; 251 records crosses the boundary |
80
+ | Use factories / `@TestSetup` when they improve clarity | Consistent data creation in one place; rolled back between test methods |
81
+ | Pair `Test.startTest()` with `Test.stopTest()` for async | Ensures async operations (queueable, future) complete before assertions |
82
+ | Do not hide flaky org dependencies inside tests | Prevents intermittent failures tied to org state |
83
+
84
+ ---
85
+
86
+ ## Gotchas
87
+
88
+ | Issue | Resolution |
89
+ |-------|------------|
90
+ | Test passes locally but fails in CI org | Check for `SeeAllData=true` or undeclared dependencies on org-specific records |
91
+ | Coverage drops unexpectedly after refactor | Run focused class-level tests first, then widen to `RunLocalTests` to confirm |
92
+ | "Uncommitted work pending" error in callout test | DML and HTTP callouts cannot be mixed in the same test context without `Test.startTest()` wrapping |
93
+ | Mock not taking effect in test | Ensure `Test.setMock()` is called before the code that makes the callout |
94
+ | `@TestSetup` data missing in test method | `@TestSetup` data is committed per test method — re-query it; do not store in static variables |
95
+
96
+ ---
97
+
98
+ ## Output Format
99
+
100
+ When finishing, report in this order:
101
+ 1. **What tests were run**
102
+ 2. **Pass/fail summary**
103
+ 3. **Coverage result**
104
+ 4. **Root-cause findings**
105
+ 5. **Fix or next-run recommendation**
106
+
107
+ Suggested shape:
108
+
109
+ ```text
110
+ Test run: <scope>
111
+ Org: <alias>
112
+ Result: <passed / partial / failed>
113
+ Coverage: <percent / key classes>
114
+ Issues: <highest-signal failures>
115
+ Next step: <fix class, add test, rerun scope, or widen regression>
116
+ ```
117
+
118
+ ---
119
+
120
+ ## Cross-Skill Integration
121
+
122
+ | Need | Delegate to | Reason |
123
+ |------|-------------|--------|
124
+ | Fix production code or author test classes | `generating-apex` skill | Code generation and repair |
125
+ | Create bulk / edge-case test data | [handling-sf-data](../handling-sf-data/SKILL.md) | Realistic test datasets |
126
+ | Deploy updated tests to org | [deploying-metadata](../deploying-metadata/SKILL.md) | Deployment workflows |
127
+ | Inspect detailed runtime logs | [debugging-apex-logs](../debugging-apex-logs/SKILL.md) | Deeper failure analysis |
128
+
129
+ ---
130
+
131
+ ## Reference File Index
132
+
133
+ | File | When to read |
134
+ |------|-------------|
135
+ | `references/cli-commands.md` | All `sf apex run test` command flags, output formats, async execution, and coverage commands |
136
+ | `references/test-patterns.md` | Test class templates — basic, bulk (251+), mock callout, and data factory patterns |
137
+ | `references/testing-best-practices.md` | Core testing principles — AAA pattern, naming conventions, bulk, negative, and mock strategies |
138
+ | `references/test-fix-loop.md` | Agentic test-fix loop implementation and failure analysis decision tree |
139
+ | `references/mocking-patterns.md` | HttpCalloutMock, DML mocking, StubProvider, and selector mocking patterns |
140
+ | `references/performance-optimization.md` | Techniques to reduce test execution time — DML mocking, SOQL mocking, loop optimizations |
141
+ | `assets/basic-test.cls` | Template: standard test class with `@TestSetup`, positive / negative / bulk / edge-case methods |
142
+ | `assets/bulk-test.cls` | Template: bulk test with 251+ records that crosses the 200-record trigger batch boundary |
143
+ | `assets/mock-callout-test.cls` | Template: HTTP callout mock using `HttpCalloutMock` |
144
+ | `assets/test-data-factory.cls` | Template: reusable `TestDataFactory` with create and insert helpers |
145
+ | `assets/dml-mock.cls` | Template: `IDML` interface + `DMLMock` implementation for database-free unit tests |
146
+ | `assets/stub-provider-example.cls` | Template: `StubProvider`-based dependency injection stub |
147
+ | `hooks/scripts/parse-test-results.py` | Post-tool hook — parses `sf apex run test` JSON output and formats failures for the auto-fix loop |
148
+
149
+ ---
150
+
151
+ ## Score Guide
152
+
153
+ | Score | Meaning |
154
+ |---|---|
155
+ | 108+ | strong production-grade test confidence |
156
+ | 96–107 | good test suite with minor gaps |
157
+ | 84–95 | acceptable but strengthen coverage / assertions |
158
+ | < 84 | below standard; revise before relying on it |
@@ -0,0 +1,169 @@
1
+ /**
2
+ * @description Test class for {{ClassName}}
3
+ * Tests core functionality with positive, negative, and bulk scenarios.
4
+ * @created {{Date}}
5
+ * @coverage Target: 90%+
6
+ */
7
+ @IsTest
8
+ private class {{ClassName}}Test {
9
+
10
+ // ═══════════════════════════════════════════════════════════════════════════
11
+ // TEST DATA SETUP
12
+ // ═══════════════════════════════════════════════════════════════════════════
13
+
14
+ @TestSetup
15
+ static void setupTestData() {
16
+ // Create test data using Test Data Factory pattern
17
+ // This data is available to all test methods and rolled back after each
18
+ List<{{ObjectName}}> records = TestDataFactory.create{{ObjectName}}s(5);
19
+ insert records;
20
+ }
21
+
22
+ // ═══════════════════════════════════════════════════════════════════════════
23
+ // POSITIVE TESTS
24
+ // ═══════════════════════════════════════════════════════════════════════════
25
+
26
+ /**
27
+ * @description Tests successful {{methodUnderTest}} with valid input
28
+ */
29
+ @IsTest
30
+ static void test{{MethodUnderTest}}_ValidInput_Success() {
31
+ // ─────────────────────────────────────────────────────────────────────
32
+ // GIVEN - Set up test conditions
33
+ // ─────────────────────────────────────────────────────────────────────
34
+ {{ObjectName}} testRecord = [SELECT Id, Name FROM {{ObjectName}} LIMIT 1];
35
+ // TODO: Add any additional setup needed
36
+
37
+ // ─────────────────────────────────────────────────────────────────────
38
+ // WHEN - Execute the method under test
39
+ // ─────────────────────────────────────────────────────────────────────
40
+ Test.startTest();
41
+ {{ReturnType}} result = {{ClassName}}.{{methodUnderTest}}(testRecord);
42
+ Test.stopTest();
43
+
44
+ // ─────────────────────────────────────────────────────────────────────
45
+ // THEN - Verify expected outcomes
46
+ // ─────────────────────────────────────────────────────────────────────
47
+ Assert.isNotNull(result, 'Result should not be null');
48
+ // TODO: Add specific assertions for expected values
49
+ // Assert.areEqual(expectedValue, result, 'Result should match expected value');
50
+ }
51
+
52
+ // ═══════════════════════════════════════════════════════════════════════════
53
+ // NEGATIVE TESTS
54
+ // ═══════════════════════════════════════════════════════════════════════════
55
+
56
+ /**
57
+ * @description Tests {{methodUnderTest}} throws exception with null input
58
+ */
59
+ @IsTest
60
+ static void test{{MethodUnderTest}}_NullInput_ThrowsException() {
61
+ // ─────────────────────────────────────────────────────────────────────
62
+ // GIVEN - Null input
63
+ // ─────────────────────────────────────────────────────────────────────
64
+ {{ObjectName}} nullRecord = null;
65
+
66
+ // ─────────────────────────────────────────────────────────────────────
67
+ // WHEN/THEN - Verify exception is thrown
68
+ // ─────────────────────────────────────────────────────────────────────
69
+ try {
70
+ Test.startTest();
71
+ {{ClassName}}.{{methodUnderTest}}(nullRecord);
72
+ Test.stopTest();
73
+ Assert.fail('Expected exception was not thrown');
74
+ } catch (IllegalArgumentException e) {
75
+ Assert.isTrue(
76
+ e.getMessage().containsIgnoreCase('null') ||
77
+ e.getMessage().containsIgnoreCase('required'),
78
+ 'Error message should indicate null/required issue: ' + e.getMessage()
79
+ );
80
+ }
81
+ }
82
+
83
+ /**
84
+ * @description Tests {{methodUnderTest}} handles invalid data gracefully
85
+ */
86
+ @IsTest
87
+ static void test{{MethodUnderTest}}_InvalidData_ReturnsError() {
88
+ // ─────────────────────────────────────────────────────────────────────
89
+ // GIVEN - Invalid input data
90
+ // ─────────────────────────────────────────────────────────────────────
91
+ {{ObjectName}} invalidRecord = new {{ObjectName}}(
92
+ // TODO: Set invalid field values that should fail validation
93
+ );
94
+
95
+ // ─────────────────────────────────────────────────────────────────────
96
+ // WHEN - Execute with invalid data
97
+ // ─────────────────────────────────────────────────────────────────────
98
+ Test.startTest();
99
+ // TODO: Call method and capture result/exception
100
+ Test.stopTest();
101
+
102
+ // ─────────────────────────────────────────────────────────────────────
103
+ // THEN - Verify appropriate error handling
104
+ // ─────────────────────────────────────────────────────────────────────
105
+ // TODO: Assert error message or state
106
+ }
107
+
108
+ // ═══════════════════════════════════════════════════════════════════════════
109
+ // BULK TESTS (251+ records)
110
+ // ═══════════════════════════════════════════════════════════════════════════
111
+
112
+ /**
113
+ * @description Tests {{methodUnderTest}} handles bulk operations (251 records)
114
+ * 251 records crosses the 200-record trigger batch boundary
115
+ */
116
+ @IsTest
117
+ static void test{{MethodUnderTest}}_BulkOperation_Success() {
118
+ // ─────────────────────────────────────────────────────────────────────
119
+ // GIVEN - 251 records (crosses 200-record batch boundary)
120
+ // ─────────────────────────────────────────────────────────────────────
121
+ List<{{ObjectName}}> bulkRecords = TestDataFactory.create{{ObjectName}}s(251);
122
+
123
+ // ─────────────────────────────────────────────────────────────────────
124
+ // WHEN - Process bulk records
125
+ // ─────────────────────────────────────────────────────────────────────
126
+ Test.startTest();
127
+ insert bulkRecords; // Triggers fire in batches of 200, then 51
128
+ Test.stopTest();
129
+
130
+ // ─────────────────────────────────────────────────────────────────────
131
+ // THEN - Verify all records processed without governor limit issues
132
+ // ─────────────────────────────────────────────────────────────────────
133
+ Integer recordCount = [SELECT COUNT() FROM {{ObjectName}}];
134
+ Assert.isTrue(recordCount >= 251, 'All 251 records should be processed');
135
+
136
+ // Verify governor limits not approached
137
+ Assert.isTrue(Limits.getQueries() < 90,
138
+ 'SOQL queries should stay well under limit: ' + Limits.getQueries() + '/100');
139
+ Assert.isTrue(Limits.getDmlStatements() < 140,
140
+ 'DML statements should stay under limit: ' + Limits.getDmlStatements() + '/150');
141
+ }
142
+
143
+ // ═══════════════════════════════════════════════════════════════════════════
144
+ // EDGE CASE TESTS
145
+ // ═══════════════════════════════════════════════────────────────────────────
146
+
147
+ /**
148
+ * @description Tests {{methodUnderTest}} with empty list input
149
+ */
150
+ @IsTest
151
+ static void test{{MethodUnderTest}}_EmptyList_NoError() {
152
+ // ─────────────────────────────────────────────────────────────────────
153
+ // GIVEN - Empty list
154
+ // ─────────────────────────────────────────────────────────────────────
155
+ List<{{ObjectName}}> emptyList = new List<{{ObjectName}}>();
156
+
157
+ // ─────────────────────────────────────────────────────────────────────
158
+ // WHEN - Process empty list
159
+ // ─────────────────────────────────────────────────────────────────────
160
+ Test.startTest();
161
+ // TODO: Call method with empty list
162
+ Test.stopTest();
163
+
164
+ // ─────────────────────────────────────────────────────────────────────
165
+ // THEN - Should handle gracefully (no exception)
166
+ // ─────────────────────────────────────────────────────────────────────
167
+ // TODO: Assert appropriate handling
168
+ }
169
+ }