@salesforce/afv-skills 1.29.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/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/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-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/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
|
@@ -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
|
============================================================
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
## Log Structure
|
|
5
5
|
|
|
6
6
|
Debug logs follow a consistent format:
|
|
7
|
-
```
|
|
7
|
+
```text
|
|
8
8
|
TIMESTAMP|EVENT_IDENTIFIER|[PARAMS]|DETAILS
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
Example:
|
|
12
|
-
```
|
|
12
|
+
```text
|
|
13
13
|
14:32:54.123 (123456789)|SOQL_EXECUTE_BEGIN|[45]|SELECT Id FROM Account
|
|
14
14
|
```
|
|
15
15
|
|
|
@@ -34,7 +34,7 @@ Example:
|
|
|
34
34
|
| `SOQL_EXECUTE_END` | Query ends | Rows returned |
|
|
35
35
|
|
|
36
36
|
**Analysis Pattern:**
|
|
37
|
-
```
|
|
37
|
+
```text
|
|
38
38
|
|SOQL_EXECUTE_BEGIN|[45]|SELECT Id, Name FROM Account WHERE...
|
|
39
39
|
|SOQL_EXECUTE_END|[3 rows]
|
|
40
40
|
```
|
|
@@ -54,7 +54,7 @@ Example:
|
|
|
54
54
|
| `DML_END` | DML ends | Rows affected |
|
|
55
55
|
|
|
56
56
|
**Analysis Pattern:**
|
|
57
|
-
```
|
|
57
|
+
```text
|
|
58
58
|
|DML_BEGIN|[78]|Op:Insert|Type:Contact|
|
|
59
59
|
|DML_END|[200 rows]
|
|
60
60
|
```
|
|
@@ -74,7 +74,7 @@ Example:
|
|
|
74
74
|
| `CUMULATIVE_LIMIT_USAGE` | End of transaction | Summary of all limits |
|
|
75
75
|
|
|
76
76
|
**Example:**
|
|
77
|
-
```
|
|
77
|
+
```text
|
|
78
78
|
|LIMIT_USAGE|SOQL_QUERIES|25|100
|
|
79
79
|
|LIMIT_USAGE|DML_STATEMENTS|45|150
|
|
80
80
|
|LIMIT_USAGE|CPU_TIME|3500|10000
|
|
@@ -89,7 +89,7 @@ Example:
|
|
|
89
89
|
| `FATAL_ERROR` | Unhandled exception | Full stack trace |
|
|
90
90
|
|
|
91
91
|
**Analysis Pattern:**
|
|
92
|
-
```
|
|
92
|
+
```text
|
|
93
93
|
|EXCEPTION_THROWN|[67]|System.NullPointerException|Attempt to de-reference a null object
|
|
94
94
|
|FATAL_ERROR|System.NullPointerException: Attempt to de-reference a null object
|
|
95
95
|
Class.ContactService.processContacts: line 67, column 1
|
|
@@ -116,7 +116,7 @@ Example:
|
|
|
116
116
|
| `ITERATION_END` | Iteration ends | |
|
|
117
117
|
|
|
118
118
|
**Detection Pattern for SOQL in Loop:**
|
|
119
|
-
```
|
|
119
|
+
```text
|
|
120
120
|
|LOOP_BEGIN|
|
|
121
121
|
|ITERATION_BEGIN|
|
|
122
122
|
|SOQL_EXECUTE_BEGIN|[45]|SELECT...
|
|
@@ -137,7 +137,7 @@ Example:
|
|
|
137
137
|
| `CALLOUT_EXTERNAL_EXIT` | HTTP callout ends | Status code, Duration |
|
|
138
138
|
|
|
139
139
|
**Example:**
|
|
140
|
-
```
|
|
140
|
+
```text
|
|
141
141
|
|CALLOUT_EXTERNAL_ENTRY|[89]|https://api.example.com/endpoint
|
|
142
142
|
|CALLOUT_EXTERNAL_EXIT|[200]|[1500ms]
|
|
143
143
|
```
|
|
@@ -182,7 +182,7 @@ Example:
|
|
|
182
182
|
### Recommended Debug Level Settings
|
|
183
183
|
|
|
184
184
|
**For Performance Issues:**
|
|
185
|
-
```
|
|
185
|
+
```text
|
|
186
186
|
Apex Code: FINE
|
|
187
187
|
Apex Profiling: FINEST
|
|
188
188
|
Database: FINE
|
|
@@ -190,7 +190,7 @@ System: DEBUG
|
|
|
190
190
|
```
|
|
191
191
|
|
|
192
192
|
**For Exception Debugging:**
|
|
193
|
-
```
|
|
193
|
+
```text
|
|
194
194
|
Apex Code: DEBUG
|
|
195
195
|
Apex Profiling: FINE
|
|
196
196
|
Database: INFO
|
|
@@ -198,7 +198,7 @@ System: DEBUG
|
|
|
198
198
|
```
|
|
199
199
|
|
|
200
200
|
**For Callout Issues:**
|
|
201
|
-
```
|
|
201
|
+
```text
|
|
202
202
|
Apex Code: DEBUG
|
|
203
203
|
Callout: FINEST
|
|
204
204
|
System: DEBUG
|
|
@@ -243,7 +243,7 @@ System: DEBUG
|
|
|
243
243
|
|
|
244
244
|
### Pattern 1: SOQL in Loop
|
|
245
245
|
|
|
246
|
-
```
|
|
246
|
+
```text
|
|
247
247
|
|LOOP_BEGIN|
|
|
248
248
|
|ITERATION_BEGIN|
|
|
249
249
|
|SOQL_EXECUTE_BEGIN|[45]|SELECT Id FROM Contact WHERE AccountId = '001xxx'
|
|
@@ -260,7 +260,7 @@ System: DEBUG
|
|
|
260
260
|
|
|
261
261
|
### Pattern 2: DML in Loop
|
|
262
262
|
|
|
263
|
-
```
|
|
263
|
+
```text
|
|
264
264
|
|LOOP_BEGIN|
|
|
265
265
|
|ITERATION_BEGIN|
|
|
266
266
|
|DML_BEGIN|[78]|Op:Insert|Type:Contact|
|
|
@@ -273,21 +273,21 @@ System: DEBUG
|
|
|
273
273
|
|
|
274
274
|
### Pattern 3: Non-Selective Query
|
|
275
275
|
|
|
276
|
-
```
|
|
276
|
+
```text
|
|
277
277
|
|SOQL_EXECUTE_BEGIN|[23]|SELECT Id FROM Lead WHERE Status = 'Open'
|
|
278
278
|
|SOQL_EXECUTE_END|[250000 rows] ← Large result set!
|
|
279
279
|
```
|
|
280
280
|
|
|
281
281
|
### Pattern 4: CPU Limit Approaching
|
|
282
282
|
|
|
283
|
-
```
|
|
283
|
+
```text
|
|
284
284
|
|CUMULATIVE_LIMIT_USAGE|
|
|
285
285
|
|CPU_TIME|9500|10000 ← 95% used!
|
|
286
286
|
```
|
|
287
287
|
|
|
288
288
|
### Pattern 5: Null Pointer Exception
|
|
289
289
|
|
|
290
|
-
```
|
|
290
|
+
```text
|
|
291
291
|
|SOQL_EXECUTE_BEGIN|[45]|SELECT Id FROM Account WHERE Id = '001xxx'
|
|
292
292
|
|SOQL_EXECUTE_END|[0 rows] ← No results!
|
|
293
293
|
|METHOD_EXIT|getAccount|
|
|
@@ -11,7 +11,7 @@ The **Apex Log Analyzer** is a free VS Code extension that provides visual analy
|
|
|
11
11
|
|
|
12
12
|
### Installation
|
|
13
13
|
|
|
14
|
-
```
|
|
14
|
+
```text
|
|
15
15
|
1. Open VS Code
|
|
16
16
|
2. Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
|
|
17
17
|
3. Search "Apex Log Analyzer"
|
|
@@ -53,7 +53,7 @@ code --install-extension FinancialForce.lana
|
|
|
53
53
|
|
|
54
54
|
### Reading Flame Charts
|
|
55
55
|
|
|
56
|
-
```
|
|
56
|
+
```text
|
|
57
57
|
┌─────────────────────────────────────────────────────────────┐
|
|
58
58
|
│ FLAME CHART INTERPRETATION │
|
|
59
59
|
├─────────────────────────────────────────────────────────────┤
|
|
@@ -16,7 +16,7 @@ When the agentic loop is enabled, platform-apex-test-run will:
|
|
|
16
16
|
|
|
17
17
|
## Example Agentic Flow
|
|
18
18
|
|
|
19
|
-
```
|
|
19
|
+
```yaml
|
|
20
20
|
User: "Run tests for AccountService with auto-fix enabled"
|
|
21
21
|
|
|
22
22
|
Claude:
|
|
@@ -44,6 +44,6 @@ Claude:
|
|
|
44
44
|
|
|
45
45
|
## Auto-Fix Command
|
|
46
46
|
|
|
47
|
-
```
|
|
47
|
+
```text
|
|
48
48
|
Skill(skill="sf-apex", args="Fix failing test [TestClassName].[methodName] - Error: [error message]")
|
|
49
49
|
```
|
|
@@ -7,7 +7,7 @@ This guide covers best practices for writing effective, maintainable Apex tests
|
|
|
7
7
|
|
|
8
8
|
## The Testing Pyramid
|
|
9
9
|
|
|
10
|
-
```
|
|
10
|
+
```text
|
|
11
11
|
╱╲
|
|
12
12
|
╱ ╲
|
|
13
13
|
╱ E2E╲ Few end-to-end tests
|
|
@@ -423,7 +423,7 @@ Fast tests enable continuous integration. Slow tests become barriers to frequent
|
|
|
423
423
|
|
|
424
424
|
### Speed Strategy
|
|
425
425
|
|
|
426
|
-
```
|
|
426
|
+
```text
|
|
427
427
|
┌─────────────────────────────────────────────────────────────┐
|
|
428
428
|
│ INTEGRATION TESTS (Few) │
|
|
429
429
|
│ - Real DML, real triggers │
|
|
@@ -499,7 +499,7 @@ sf apex get test --test-run-id [id] --code-coverage --result-format json | jq '.
|
|
|
499
499
|
|
|
500
500
|
### Fast Test Checklist
|
|
501
501
|
|
|
502
|
-
```
|
|
502
|
+
```text
|
|
503
503
|
□ Is there a pure logic portion that can be unit tested?
|
|
504
504
|
□ Can database operations be mocked for edge cases?
|
|
505
505
|
□ Is @TestSetup reused across multiple test methods?
|
|
@@ -18,7 +18,7 @@ Add the skill to your Cursor project by placing the `platform-data-manage` direc
|
|
|
18
18
|
## Usage
|
|
19
19
|
|
|
20
20
|
Invoke the skill:
|
|
21
|
-
```
|
|
21
|
+
```text
|
|
22
22
|
Skill(skill="platform-data-manage")
|
|
23
23
|
Request: "Create 251 test Account records with varying Industries for trigger testing in org dev"
|
|
24
24
|
```
|
|
@@ -56,21 +56,21 @@ Request: "Create 251 test Account records with varying Industries for trigger te
|
|
|
56
56
|
## Cross-Skill Integration
|
|
57
57
|
|
|
58
58
|
### With platform-metadata-deploy
|
|
59
|
-
```
|
|
59
|
+
```text
|
|
60
60
|
Skill(skill="platform-metadata-deploy")
|
|
61
61
|
Request: "Describe Invoice__c in org dev - show all fields"
|
|
62
62
|
```
|
|
63
63
|
Then use platform-data-manage with accurate field names and permitted values.
|
|
64
64
|
|
|
65
65
|
### From platform-apex-generate / automation-flow-generate
|
|
66
|
-
```
|
|
66
|
+
```text
|
|
67
67
|
Skill(skill="platform-data-manage")
|
|
68
68
|
Request: "Create 251 test Accounts to trigger AccountTrigger bulk testing"
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
## Directory Structure
|
|
72
72
|
|
|
73
|
-
```
|
|
73
|
+
```text
|
|
74
74
|
platform-data-manage/
|
|
75
75
|
├── SKILL.md # Main skill prompt
|
|
76
76
|
├── assets/
|
|
@@ -173,7 +173,7 @@ System.debug('Heap: ' + Limits.getHeapSize() + '/' + Limits.getLimitHeapSize());
|
|
|
173
173
|
|
|
174
174
|
## Validation Score
|
|
175
175
|
|
|
176
|
-
```
|
|
176
|
+
```text
|
|
177
177
|
Score: 128/130 ⭐⭐⭐⭐⭐ Excellent
|
|
178
178
|
├─ Query Efficiency: 25/25 (bulk queries)
|
|
179
179
|
├─ Bulk Safety: 25/25 (251 records, limits monitored)
|
|
@@ -12,7 +12,7 @@ Create a Deal Desk workflow test environment with:
|
|
|
12
12
|
|
|
13
13
|
## Phase 1: Discovery (sf-metadata)
|
|
14
14
|
|
|
15
|
-
```
|
|
15
|
+
```text
|
|
16
16
|
Skill(skill="sf-metadata")
|
|
17
17
|
Request: "Describe object Account in org dev - show required fields and picklist values"
|
|
18
18
|
```
|
|
@@ -171,7 +171,7 @@ sf apex run --file create-hierarchy.apex --target-org dev
|
|
|
171
171
|
|
|
172
172
|
## Validation Score
|
|
173
173
|
|
|
174
|
-
```
|
|
174
|
+
```text
|
|
175
175
|
Score: 125/130 ⭐⭐⭐⭐⭐ Excellent
|
|
176
176
|
├─ Query Efficiency: 25/25 (indexed fields, no N+1)
|
|
177
177
|
├─ Bulk Safety: 23/25 (single records OK for demo)
|
|
@@ -7,7 +7,7 @@ This document details how platform-data-manage fits into the multi-skill workflo
|
|
|
7
7
|
|
|
8
8
|
## Standard Orchestration Order
|
|
9
9
|
|
|
10
|
-
```
|
|
10
|
+
```text
|
|
11
11
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
12
12
|
│ STANDARD MULTI-SKILL ORCHESTRATION ORDER │
|
|
13
13
|
├─────────────────────────────────────────────────────────────────────────────┤
|
|
@@ -35,7 +35,7 @@ This document details how platform-data-manage fits into the multi-skill workflo
|
|
|
35
35
|
- Run test factories
|
|
36
36
|
- Generate bulk test data
|
|
37
37
|
|
|
38
|
-
```
|
|
38
|
+
```text
|
|
39
39
|
ERROR: "SObject type 'Quote__c' is not supported"
|
|
40
40
|
CAUSE: Quote__c object was never deployed to the org
|
|
41
41
|
FIX: Run platform-metadata-deploy BEFORE platform-data-manage
|
|
@@ -58,7 +58,7 @@ FIX: Run platform-metadata-deploy BEFORE platform-data-manage
|
|
|
58
58
|
|
|
59
59
|
When testing triggers or flows, always create test data AFTER deployment:
|
|
60
60
|
|
|
61
|
-
```
|
|
61
|
+
```text
|
|
62
62
|
1. sf-apex → Create trigger handler class
|
|
63
63
|
2. sf-flow → Create record-triggered flow
|
|
64
64
|
3. platform-metadata-deploy → Deploy trigger + flow + objects
|
|
@@ -74,7 +74,7 @@ When testing triggers or flows, always create test data AFTER deployment:
|
|
|
74
74
|
|
|
75
75
|
Always test with **251 records** to cross the 200-record batch boundary:
|
|
76
76
|
|
|
77
|
-
```
|
|
77
|
+
```text
|
|
78
78
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
79
79
|
│ BATCH BOUNDARY TESTING │
|
|
80
80
|
├─────────────────────────────────────────────────────────────────────────────┤
|
|
@@ -129,7 +129,7 @@ sf data query --query "SELECT Id FROM FieldPermissions WHERE SobjectType='MyObje
|
|
|
129
129
|
|
|
130
130
|
Test Data Factory classes work with platform-data-manage:
|
|
131
131
|
|
|
132
|
-
```
|
|
132
|
+
```text
|
|
133
133
|
sf-apex: Creates TestDataFactory_Account.cls
|
|
134
134
|
↓
|
|
135
135
|
platform-metadata-deploy: Deploys factory class
|
|
@@ -151,7 +151,7 @@ System.debug('Created ' + accounts.size() + ' accounts');
|
|
|
151
151
|
|
|
152
152
|
After testing, clean up in reverse order:
|
|
153
153
|
|
|
154
|
-
```
|
|
154
|
+
```text
|
|
155
155
|
1. platform-data-manage → Delete test records
|
|
156
156
|
2. platform-metadata-deploy → Deactivate flows (if needed)
|
|
157
157
|
3. platform-metadata-deploy → Remove test metadata (if needed)
|