@salesforce/afv-skills 1.28.0 → 1.30.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/README.md +2 -0
- package/package.json +1 -1
- package/skills/agentforce-architecture-analyze/README.md +2 -8
- package/skills/agentforce-architecture-analyze/SKILL.md +2 -2
- package/skills/agentforce-architecture-analyze/references/contract.json +4 -4
- package/skills/agentforce-architecture-analyze/references/soql_fields.md +1 -1
- package/skills/data360-activate/README.md +0 -1
- package/skills/data360-activate/SKILL.md +0 -2
- package/skills/data360-connect/README.md +0 -2
- package/skills/data360-connect/SKILL.md +0 -2
- package/skills/data360-harmonize/SKILL.md +0 -1
- package/skills/data360-orchestrate/README.md +0 -7
- package/skills/data360-orchestrate/SKILL.md +0 -2
- package/skills/data360-prepare/README.md +0 -1
- package/skills/data360-prepare/SKILL.md +0 -1
- package/skills/data360-query/README.md +0 -1
- package/skills/data360-query/SKILL.md +0 -1
- package/skills/data360-segment/README.md +0 -1
- package/skills/data360-segment/SKILL.md +0 -2
- package/skills/dx-code-analyzer-configure/SKILL.md +31 -13
- package/skills/dx-code-analyzer-custom-rule-create/SKILL.md +484 -0
- package/skills/dx-code-analyzer-custom-rule-create/assets/pmd-ruleset-template.xml +31 -0
- package/skills/dx-code-analyzer-custom-rule-create/examples/metadata-xml-example-fields-api.md +87 -0
- package/skills/dx-code-analyzer-custom-rule-create/examples/metadata-xml-example-flows.md +105 -0
- package/skills/dx-code-analyzer-custom-rule-create/examples/metadata-xml-example-permissions.md +95 -0
- package/skills/dx-code-analyzer-custom-rule-create/examples/metadata-xml-examples.md +84 -0
- package/skills/dx-code-analyzer-custom-rule-create/examples/regex-examples.md +127 -0
- package/skills/dx-code-analyzer-custom-rule-create/examples/xpath-examples.md +227 -0
- package/skills/dx-code-analyzer-custom-rule-create/references/advanced-pmd-patterns.md +288 -0
- package/skills/dx-code-analyzer-custom-rule-create/references/apex-ast-reference.md +127 -0
- package/skills/dx-code-analyzer-custom-rule-create/references/eslint-custom-plugins.md +247 -0
- package/skills/dx-code-analyzer-custom-rule-create/references/eslint-rules-discovery.md +188 -0
- package/skills/dx-code-analyzer-custom-rule-create/references/eslint-tier2-configurable.md +114 -0
- package/skills/dx-code-analyzer-custom-rule-create/references/eslint-tier3-custom-plugins.md +113 -0
- package/skills/dx-code-analyzer-custom-rule-create/references/metadata-xml-rules.md +285 -0
- package/skills/dx-code-analyzer-custom-rule-create/references/regex-rule-schema.md +174 -0
- package/skills/dx-code-analyzer-custom-rule-create/references/troubleshooting.md +141 -0
- package/skills/dx-code-analyzer-custom-rule-create/references/xpath-patterns-governor-limits.md +83 -0
- package/skills/dx-code-analyzer-custom-rule-create/references/xpath-patterns-method-calls.md +108 -0
- package/skills/dx-code-analyzer-custom-rule-create/references/xpath-patterns-security.md +45 -0
- package/skills/dx-code-analyzer-custom-rule-create/references/xpath-patterns-structure.md +127 -0
- package/skills/dx-code-analyzer-custom-rule-create/references/xpath-patterns.md +131 -0
- package/skills/dx-code-analyzer-custom-rule-create/scripts/create-pmd-rule.js +209 -0
- package/skills/dx-code-analyzer-custom-rule-create/scripts/create-regex-rule.js +220 -0
- package/skills/dx-code-analyzer-run/SKILL.md +41 -8
- package/skills/experience-cms-brand-apply/SKILL.md +47 -16
- package/skills/experience-lwc-generate/README.md +3 -2
- package/skills/experience-lwc-generate/references/async-notification-patterns.md +1 -1
- package/skills/experience-lwc-generate/references/component-patterns.md +3 -3
- package/skills/experience-lwc-generate/references/flow-integration-guide.md +1 -1
- package/skills/experience-lwc-generate/references/lwc-best-practices.md +4 -4
- package/skills/experience-lwc-generate/references/scoring-and-testing.md +1 -1
- package/skills/experience-lwc-generate/references/state-management.md +2 -2
- package/skills/experience-lwc-generate/references/triangle-pattern.md +3 -3
- package/skills/experience-lwc-generate/scripts/post-tool-validate.py +2 -2
- package/skills/experience-lwc-generate/scripts/template_validator.py +1 -1
- package/skills/external-diagram-mermaid-generate/README.md +2 -2
- package/skills/external-diagram-mermaid-generate/SKILL.md +1 -3
- package/skills/external-diagram-mermaid-generate/assets/agentforce/agent-flow.md +4 -4
- package/skills/external-diagram-mermaid-generate/assets/architecture/system-landscape.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/datamodel/b2b-commerce-erd.md +3 -3
- package/skills/external-diagram-mermaid-generate/assets/datamodel/campaigns-erd.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/datamodel/consent-erd.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/datamodel/files-erd.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/datamodel/forecasting-erd.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/datamodel/fsl-erd.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/datamodel/party-model-erd.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/datamodel/quote-order-erd.md +3 -3
- package/skills/external-diagram-mermaid-generate/assets/datamodel/revenue-cloud-erd.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/datamodel/sales-cloud-erd.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/datamodel/salesforce-erd.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/datamodel/scheduler-erd.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/datamodel/service-cloud-erd.md +3 -3
- package/skills/external-diagram-mermaid-generate/assets/datamodel/territory-management-erd.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/integration/api-sequence.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/oauth/authorization-code-pkce.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/oauth/authorization-code.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/oauth/client-credentials.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/oauth/device-authorization.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/oauth/jwt-bearer.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/oauth/refresh-token.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/oauth/user-agent-social-sign-on.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/role-hierarchy/user-hierarchy.md +1 -1
- package/skills/external-diagram-mermaid-generate/references/color-palette.md +13 -13
- package/skills/external-diagram-mermaid-generate/references/diagram-conventions.md +5 -5
- package/skills/external-diagram-mermaid-generate/references/erd-conventions.md +1 -1
- package/skills/external-diagram-mermaid-generate/references/mermaid-styling.md +2 -2
- package/skills/external-diagram-mermaid-generate/references/preview-guide.md +1 -1
- package/skills/external-diagram-mermaid-generate/references/usage-examples.md +9 -9
- package/skills/external-diagram-mermaid-generate/scripts/README.md +1 -1
- package/skills/integration-connectivity-connected-app-configure/README.md +4 -5
- package/skills/integration-connectivity-connected-app-configure/SKILL.md +2 -2
- package/skills/integration-connectivity-connected-app-configure/references/example-usage.md +7 -7
- package/skills/integration-connectivity-connected-app-configure/references/migration-guide.md +1 -1
- package/skills/integration-connectivity-connected-app-configure/references/oauth-flows-reference.md +1 -1
- package/skills/integration-connectivity-connected-app-configure/references/testing-validation-guide.md +3 -3
- package/skills/integration-connectivity-generate/README.md +1 -1
- package/skills/integration-connectivity-generate/SKILL.md +6 -0
- package/skills/integration-connectivity-generate/assets/callouts/rest-queueable-callout.cls +1 -1
- package/skills/integration-connectivity-generate/assets/external-services/external-service-operations.md +1 -1
- package/skills/integration-connectivity-generate/assets/soap/wsdl2apex-guide.md +1 -1
- package/skills/integration-connectivity-generate/references/callout-patterns.md +4 -0
- package/skills/integration-connectivity-generate/references/cdc-guide.md +2 -2
- package/skills/integration-connectivity-generate/references/event-driven-architecture-guide.md +5 -5
- package/skills/integration-connectivity-generate/references/event-patterns.md +3 -2
- package/skills/integration-connectivity-generate/references/external-services-guide.md +4 -1
- package/skills/integration-connectivity-generate/references/messaging-api-v2.md +2 -2
- package/skills/integration-connectivity-generate/references/named-credentials-automation.md +1 -1
- package/skills/integration-connectivity-generate/references/named-credentials-guide.md +12 -2
- package/skills/integration-connectivity-generate/references/platform-events-guide.md +3 -3
- package/skills/integration-connectivity-generate/references/rest-callout-patterns.md +1 -1
- package/skills/integration-connectivity-generate/references/scoring-rubric.md +1 -1
- package/skills/integration-connectivity-generate/references/security-best-practices.md +5 -2
- package/skills/integration-connectivity-generate/scripts/configure-named-credential.sh +16 -5
- package/skills/integration-connectivity-generate/scripts/set-api-credential.sh +11 -2
- package/skills/integration-connectivity-generate/scripts/suggest_credential_setup.py +4 -3
- package/skills/integration-connectivity-generate/scripts/validate_integration.py +1 -1
- package/skills/mobile-platform-native-capabilities-integrate/SKILL.md +3 -3
- package/skills/omnistudio-callable-apex-generate/README.md +1 -5
- package/skills/omnistudio-callable-apex-generate/SKILL.md +14 -4
- package/skills/omnistudio-callable-apex-generate/assets/pattern_callable_vanilla.cls +8 -1
- package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterface2Conversion/TRANSCRIPT.md +1 -1
- package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterfaceConversion/TRANSCRIPT.md +1 -1
- package/skills/omnistudio-datamapper-generate/SKILL.md +1 -1
- package/skills/omnistudio-datamapper-generate/assets/completion-summary-template.md +2 -2
- package/skills/omnistudio-datamapper-generate/references/best-practices.md +9 -9
- package/skills/omnistudio-datamapper-generate/references/naming-conventions.md +6 -6
- package/skills/omnistudio-datapacks-deploy/README.md +1 -1
- package/skills/omnistudio-datapacks-deploy/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +1 -1
- package/skills/omnistudio-dependencies-analyze/SKILL.md +12 -5
- package/skills/omnistudio-dependencies-analyze/references/dependency-patterns.md +9 -9
- package/skills/omnistudio-dependencies-analyze/references/namespace-guide.md +1 -1
- package/skills/omnistudio-epc-catalog-generate/README.md +1 -1
- package/skills/omnistudio-flexcard-generate/SKILL.md +11 -4
- package/skills/omnistudio-flexcard-generate/references/best-practices.md +6 -6
- package/skills/omnistudio-flexcard-generate/references/data-binding-guide.md +9 -9
- package/skills/omnistudio-integration-procedure-generate/SKILL.md +9 -1
- package/skills/omnistudio-integration-procedure-generate/references/element-types.md +3 -3
- package/skills/omnistudio-omniscript-generate/SKILL.md +2 -2
- package/skills/omnistudio-omniscript-generate/references/best-practices.md +1 -1
- package/skills/omnistudio-omniscript-generate/scripts/check-duplicate-omniscript.sh +8 -0
- package/skills/omnistudio-omniscript-generate/scripts/deploy-omniscript.sh +8 -0
- package/skills/platform-apex-logs-debug/README.md +2 -2
- package/skills/platform-apex-logs-debug/references/cli-commands.md +2 -2
- package/skills/platform-apex-logs-debug/references/debug-log-reference.md +16 -16
- package/skills/platform-apex-logs-debug/references/log-analysis-tools.md +2 -2
- package/skills/platform-apex-test-run/README.md +1 -1
- package/skills/platform-apex-test-run/references/test-fix-loop.md +2 -2
- package/skills/platform-apex-test-run/references/testing-best-practices.md +3 -3
- package/skills/platform-custom-field-generate/SKILL.md +86 -126
- package/skills/platform-custom-field-generate/references/advanced-picklists.md +590 -0
- package/skills/platform-data-manage/README.md +4 -4
- package/skills/platform-data-manage/references/bulk-testing-example.md +1 -1
- package/skills/platform-data-manage/references/crud-workflow-example.md +2 -2
- package/skills/platform-data-manage/references/orchestration.md +6 -6
- package/skills/platform-flexipage-generate/SKILL.md +281 -346
- package/skills/platform-flexipage-generate/references/cli_commands.md +39 -0
- package/skills/platform-flexipage-generate/references/flexipage_fieldSection.md +162 -0
- package/skills/platform-flexipage-generate/references/flexipage_richText.md +84 -0
- package/skills/platform-flexipage-generate/references/identifiers_and_regions.md +167 -0
- package/skills/platform-flexipage-generate/references/mcp_action_examples.md +104 -0
- package/skills/platform-flexipage-generate/references/record_flexipage_dynamicHighlights.md +119 -0
- package/skills/platform-flexipage-generate/references/xml_rules.md +335 -0
- package/skills/platform-flexipage-generate/scripts/resolve-component-instructions.sh +42 -0
- package/skills/platform-flexipage-generate/scripts/scan-lwc-components.sh +113 -0
- package/skills/platform-metadata-deploy/README.md +2 -2
- package/skills/platform-metadata-deploy/references/agent-deployment-guide.md +2 -2
- package/skills/platform-metadata-deploy/references/deployment-workflows.md +16 -16
- package/skills/platform-metadata-deploy/references/orchestration.md +3 -3
- package/skills/platform-metadata-deploy/references/trigger-deployment-safety.md +2 -2
- package/skills/platform-models-api-configure/SKILL.md +140 -0
- package/skills/platform-models-api-configure/scripts/get-orgjwt.sh +48 -0
- package/skills/platform-policy-rule-generate/SKILL.md +260 -0
- package/skills/platform-policy-rule-generate/references/deploy-errors.md +54 -0
- package/skills/platform-policy-rule-generate/references/fixtures-index.md +29 -0
- package/skills/platform-policy-rule-generate/references/policy-schema-full.md +250 -0
- package/skills/platform-policy-rule-generate/references/templates-access.md +132 -0
- package/skills/platform-policy-rule-generate/references/templates-advanced.md +58 -0
- package/skills/platform-policy-rule-generate/references/templates-record.md +75 -0
- package/skills/platform-policy-rule-generate/references/templates-transform.md +70 -0
- package/skills/platform-policy-rule-generate/references/templates.md +10 -0
- package/skills/platform-policy-rule-generate/references/ui-compatibility.md +142 -0
- package/skills/platform-soql-query/README.md +1 -1
- package/skills/platform-soql-query/SKILL.md +1 -1
- package/skills/platform-soql-query/references/anti-patterns.md +1 -1
- package/skills/platform-soql-query/references/field-coverage-rules.md +1 -1
- package/skills/platform-soql-query/references/query-optimization.md +1 -1
- package/skills/platform-soql-query/scripts/post-tool-validate.py +3 -3
- package/skills/platform-value-set-generate/SKILL.md +305 -0
- package/skills/data360-activate/CREDITS.md +0 -5
- package/skills/data360-connect/CREDITS.md +0 -5
- package/skills/data360-harmonize/CREDITS.md +0 -3
- package/skills/data360-orchestrate/CREDITS.md +0 -15
- package/skills/data360-orchestrate/UPSTREAM.md +0 -45
- package/skills/data360-prepare/CREDITS.md +0 -7
- package/skills/data360-query/CREDITS.md +0 -7
- package/skills/data360-segment/CREDITS.md +0 -3
- package/skills/experience-lwc-generate/CREDITS.md +0 -5
- package/skills/external-diagram-mermaid-generate/CREDITS.md +0 -46
- package/skills/external-diagram-visual-generate/CREDITS.md +0 -80
- package/skills/external-diagram-visual-generate/README.md +0 -83
- package/skills/external-diagram-visual-generate/SKILL.md +0 -207
- package/skills/external-diagram-visual-generate/assets/architecture/integration-flow.md +0 -55
- package/skills/external-diagram-visual-generate/assets/erd/core-objects.md +0 -131
- package/skills/external-diagram-visual-generate/assets/erd/custom-objects.md +0 -60
- package/skills/external-diagram-visual-generate/assets/lwc/dashboard-card.md +0 -45
- package/skills/external-diagram-visual-generate/assets/lwc/data-table.md +0 -57
- package/skills/external-diagram-visual-generate/assets/lwc/record-form.md +0 -60
- package/skills/external-diagram-visual-generate/assets/review/apex-review.md +0 -57
- package/skills/external-diagram-visual-generate/assets/review/lwc-review.md +0 -48
- package/skills/external-diagram-visual-generate/references/architect-aesthetic-guide.md +0 -257
- package/skills/external-diagram-visual-generate/references/examples-index.md +0 -35
- package/skills/external-diagram-visual-generate/references/gemini-cli-setup.md +0 -65
- package/skills/external-diagram-visual-generate/references/interview-questions.md +0 -529
- package/skills/external-diagram-visual-generate/references/iteration-workflow.md +0 -173
- package/skills/external-diagram-visual-generate/scripts/check-prerequisites.sh +0 -101
- package/skills/external-diagram-visual-generate/scripts/generate_image.py +0 -243
- package/skills/integration-connectivity-connected-app-configure/CREDITS.md +0 -3
- package/skills/integration-connectivity-generate/CREDITS.md +0 -5
- package/skills/omnistudio-callable-apex-generate/CREDITS.md +0 -9
- package/skills/omnistudio-datamapper-generate/CREDITS.md +0 -5
- package/skills/omnistudio-datapacks-deploy/CREDITS.md +0 -5
- package/skills/omnistudio-dependencies-analyze/CREDITS.md +0 -5
- package/skills/omnistudio-epc-catalog-generate/CREDITS.md +0 -14
- package/skills/omnistudio-flexcard-generate/CREDITS.md +0 -5
- package/skills/omnistudio-integration-procedure-generate/CREDITS.md +0 -5
- package/skills/omnistudio-omniscript-generate/CREDITS.md +0 -5
- package/skills/platform-apex-generate/CREDITS.md +0 -5
- package/skills/platform-apex-logs-debug/CREDITS.md +0 -22
- package/skills/platform-apex-test-generate/CREDITS.md +0 -5
- package/skills/platform-apex-test-run/CREDITS.md +0 -22
- package/skills/platform-data-manage/CREDITS.md +0 -5
- package/skills/platform-metadata-deploy/CREDITS.md +0 -25
- package/skills/platform-soql-query/CREDITS.md +0 -21
- /package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterfaceConversion/{MyCustomVlocityOpenInterface2.cls → MyCustomClass.cls} +0 -0
|
@@ -21,7 +21,7 @@ The `DR_` prefix stands for DataRaptor, the original product name. It remains th
|
|
|
21
21
|
|
|
22
22
|
### Format
|
|
23
23
|
|
|
24
|
-
```
|
|
24
|
+
```text
|
|
25
25
|
DR_[Type]_[PrimaryObject]_[Purpose]
|
|
26
26
|
```
|
|
27
27
|
|
|
@@ -56,14 +56,14 @@ For custom objects, include the namespace prefix if applicable but drop the `__c
|
|
|
56
56
|
|
|
57
57
|
When a Data Mapper spans multiple objects, name it after the primary (root) object:
|
|
58
58
|
|
|
59
|
-
```
|
|
59
|
+
```text
|
|
60
60
|
DR_Extract_Account_WithContactsAndOpps
|
|
61
61
|
DR_Extract_Order_WithLineItems
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
If the Data Mapper truly serves a cross-cutting concern, use a domain name instead:
|
|
65
65
|
|
|
66
|
-
```
|
|
66
|
+
```text
|
|
67
67
|
DR_Extract_CustomerProfile_Full
|
|
68
68
|
DR_Transform_ClaimSubmission_Normalize
|
|
69
69
|
```
|
|
@@ -88,7 +88,7 @@ Output field names in the Data Mapper JSON response should follow these conventi
|
|
|
88
88
|
|
|
89
89
|
Input paths reference the source data structure. Use consistent dot notation:
|
|
90
90
|
|
|
91
|
-
```
|
|
91
|
+
```text
|
|
92
92
|
AccountData.Name -- Simple field
|
|
93
93
|
AccountData.Owner.Name -- Relationship traversal
|
|
94
94
|
AccountData.Contacts[0] -- Collection index
|
|
@@ -99,7 +99,7 @@ RequestBody.payload.id -- Nested JSON path
|
|
|
99
99
|
|
|
100
100
|
Output paths define the JSON structure returned by the Data Mapper:
|
|
101
101
|
|
|
102
|
-
```
|
|
102
|
+
```text
|
|
103
103
|
AccountInfo.Name -- Nested output
|
|
104
104
|
AccountInfo.OwnerName -- Flattened relationship
|
|
105
105
|
AccountInfo.Contacts -- Collection output
|
|
@@ -126,7 +126,7 @@ Result.status -- Top-level result wrapper
|
|
|
126
126
|
|
|
127
127
|
Data Mapper names should be environment-agnostic. Do not include environment identifiers in the name:
|
|
128
128
|
|
|
129
|
-
```
|
|
129
|
+
```text
|
|
130
130
|
Bad: DR_Extract_Account_Details_DEV
|
|
131
131
|
Bad: DR_Extract_Account_Details_v2
|
|
132
132
|
Good: DR_Extract_Account_Details
|
|
@@ -14,7 +14,7 @@ Salesforce Industries DataPack deployment automation using Vlocity Build. Export
|
|
|
14
14
|
|
|
15
15
|
Invoke this skill when working with OmniStudio/Vlocity DataPack deployments:
|
|
16
16
|
|
|
17
|
-
```
|
|
17
|
+
```text
|
|
18
18
|
Skill: omnistudio-datapacks-deploy
|
|
19
19
|
Request: "Deploy my OmniStudio DataPacks to UAT using Vlocity Build and include retry guidance."
|
|
20
20
|
```
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
projectPath: ../../../../
|
|
2
|
-
expansionPath: skills/
|
|
2
|
+
expansionPath: skills/omnistudio-epc-catalog-generate/examples/business-internet-plus-bundle
|
|
3
3
|
|
|
4
4
|
# Deterministic scope for this validation example.
|
|
5
5
|
manifest:
|
|
@@ -190,7 +190,7 @@ sf data query --query "SELECT Id, Type, SubType, Language, IsActive FROM OmniPro
|
|
|
190
190
|
|
|
191
191
|
#### Algorithm: BFS with Circular Detection
|
|
192
192
|
|
|
193
|
-
```
|
|
193
|
+
```text
|
|
194
194
|
1. Initialize empty graph G and visited set V
|
|
195
195
|
2. For each root component C:
|
|
196
196
|
a. Enqueue C into work queue Q
|
|
@@ -221,7 +221,7 @@ OmniScript and IP elements store references in the `PropertySetConfig` JSON fiel
|
|
|
221
221
|
| Apex Remote Action | `remoteClass` | Apex Class |
|
|
222
222
|
|
|
223
223
|
**Parsing PropertySetConfig**:
|
|
224
|
-
```
|
|
224
|
+
```text
|
|
225
225
|
For each OmniProcessElement:
|
|
226
226
|
1. Read PropertySetConfig (JSON string)
|
|
227
227
|
2. Parse JSON
|
|
@@ -235,7 +235,7 @@ For each OmniProcessElement:
|
|
|
235
235
|
|
|
236
236
|
FlexCards store their data source configuration in the `DataSourceConfig` JSON field (NOT `Definition` — that field does not exist on `OmniUiCard`):
|
|
237
237
|
|
|
238
|
-
```
|
|
238
|
+
```text
|
|
239
239
|
Parse DataSourceConfig JSON:
|
|
240
240
|
1. Access dataSource object (singular, not array)
|
|
241
241
|
2. For each dataSource where type === 'IntegrationProcedures' (note: PLURAL):
|
|
@@ -254,7 +254,7 @@ Parse DataSourceConfig JSON:
|
|
|
254
254
|
|
|
255
255
|
Data Mappers reference Salesforce objects via their items:
|
|
256
256
|
|
|
257
|
-
```
|
|
257
|
+
```text
|
|
258
258
|
For each OmniDataTransformItem:
|
|
259
259
|
1. Read InputObjectName → source sObject
|
|
260
260
|
2. Read OutputObjectName → target sObject
|
|
@@ -343,7 +343,7 @@ graph LR
|
|
|
343
343
|
|
|
344
344
|
#### Output Format 3: Human-Readable Report
|
|
345
345
|
|
|
346
|
-
```
|
|
346
|
+
```text
|
|
347
347
|
OmniStudio Dependency Report
|
|
348
348
|
=============================
|
|
349
349
|
Org Namespace: Core (Industries)
|
|
@@ -468,6 +468,13 @@ sf data query --query "SELECT Id, OmniDataTransformationId, InputObjectName, Out
|
|
|
468
468
|
|
|
469
469
|
---
|
|
470
470
|
|
|
471
|
+
## Pre-Delivery Checklist
|
|
472
|
+
|
|
473
|
+
- [ ] Namespace detected before any downstream queries
|
|
474
|
+
- [ ] Orchestration order followed (this skill runs first in the chain)
|
|
475
|
+
|
|
476
|
+
---
|
|
477
|
+
|
|
471
478
|
## Reference File Index
|
|
472
479
|
|
|
473
480
|
| File | When to read |
|
|
@@ -10,7 +10,7 @@ OmniStudio components form a directed graph where each component type can refere
|
|
|
10
10
|
|
|
11
11
|
## Dependency Direction Summary
|
|
12
12
|
|
|
13
|
-
```
|
|
13
|
+
```text
|
|
14
14
|
OmniScript ──→ Integration Procedure (via IP Action element)
|
|
15
15
|
OmniScript ──→ Data Mapper (via DataRaptor Action element)
|
|
16
16
|
OmniScript ──→ OmniScript (via embedded OmniScript element)
|
|
@@ -206,7 +206,7 @@ Integration Procedures use the same element types as OmniScripts but are filtere
|
|
|
206
206
|
|
|
207
207
|
An Integration Procedure can call another Integration Procedure, creating a chain:
|
|
208
208
|
|
|
209
|
-
```
|
|
209
|
+
```text
|
|
210
210
|
IP: OrderValidation
|
|
211
211
|
└── IP Action → IP: CustomerLookup
|
|
212
212
|
└── DR Action → DM: CustomerExtract
|
|
@@ -322,7 +322,7 @@ Each `OmniDataTransformItem` (Core) or `DRMapItem__c` (Vlocity) record contains:
|
|
|
322
322
|
|
|
323
323
|
### Extract Type Data Mapper Example
|
|
324
324
|
|
|
325
|
-
```
|
|
325
|
+
```text
|
|
326
326
|
DM: AccountExtract (Type: Extract)
|
|
327
327
|
├── Item 1: InputObjectName = "Account"
|
|
328
328
|
│ InputFieldName = "Name"
|
|
@@ -339,7 +339,7 @@ Dependencies: Account (read), Contact (read)
|
|
|
339
339
|
|
|
340
340
|
### Load Type Data Mapper Example
|
|
341
341
|
|
|
342
|
-
```
|
|
342
|
+
```text
|
|
343
343
|
DM: OrderCreate (Type: Load)
|
|
344
344
|
├── Item 1: OutputObjectName = "Order"
|
|
345
345
|
│ InputFieldName = "OrderData.accountId"
|
|
@@ -355,7 +355,7 @@ Dependencies: Order (write), OrderItem (write)
|
|
|
355
355
|
|
|
356
356
|
Transform type Data Mappers do not reference Salesforce objects directly — they map between data structures. They have no sObject dependencies but may participate in a chain:
|
|
357
357
|
|
|
358
|
-
```
|
|
358
|
+
```text
|
|
359
359
|
OmniScript → DR Extract (reads Account) → DR Transform (reshapes data) → DR Load (writes CustomObj__c)
|
|
360
360
|
```
|
|
361
361
|
|
|
@@ -373,7 +373,7 @@ Circular references happen when component A depends on component B, which direct
|
|
|
373
373
|
|
|
374
374
|
### Detection Algorithm
|
|
375
375
|
|
|
376
|
-
```
|
|
376
|
+
```javascript
|
|
377
377
|
function detectCircularDependencies(graph):
|
|
378
378
|
cycles = []
|
|
379
379
|
for each node N in graph:
|
|
@@ -402,7 +402,7 @@ function dfs(node, visited, path, graph, cycles):
|
|
|
402
402
|
|
|
403
403
|
When a cycle is detected, report it clearly:
|
|
404
404
|
|
|
405
|
-
```
|
|
405
|
+
```text
|
|
406
406
|
CIRCULAR DEPENDENCY DETECTED:
|
|
407
407
|
OS:editAccount → IP:validateAccount → OS:editAccount
|
|
408
408
|
|
|
@@ -421,7 +421,7 @@ a termination condition.
|
|
|
421
421
|
|
|
422
422
|
### Step-by-Step Process
|
|
423
423
|
|
|
424
|
-
```
|
|
424
|
+
```text
|
|
425
425
|
1. DETECT namespace (see namespace-guide.md)
|
|
426
426
|
|
|
427
427
|
2. QUERY all container objects:
|
|
@@ -465,7 +465,7 @@ a termination condition.
|
|
|
465
465
|
|
|
466
466
|
To answer "what breaks if I change Data Mapper X?", reverse the dependency direction:
|
|
467
467
|
|
|
468
|
-
```
|
|
468
|
+
```text
|
|
469
469
|
Given: DM:AccountExtract
|
|
470
470
|
|
|
471
471
|
Direct dependents (components that reference this DM):
|
|
@@ -20,7 +20,7 @@ Salesforce OmniStudio exists under three distinct namespaces depending on the or
|
|
|
20
20
|
|
|
21
21
|
Run SOQL queries against each namespace's primary object. The first query that succeeds determines the namespace.
|
|
22
22
|
|
|
23
|
-
```
|
|
23
|
+
```text
|
|
24
24
|
1. Probe Core:
|
|
25
25
|
SELECT COUNT() FROM OmniProcess
|
|
26
26
|
→ Success? Namespace = Core. Stop.
|
|
@@ -15,7 +15,7 @@ Salesforce Industries CME EPC product-modeling skill for Product2-based catalog
|
|
|
15
15
|
|
|
16
16
|
### 1. Invoke the skill
|
|
17
17
|
|
|
18
|
-
```
|
|
18
|
+
```yaml
|
|
19
19
|
Skill: omnistudio-epc-catalog-generate
|
|
20
20
|
Request: "Create a Product2 offer bundle named Business Internet Plus with ProductCode BIZ-INT-PLUS-01, 3 child products, and generate all companion DataPack JSON files from the assets templates."
|
|
21
21
|
```
|
|
@@ -36,7 +36,7 @@ Expert OmniStudio engineer specializing in FlexCard UI components for Salesforce
|
|
|
36
36
|
|
|
37
37
|
FlexCards sit at the presentation layer of the OmniStudio stack. Ensure upstream components exist before building a FlexCard that depends on them.
|
|
38
38
|
|
|
39
|
-
```
|
|
39
|
+
```text
|
|
40
40
|
omnistudio-dependencies-analyze → omnistudio-datamapper-generate → omnistudio-integration-procedure-generate → omnistudio-omniscript-generate → omnistudio-flexcard-generate (you are here)
|
|
41
41
|
```
|
|
42
42
|
|
|
@@ -88,7 +88,7 @@ Read `references/best-practices.md` for layout patterns, SLDS compliance, access
|
|
|
88
88
|
|
|
89
89
|
Each FlexCard data source connects to an Integration Procedure (or other source type) and maps response fields to display elements.
|
|
90
90
|
|
|
91
|
-
```
|
|
91
|
+
```text
|
|
92
92
|
FlexCard → Data Source (type: IntegrationProcedure)
|
|
93
93
|
→ IP Name + Input Mapping
|
|
94
94
|
→ Response Field Mapping → Card Elements
|
|
@@ -165,7 +165,7 @@ Avoid these patterns when generating FlexCard definitions:
|
|
|
165
165
|
|
|
166
166
|
## Scoring Rubric (130 Points)
|
|
167
167
|
|
|
168
|
-
All FlexCards are validated against 7 categories. **Thresholds**:
|
|
168
|
+
All FlexCards are validated against 7 categories. **Thresholds**: [PASS] 90+ (Deploy) | [VERIFY] 67-89 (Review) | [BLOCK] <67 (Block - fix required)
|
|
169
169
|
|
|
170
170
|
| Category | Points | Criteria |
|
|
171
171
|
|----------|--------|----------|
|
|
@@ -211,7 +211,7 @@ Read `assets/omni-ui-card.json` for the complete OmniUiCard record template incl
|
|
|
211
211
|
|
|
212
212
|
Map IP response fields to card display elements using merge field syntax:
|
|
213
213
|
|
|
214
|
-
```
|
|
214
|
+
```text
|
|
215
215
|
IP Response: FlexCard Merge Field:
|
|
216
216
|
───────────── ─────────────────────
|
|
217
217
|
{ "Name": "Acme Corp" } → {Name}
|
|
@@ -322,3 +322,10 @@ Deliverables produced by this skill:
|
|
|
322
322
|
| `references/data-binding-guide.md` | Phase 2-3 — Data source types, merge field syntax, input parameter mapping, and multi-source coordination |
|
|
323
323
|
| `references/scoring-rubric.md` | Phase 3 — Full per-criterion breakdown of all 7 scoring categories (130 points) |
|
|
324
324
|
| `scripts/flexcard-commands.sh` | Phase 4 — All CLI commands for querying, retrieving, and deploying FlexCard metadata |
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## Pre-Delivery Checklist
|
|
329
|
+
|
|
330
|
+
- [ ] Upstream Integration Procedures exist and are active before FlexCard depends on them
|
|
331
|
+
- [ ] Orchestration order followed (FlexCard is last in the chain)
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
Use for displaying summary information about a single record. Group related fields into logical sections.
|
|
10
10
|
|
|
11
|
-
```
|
|
11
|
+
```text
|
|
12
12
|
┌──────────────────────────────────┐
|
|
13
13
|
│ Header: Record Name │
|
|
14
14
|
├──────────────────────────────────┤
|
|
@@ -37,7 +37,7 @@ Use for displaying summary information about a single record. Group related fiel
|
|
|
37
37
|
|
|
38
38
|
Use for displaying a collection of related records. Each card in the list renders from one item in the data source array.
|
|
39
39
|
|
|
40
|
-
```
|
|
40
|
+
```text
|
|
41
41
|
┌──────────────────────────────────┐
|
|
42
42
|
│ Card 1: Record A │
|
|
43
43
|
│ Field 1 | Field 2 | [Action] │
|
|
@@ -62,7 +62,7 @@ Use for displaying a collection of related records. Each card in the list render
|
|
|
62
62
|
|
|
63
63
|
Use when a single record has multiple contexts worth displaying. Each tab represents a different state with its own data source or field set.
|
|
64
64
|
|
|
65
|
-
```
|
|
65
|
+
```text
|
|
66
66
|
┌──────────────────────────────────┐
|
|
67
67
|
│ [Tab 1: Overview] [Tab 2: History] [Tab 3: Related] │
|
|
68
68
|
├──────────────────────────────────┤
|
|
@@ -83,7 +83,7 @@ Use when a single record has multiple contexts worth displaying. Each tab repres
|
|
|
83
83
|
|
|
84
84
|
Use for progressive disclosure: show a summary, then expand for details on demand.
|
|
85
85
|
|
|
86
|
-
```
|
|
86
|
+
```text
|
|
87
87
|
┌──────────────────────────────────┐
|
|
88
88
|
│ Summary: Key Fields [▼ More] │
|
|
89
89
|
└──────────────────────────────────┘
|
|
@@ -173,7 +173,7 @@ Use for progressive disclosure: show a summary, then expand for details on deman
|
|
|
173
173
|
|
|
174
174
|
### Color Usage
|
|
175
175
|
|
|
176
|
-
```
|
|
176
|
+
```yaml
|
|
177
177
|
Correct: Use SLDS token → var(--slds-g-color-brand-base-50)
|
|
178
178
|
Wrong: Hardcoded hex → #0176d3
|
|
179
179
|
Wrong: Hardcoded rgb → rgb(1, 118, 211)
|
|
@@ -272,7 +272,7 @@ Wrong: Hardcoded rgb → rgb(1, 118, 211)
|
|
|
272
272
|
|
|
273
273
|
### Data Flow Pattern
|
|
274
274
|
|
|
275
|
-
```
|
|
275
|
+
```text
|
|
276
276
|
Parent FlexCard
|
|
277
277
|
├── Data Source: IP_GetAccountSummary
|
|
278
278
|
│ └── Passes {AccountId} to child
|
|
@@ -34,7 +34,7 @@ The most common FlexCard data source is an Integration Procedure. The data sourc
|
|
|
34
34
|
|
|
35
35
|
The `ipMethod` value combines the IP's Type and SubType fields:
|
|
36
36
|
|
|
37
|
-
```
|
|
37
|
+
```text
|
|
38
38
|
IP Type: "Account"
|
|
39
39
|
IP SubType: "GetSummary"
|
|
40
40
|
ipMethod: "Account_GetSummary"
|
|
@@ -72,7 +72,7 @@ Input parameters pass context from the FlexCard's hosting environment into the I
|
|
|
72
72
|
|
|
73
73
|
Map IP response fields to FlexCard display elements using curly-brace merge syntax:
|
|
74
74
|
|
|
75
|
-
```
|
|
75
|
+
```text
|
|
76
76
|
IP Response JSON: FlexCard Merge Field:
|
|
77
77
|
───────────────── ─────────────────────
|
|
78
78
|
{ "Name": "Acme Corp" } → {Name}
|
|
@@ -84,7 +84,7 @@ IP Response JSON: FlexCard Merge Field:
|
|
|
84
84
|
|
|
85
85
|
Access nested objects in the IP response using dot notation:
|
|
86
86
|
|
|
87
|
-
```
|
|
87
|
+
```text
|
|
88
88
|
IP Response JSON: FlexCard Merge Field:
|
|
89
89
|
───────────────── ─────────────────────
|
|
90
90
|
{ → {Account.Name}
|
|
@@ -113,7 +113,7 @@ For card list layouts, set `resultListPath` to the array node. Each card in the
|
|
|
113
113
|
}
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
-
```
|
|
116
|
+
```text
|
|
117
117
|
IP Response: Each Card Renders:
|
|
118
118
|
──────────── ──────────────────
|
|
119
119
|
{ Card 1: {Name} → "Alice"
|
|
@@ -145,7 +145,7 @@ Apply formatting to merge fields for display:
|
|
|
145
145
|
|
|
146
146
|
Show or hide individual fields based on a data value:
|
|
147
147
|
|
|
148
|
-
```
|
|
148
|
+
```yaml
|
|
149
149
|
Condition: {Status} == "Active"
|
|
150
150
|
Action: Show the "Renewal Date" field
|
|
151
151
|
|
|
@@ -183,7 +183,7 @@ FlexCards support multiple states. Each state can have visibility conditions:
|
|
|
183
183
|
|
|
184
184
|
Apply different styles based on data values:
|
|
185
185
|
|
|
186
|
-
```
|
|
186
|
+
```text
|
|
187
187
|
If {Status} == "Active" → Green badge (slds-badge slds-theme_success)
|
|
188
188
|
If {Status} == "Expired" → Red badge (slds-badge slds-theme_error)
|
|
189
189
|
If {Status} == "Pending" → Yellow badge (slds-badge slds-theme_warning)
|
|
@@ -203,7 +203,7 @@ Use SLDS theme classes rather than inline color styles to maintain dark mode com
|
|
|
203
203
|
|
|
204
204
|
### Configuration Pattern
|
|
205
205
|
|
|
206
|
-
```
|
|
206
|
+
```yaml
|
|
207
207
|
FlexCard: AccountOverview
|
|
208
208
|
├── Data Source 1: "Account_GetSummary"
|
|
209
209
|
│ Input: { "recordId": "{recordId}" }
|
|
@@ -222,7 +222,7 @@ FlexCard: AccountOverview
|
|
|
222
222
|
|
|
223
223
|
When a card has multiple data sources, reference fields using the data source name prefix:
|
|
224
224
|
|
|
225
|
-
```
|
|
225
|
+
```text
|
|
226
226
|
Single data source: {Name}
|
|
227
227
|
Multiple data sources: {ds1.Name} or {accountSummary.Name}
|
|
228
228
|
```
|
|
@@ -261,7 +261,7 @@ Multiple data sources: {ds1.Name} or {accountSummary.Name}
|
|
|
261
261
|
|
|
262
262
|
Configure an explicit error state rather than letting the card fail silently:
|
|
263
263
|
|
|
264
|
-
```
|
|
264
|
+
```text
|
|
265
265
|
┌──────────────────────────────────┐
|
|
266
266
|
│ ⚠ Unable to load account data │
|
|
267
267
|
│ │
|
|
@@ -27,7 +27,7 @@ Expert OmniStudio Integration Procedure (IP) builder with deep knowledge of serv
|
|
|
27
27
|
|
|
28
28
|
## Quick Reference
|
|
29
29
|
|
|
30
|
-
**Scoring**: 110 points across 6 categories. **Thresholds**:
|
|
30
|
+
**Scoring**: 110 points across 6 categories. **Thresholds**: [PASS] 90+ (Deploy) | [REVIEW] 67-89 (Review) | [BLOCK] <67 (Block - fix required)
|
|
31
31
|
|
|
32
32
|
---
|
|
33
33
|
|
|
@@ -272,3 +272,11 @@ Deliverables produced by this skill:
|
|
|
272
272
|
| `references/best-practices.md` | Phase 2-5 — Design patterns: element composition, error handling, caching, parallel execution, and security guidance |
|
|
273
273
|
| `references/element-types.md` | Phase 2 — Element selection: read before configuring PropertySetConfig for any element type |
|
|
274
274
|
| `scripts/cli-commands.sh` | Phase 1 & 4 — CLI queries and deploy/retrieve commands; adapt by replacing `<Name>` and `<org>` placeholders |
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Pre-Delivery Checklist
|
|
279
|
+
|
|
280
|
+
- [ ] Data Mappers exist and are deployed before IP references them
|
|
281
|
+
- [ ] `IsIntegrationProcedure = true` set when creating via Data API
|
|
282
|
+
- [ ] IP activated before any OmniScript/FlexCard invokes it
|
|
@@ -465,12 +465,12 @@ Elements inside a Loop Block execute once per iteration. The current item is acc
|
|
|
465
465
|
### Example Pattern: Collect and Bulk Process
|
|
466
466
|
|
|
467
467
|
Instead of:
|
|
468
|
-
```
|
|
468
|
+
```text
|
|
469
469
|
Loop -> DataRaptor Load (per item) // BAD: N DML operations
|
|
470
470
|
```
|
|
471
471
|
|
|
472
472
|
Use:
|
|
473
|
-
```
|
|
473
|
+
```text
|
|
474
474
|
Loop -> Set Values (collect items into array)
|
|
475
475
|
DataRaptor Load (entire array) // GOOD: 1 DML operation
|
|
476
476
|
```
|
|
@@ -501,7 +501,7 @@ Set Values elements define key-value mappings:
|
|
|
501
501
|
|
|
502
502
|
### Example: Response Assembly
|
|
503
503
|
|
|
504
|
-
```
|
|
504
|
+
```text
|
|
505
505
|
Set Values: "BuildResponse"
|
|
506
506
|
out_success = true
|
|
507
507
|
out_accountId = %GetAccount:Id%
|
|
@@ -11,7 +11,7 @@ Expert OmniStudio OmniScript builder for declarative, step-based guided digital
|
|
|
11
11
|
|
|
12
12
|
## Quick Reference
|
|
13
13
|
|
|
14
|
-
**Scoring**: 120 points across 6 categories. **Thresholds**:
|
|
14
|
+
**Scoring**: 120 points across 6 categories. **Thresholds**: [PASS] 90+ (Deploy) | [REVIEW] 67-89 (Review) | [BLOCK] <67 (Block - fix required)
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -168,7 +168,7 @@ Run `scripts/check-duplicate-omniscript.sh <Type> <SubType> <Language> <org>` to
|
|
|
168
168
|
- **WARN**: Steps with no elements, input elements without validation, missing error handling on actions, unused data paths, deeply nested elements (>4 levels)
|
|
169
169
|
|
|
170
170
|
**Validation Report Format** (6-Category Scoring 0-120):
|
|
171
|
-
```
|
|
171
|
+
```yaml
|
|
172
172
|
Score: 102/120 ---- Very Good
|
|
173
173
|
-- Design & Structure: 22/25 (88%)
|
|
174
174
|
-- Data Integration: 18/20 (90%)
|
|
@@ -41,7 +41,7 @@ The default and most common pattern. Each Step represents a phase of the process
|
|
|
41
41
|
- The final Step should be a review/confirmation screen
|
|
42
42
|
|
|
43
43
|
**Example structure:**
|
|
44
|
-
```
|
|
44
|
+
```text
|
|
45
45
|
Step 1: "Account Selection" -> Type Ahead (account search) + DataRaptor Extract (prefill)
|
|
46
46
|
Step 2: "Service Details" -> Select, Text, Date inputs for the request
|
|
47
47
|
Step 3: "Attachments" -> File upload + Text Area for notes
|
|
@@ -8,6 +8,14 @@ SUBTYPE="${2:?}"
|
|
|
8
8
|
LANGUAGE="${3:?}"
|
|
9
9
|
ORG="${4:?}"
|
|
10
10
|
|
|
11
|
+
# Validate inputs to prevent SOQL injection
|
|
12
|
+
for var in "$TYPE" "$SUBTYPE" "$LANGUAGE"; do
|
|
13
|
+
if [[ ! "$var" =~ ^[a-zA-Z0-9_\ ]+$ ]]; then
|
|
14
|
+
echo "ERROR: Invalid input '$var'. Only alphanumeric, underscores, and spaces allowed." >&2
|
|
15
|
+
exit 1
|
|
16
|
+
fi
|
|
17
|
+
done
|
|
18
|
+
|
|
11
19
|
sf data query \
|
|
12
20
|
-q "SELECT Id,Name,Type,SubType,Language,IsActive,VersionNumber FROM OmniProcess WHERE Type='${TYPE}' AND SubType='${SUBTYPE}' AND Language='${LANGUAGE}' AND OmniProcessType='OmniScript' LIMIT 10" \
|
|
13
21
|
-o "${ORG}"
|
|
@@ -9,6 +9,14 @@ TYPE="${2:?}"
|
|
|
9
9
|
SUBTYPE="${3:?}"
|
|
10
10
|
ORG="${4:?}"
|
|
11
11
|
|
|
12
|
+
# Validate inputs to prevent SOQL injection
|
|
13
|
+
for var in "$TYPE" "$SUBTYPE"; do
|
|
14
|
+
if [[ ! "$var" =~ ^[a-zA-Z0-9_\ ]+$ ]]; then
|
|
15
|
+
echo "ERROR: Invalid input '$var'. Only alphanumeric, underscores, and spaces allowed." >&2
|
|
16
|
+
exit 1
|
|
17
|
+
fi
|
|
18
|
+
done
|
|
19
|
+
|
|
12
20
|
echo "Step 1: Verify prerequisites — check org auth"
|
|
13
21
|
sf org display -o "${ORG}" || { echo "ERROR: Org '${ORG}' is not authenticated. Run: sf org login web --alias ${ORG}"; exit 1; }
|
|
14
22
|
|
|
@@ -16,7 +16,7 @@ Salesforce debugging and troubleshooting skill with log analysis, governor limit
|
|
|
16
16
|
|
|
17
17
|
### 1. Invoke the skill
|
|
18
18
|
|
|
19
|
-
```
|
|
19
|
+
```text
|
|
20
20
|
Skill: platform-apex-logs-debug
|
|
21
21
|
Request: "Analyze debug logs for AccountTrigger performance issues in org dev"
|
|
22
22
|
```
|
|
@@ -58,7 +58,7 @@ sf apex tail log --target-org [alias] --color
|
|
|
58
58
|
|
|
59
59
|
| Related Skill | When to Use |
|
|
60
60
|
|---------------|-------------|
|
|
61
|
-
|
|
|
61
|
+
| platform-apex-generate | Fix identified Apex issues |
|
|
62
62
|
| platform-soql-query | Optimize slow SOQL queries |
|
|
63
63
|
| platform-apex-test-run | Re-run tests after fixes |
|
|
64
64
|
|
|
@@ -297,7 +297,7 @@ echo "Deleted $COUNT logs"
|
|
|
297
297
|
Logs over 2MB are truncated. Solutions:
|
|
298
298
|
|
|
299
299
|
1. **Reduce debug level:**
|
|
300
|
-
```
|
|
300
|
+
```text
|
|
301
301
|
ApexCode: DEBUG → INFO
|
|
302
302
|
ApexProfiling: FINEST → FINE
|
|
303
303
|
```
|
|
@@ -342,7 +342,7 @@ sf apex list log --target-org my-org --json | \
|
|
|
342
342
|
```
|
|
343
343
|
|
|
344
344
|
The hook will output analysis like:
|
|
345
|
-
```
|
|
345
|
+
```text
|
|
346
346
|
============================================================
|
|
347
347
|
🔍 DEBUG LOG ANALYSIS
|
|
348
348
|
============================================================
|