@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.
- package/package.json +1 -1
- package/skills/activating-datacloud/CREDITS.md +5 -0
- package/skills/activating-datacloud/README.md +39 -0
- package/skills/activating-datacloud/SKILL.md +118 -0
- package/skills/analyzing-omnistudio-dependencies/CREDITS.md +5 -0
- package/skills/analyzing-omnistudio-dependencies/SKILL.md +477 -0
- package/skills/analyzing-omnistudio-dependencies/references/dependency-patterns.md +508 -0
- package/skills/analyzing-omnistudio-dependencies/references/namespace-guide.md +300 -0
- package/skills/building-omnistudio-callable-apex/CREDITS.md +9 -0
- package/skills/building-omnistudio-callable-apex/README.md +80 -0
- package/skills/building-omnistudio-callable-apex/SKILL.md +276 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_callable_openinterface.cls +40 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_callable_vanilla.cls +32 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_migration.cls +54 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_openinterface.cls +45 -0
- package/skills/building-omnistudio-callable-apex/assets/pattern_test_class.cls +65 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/IndustriesCallableException.cls +7 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallable.cls +115 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/Industries_QuoteByProductCallableTest.cls +189 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_QuoteByProductCallable/TRANSCRIPT.md +115 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/IndustriesCallableException.cls +7 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallable.cls +74 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomCallableTest.cls +146 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/MyCustomRemoteClass.cls +16 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterface2Conversion/TRANSCRIPT.md +120 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/IndustriesCallableException.cls +7 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallable.cls +73 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomCallableTest.cls +128 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/MyCustomVlocityOpenInterface2.cls +23 -0
- package/skills/building-omnistudio-callable-apex/examples/Test_VlocityOpenInterfaceConversion/TRANSCRIPT.md +75 -0
- package/skills/building-omnistudio-datamapper/CREDITS.md +5 -0
- package/skills/building-omnistudio-datamapper/SKILL.md +270 -0
- package/skills/building-omnistudio-datamapper/assets/completion-summary-template.md +28 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-extract.json +6 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-item.json +12 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-load.json +6 -0
- package/skills/building-omnistudio-datamapper/assets/omni-data-transform-transform.json +6 -0
- package/skills/building-omnistudio-datamapper/references/best-practices.md +277 -0
- package/skills/building-omnistudio-datamapper/references/naming-conventions.md +145 -0
- package/skills/building-omnistudio-flexcard/CREDITS.md +5 -0
- package/skills/building-omnistudio-flexcard/SKILL.md +325 -0
- package/skills/building-omnistudio-flexcard/assets/omni-ui-card.json +10 -0
- package/skills/building-omnistudio-flexcard/references/best-practices.md +291 -0
- package/skills/building-omnistudio-flexcard/references/data-binding-guide.md +311 -0
- package/skills/building-omnistudio-flexcard/references/scoring-rubric.md +66 -0
- package/skills/building-omnistudio-flexcard/scripts/flexcard-commands.sh +24 -0
- package/skills/building-omnistudio-integration-procedure/CREDITS.md +5 -0
- package/skills/building-omnistudio-integration-procedure/SKILL.md +275 -0
- package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-dr-extract.json +10 -0
- package/skills/building-omnistudio-integration-procedure/assets/omni-process-element-set-values.json +10 -0
- package/skills/building-omnistudio-integration-procedure/assets/omni-process-ip.json +12 -0
- package/skills/building-omnistudio-integration-procedure/assets/scoring-report-format.txt +14 -0
- package/skills/building-omnistudio-integration-procedure/references/best-practices.md +388 -0
- package/skills/building-omnistudio-integration-procedure/references/element-types.md +588 -0
- package/skills/building-omnistudio-integration-procedure/scripts/cli-commands.sh +18 -0
- package/skills/building-omnistudio-omniscript/CREDITS.md +5 -0
- package/skills/building-omnistudio-omniscript/SKILL.md +367 -0
- package/skills/building-omnistudio-omniscript/assets/omni-process-element-step.json +10 -0
- package/skills/building-omnistudio-omniscript/assets/omni-process-element-text-block.json +11 -0
- package/skills/building-omnistudio-omniscript/assets/omni-process-omniscript.json +12 -0
- package/skills/building-omnistudio-omniscript/references/best-practices.md +480 -0
- package/skills/building-omnistudio-omniscript/references/element-types.md +1172 -0
- package/skills/building-omnistudio-omniscript/scripts/check-duplicate-omniscript.sh +13 -0
- package/skills/building-omnistudio-omniscript/scripts/cli-reference.sh +21 -0
- package/skills/building-omnistudio-omniscript/scripts/deploy-omniscript.sh +29 -0
- package/skills/building-sf-integrations/CREDITS.md +5 -0
- package/skills/building-sf-integrations/README.md +95 -0
- package/skills/building-sf-integrations/SKILL.md +192 -0
- package/skills/building-sf-integrations/assets/callouts/callout-retry-handler.cls +167 -0
- package/skills/building-sf-integrations/assets/callouts/http-response-handler.cls +257 -0
- package/skills/building-sf-integrations/assets/callouts/rest-queueable-callout.cls +262 -0
- package/skills/building-sf-integrations/assets/callouts/rest-sync-callout.cls +211 -0
- package/skills/building-sf-integrations/assets/cdc/cdc-handler.cls +246 -0
- package/skills/building-sf-integrations/assets/cdc/cdc-subscriber-trigger.trigger +139 -0
- package/skills/building-sf-integrations/assets/endpoint-security/example.cspTrustedSite-meta.xml +58 -0
- package/skills/building-sf-integrations/assets/endpoint-security/example.remoteSite-meta.xml +39 -0
- package/skills/building-sf-integrations/assets/external-credentials/jwt-external-credential.externalCredential-meta.xml +90 -0
- package/skills/building-sf-integrations/assets/external-credentials/oauth-external-credential.externalCredential-meta.xml +87 -0
- package/skills/building-sf-integrations/assets/external-services/external-service-operations.md +221 -0
- package/skills/building-sf-integrations/assets/external-services/openapi-registration.externalServiceRegistration-meta.xml +193 -0
- package/skills/building-sf-integrations/assets/named-credentials/certificate-auth.namedCredential-meta.xml +62 -0
- package/skills/building-sf-integrations/assets/named-credentials/custom-auth.namedCredential-meta.xml +71 -0
- package/skills/building-sf-integrations/assets/named-credentials/oauth-client-credentials.namedCredential-meta.xml +51 -0
- package/skills/building-sf-integrations/assets/named-credentials/oauth-jwt-bearer.namedCredential-meta.xml +67 -0
- package/skills/building-sf-integrations/assets/platform-events/event-publisher.cls +191 -0
- package/skills/building-sf-integrations/assets/platform-events/event-subscriber-action.cls +295 -0
- package/skills/building-sf-integrations/assets/platform-events/event-subscriber-trigger.trigger +108 -0
- package/skills/building-sf-integrations/assets/platform-events/platform-event-definition.object-meta.xml +124 -0
- package/skills/building-sf-integrations/assets/soap/soap-callout-service.cls +186 -0
- package/skills/building-sf-integrations/assets/soap/wsdl2apex-guide.md +213 -0
- package/skills/building-sf-integrations/hooks/scripts/suggest_credential_setup.py +271 -0
- package/skills/building-sf-integrations/hooks/scripts/validate_integration.py +363 -0
- package/skills/building-sf-integrations/references/callout-patterns.md +719 -0
- package/skills/building-sf-integrations/references/cdc-guide.md +288 -0
- package/skills/building-sf-integrations/references/cli-reference.md +94 -0
- package/skills/building-sf-integrations/references/event-driven-architecture-guide.md +266 -0
- package/skills/building-sf-integrations/references/event-patterns.md +838 -0
- package/skills/building-sf-integrations/references/external-services-guide.md +303 -0
- package/skills/building-sf-integrations/references/messaging-api-v2.md +609 -0
- package/skills/building-sf-integrations/references/named-credentials-automation.md +201 -0
- package/skills/building-sf-integrations/references/named-credentials-guide.md +173 -0
- package/skills/building-sf-integrations/references/platform-events-guide.md +288 -0
- package/skills/building-sf-integrations/references/rest-callout-patterns.md +288 -0
- package/skills/building-sf-integrations/references/scoring-rubric.md +59 -0
- package/skills/building-sf-integrations/references/security-best-practices.md +248 -0
- package/skills/building-sf-integrations/scripts/README.md +100 -0
- package/skills/building-sf-integrations/scripts/configure-named-credential.sh +236 -0
- package/skills/building-sf-integrations/scripts/set-api-credential.sh +146 -0
- package/skills/building-sf-integrations/scripts/templates/setup-credentials-with-csp.sh +158 -0
- package/skills/configuring-connected-apps/CREDITS.md +3 -0
- package/skills/configuring-connected-apps/README.md +99 -0
- package/skills/configuring-connected-apps/SKILL.md +224 -0
- package/skills/configuring-connected-apps/assets/connected-app-basic.xml +29 -0
- package/skills/configuring-connected-apps/assets/connected-app-canvas.xml +62 -0
- package/skills/configuring-connected-apps/assets/connected-app-jwt.xml +49 -0
- package/skills/configuring-connected-apps/assets/connected-app-oauth.xml +65 -0
- package/skills/configuring-connected-apps/assets/eca-global-oauth.xml +36 -0
- package/skills/configuring-connected-apps/assets/eca-oauth-settings.xml +36 -0
- package/skills/configuring-connected-apps/assets/eca-policies.xml +36 -0
- package/skills/configuring-connected-apps/assets/external-client-app.xml +35 -0
- package/skills/configuring-connected-apps/references/example-usage.md +256 -0
- package/skills/configuring-connected-apps/references/migration-guide.md +328 -0
- package/skills/configuring-connected-apps/references/oauth-flows-reference.md +660 -0
- package/skills/configuring-connected-apps/references/security-checklist.md +209 -0
- package/skills/configuring-connected-apps/references/testing-validation-guide.md +275 -0
- package/skills/connecting-datacloud/CREDITS.md +5 -0
- package/skills/connecting-datacloud/README.md +59 -0
- package/skills/connecting-datacloud/SKILL.md +155 -0
- package/skills/connecting-datacloud/examples/connections/heroku-postgres.json +15 -0
- package/skills/connecting-datacloud/examples/connections/ingest-api-connection.json +5 -0
- package/skills/connecting-datacloud/examples/connections/ingest-api-schema.json +31 -0
- package/skills/connecting-datacloud/examples/connections/redshift.json +16 -0
- package/skills/connecting-datacloud/examples/connections/sharepoint-unstructured.json +20 -0
- package/skills/connecting-datacloud/examples/connections/snowflake-connection.json +42 -0
- package/skills/debugging-apex-logs/CREDITS.md +22 -0
- package/skills/debugging-apex-logs/README.md +74 -0
- package/skills/debugging-apex-logs/SKILL.md +172 -0
- package/skills/debugging-apex-logs/assets/benchmarking-template.cls +327 -0
- package/skills/debugging-apex-logs/assets/cpu-heap-optimization.cls +307 -0
- package/skills/debugging-apex-logs/assets/dml-in-loop-fix.cls +219 -0
- package/skills/debugging-apex-logs/assets/null-pointer-fix.cls +252 -0
- package/skills/debugging-apex-logs/assets/soql-in-loop-fix.cls +157 -0
- package/skills/debugging-apex-logs/references/analysis-playbook.md +53 -0
- package/skills/debugging-apex-logs/references/benchmarking-guide.md +287 -0
- package/skills/debugging-apex-logs/references/cli-commands.md +368 -0
- package/skills/debugging-apex-logs/references/common-issues.md +68 -0
- package/skills/debugging-apex-logs/references/debug-log-reference.md +328 -0
- package/skills/debugging-apex-logs/references/log-analysis-tools.md +248 -0
- package/skills/debugging-apex-logs/references/scoring-rubric.md +21 -0
- package/skills/deploying-metadata/CREDITS.md +25 -0
- package/skills/deploying-metadata/README.md +104 -0
- package/skills/deploying-metadata/SKILL.md +214 -0
- package/skills/deploying-metadata/assets/destructiveChanges.xml +143 -0
- package/skills/deploying-metadata/assets/package.xml +121 -0
- package/skills/deploying-metadata/references/agent-deployment-guide.md +628 -0
- package/skills/deploying-metadata/references/deploy.sh +73 -0
- package/skills/deploying-metadata/references/deployment-report-template.md +89 -0
- package/skills/deploying-metadata/references/deployment-workflows.md +395 -0
- package/skills/deploying-metadata/references/orchestration.md +183 -0
- package/skills/deploying-metadata/references/trigger-deployment-safety.md +376 -0
- package/skills/deploying-omnistudio-datapacks/CREDITS.md +5 -0
- package/skills/deploying-omnistudio-datapacks/README.md +88 -0
- package/skills/deploying-omnistudio-datapacks/SKILL.md +174 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/TRANSCRIPT.md +124 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +11 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/TRANSCRIPT.md +142 -0
- package/skills/deploying-omnistudio-datapacks/examples/business-internet-plus-bundle-deploy/deploy-business-internet-plus-bundle.yaml +10 -0
- package/skills/deploying-omnistudio-datapacks/references/job-file-template.md +42 -0
- package/skills/deploying-omnistudio-datapacks/references/troubleshooting-matrix.md +24 -0
- package/skills/developing-agentforce/assets/metadata/http-callout-flow.flow-meta.xml +1 -1
- package/skills/developing-agentforce/references/actions-reference.md +8 -8
- package/skills/fetching-salesforce-docs/README.md +66 -0
- package/skills/fetching-salesforce-docs/SKILL.md +209 -0
- package/skills/fetching-salesforce-docs/requirements.txt +2 -0
- package/skills/fetching-salesforce-docs/scripts/extract_help_salesforce.py +497 -0
- package/skills/fetching-salesforce-docs/scripts/extract_salesforce_doc.py +357 -0
- package/skills/fetching-salesforce-docs/scripts/runtime_bootstrap.py +58 -0
- package/skills/generating-apex/CREDITS.md +1 -26
- package/skills/generating-apex-test/CREDITS.md +2 -27
- package/skills/generating-lwc-components/CREDITS.md +5 -0
- package/skills/generating-lwc-components/README.md +126 -0
- package/skills/generating-lwc-components/SKILL.md +191 -0
- package/skills/generating-lwc-components/assets/apex-controller/LwcController.cls +327 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.css +72 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.html +111 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.js +163 -0
- package/skills/generating-lwc-components/assets/basic-component/basicComponent.js-meta.xml +137 -0
- package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.html +111 -0
- package/skills/generating-lwc-components/assets/datatable-component/datatableComponent.js +367 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.css +63 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.html +154 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js +348 -0
- package/skills/generating-lwc-components/assets/flow-screen-component/flowScreenComponent.js-meta.xml +87 -0
- package/skills/generating-lwc-components/assets/form-component/formComponent.html +165 -0
- package/skills/generating-lwc-components/assets/form-component/formComponent.js +275 -0
- package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.html +100 -0
- package/skills/generating-lwc-components/assets/graphql-component/graphqlComponent.js +336 -0
- package/skills/generating-lwc-components/assets/jest-test/componentName.test.js.example +371 -0
- package/skills/generating-lwc-components/assets/message-channel/RecordSelected.messageChannel-meta.xml +71 -0
- package/skills/generating-lwc-components/assets/message-channel/lmsPublisher.js +103 -0
- package/skills/generating-lwc-components/assets/message-channel/lmsSubscriber.js +181 -0
- package/skills/generating-lwc-components/assets/modal-component/modalComponent.html +85 -0
- package/skills/generating-lwc-components/assets/modal-component/modalComponent.js +199 -0
- package/skills/generating-lwc-components/assets/record-picker/recordPicker.html +55 -0
- package/skills/generating-lwc-components/assets/record-picker/recordPicker.js +199 -0
- package/skills/generating-lwc-components/assets/state-store/store.js +282 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.css +65 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.html +95 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.js-meta.xml +75 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.test.ts.example +301 -0
- package/skills/generating-lwc-components/assets/typescript-component/typescriptComponent.ts +295 -0
- package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.html +71 -0
- package/skills/generating-lwc-components/assets/workspace-api/workspaceComponent.js +316 -0
- package/skills/generating-lwc-components/hooks/scripts/lwc-lsp-validate.py +295 -0
- package/skills/generating-lwc-components/hooks/scripts/post-tool-validate.py +347 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_data/deprecated_patterns.json +74 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_data/styling_hooks.json +111 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_data/valid_slds_classes.json +127 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_linter_wrapper.py +294 -0
- package/skills/generating-lwc-components/hooks/scripts/slds_rules/__init__.py +22 -0
- package/skills/generating-lwc-components/hooks/scripts/template_validator.py +332 -0
- package/skills/generating-lwc-components/hooks/scripts/validate_slds.py +595 -0
- package/skills/generating-lwc-components/references/accessibility-guide.md +843 -0
- package/skills/generating-lwc-components/references/advanced-features.md +108 -0
- package/skills/generating-lwc-components/references/async-notification-patterns.md +661 -0
- package/skills/generating-lwc-components/references/cli-commands.md +545 -0
- package/skills/generating-lwc-components/references/component-patterns.md +1476 -0
- package/skills/generating-lwc-components/references/flow-integration-guide.md +675 -0
- package/skills/generating-lwc-components/references/jest-testing.md +1011 -0
- package/skills/generating-lwc-components/references/lms-guide.md +860 -0
- package/skills/generating-lwc-components/references/lwc-best-practices.md +1310 -0
- package/skills/generating-lwc-components/references/performance-guide.md +861 -0
- package/skills/generating-lwc-components/references/scoring-and-testing.md +116 -0
- package/skills/generating-lwc-components/references/slds-blueprints.json +14389 -0
- package/skills/generating-lwc-components/references/slds-design-guide.md +166 -0
- package/skills/generating-lwc-components/references/state-management.md +642 -0
- package/skills/generating-lwc-components/references/template-anti-patterns.md +948 -0
- package/skills/generating-lwc-components/references/triangle-pattern.md +365 -0
- package/skills/generating-lwc-components/scripts/local-dev-preview.sh +34 -0
- package/skills/generating-mermaid-diagrams/CREDITS.md +46 -0
- package/skills/generating-mermaid-diagrams/README.md +114 -0
- package/skills/generating-mermaid-diagrams/SKILL.md +218 -0
- package/skills/generating-mermaid-diagrams/assets/agentforce/agent-flow.md +313 -0
- package/skills/generating-mermaid-diagrams/assets/architecture/system-landscape.md +351 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/b2b-commerce-erd.md +317 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/campaigns-erd.md +195 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/consent-erd.md +262 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/files-erd.md +266 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/forecasting-erd.md +261 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/fsl-erd.md +332 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/party-model-erd.md +237 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/quote-order-erd.md +277 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/revenue-cloud-erd.md +343 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/sales-cloud-erd.md +192 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/salesforce-erd.md +209 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/scheduler-erd.md +276 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/service-cloud-erd.md +217 -0
- package/skills/generating-mermaid-diagrams/assets/datamodel/territory-management-erd.md +241 -0
- package/skills/generating-mermaid-diagrams/assets/integration/api-sequence.md +387 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code-pkce.md +197 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/authorization-code.md +152 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/client-credentials.md +233 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/device-authorization.md +295 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/jwt-bearer.md +256 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/refresh-token.md +281 -0
- package/skills/generating-mermaid-diagrams/assets/oauth/user-agent-social-sign-on.md +281 -0
- package/skills/generating-mermaid-diagrams/assets/role-hierarchy/user-hierarchy.md +322 -0
- package/skills/generating-mermaid-diagrams/references/color-palette.md +464 -0
- package/skills/generating-mermaid-diagrams/references/diagram-conventions.md +313 -0
- package/skills/generating-mermaid-diagrams/references/erd-conventions.md +320 -0
- package/skills/generating-mermaid-diagrams/references/mermaid-reference.md +434 -0
- package/skills/generating-mermaid-diagrams/references/mermaid-styling.md +81 -0
- package/skills/generating-mermaid-diagrams/references/preview-guide.md +49 -0
- package/skills/generating-mermaid-diagrams/references/usage-examples.md +340 -0
- package/skills/generating-mermaid-diagrams/scripts/README.md +160 -0
- package/skills/generating-mermaid-diagrams/scripts/mermaid_preview.py +654 -0
- package/skills/generating-mermaid-diagrams/scripts/query-org-metadata.py +293 -0
- package/skills/generating-visual-diagrams/CREDITS.md +80 -0
- package/skills/generating-visual-diagrams/README.md +83 -0
- package/skills/generating-visual-diagrams/SKILL.md +208 -0
- package/skills/generating-visual-diagrams/assets/architecture/integration-flow.md +55 -0
- package/skills/generating-visual-diagrams/assets/erd/core-objects.md +131 -0
- package/skills/generating-visual-diagrams/assets/erd/custom-objects.md +60 -0
- package/skills/generating-visual-diagrams/assets/lwc/dashboard-card.md +45 -0
- package/skills/generating-visual-diagrams/assets/lwc/data-table.md +57 -0
- package/skills/generating-visual-diagrams/assets/lwc/record-form.md +60 -0
- package/skills/generating-visual-diagrams/assets/review/apex-review.md +57 -0
- package/skills/generating-visual-diagrams/assets/review/lwc-review.md +48 -0
- package/skills/generating-visual-diagrams/references/architect-aesthetic-guide.md +257 -0
- package/skills/generating-visual-diagrams/references/examples-index.md +35 -0
- package/skills/generating-visual-diagrams/references/gemini-cli-setup.md +65 -0
- package/skills/generating-visual-diagrams/references/interview-questions.md +529 -0
- package/skills/generating-visual-diagrams/references/iteration-workflow.md +173 -0
- package/skills/generating-visual-diagrams/scripts/check-prerequisites.sh +101 -0
- package/skills/generating-visual-diagrams/scripts/generate_image.py +243 -0
- package/skills/handling-sf-data/CREDITS.md +5 -0
- package/skills/handling-sf-data/README.md +112 -0
- package/skills/handling-sf-data/SKILL.md +235 -0
- package/skills/handling-sf-data/assets/bulk/bulk-insert-10000.apex +293 -0
- package/skills/handling-sf-data/assets/bulk/bulk-insert-200.apex +208 -0
- package/skills/handling-sf-data/assets/bulk/bulk-insert-500.apex +219 -0
- package/skills/handling-sf-data/assets/bulk/bulk-upsert-external-id.apex +324 -0
- package/skills/handling-sf-data/assets/cleanup/delete-by-created-date.apex +319 -0
- package/skills/handling-sf-data/assets/cleanup/delete-by-name.apex +240 -0
- package/skills/handling-sf-data/assets/cleanup/delete-test-data.apex +311 -0
- package/skills/handling-sf-data/assets/cleanup/rollback-transaction.apex +266 -0
- package/skills/handling-sf-data/assets/csv/account-import.csv +11 -0
- package/skills/handling-sf-data/assets/csv/contact-import.csv +11 -0
- package/skills/handling-sf-data/assets/csv/custom-object-import.csv +11 -0
- package/skills/handling-sf-data/assets/csv/opportunity-import.csv +11 -0
- package/skills/handling-sf-data/assets/factories/account-factory.apex +165 -0
- package/skills/handling-sf-data/assets/factories/case-factory.apex +237 -0
- package/skills/handling-sf-data/assets/factories/contact-factory.apex +168 -0
- package/skills/handling-sf-data/assets/factories/custom-object-factory.apex +260 -0
- package/skills/handling-sf-data/assets/factories/event-factory.apex +275 -0
- package/skills/handling-sf-data/assets/factories/hierarchy-factory.apex +372 -0
- package/skills/handling-sf-data/assets/factories/lead-factory.apex +190 -0
- package/skills/handling-sf-data/assets/factories/opportunity-factory.apex +206 -0
- package/skills/handling-sf-data/assets/factories/task-factory.apex +246 -0
- package/skills/handling-sf-data/assets/factories/user-factory.apex +278 -0
- package/skills/handling-sf-data/assets/json/account-contact-tree.json +130 -0
- package/skills/handling-sf-data/assets/json/account-opportunity-tree.json +110 -0
- package/skills/handling-sf-data/assets/json/full-hierarchy-tree.json +188 -0
- package/skills/handling-sf-data/assets/soql/aggregate.soql +226 -0
- package/skills/handling-sf-data/assets/soql/child-to-parent.soql +162 -0
- package/skills/handling-sf-data/assets/soql/parent-to-child.soql +153 -0
- package/skills/handling-sf-data/assets/soql/polymorphic.soql +198 -0
- package/skills/handling-sf-data/assets/soql/subquery.soql +287 -0
- package/skills/handling-sf-data/references/anonymous-apex-guide.md +98 -0
- package/skills/handling-sf-data/references/bulk-operations-guide.md +94 -0
- package/skills/handling-sf-data/references/bulk-testing-example.md +194 -0
- package/skills/handling-sf-data/references/cleanup-rollback-example.md +322 -0
- package/skills/handling-sf-data/references/cleanup-rollback-guide.md +84 -0
- package/skills/handling-sf-data/references/crud-workflow-example.md +183 -0
- package/skills/handling-sf-data/references/governor-limits-reference.md +74 -0
- package/skills/handling-sf-data/references/orchestration.md +174 -0
- package/skills/handling-sf-data/references/relationship-query-examples.md +249 -0
- package/skills/handling-sf-data/references/sf-cli-data-commands.md +158 -0
- package/skills/handling-sf-data/references/soql-relationship-guide.md +84 -0
- package/skills/handling-sf-data/references/test-data-best-practices.md +104 -0
- package/skills/handling-sf-data/references/test-data-factory-usage.md +290 -0
- package/skills/handling-sf-data/references/test-data-patterns.md +98 -0
- package/skills/handling-sf-data/scripts/soql_validator.py +292 -0
- package/skills/handling-sf-data/scripts/validate_data_operation.py +379 -0
- package/skills/harmonizing-datacloud/CREDITS.md +3 -0
- package/skills/harmonizing-datacloud/README.md +31 -0
- package/skills/harmonizing-datacloud/SKILL.md +117 -0
- package/skills/modeling-omnistudio-epc-catalog/CREDITS.md +14 -0
- package/skills/modeling-omnistudio-epc-catalog/README.md +89 -0
- package/skills/modeling-omnistudio-epc-catalog/SKILL.md +395 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/attribute-assignment-template.json +402 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/compiled-attribute-overrides-template.json +43 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/completion-block-template.txt +8 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/decomposition-relationships-template.json +233 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_AttributeAssignments.json +514 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_CompiledAttributeOverrides.json +21 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DataPack.json +649 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DecompositionRelationships.json +200 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ObjectFieldAttributes.json +138 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OrchestrationScenarios.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OverrideDefinitions.json +266 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ParentKeys.json +23 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PriceListEntries.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ProductChildItems.json +34 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_RuleAssignments.json +21 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_AttributeAssignments.json +410 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DataPack.json +535 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DecompositionRelationships.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ObjectFieldAttributes.json +138 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_OrchestrationScenarios.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ParentKeys.json +23 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PriceListEntries.json +220 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_ProductChildItems.json +414 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_AttributeAssignments.json +382 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DataPack.json +565 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_DecompositionRelationships.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ObjectFieldAttributes.json +104 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_OrchestrationScenarios.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ParentKeys.json +13 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PriceListEntries.json +106 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/samsung-galaxy-s22-bundle/Samsung-Galaxy-S22-Bundle_ProductChildItems.json +72 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_AttributeAssignments.json +142 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DataPack.json +377 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_DecompositionRelationships.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ObjectFieldAttributes.json +36 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ParentKeys.json +8 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PriceListEntries.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_PricebookEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/examples/static-ip-simple-offer/Static-IP_ProductChildItems.json +34 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/object-field-attributes-template.json +138 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/orchestration-scenarios-template.json +54 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/override-definitions-template.json +134 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/parent-keys-template.json +29 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/price-list-entries-template.json +158 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/pricebook-entries-template.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/product-child-item-template.json +338 -0
- package/skills/modeling-omnistudio-epc-catalog/assets/product2-offer-template.json +527 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/.gitkeep +1 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_AttributeAssignments.json +95 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_CompiledAttributeOverrides.json +1 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DataPack.json +214 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_DecompositionRelationships.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ObjectFieldAttributes.json +98 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OrchestrationScenarios.json +22 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_OverrideDefinitions.json +1 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ParentKeys.json +13 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PriceListEntries.json +35 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_PricebookEntries.json +28 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/Business-Internet-Plus_ProductChildItems.json +110 -0
- package/skills/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle/TRANSCRIPT.md +58 -0
- package/skills/modeling-omnistudio-epc-catalog/references/epc-field-guide.md +90 -0
- package/skills/modeling-omnistudio-epc-catalog/references/naming-conventions.md +80 -0
- package/skills/modeling-omnistudio-epc-catalog/references/scoring-model.md +57 -0
- package/skills/modeling-omnistudio-epc-catalog/scripts/cli-validation-commands.sh +19 -0
- package/skills/modeling-omnistudio-epc-catalog/scripts/sample-invocations.sh +18 -0
- package/skills/orchestrating-datacloud/CREDITS.md +15 -0
- package/skills/orchestrating-datacloud/README.md +129 -0
- package/skills/orchestrating-datacloud/SKILL.md +236 -0
- package/skills/orchestrating-datacloud/UPSTREAM.md +45 -0
- package/skills/orchestrating-datacloud/assets/definitions/activation-target.template.json +5 -0
- package/skills/orchestrating-datacloud/assets/definitions/activation.template.json +7 -0
- package/skills/orchestrating-datacloud/assets/definitions/calculated-insight.template.json +7 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-action-target.template.json +5 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-action.template.json +5 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-graph.template.json +21 -0
- package/skills/orchestrating-datacloud/assets/definitions/data-stream.template.json +55 -0
- package/skills/orchestrating-datacloud/assets/definitions/dmo.template.json +17 -0
- package/skills/orchestrating-datacloud/assets/definitions/identity-resolution.template.json +30 -0
- package/skills/orchestrating-datacloud/assets/definitions/mapping.template.json +14 -0
- package/skills/orchestrating-datacloud/assets/definitions/relationship.template.json +12 -0
- package/skills/orchestrating-datacloud/assets/definitions/search-index.template.json +9 -0
- package/skills/orchestrating-datacloud/assets/definitions/segment.template.json +16 -0
- package/skills/orchestrating-datacloud/references/feature-readiness.md +157 -0
- package/skills/orchestrating-datacloud/references/plugin-setup.md +140 -0
- package/skills/orchestrating-datacloud/scripts/bootstrap-plugin.sh +53 -0
- package/skills/orchestrating-datacloud/scripts/diagnose-org.mjs +511 -0
- package/skills/orchestrating-datacloud/scripts/generate-manifest.mjs +68 -0
- package/skills/orchestrating-datacloud/scripts/verify-plugin.sh +58 -0
- package/skills/preparing-datacloud/CREDITS.md +7 -0
- package/skills/preparing-datacloud/README.md +51 -0
- package/skills/preparing-datacloud/SKILL.md +191 -0
- package/skills/preparing-datacloud/examples/ingestion-api/.env.example +8 -0
- package/skills/preparing-datacloud/examples/ingestion-api/README.md +48 -0
- package/skills/preparing-datacloud/examples/ingestion-api/send-data.py +144 -0
- package/skills/querying-soql/CREDITS.md +21 -0
- package/skills/querying-soql/README.md +41 -0
- package/skills/querying-soql/SKILL.md +143 -0
- package/skills/querying-soql/assets/aggregate-queries.soql +242 -0
- package/skills/querying-soql/assets/basic-queries.soql +188 -0
- package/skills/querying-soql/assets/bulkified-query-pattern.cls +280 -0
- package/skills/querying-soql/assets/optimization-patterns.soql +259 -0
- package/skills/querying-soql/assets/relationship-queries.soql +203 -0
- package/skills/querying-soql/assets/selector-class.cls +219 -0
- package/skills/querying-soql/references/anti-patterns.md +348 -0
- package/skills/querying-soql/references/cli-commands.md +358 -0
- package/skills/querying-soql/references/field-coverage-rules.md +514 -0
- package/skills/querying-soql/references/query-optimization.md +142 -0
- package/skills/querying-soql/references/selector-patterns.md +479 -0
- package/skills/querying-soql/references/soql-reference.md +227 -0
- package/skills/querying-soql/references/soql-syntax-reference.md +208 -0
- package/skills/querying-soql/scripts/post-tool-validate.py +322 -0
- package/skills/retrieving-datacloud/CREDITS.md +7 -0
- package/skills/retrieving-datacloud/README.md +44 -0
- package/skills/retrieving-datacloud/SKILL.md +120 -0
- package/skills/retrieving-datacloud/examples/search-indexes/hybrid-structured.json +44 -0
- package/skills/retrieving-datacloud/examples/search-indexes/vector-knowledge.json +43 -0
- package/skills/running-apex-tests/CREDITS.md +22 -0
- package/skills/running-apex-tests/README.md +94 -0
- package/skills/running-apex-tests/SKILL.md +158 -0
- package/skills/running-apex-tests/assets/basic-test.cls +169 -0
- package/skills/running-apex-tests/assets/bulk-test.cls +255 -0
- package/skills/running-apex-tests/assets/dml-mock.cls +339 -0
- package/skills/running-apex-tests/assets/mock-callout-test.cls +353 -0
- package/skills/running-apex-tests/assets/stub-provider-example.cls +364 -0
- package/skills/running-apex-tests/assets/test-data-factory.cls +328 -0
- package/skills/running-apex-tests/hooks/scripts/parse-test-results.py +364 -0
- package/skills/running-apex-tests/references/cli-commands.md +289 -0
- package/skills/running-apex-tests/references/mocking-patterns.md +500 -0
- package/skills/running-apex-tests/references/performance-optimization.md +283 -0
- package/skills/running-apex-tests/references/test-fix-loop.md +49 -0
- package/skills/running-apex-tests/references/test-patterns.md +154 -0
- package/skills/running-apex-tests/references/testing-best-practices.md +509 -0
- package/skills/segmenting-datacloud/CREDITS.md +3 -0
- package/skills/segmenting-datacloud/README.md +36 -0
- package/skills/segmenting-datacloud/SKILL.md +115 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
<!-- Parent: handling-sf-data/SKILL.md -->
|
|
2
|
+
# Cleanup and Rollback Guide
|
|
3
|
+
|
|
4
|
+
Strategies for test data isolation and cleanup.
|
|
5
|
+
|
|
6
|
+
## Savepoint/Rollback Pattern
|
|
7
|
+
|
|
8
|
+
Best for synchronous test isolation.
|
|
9
|
+
|
|
10
|
+
```apex
|
|
11
|
+
// Create savepoint BEFORE any DML
|
|
12
|
+
Savepoint sp = Database.setSavepoint();
|
|
13
|
+
|
|
14
|
+
try {
|
|
15
|
+
// Create test data
|
|
16
|
+
List<Account> accounts = TestDataFactory_Account.create(100);
|
|
17
|
+
|
|
18
|
+
// Run your tests
|
|
19
|
+
Test.startTest();
|
|
20
|
+
MyClass.processAccounts(accounts);
|
|
21
|
+
Test.stopTest();
|
|
22
|
+
|
|
23
|
+
// Assert results
|
|
24
|
+
System.assertEquals(expected, actual);
|
|
25
|
+
|
|
26
|
+
} finally {
|
|
27
|
+
// Always rollback
|
|
28
|
+
Database.rollback(sp);
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Limitations:**
|
|
33
|
+
- Does not roll back async operations
|
|
34
|
+
- Maximum 5 savepoints per transaction
|
|
35
|
+
|
|
36
|
+
## Cleanup by Name Pattern
|
|
37
|
+
|
|
38
|
+
```apex
|
|
39
|
+
String pattern = 'Test%';
|
|
40
|
+
|
|
41
|
+
DELETE [SELECT Id FROM Opportunity WHERE Name LIKE :pattern];
|
|
42
|
+
DELETE [SELECT Id FROM Contact WHERE LastName LIKE :pattern];
|
|
43
|
+
DELETE [SELECT Id FROM Account WHERE Name LIKE :pattern];
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Order matters:** Delete children before parents.
|
|
47
|
+
|
|
48
|
+
## Cleanup by Date
|
|
49
|
+
|
|
50
|
+
```apex
|
|
51
|
+
DateTime startTime = DateTime.now().addHours(-1);
|
|
52
|
+
|
|
53
|
+
DELETE [
|
|
54
|
+
SELECT Id FROM Account
|
|
55
|
+
WHERE CreatedDate >= :startTime
|
|
56
|
+
AND Name LIKE 'Test%'
|
|
57
|
+
];
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Cleanup via sf CLI
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Export IDs to delete
|
|
64
|
+
sf data query \
|
|
65
|
+
--query "SELECT Id FROM Account WHERE Name LIKE 'Test%'" \
|
|
66
|
+
--target-org myorg \
|
|
67
|
+
--result-format csv \
|
|
68
|
+
> delete.csv
|
|
69
|
+
|
|
70
|
+
# Bulk delete
|
|
71
|
+
sf data delete bulk \
|
|
72
|
+
--file delete.csv \
|
|
73
|
+
--sobject Account \
|
|
74
|
+
--target-org myorg \
|
|
75
|
+
--wait 30
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Best Practices
|
|
79
|
+
|
|
80
|
+
1. **Track created IDs** - Store in Set<Id>
|
|
81
|
+
2. **Delete in order** - Children first, parents last
|
|
82
|
+
3. **Use test prefixes** - 'Test', 'BulkTest'
|
|
83
|
+
4. **Preview before delete** - Verify records first
|
|
84
|
+
5. **Use @isTest** - Auto-rollback in tests
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
<!-- Parent: handling-sf-data/SKILL.md -->
|
|
2
|
+
# CRUD Workflow Example
|
|
3
|
+
|
|
4
|
+
Complete end-to-end example of data operations using handling-sf-data skill.
|
|
5
|
+
|
|
6
|
+
## Scenario
|
|
7
|
+
|
|
8
|
+
Create a Deal Desk workflow test environment with:
|
|
9
|
+
- Accounts with varying revenue tiers
|
|
10
|
+
- Contacts as decision makers
|
|
11
|
+
- Opportunities at different stages
|
|
12
|
+
|
|
13
|
+
## Phase 1: Discovery (sf-metadata)
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
Skill(skill="sf-metadata")
|
|
17
|
+
Request: "Describe object Account in org dev - show required fields and picklist values"
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**Response shows:**
|
|
21
|
+
- Required: Name
|
|
22
|
+
- Picklists: Industry, Type, Rating
|
|
23
|
+
|
|
24
|
+
## Phase 2: Create Records
|
|
25
|
+
|
|
26
|
+
### sf CLI - Single Record
|
|
27
|
+
```bash
|
|
28
|
+
sf data create record \
|
|
29
|
+
--sobject Account \
|
|
30
|
+
--values "Name='Enterprise Corp' Industry='Technology' AnnualRevenue=5000000" \
|
|
31
|
+
--target-org dev \
|
|
32
|
+
--json
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Output:**
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"status": 0,
|
|
39
|
+
"result": {
|
|
40
|
+
"id": "001XXXXXXXXXXXX",
|
|
41
|
+
"success": true
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### sf CLI - Query Created Record
|
|
47
|
+
```bash
|
|
48
|
+
sf data query \
|
|
49
|
+
--query "SELECT Id, Name, Industry, AnnualRevenue FROM Account WHERE Name = 'Enterprise Corp'" \
|
|
50
|
+
--target-org dev \
|
|
51
|
+
--json
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Phase 3: Update Records
|
|
55
|
+
|
|
56
|
+
### Update Single Record
|
|
57
|
+
```bash
|
|
58
|
+
sf data update record \
|
|
59
|
+
--sobject Account \
|
|
60
|
+
--record-id 001XXXXXXXXXXXX \
|
|
61
|
+
--values "Rating='Hot' Type='Customer - Direct'" \
|
|
62
|
+
--target-org dev
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Verify Update
|
|
66
|
+
```bash
|
|
67
|
+
sf data get record \
|
|
68
|
+
--sobject Account \
|
|
69
|
+
--record-id 001XXXXXXXXXXXX \
|
|
70
|
+
--target-org dev
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Phase 4: Create Related Records
|
|
74
|
+
|
|
75
|
+
### Create Contact for Account
|
|
76
|
+
```bash
|
|
77
|
+
sf data create record \
|
|
78
|
+
--sobject Contact \
|
|
79
|
+
--values "FirstName='John' LastName='Smith' AccountId='001XXXXXXXXXXXX' Title='CTO'" \
|
|
80
|
+
--target-org dev
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Create Opportunity
|
|
84
|
+
```bash
|
|
85
|
+
sf data create record \
|
|
86
|
+
--sobject Opportunity \
|
|
87
|
+
--values "Name='Enterprise Deal' AccountId='001XXXXXXXXXXXX' StageName='Prospecting' CloseDate=2025-03-31 Amount=250000" \
|
|
88
|
+
--target-org dev
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Phase 5: Query Relationships
|
|
92
|
+
|
|
93
|
+
### Parent-to-Child (Subquery)
|
|
94
|
+
```bash
|
|
95
|
+
sf data query \
|
|
96
|
+
--query "SELECT Id, Name, (SELECT Id, Name, Title FROM Contacts), (SELECT Id, Name, Amount, StageName FROM Opportunities) FROM Account WHERE Name = 'Enterprise Corp'" \
|
|
97
|
+
--target-org dev \
|
|
98
|
+
--json
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Child-to-Parent (Dot Notation)
|
|
102
|
+
```bash
|
|
103
|
+
sf data query \
|
|
104
|
+
--query "SELECT Id, Name, Account.Name, Account.Industry FROM Contact WHERE Account.Name = 'Enterprise Corp'" \
|
|
105
|
+
--target-org dev
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Phase 6: Delete Records
|
|
109
|
+
|
|
110
|
+
### Delete in Correct Order
|
|
111
|
+
Children first, then parents:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Delete Opportunities
|
|
115
|
+
sf data delete record \
|
|
116
|
+
--sobject Opportunity \
|
|
117
|
+
--record-id 006XXXXXXXXXXXX \
|
|
118
|
+
--target-org dev
|
|
119
|
+
|
|
120
|
+
# Delete Contacts
|
|
121
|
+
sf data delete record \
|
|
122
|
+
--sobject Contact \
|
|
123
|
+
--record-id 003XXXXXXXXXXXX \
|
|
124
|
+
--target-org dev
|
|
125
|
+
|
|
126
|
+
# Delete Account
|
|
127
|
+
sf data delete record \
|
|
128
|
+
--sobject Account \
|
|
129
|
+
--record-id 001XXXXXXXXXXXX \
|
|
130
|
+
--target-org dev
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Anonymous Apex Alternative
|
|
134
|
+
|
|
135
|
+
For complex operations, use Anonymous Apex:
|
|
136
|
+
|
|
137
|
+
```apex
|
|
138
|
+
// Create complete hierarchy in one transaction
|
|
139
|
+
Account acc = new Account(
|
|
140
|
+
Name = 'Enterprise Corp',
|
|
141
|
+
Industry = 'Technology',
|
|
142
|
+
AnnualRevenue = 5000000
|
|
143
|
+
);
|
|
144
|
+
insert acc;
|
|
145
|
+
|
|
146
|
+
Contact con = new Contact(
|
|
147
|
+
FirstName = 'John',
|
|
148
|
+
LastName = 'Smith',
|
|
149
|
+
AccountId = acc.Id,
|
|
150
|
+
Title = 'CTO'
|
|
151
|
+
);
|
|
152
|
+
insert con;
|
|
153
|
+
|
|
154
|
+
Opportunity opp = new Opportunity(
|
|
155
|
+
Name = 'Enterprise Deal',
|
|
156
|
+
AccountId = acc.Id,
|
|
157
|
+
ContactId = con.Id,
|
|
158
|
+
StageName = 'Prospecting',
|
|
159
|
+
CloseDate = Date.today().addDays(90),
|
|
160
|
+
Amount = 250000
|
|
161
|
+
);
|
|
162
|
+
insert opp;
|
|
163
|
+
|
|
164
|
+
System.debug('Created hierarchy: Account=' + acc.Id + ', Contact=' + con.Id + ', Opp=' + opp.Id);
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Execute:
|
|
168
|
+
```bash
|
|
169
|
+
sf apex run --file create-hierarchy.apex --target-org dev
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Validation Score
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
Score: 125/130 ⭐⭐⭐⭐⭐ Excellent
|
|
176
|
+
├─ Query Efficiency: 25/25 (indexed fields, no N+1)
|
|
177
|
+
├─ Bulk Safety: 23/25 (single records OK for demo)
|
|
178
|
+
├─ Data Integrity: 20/20 (all required fields)
|
|
179
|
+
├─ Security & FLS: 20/20 (no PII exposed)
|
|
180
|
+
├─ Test Patterns: 12/15 (single record demo)
|
|
181
|
+
├─ Cleanup & Isolation: 15/15 (proper delete order)
|
|
182
|
+
└─ Documentation: 10/10 (fully documented)
|
|
183
|
+
```
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
<!-- Parent: handling-sf-data/SKILL.md -->
|
|
2
|
+
# Governor Limits Reference
|
|
3
|
+
|
|
4
|
+
Essential limits for Salesforce data operations.
|
|
5
|
+
|
|
6
|
+
## SOQL Limits
|
|
7
|
+
|
|
8
|
+
| Limit | Synchronous | Asynchronous |
|
|
9
|
+
|-------|-------------|--------------|
|
|
10
|
+
| Total queries | 100 | 200 |
|
|
11
|
+
| Rows retrieved | 50,000 | 50,000 |
|
|
12
|
+
| QueryLocator rows | N/A | 50,000,000 |
|
|
13
|
+
| Query timeout | 120 seconds | 120 seconds |
|
|
14
|
+
|
|
15
|
+
## DML Limits
|
|
16
|
+
|
|
17
|
+
| Limit | Synchronous | Asynchronous |
|
|
18
|
+
|-------|-------------|--------------|
|
|
19
|
+
| DML statements | 150 | 150 |
|
|
20
|
+
| Rows processed | 10,000 | 10,000 |
|
|
21
|
+
|
|
22
|
+
## CPU and Memory
|
|
23
|
+
|
|
24
|
+
| Limit | Synchronous | Asynchronous |
|
|
25
|
+
|-------|-------------|--------------|
|
|
26
|
+
| CPU time | 10,000 ms | 60,000 ms |
|
|
27
|
+
| Heap size | 6 MB | 12 MB |
|
|
28
|
+
|
|
29
|
+
## Bulk API Limits
|
|
30
|
+
|
|
31
|
+
| Limit | Value |
|
|
32
|
+
|-------|-------|
|
|
33
|
+
| Batches per 24 hours | 10,000 |
|
|
34
|
+
| Records per 24 hours | 10,000,000 |
|
|
35
|
+
| Max file size | 100 MB |
|
|
36
|
+
| Concurrent jobs | 100 |
|
|
37
|
+
|
|
38
|
+
## Staying Within Limits
|
|
39
|
+
|
|
40
|
+
### SOQL Best Practices
|
|
41
|
+
```apex
|
|
42
|
+
// BAD: Query in loop
|
|
43
|
+
for (Account acc : accounts) {
|
|
44
|
+
List<Contact> cons = [SELECT Id FROM Contact WHERE AccountId = :acc.Id]; // ❌
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// GOOD: Single query with relationship
|
|
48
|
+
List<Account> accs = [
|
|
49
|
+
SELECT Id, (SELECT Id FROM Contacts)
|
|
50
|
+
FROM Account
|
|
51
|
+
WHERE Id IN :accountIds
|
|
52
|
+
]; // ✓
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### DML Best Practices
|
|
56
|
+
```apex
|
|
57
|
+
// BAD: DML in loop
|
|
58
|
+
for (Account acc : accounts) {
|
|
59
|
+
update acc; // ❌
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// GOOD: Bulk DML
|
|
63
|
+
update accounts; // ✓
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Monitoring Limits
|
|
67
|
+
|
|
68
|
+
```apex
|
|
69
|
+
System.debug('SOQL Queries: ' + Limits.getQueries() + '/' + Limits.getLimitQueries());
|
|
70
|
+
System.debug('DML Statements: ' + Limits.getDmlStatements() + '/' + Limits.getLimitDmlStatements());
|
|
71
|
+
System.debug('DML Rows: ' + Limits.getDmlRows() + '/' + Limits.getLimitDmlRows());
|
|
72
|
+
System.debug('CPU Time: ' + Limits.getCpuTime() + '/' + Limits.getLimitCpuTime());
|
|
73
|
+
System.debug('Heap Size: ' + Limits.getHeapSize() + '/' + Limits.getLimitHeapSize());
|
|
74
|
+
```
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
<!-- Parent: handling-sf-data/SKILL.md -->
|
|
2
|
+
# Multi-Skill Orchestration: handling-sf-data Perspective
|
|
3
|
+
|
|
4
|
+
This document details how handling-sf-data fits into the multi-skill workflow for Salesforce development.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Standard Orchestration Order
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ STANDARD MULTI-SKILL ORCHESTRATION ORDER │
|
|
13
|
+
├─────────────────────────────────────────────────────────────────────────────┤
|
|
14
|
+
│ 1. sf-metadata │
|
|
15
|
+
│ └── Create object/field definitions (LOCAL files) │
|
|
16
|
+
│ │
|
|
17
|
+
│ 2. sf-flow │
|
|
18
|
+
│ └── Create flow definitions (LOCAL files) │
|
|
19
|
+
│ │
|
|
20
|
+
│ 3. deploying-metadata │
|
|
21
|
+
│ └── Deploy all metadata (REMOTE) │
|
|
22
|
+
│ │
|
|
23
|
+
│ 4. handling-sf-data ◀── YOU ARE HERE (LAST!) │
|
|
24
|
+
│ └── Create test data (REMOTE - objects must exist!) │
|
|
25
|
+
└─────────────────────────────────────────────────────────────────────────────┘
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## ⚠️ Why handling-sf-data Goes LAST
|
|
31
|
+
|
|
32
|
+
**handling-sf-data operates on REMOTE org data.** Objects/fields must be deployed before handling-sf-data can:
|
|
33
|
+
- Insert records
|
|
34
|
+
- Query existing data
|
|
35
|
+
- Run test factories
|
|
36
|
+
- Generate bulk test data
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
ERROR: "SObject type 'Quote__c' is not supported"
|
|
40
|
+
CAUSE: Quote__c object was never deployed to the org
|
|
41
|
+
FIX: Run deploying-metadata BEFORE handling-sf-data
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Common Errors from Wrong Order
|
|
47
|
+
|
|
48
|
+
| Error | Cause | Fix |
|
|
49
|
+
|-------|-------|-----|
|
|
50
|
+
| `SObject type 'X' not supported` | Object not deployed | Deploy via deploying-metadata first |
|
|
51
|
+
| `INVALID_FIELD: No such column 'Field__c'` | Field not deployed OR FLS | Deploy field + Permission Set |
|
|
52
|
+
| `REQUIRED_FIELD_MISSING` | Validation rule requires field | Include all required fields |
|
|
53
|
+
| `FIELD_CUSTOM_VALIDATION_EXCEPTION` | Validation rule triggered | Use valid test data values |
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Test Data After Triggers/Flows
|
|
58
|
+
|
|
59
|
+
When testing triggers or flows, always create test data AFTER deployment:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
1. sf-apex → Create trigger handler class
|
|
63
|
+
2. sf-flow → Create record-triggered flow
|
|
64
|
+
3. deploying-metadata → Deploy trigger + flow + objects
|
|
65
|
+
4. handling-sf-data ◀── CREATE TEST DATA NOW
|
|
66
|
+
└── Triggers and flows will fire!
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Why?** Test data insertion triggers flows/triggers. If those aren't deployed, you're not testing realistic behavior.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## The 251-Record Pattern
|
|
74
|
+
|
|
75
|
+
Always test with **251 records** to cross the 200-record batch boundary:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
79
|
+
│ BATCH BOUNDARY TESTING │
|
|
80
|
+
├─────────────────────────────────────────────────────────────────────────────┤
|
|
81
|
+
│ Records 1-200: First batch │
|
|
82
|
+
│ Records 201-251: Second batch (crosses boundary!) │
|
|
83
|
+
│ │
|
|
84
|
+
│ Tests: N+1 queries, bulkification, governor limits │
|
|
85
|
+
└─────────────────────────────────────────────────────────────────────────────┘
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Command:**
|
|
89
|
+
```bash
|
|
90
|
+
sf apex run --file test-factory.apex --target-org alias
|
|
91
|
+
# test-factory.apex creates 251 records
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Cross-Skill Integration Table
|
|
97
|
+
|
|
98
|
+
| From Skill | To handling-sf-data | When |
|
|
99
|
+
|------------|------------|------|
|
|
100
|
+
| sf-apex | → handling-sf-data | "Create 251 Accounts for bulk testing" |
|
|
101
|
+
| sf-flow | → handling-sf-data | "Create Opportunities with StageName='Closed Won'" |
|
|
102
|
+
| running-apex-tests | → handling-sf-data | "Generate test records for test class" |
|
|
103
|
+
|
|
104
|
+
| From handling-sf-data | To Skill | When |
|
|
105
|
+
|--------------|----------|------|
|
|
106
|
+
| handling-sf-data | → sf-metadata | "Describe Invoice__c" (discover object structure) |
|
|
107
|
+
| handling-sf-data | → deploying-metadata | "Redeploy field after adding validation rule" |
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Prerequisites Check
|
|
112
|
+
|
|
113
|
+
Before using handling-sf-data, verify:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# Check org connection
|
|
117
|
+
sf org display --target-org alias
|
|
118
|
+
|
|
119
|
+
# Check objects exist
|
|
120
|
+
sf sobject describe --sobject MyObject__c --target-org alias --json
|
|
121
|
+
|
|
122
|
+
# Check field-level security (if field not visible)
|
|
123
|
+
sf data query --query "SELECT Id FROM FieldPermissions WHERE SobjectType='MyObject__c'" --use-tooling-api --target-org alias
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Factory Pattern Integration
|
|
129
|
+
|
|
130
|
+
Test Data Factory classes work with handling-sf-data:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
sf-apex: Creates TestDataFactory_Account.cls
|
|
134
|
+
↓
|
|
135
|
+
deploying-metadata: Deploys factory class
|
|
136
|
+
↓
|
|
137
|
+
handling-sf-data: Calls factory via Anonymous Apex
|
|
138
|
+
↓
|
|
139
|
+
251 records created → triggers fire → flows run
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Anonymous Apex:**
|
|
143
|
+
```apex
|
|
144
|
+
List<Account> accounts = TestDataFactory_Account.create(251);
|
|
145
|
+
System.debug('Created ' + accounts.size() + ' accounts');
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Cleanup Sequence
|
|
151
|
+
|
|
152
|
+
After testing, clean up in reverse order:
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
1. handling-sf-data → Delete test records
|
|
156
|
+
2. deploying-metadata → Deactivate flows (if needed)
|
|
157
|
+
3. deploying-metadata → Remove test metadata (if needed)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Cleanup command:**
|
|
161
|
+
```bash
|
|
162
|
+
sf apex run --file cleanup.apex --target-org alias
|
|
163
|
+
# cleanup.apex: DELETE [SELECT Id FROM Account WHERE Name LIKE 'Test%']
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Related Documentation
|
|
169
|
+
|
|
170
|
+
| Topic | Location |
|
|
171
|
+
|-------|----------|
|
|
172
|
+
| Test data patterns | `handling-sf-data/references/test-data-patterns.md` |
|
|
173
|
+
| Cleanup guide | `handling-sf-data/references/cleanup-rollback-guide.md` |
|
|
174
|
+
| Factory templates | `handling-sf-data/assets/factories/` |
|