@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,293 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Query Salesforce org for ERD metadata enrichment.
|
|
4
|
+
|
|
5
|
+
Retrieves:
|
|
6
|
+
1. Record counts for LDV detection (>2M = LDV)
|
|
7
|
+
2. OWD (Org-Wide Default) sharing settings
|
|
8
|
+
3. Object type (Standard/Custom/External)
|
|
9
|
+
|
|
10
|
+
Usage:
|
|
11
|
+
python3 query-org-metadata.py --objects Account,Contact,Invoice__c --target-org myorg
|
|
12
|
+
python3 query-org-metadata.py --objects Account,Contact --target-org myorg --output table
|
|
13
|
+
python3 query-org-metadata.py --objects Account --target-org myorg --output json
|
|
14
|
+
|
|
15
|
+
Output:
|
|
16
|
+
JSON or table with object metadata for diagram generation
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
import subprocess
|
|
20
|
+
import json
|
|
21
|
+
import sys
|
|
22
|
+
import argparse
|
|
23
|
+
from typing import Optional
|
|
24
|
+
|
|
25
|
+
LDV_THRESHOLD = 2_000_000 # 2 million records
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def run_sf_command(cmd: list[str], timeout: int = 30) -> Optional[dict]:
|
|
29
|
+
"""Run an sf CLI command and return parsed JSON result."""
|
|
30
|
+
try:
|
|
31
|
+
result = subprocess.run(
|
|
32
|
+
cmd,
|
|
33
|
+
capture_output=True,
|
|
34
|
+
text=True,
|
|
35
|
+
timeout=timeout
|
|
36
|
+
)
|
|
37
|
+
if result.returncode == 0:
|
|
38
|
+
return json.loads(result.stdout)
|
|
39
|
+
except subprocess.TimeoutExpired:
|
|
40
|
+
pass
|
|
41
|
+
except json.JSONDecodeError:
|
|
42
|
+
pass
|
|
43
|
+
except Exception:
|
|
44
|
+
pass
|
|
45
|
+
return None
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def query_record_count(sobject: str, target_org: str) -> int:
|
|
49
|
+
"""Query record count using sf data query."""
|
|
50
|
+
# External objects don't support COUNT()
|
|
51
|
+
if sobject.endswith("__x"):
|
|
52
|
+
return -1
|
|
53
|
+
|
|
54
|
+
cmd = [
|
|
55
|
+
"sf", "data", "query",
|
|
56
|
+
"--query", f"SELECT COUNT() FROM {sobject}",
|
|
57
|
+
"--target-org", target_org,
|
|
58
|
+
"--json"
|
|
59
|
+
]
|
|
60
|
+
|
|
61
|
+
data = run_sf_command(cmd)
|
|
62
|
+
if data:
|
|
63
|
+
return data.get("result", {}).get("totalSize", -1)
|
|
64
|
+
return -1
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def query_object_describe(sobject: str, target_org: str) -> dict:
|
|
68
|
+
"""Get object metadata (label, custom flag) via sobject describe."""
|
|
69
|
+
cmd = [
|
|
70
|
+
"sf", "sobject", "describe",
|
|
71
|
+
"--sobject", sobject,
|
|
72
|
+
"--target-org", target_org,
|
|
73
|
+
"--json"
|
|
74
|
+
]
|
|
75
|
+
|
|
76
|
+
data = run_sf_command(cmd)
|
|
77
|
+
if data:
|
|
78
|
+
result_data = data.get("result", {})
|
|
79
|
+
return {
|
|
80
|
+
"is_custom": result_data.get("custom", False),
|
|
81
|
+
"key_prefix": result_data.get("keyPrefix", ""),
|
|
82
|
+
"label": result_data.get("label", sobject),
|
|
83
|
+
}
|
|
84
|
+
return {}
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def query_owd_bulk(objects: list[str], target_org: str) -> dict[str, dict]:
|
|
88
|
+
"""
|
|
89
|
+
Query OWD for multiple objects using Tooling API EntityDefinition.
|
|
90
|
+
|
|
91
|
+
This is the correct way to get OWD - sf sobject describe returns null
|
|
92
|
+
for sharingModel, but EntityDefinition via Tooling API works.
|
|
93
|
+
"""
|
|
94
|
+
# Build IN clause for SOQL
|
|
95
|
+
quoted_objects = ", ".join([f"'{obj}'" for obj in objects])
|
|
96
|
+
query = f"SELECT QualifiedApiName, InternalSharingModel, ExternalSharingModel FROM EntityDefinition WHERE QualifiedApiName IN ({quoted_objects})"
|
|
97
|
+
|
|
98
|
+
cmd = [
|
|
99
|
+
"sf", "data", "query",
|
|
100
|
+
"--query", query,
|
|
101
|
+
"--target-org", target_org,
|
|
102
|
+
"--use-tooling-api",
|
|
103
|
+
"--json"
|
|
104
|
+
]
|
|
105
|
+
|
|
106
|
+
data = run_sf_command(cmd, timeout=60)
|
|
107
|
+
result = {}
|
|
108
|
+
|
|
109
|
+
if data:
|
|
110
|
+
records = data.get("result", {}).get("records", [])
|
|
111
|
+
for record in records:
|
|
112
|
+
api_name = record.get("QualifiedApiName", "")
|
|
113
|
+
result[api_name] = {
|
|
114
|
+
"internal_owd": record.get("InternalSharingModel", "Unknown"),
|
|
115
|
+
"external_owd": record.get("ExternalSharingModel", "Unknown"),
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return result
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def get_object_type(sobject: str, describe: dict) -> str:
|
|
122
|
+
"""Determine object type: STD, CUST, or EXT."""
|
|
123
|
+
if sobject.endswith("__x"):
|
|
124
|
+
return "EXT"
|
|
125
|
+
elif sobject.endswith("__c") or describe.get("is_custom"):
|
|
126
|
+
return "CUST"
|
|
127
|
+
return "STD"
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def format_ldv(count: int) -> str:
|
|
131
|
+
"""Format record count for LDV display."""
|
|
132
|
+
if count < 0:
|
|
133
|
+
return ""
|
|
134
|
+
if count >= LDV_THRESHOLD:
|
|
135
|
+
if count >= 1_000_000:
|
|
136
|
+
return f"LDV[~{count // 1_000_000}M]"
|
|
137
|
+
else:
|
|
138
|
+
return f"LDV[~{count // 1_000}K]"
|
|
139
|
+
return ""
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def format_owd(sharing_model: str) -> str:
|
|
143
|
+
"""Format OWD for display."""
|
|
144
|
+
owd_map = {
|
|
145
|
+
"Private": "Private",
|
|
146
|
+
"Read": "Read",
|
|
147
|
+
"ReadWrite": "ReadWrite",
|
|
148
|
+
"ReadWriteTransfer": "Full",
|
|
149
|
+
"ControlledByParent": "Parent",
|
|
150
|
+
"FullAccess": "Full",
|
|
151
|
+
"Unknown": "Unknown"
|
|
152
|
+
}
|
|
153
|
+
return owd_map.get(sharing_model, sharing_model)
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
def format_count(count: int) -> str:
|
|
157
|
+
"""Format record count with commas."""
|
|
158
|
+
if count < 0:
|
|
159
|
+
return "N/A"
|
|
160
|
+
return f"{count:,}"
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def print_table_output(results: dict) -> None:
|
|
164
|
+
"""Print results as formatted table."""
|
|
165
|
+
print()
|
|
166
|
+
print("=" * 78)
|
|
167
|
+
print(f"{'Object':<25} {'Type':<6} {'Records':<14} {'LDV':<12} {'OWD':<15}")
|
|
168
|
+
print("-" * 78)
|
|
169
|
+
|
|
170
|
+
for obj, data in results.items():
|
|
171
|
+
count_str = format_count(data['record_count'])
|
|
172
|
+
ldv = data['ldv_indicator'] or "-"
|
|
173
|
+
owd = f"OWD:{data['owd']}"
|
|
174
|
+
print(f"{obj:<25} {data['object_type']:<6} {count_str:<14} {ldv:<12} {owd:<15}")
|
|
175
|
+
|
|
176
|
+
print("=" * 78)
|
|
177
|
+
print()
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
def print_mermaid_hints(results: dict) -> None:
|
|
181
|
+
"""Print Mermaid flowchart style hints."""
|
|
182
|
+
print("Mermaid Style Hints:")
|
|
183
|
+
print("-" * 40)
|
|
184
|
+
|
|
185
|
+
for obj, data in results.items():
|
|
186
|
+
obj_type = data['object_type']
|
|
187
|
+
if obj_type == "STD":
|
|
188
|
+
color = "fill:#bae6fd,stroke:#0369a1"
|
|
189
|
+
elif obj_type == "CUST":
|
|
190
|
+
color = "fill:#fed7aa,stroke:#c2410c"
|
|
191
|
+
else: # EXT
|
|
192
|
+
color = "fill:#a7f3d0,stroke:#047857"
|
|
193
|
+
|
|
194
|
+
# Build label parts
|
|
195
|
+
label_parts = []
|
|
196
|
+
if data['ldv_indicator']:
|
|
197
|
+
label_parts.append(data['ldv_indicator'])
|
|
198
|
+
label_parts.append(f"OWD:{data['owd']}")
|
|
199
|
+
|
|
200
|
+
label = f"{obj}<br/>{' | '.join(label_parts)}"
|
|
201
|
+
safe_id = obj.replace("__", "_")
|
|
202
|
+
|
|
203
|
+
print(f' {safe_id}["{label}"]')
|
|
204
|
+
print(f" style {safe_id} {color},color:#1f2937")
|
|
205
|
+
print()
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
def main():
|
|
209
|
+
parser = argparse.ArgumentParser(
|
|
210
|
+
description="Query Salesforce org for ERD metadata (LDV, OWD, object type)",
|
|
211
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
212
|
+
epilog="""
|
|
213
|
+
Examples:
|
|
214
|
+
%(prog)s --objects Account,Contact,Opportunity --target-org myorg
|
|
215
|
+
%(prog)s --objects Account,Invoice__c --target-org myorg --output table
|
|
216
|
+
%(prog)s --objects Account --target-org myorg --mermaid
|
|
217
|
+
"""
|
|
218
|
+
)
|
|
219
|
+
parser.add_argument(
|
|
220
|
+
"--objects", "-o",
|
|
221
|
+
required=True,
|
|
222
|
+
help="Comma-separated object API names (e.g., Account,Contact,Invoice__c)"
|
|
223
|
+
)
|
|
224
|
+
parser.add_argument(
|
|
225
|
+
"--target-org", "-u",
|
|
226
|
+
required=True,
|
|
227
|
+
help="Salesforce org alias or username"
|
|
228
|
+
)
|
|
229
|
+
parser.add_argument(
|
|
230
|
+
"--output", "-f",
|
|
231
|
+
default="table",
|
|
232
|
+
choices=["json", "table"],
|
|
233
|
+
help="Output format (default: table)"
|
|
234
|
+
)
|
|
235
|
+
parser.add_argument(
|
|
236
|
+
"--mermaid", "-m",
|
|
237
|
+
action="store_true",
|
|
238
|
+
help="Include Mermaid style hints in output"
|
|
239
|
+
)
|
|
240
|
+
|
|
241
|
+
args = parser.parse_args()
|
|
242
|
+
|
|
243
|
+
objects = [o.strip() for o in args.objects.split(",")]
|
|
244
|
+
results = {}
|
|
245
|
+
|
|
246
|
+
# Show progress for table output
|
|
247
|
+
if args.output == "table":
|
|
248
|
+
print(f"\nQuerying {len(objects)} objects from org: {args.target_org}")
|
|
249
|
+
print("-" * 50)
|
|
250
|
+
|
|
251
|
+
# Bulk query OWD for all objects at once (much faster)
|
|
252
|
+
if args.output == "table":
|
|
253
|
+
print(" [0] Querying OWD via Tooling API...", end=" ", flush=True)
|
|
254
|
+
owd_data = query_owd_bulk(objects, args.target_org)
|
|
255
|
+
if args.output == "table":
|
|
256
|
+
print(f"OK ({len(owd_data)} found)")
|
|
257
|
+
|
|
258
|
+
for i, obj in enumerate(objects, 1):
|
|
259
|
+
if args.output == "table":
|
|
260
|
+
print(f" [{i}/{len(objects)}] Querying {obj}...", end=" ", flush=True)
|
|
261
|
+
|
|
262
|
+
count = query_record_count(obj, args.target_org)
|
|
263
|
+
describe = query_object_describe(obj, args.target_org)
|
|
264
|
+
obj_type = get_object_type(obj, describe)
|
|
265
|
+
|
|
266
|
+
# Get OWD from bulk query result
|
|
267
|
+
obj_owd = owd_data.get(obj, {})
|
|
268
|
+
internal_owd = obj_owd.get("internal_owd", "Unknown")
|
|
269
|
+
|
|
270
|
+
results[obj] = {
|
|
271
|
+
"record_count": count,
|
|
272
|
+
"ldv_indicator": format_ldv(count),
|
|
273
|
+
"object_type": obj_type,
|
|
274
|
+
"owd": format_owd(internal_owd),
|
|
275
|
+
"external_owd": format_owd(obj_owd.get("external_owd", "Unknown")),
|
|
276
|
+
"label": describe.get("label", obj),
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
if args.output == "table":
|
|
280
|
+
status = "OK" if describe else "WARN"
|
|
281
|
+
print(status)
|
|
282
|
+
|
|
283
|
+
# Output results
|
|
284
|
+
if args.output == "json":
|
|
285
|
+
print(json.dumps(results, indent=2))
|
|
286
|
+
else:
|
|
287
|
+
print_table_output(results)
|
|
288
|
+
if args.mermaid:
|
|
289
|
+
print_mermaid_hints(results)
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
if __name__ == "__main__":
|
|
293
|
+
main()
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Credits & Acknowledgments
|
|
2
|
+
|
|
3
|
+
This skill leverages cutting-edge AI technologies and tools to enable visual content generation in Salesforce development workflows.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Technologies & Tools
|
|
8
|
+
|
|
9
|
+
### Google Gemini
|
|
10
|
+
|
|
11
|
+
Key capabilities:
|
|
12
|
+
- Gemini 3 Pro multimodal AI model
|
|
13
|
+
- Image generation via Nano Banana Pro extension
|
|
14
|
+
- Code review and analysis capabilities
|
|
15
|
+
- Documentation research and summarization
|
|
16
|
+
|
|
17
|
+
### Gemini CLI
|
|
18
|
+
|
|
19
|
+
Key features:
|
|
20
|
+
- Command-line access to Gemini models
|
|
21
|
+
- Extension support (Nano Banana)
|
|
22
|
+
- Non-interactive mode with --yolo flag
|
|
23
|
+
- JSON output for programmatic use
|
|
24
|
+
|
|
25
|
+
### Nano Banana Pro
|
|
26
|
+
|
|
27
|
+
Gemini image generation extension.
|
|
28
|
+
|
|
29
|
+
Key features:
|
|
30
|
+
- High-quality image generation
|
|
31
|
+
- ERD and diagram creation
|
|
32
|
+
- UI/UX mockup generation
|
|
33
|
+
- Architecture visualization
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Display Technologies
|
|
38
|
+
|
|
39
|
+
### timg
|
|
40
|
+
|
|
41
|
+
Terminal image viewer.
|
|
42
|
+
|
|
43
|
+
Key features:
|
|
44
|
+
- Kitty graphics protocol support
|
|
45
|
+
- Multiple format support (PNG, JPG, GIF)
|
|
46
|
+
- Inline terminal display
|
|
47
|
+
|
|
48
|
+
### Kitty Graphics Protocol
|
|
49
|
+
|
|
50
|
+
High-fidelity image rendering protocol for modern terminals.
|
|
51
|
+
|
|
52
|
+
Key features:
|
|
53
|
+
- High-fidelity image display in terminals
|
|
54
|
+
- Supported by Ghostty, Kitty, WezTerm
|
|
55
|
+
- Enables visual content in CLI workflows
|
|
56
|
+
|
|
57
|
+
### Ghostty Terminal
|
|
58
|
+
|
|
59
|
+
Modern GPU-accelerated terminal emulator.
|
|
60
|
+
|
|
61
|
+
Key features:
|
|
62
|
+
- Kitty graphics protocol support
|
|
63
|
+
- Cross-platform (macOS, Linux)
|
|
64
|
+
- High performance rendering
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Salesforce Resources
|
|
69
|
+
|
|
70
|
+
### Salesforce Lightning Design System (SLDS)
|
|
71
|
+
|
|
72
|
+
- Design patterns for LWC mockups
|
|
73
|
+
- Color palettes and typography
|
|
74
|
+
- Component specifications
|
|
75
|
+
|
|
76
|
+
### Salesforce Developers Platform
|
|
77
|
+
|
|
78
|
+
- API documentation
|
|
79
|
+
- Best practices guides
|
|
80
|
+
- Platform architecture references
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# generating-visual-diagrams
|
|
2
|
+
|
|
3
|
+
AI-powered visual content generation for Salesforce development. Generate ERD diagrams, LWC mockups, and architecture visuals using Gemini 3 Pro Image (Nano Banana Pro).
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Visual ERD Generation**: Create actual rendered ERD diagrams (not just Mermaid code)
|
|
8
|
+
- **LWC/UI Mockups**: Generate wireframes and component mockups following SLDS
|
|
9
|
+
- **Gemini Code Review**: Parallel code review while Claude continues working
|
|
10
|
+
- **Documentation Research**: Parallel Salesforce documentation research via Gemini
|
|
11
|
+
|
|
12
|
+
## Prerequisites
|
|
13
|
+
|
|
14
|
+
**IMPORTANT**: Run the prerequisites check before using this skill:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
scripts/check-prerequisites.sh
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
| Requirement | Description | How to Install |
|
|
21
|
+
|-------------|-------------|----------------|
|
|
22
|
+
| **Ghostty Terminal** | Required for Kitty graphics protocol | Download from the Ghostty website |
|
|
23
|
+
| **GEMINI_API_KEY** | Personal API key for Nano Banana Pro | Generate via Google AI Studio |
|
|
24
|
+
| **Gemini CLI** | Command-line interface for Gemini | `npm install -g @google/gemini-cli` |
|
|
25
|
+
| **Nano Banana Extension** | Image generation extension | `gemini extensions install nanobanana` |
|
|
26
|
+
| **timg** | Terminal image viewer with Kitty support | `brew install timg` |
|
|
27
|
+
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
### 1. Set up your API key
|
|
31
|
+
|
|
32
|
+
Add to `~/.zshrc`:
|
|
33
|
+
```bash
|
|
34
|
+
export GEMINI_API_KEY="your-personal-api-key"
|
|
35
|
+
export NANOBANANA_MODEL=gemini-3-pro-image-preview
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 2. Invoke the skill
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
Skill: generating-visual-diagrams
|
|
42
|
+
Request: "Generate an ERD diagram showing Account, Contact, and Opportunity relationships"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 3. View the result
|
|
46
|
+
|
|
47
|
+
Images are displayed inline using Kitty graphics protocol (Ghostty) or via Claude's multimodal vision using the Read tool.
|
|
48
|
+
|
|
49
|
+
## Use Cases
|
|
50
|
+
|
|
51
|
+
| Use Case | Example Request |
|
|
52
|
+
|----------|-----------------|
|
|
53
|
+
| ERD Diagrams | "Generate a visual ERD for Account, Contact, Opportunity" |
|
|
54
|
+
| LWC Mockups | "Create a mockup for an Account list datatable component" |
|
|
55
|
+
| Code Review | "Get Gemini's review of this Apex trigger" |
|
|
56
|
+
| Doc Research | "Research the Flow best practices in Salesforce docs" |
|
|
57
|
+
|
|
58
|
+
## Cross-Skill Integration
|
|
59
|
+
|
|
60
|
+
| Related Skill | When to Use |
|
|
61
|
+
|---------------|-------------|
|
|
62
|
+
| generating-mermaid-diagrams | Convert Mermaid to visual rendering |
|
|
63
|
+
| generating-custom-object | Query object/field data before generating ERDs |
|
|
64
|
+
| generating-lwc-components | Generate mockups for LWC components |
|
|
65
|
+
| generating-apex | Review Apex code via Gemini sub-agent |
|
|
66
|
+
|
|
67
|
+
## Documentation
|
|
68
|
+
|
|
69
|
+
- [Gemini CLI Setup](references/gemini-cli-setup.md)
|
|
70
|
+
|
|
71
|
+
## Security Notes
|
|
72
|
+
|
|
73
|
+
**NEVER commit your GEMINI_API_KEY to version control**
|
|
74
|
+
|
|
75
|
+
- Store API key in `~/.zshrc` only (not in project files)
|
|
76
|
+
- The key is personal and tied to your Google account billing
|
|
77
|
+
|
|
78
|
+
## Requirements
|
|
79
|
+
|
|
80
|
+
- Ghostty terminal (for Kitty graphics)
|
|
81
|
+
- Gemini CLI with Nano Banana extension
|
|
82
|
+
- GEMINI_API_KEY environment variable
|
|
83
|
+
- timg (for terminal image display)
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: generating-visual-diagrams
|
|
3
|
+
description: "AI-powered image generation for Salesforce visuals via Nano Banana Pro. Use this skill when the user needs rendered PNG/SVG output such as visual ERDs (Entity Relationship Diagrams), UI mockups, wireframes, or architecture illustrations. TRIGGER when: user asks for PNG/SVG output, UI mockups, wireframes, visual ERDs, or says \"generate image\" / \"create mockup\". DO NOT TRIGGER when: text-based Mermaid diagrams (use generating-mermaid-diagrams), or non-visual documentation tasks."
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
version: "1.0"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# generating-visual-diagrams: Salesforce Visual AI Skill
|
|
10
|
+
|
|
11
|
+
Use this skill when the user needs **rendered visuals**, not text diagrams: ERDs, UI mockups, architecture illustrations, slide-ready images, or image edits using Nano Banana Pro.
|
|
12
|
+
|
|
13
|
+
## Scope
|
|
14
|
+
|
|
15
|
+
**In scope:**
|
|
16
|
+
- PNG / SVG-style rendered image output
|
|
17
|
+
- Visual ERDs and architecture diagrams
|
|
18
|
+
- LWC or Experience Cloud mockups / wireframes
|
|
19
|
+
- Image edits on previously generated visuals
|
|
20
|
+
|
|
21
|
+
**Out of scope — delegate instead:**
|
|
22
|
+
- Mermaid or text-only diagrams → [generating-mermaid-diagrams](../generating-mermaid-diagrams/SKILL.md)
|
|
23
|
+
- Object / field metadata discovery for ERDs → [generating-custom-object](../generating-custom-object/SKILL.md) or [generating-custom-field](../generating-custom-field/SKILL.md)
|
|
24
|
+
- LWC implementation after the mockup is approved → [generating-lwc-components](../generating-lwc-components/SKILL.md)
|
|
25
|
+
- Apex review / implementation → [generating-apex](../generating-apex/SKILL.md)
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Hard Gate: Prerequisites First
|
|
30
|
+
|
|
31
|
+
Run the prerequisites check before using the skill:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
scripts/check-prerequisites.sh
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
If prerequisites fail, stop and route the user to setup guidance in:
|
|
38
|
+
- [references/gemini-cli-setup.md](references/gemini-cli-setup.md)
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Required Inputs
|
|
43
|
+
|
|
44
|
+
Ask for or infer before generating:
|
|
45
|
+
|
|
46
|
+
| Input | Default if not provided |
|
|
47
|
+
|---|---|
|
|
48
|
+
| Image type | ERD |
|
|
49
|
+
| Subject scope and key entities / systems | Ask the user |
|
|
50
|
+
| Target quality | Draft (1K) |
|
|
51
|
+
| Preferred style | architect.salesforce.com aesthetic |
|
|
52
|
+
| Aspect ratio | Default (no override) |
|
|
53
|
+
| Quick mode or interview mode | Interview mode |
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Interview-First Workflow
|
|
58
|
+
|
|
59
|
+
Unless the user asks for **quick / simple / just generate**, ask clarifying questions first using the question bank in [references/interview-questions.md](references/interview-questions.md).
|
|
60
|
+
|
|
61
|
+
| Request type | Ask about |
|
|
62
|
+
|---|---|
|
|
63
|
+
| ERD / schema | objects, visual style, purpose, extras |
|
|
64
|
+
| UI mockup | component type, object/context, device/layout, style |
|
|
65
|
+
| architecture image | systems, boundaries, protocols, emphasis |
|
|
66
|
+
| image edit | what to keep, what to change, output quality |
|
|
67
|
+
|
|
68
|
+
**Quick mode defaults** (triggered by "quick", "simple", "just generate", "fast"):
|
|
69
|
+
- professional style, 1K draft, legend included, one image first then iterate
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Recommended Workflow
|
|
74
|
+
|
|
75
|
+
### 1. Run prerequisites check
|
|
76
|
+
Run `scripts/check-prerequisites.sh` and confirm all required tools pass before proceeding.
|
|
77
|
+
|
|
78
|
+
### 2. Gather inputs
|
|
79
|
+
- object list / metadata (delegate to `generating-custom-object` / `generating-custom-field` if needed)
|
|
80
|
+
- purpose: draft vs presentation vs documentation
|
|
81
|
+
- desired aesthetic — read [references/architect-aesthetic-guide.md](references/architect-aesthetic-guide.md) for ERDs
|
|
82
|
+
- aspect ratio / resolution
|
|
83
|
+
|
|
84
|
+
### 3. Run interview or use quick-mode defaults
|
|
85
|
+
Load [references/interview-questions.md](references/interview-questions.md) for the matching question set (ERD, LWC, architecture, code review).
|
|
86
|
+
|
|
87
|
+
### 4. Build a concrete prompt
|
|
88
|
+
Good prompts specify subject, composition, color treatment, labels/legends, and output quality goal.
|
|
89
|
+
|
|
90
|
+
### 5. Generate a fast draft at 1K
|
|
91
|
+
```bash
|
|
92
|
+
gemini --yolo "/generate 'Your prompt here'"
|
|
93
|
+
```
|
|
94
|
+
Open the result and review layout before spending on higher resolution.
|
|
95
|
+
|
|
96
|
+
### 6. Iterate using edits
|
|
97
|
+
```bash
|
|
98
|
+
gemini --yolo "/edit 'Specific change instruction'"
|
|
99
|
+
```
|
|
100
|
+
Use `/edit` for small adjustments — cheaper than regenerating. See [references/iteration-workflow.md](references/iteration-workflow.md).
|
|
101
|
+
|
|
102
|
+
### 7. Generate final at 2K/4K using the Python script
|
|
103
|
+
Run `scripts/generate_image.py` when layout is confirmed:
|
|
104
|
+
```bash
|
|
105
|
+
uv run scripts/generate_image.py -p "Refined prompt" -f "output.png" -r 4K
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 8. Error recovery
|
|
109
|
+
- If `gemini --yolo` returns no image: re-run once; if it fails again, fall back to the Python script path.
|
|
110
|
+
- If the Python script fails with `GEMINI_API_KEY not found`: verify the key is exported in your shell profile (`~/.zshrc` on macOS/zsh, `~/.bashrc` on Linux) and the terminal session is refreshed.
|
|
111
|
+
- If the extension is missing: run `gemini extensions install nanobanana` and re-run the prerequisites check.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Default Style Guidance
|
|
116
|
+
|
|
117
|
+
For ERDs, default to the **architect.salesforce.com** aesthetic unless the user asks otherwise:
|
|
118
|
+
- dark border + light fill cards
|
|
119
|
+
- cloud-specific accent colors
|
|
120
|
+
- clean labels and relationship lines
|
|
121
|
+
- presentation-ready whitespace and hierarchy
|
|
122
|
+
|
|
123
|
+
Full style specification: [references/architect-aesthetic-guide.md](references/architect-aesthetic-guide.md)
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Common Patterns
|
|
128
|
+
|
|
129
|
+
| Pattern | Default approach |
|
|
130
|
+
|---|---|
|
|
131
|
+
| visual ERD | get metadata if available, then render a draft first |
|
|
132
|
+
| LWC mockup | load [assets/lwc/data-table.md](assets/lwc/data-table.md), [assets/lwc/record-form.md](assets/lwc/record-form.md), or [assets/lwc/dashboard-card.md](assets/lwc/dashboard-card.md) for the matching template |
|
|
133
|
+
| architecture illustration | load [assets/architecture/integration-flow.md](assets/architecture/integration-flow.md); emphasize systems and flows |
|
|
134
|
+
| image refinement | use `/edit` for small changes before regenerating |
|
|
135
|
+
| final production asset | switch to script-driven 2K/4K generation via `scripts/generate_image.py` |
|
|
136
|
+
| Apex / LWC code review | load [assets/review/apex-review.md](assets/review/apex-review.md) or [assets/review/lwc-review.md](assets/review/lwc-review.md) for the review prompt template |
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Output Expectations
|
|
141
|
+
|
|
142
|
+
Deliverables produced by this skill:
|
|
143
|
+
|
|
144
|
+
- **Draft image** (`<name>.png`) — 1K resolution rendered via `gemini --yolo "/generate ..."` for layout review
|
|
145
|
+
- **Final image** (`<name>.png`) — 2K or 4K resolution rendered via `scripts/generate_image.py` once composition is approved
|
|
146
|
+
- **Edit iteration** (`<name>.png`) — incremental refinement via `gemini --yolo "/edit ..."` without full regeneration
|
|
147
|
+
|
|
148
|
+
After delivering each image:
|
|
149
|
+
- Open the file in Preview or attach it in the session for multimodal review
|
|
150
|
+
- Ask the user whether to iterate on layout, labeling, or color before finalizing
|
|
151
|
+
- Only proceed to high-res output after draft composition is confirmed
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Rules / Constraints
|
|
156
|
+
|
|
157
|
+
| Rule | Rationale |
|
|
158
|
+
|---|---|
|
|
159
|
+
| Always run prerequisites check before any generation | Missing tools produce silent failures |
|
|
160
|
+
| Always draft at 1K before generating at 4K | Cost and time savings; composition changes at high res are wasteful |
|
|
161
|
+
| Use `/edit` for incremental changes, not full regeneration | Cheaper and faster for small adjustments |
|
|
162
|
+
| Never commit `GEMINI_API_KEY` to version control | Key is personal and tied to billing |
|
|
163
|
+
| Delegate text diagrams to `generating-mermaid-diagrams` | This skill owns rendered images only |
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Gotchas
|
|
168
|
+
|
|
169
|
+
| Issue | Resolution |
|
|
170
|
+
|---|---|
|
|
171
|
+
| Edit not applying correctly | Be specific: reference existing elements by name; one change at a time |
|
|
172
|
+
| 4K output looks different from 1K draft | Use exact same prompt text; minor variations are normal model behavior |
|
|
173
|
+
| `gemini --yolo` fails silently | Check that the Nano Banana extension is installed: `gemini extensions list` |
|
|
174
|
+
| Image dimensions wrong | Set `--aspect-ratio` explicitly in `scripts/generate_image.py` using `-a "16:9"` |
|
|
175
|
+
| RGBA image causes errors in Python script | Script auto-converts RGBA→RGB; ensure Pillow is installed via `uv` |
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Cross-Skill Integration
|
|
180
|
+
|
|
181
|
+
| Need | Delegate to | Reason |
|
|
182
|
+
|---|---|---|
|
|
183
|
+
| Mermaid first draft or text diagram | [generating-mermaid-diagrams](../generating-mermaid-diagrams/SKILL.md) | faster structural diagramming |
|
|
184
|
+
| Object / field discovery for ERD | [generating-custom-object](../generating-custom-object/SKILL.md) / [generating-custom-field](../generating-custom-field/SKILL.md) | accurate schema grounding |
|
|
185
|
+
| Turn mockup into real LWC component | [generating-lwc-components](../generating-lwc-components/SKILL.md) | implementation after design |
|
|
186
|
+
| Apex review / implementation | [generating-apex](../generating-apex/SKILL.md) | code-quality follow-up |
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Reference File Index
|
|
191
|
+
|
|
192
|
+
| File | When to read |
|
|
193
|
+
|---|---|
|
|
194
|
+
| [references/gemini-cli-setup.md](references/gemini-cli-setup.md) | Prerequisites fail — Gemini CLI / Nano Banana setup guidance |
|
|
195
|
+
| [references/interview-questions.md](references/interview-questions.md) | Step 3 — load question set matching the request type |
|
|
196
|
+
| [references/iteration-workflow.md](references/iteration-workflow.md) | Step 6 — draft-to-final iteration patterns and cost tips |
|
|
197
|
+
| [references/architect-aesthetic-guide.md](references/architect-aesthetic-guide.md) | Step 4 — ERD color palettes, box styles, prompt templates |
|
|
198
|
+
| [references/examples-index.md](references/examples-index.md) | Step 4 — example prompts for ERD, LWC, architecture, code review |
|
|
199
|
+
| [assets/erd/core-objects.md](assets/erd/core-objects.md) | Step 4 — prompt template for core CRM objects (Account, Contact, Opportunity, Case) |
|
|
200
|
+
| [assets/erd/custom-objects.md](assets/erd/custom-objects.md) | Step 4 — prompt template for custom object ERDs |
|
|
201
|
+
| [assets/lwc/data-table.md](assets/lwc/data-table.md) | Step 4 — prompt template for lightning-datatable mockups |
|
|
202
|
+
| [assets/lwc/record-form.md](assets/lwc/record-form.md) | Step 4 — prompt template for lightning-record-form mockups |
|
|
203
|
+
| [assets/lwc/dashboard-card.md](assets/lwc/dashboard-card.md) | Step 4 — prompt template for dashboard card / metric tile mockups |
|
|
204
|
+
| [assets/architecture/integration-flow.md](assets/architecture/integration-flow.md) | Step 4 — prompt template for integration architecture diagrams |
|
|
205
|
+
| [assets/review/apex-review.md](assets/review/apex-review.md) | Step 4 — Gemini review prompt template for Apex code |
|
|
206
|
+
| [assets/review/lwc-review.md](assets/review/lwc-review.md) | Step 4 — Gemini review prompt template for LWC components |
|
|
207
|
+
| [scripts/check-prerequisites.sh](scripts/check-prerequisites.sh) | Step 1 — run to verify all required tools are installed |
|
|
208
|
+
| [scripts/generate_image.py](scripts/generate_image.py) | Step 7 — run for 2K/4K resolution output and image editing with resolution control |
|