@salesforce/afv-skills 1.29.0 → 1.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/README.md +2 -0
  2. package/package.json +1 -1
  3. package/skills/agentforce-architecture-analyze/README.md +2 -8
  4. package/skills/agentforce-architecture-analyze/SKILL.md +2 -2
  5. package/skills/agentforce-architecture-analyze/references/contract.json +4 -4
  6. package/skills/agentforce-architecture-analyze/references/soql_fields.md +1 -1
  7. package/skills/data360-activate/README.md +0 -1
  8. package/skills/data360-activate/SKILL.md +0 -2
  9. package/skills/data360-code-extension-generate/SKILL.md +15 -2
  10. package/skills/data360-connect/README.md +0 -2
  11. package/skills/data360-connect/SKILL.md +0 -2
  12. package/skills/data360-harmonize/SKILL.md +0 -1
  13. package/skills/data360-orchestrate/README.md +0 -7
  14. package/skills/data360-orchestrate/SKILL.md +0 -2
  15. package/skills/data360-prepare/README.md +0 -1
  16. package/skills/data360-prepare/SKILL.md +0 -1
  17. package/skills/data360-query/README.md +0 -1
  18. package/skills/data360-query/SKILL.md +0 -1
  19. package/skills/data360-segment/README.md +0 -1
  20. package/skills/data360-segment/SKILL.md +0 -2
  21. package/skills/dx-pkg-post-install-configure/SKILL.md +184 -0
  22. package/skills/experience-cms-brand-apply/SKILL.md +47 -16
  23. package/skills/experience-lwc-generate/README.md +3 -2
  24. package/skills/experience-lwc-generate/references/async-notification-patterns.md +1 -1
  25. package/skills/experience-lwc-generate/references/component-patterns.md +3 -3
  26. package/skills/experience-lwc-generate/references/flow-integration-guide.md +1 -1
  27. package/skills/experience-lwc-generate/references/lwc-best-practices.md +4 -4
  28. package/skills/experience-lwc-generate/references/scoring-and-testing.md +1 -1
  29. package/skills/experience-lwc-generate/references/state-management.md +2 -2
  30. package/skills/experience-lwc-generate/references/triangle-pattern.md +3 -3
  31. package/skills/experience-lwc-generate/scripts/post-tool-validate.py +2 -2
  32. package/skills/experience-lwc-generate/scripts/template_validator.py +1 -1
  33. package/skills/experience-ui-bundle-app-coordinate/SKILL.md +198 -34
  34. package/skills/experience-ui-bundle-app-coordinate/scripts/check-hosting-target.sh +26 -0
  35. package/skills/experience-ui-bundle-app-coordinate/scripts/check-sfdx-project.sh +15 -0
  36. package/skills/experience-ui-bundle-metadata-generate/SKILL.md +19 -8
  37. package/skills/experience-ui-bundle-metadata-generate/references/csp-metadata-format.md +2 -2
  38. package/skills/experience-ui-bundle-metadata-generate/scripts/check-api-version.sh +30 -0
  39. package/skills/external-diagram-mermaid-generate/README.md +2 -2
  40. package/skills/external-diagram-mermaid-generate/SKILL.md +1 -3
  41. package/skills/external-diagram-mermaid-generate/assets/agentforce/agent-flow.md +4 -4
  42. package/skills/external-diagram-mermaid-generate/assets/architecture/system-landscape.md +1 -1
  43. package/skills/external-diagram-mermaid-generate/assets/datamodel/b2b-commerce-erd.md +3 -3
  44. package/skills/external-diagram-mermaid-generate/assets/datamodel/campaigns-erd.md +1 -1
  45. package/skills/external-diagram-mermaid-generate/assets/datamodel/consent-erd.md +2 -2
  46. package/skills/external-diagram-mermaid-generate/assets/datamodel/files-erd.md +2 -2
  47. package/skills/external-diagram-mermaid-generate/assets/datamodel/forecasting-erd.md +2 -2
  48. package/skills/external-diagram-mermaid-generate/assets/datamodel/fsl-erd.md +2 -2
  49. package/skills/external-diagram-mermaid-generate/assets/datamodel/party-model-erd.md +1 -1
  50. package/skills/external-diagram-mermaid-generate/assets/datamodel/quote-order-erd.md +3 -3
  51. package/skills/external-diagram-mermaid-generate/assets/datamodel/revenue-cloud-erd.md +2 -2
  52. package/skills/external-diagram-mermaid-generate/assets/datamodel/sales-cloud-erd.md +1 -1
  53. package/skills/external-diagram-mermaid-generate/assets/datamodel/salesforce-erd.md +1 -1
  54. package/skills/external-diagram-mermaid-generate/assets/datamodel/scheduler-erd.md +2 -2
  55. package/skills/external-diagram-mermaid-generate/assets/datamodel/service-cloud-erd.md +3 -3
  56. package/skills/external-diagram-mermaid-generate/assets/datamodel/territory-management-erd.md +1 -1
  57. package/skills/external-diagram-mermaid-generate/assets/integration/api-sequence.md +1 -1
  58. package/skills/external-diagram-mermaid-generate/assets/oauth/authorization-code-pkce.md +1 -1
  59. package/skills/external-diagram-mermaid-generate/assets/oauth/authorization-code.md +1 -1
  60. package/skills/external-diagram-mermaid-generate/assets/oauth/client-credentials.md +1 -1
  61. package/skills/external-diagram-mermaid-generate/assets/oauth/device-authorization.md +2 -2
  62. package/skills/external-diagram-mermaid-generate/assets/oauth/jwt-bearer.md +2 -2
  63. package/skills/external-diagram-mermaid-generate/assets/oauth/refresh-token.md +1 -1
  64. package/skills/external-diagram-mermaid-generate/assets/oauth/user-agent-social-sign-on.md +2 -2
  65. package/skills/external-diagram-mermaid-generate/assets/role-hierarchy/user-hierarchy.md +1 -1
  66. package/skills/external-diagram-mermaid-generate/references/color-palette.md +13 -13
  67. package/skills/external-diagram-mermaid-generate/references/diagram-conventions.md +5 -5
  68. package/skills/external-diagram-mermaid-generate/references/erd-conventions.md +1 -1
  69. package/skills/external-diagram-mermaid-generate/references/mermaid-styling.md +2 -2
  70. package/skills/external-diagram-mermaid-generate/references/preview-guide.md +1 -1
  71. package/skills/external-diagram-mermaid-generate/references/usage-examples.md +9 -9
  72. package/skills/external-diagram-mermaid-generate/scripts/README.md +1 -1
  73. package/skills/integration-connectivity-connected-app-configure/README.md +4 -5
  74. package/skills/integration-connectivity-connected-app-configure/SKILL.md +2 -2
  75. package/skills/integration-connectivity-connected-app-configure/references/example-usage.md +7 -7
  76. package/skills/integration-connectivity-connected-app-configure/references/migration-guide.md +1 -1
  77. package/skills/integration-connectivity-connected-app-configure/references/oauth-flows-reference.md +1 -1
  78. package/skills/integration-connectivity-connected-app-configure/references/testing-validation-guide.md +3 -3
  79. package/skills/integration-connectivity-generate/README.md +1 -1
  80. package/skills/integration-connectivity-generate/SKILL.md +6 -0
  81. package/skills/integration-connectivity-generate/assets/callouts/rest-queueable-callout.cls +1 -1
  82. package/skills/integration-connectivity-generate/assets/external-services/external-service-operations.md +1 -1
  83. package/skills/integration-connectivity-generate/assets/soap/wsdl2apex-guide.md +1 -1
  84. package/skills/integration-connectivity-generate/references/callout-patterns.md +4 -0
  85. package/skills/integration-connectivity-generate/references/cdc-guide.md +2 -2
  86. package/skills/integration-connectivity-generate/references/event-driven-architecture-guide.md +5 -5
  87. package/skills/integration-connectivity-generate/references/event-patterns.md +3 -2
  88. package/skills/integration-connectivity-generate/references/external-services-guide.md +4 -1
  89. package/skills/integration-connectivity-generate/references/messaging-api-v2.md +2 -2
  90. package/skills/integration-connectivity-generate/references/named-credentials-automation.md +1 -1
  91. package/skills/integration-connectivity-generate/references/named-credentials-guide.md +12 -2
  92. package/skills/integration-connectivity-generate/references/platform-events-guide.md +3 -3
  93. package/skills/integration-connectivity-generate/references/rest-callout-patterns.md +1 -1
  94. package/skills/integration-connectivity-generate/references/scoring-rubric.md +1 -1
  95. package/skills/integration-connectivity-generate/references/security-best-practices.md +5 -2
  96. package/skills/integration-connectivity-generate/scripts/configure-named-credential.sh +16 -5
  97. package/skills/integration-connectivity-generate/scripts/set-api-credential.sh +11 -2
  98. package/skills/integration-connectivity-generate/scripts/suggest_credential_setup.py +4 -3
  99. package/skills/integration-connectivity-generate/scripts/validate_integration.py +1 -1
  100. package/skills/omnistudio-callable-apex-generate/README.md +1 -5
  101. package/skills/omnistudio-callable-apex-generate/SKILL.md +14 -4
  102. package/skills/omnistudio-callable-apex-generate/assets/pattern_callable_vanilla.cls +8 -1
  103. package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterface2Conversion/TRANSCRIPT.md +1 -1
  104. package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterfaceConversion/TRANSCRIPT.md +1 -1
  105. package/skills/omnistudio-datamapper-generate/SKILL.md +1 -1
  106. package/skills/omnistudio-datamapper-generate/assets/completion-summary-template.md +2 -2
  107. package/skills/omnistudio-datamapper-generate/references/best-practices.md +9 -9
  108. package/skills/omnistudio-datamapper-generate/references/naming-conventions.md +6 -6
  109. package/skills/omnistudio-datapacks-deploy/README.md +1 -1
  110. package/skills/omnistudio-datapacks-deploy/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +1 -1
  111. package/skills/omnistudio-dependencies-analyze/SKILL.md +12 -5
  112. package/skills/omnistudio-dependencies-analyze/references/dependency-patterns.md +9 -9
  113. package/skills/omnistudio-dependencies-analyze/references/namespace-guide.md +1 -1
  114. package/skills/omnistudio-epc-catalog-generate/README.md +1 -1
  115. package/skills/omnistudio-flexcard-generate/SKILL.md +11 -4
  116. package/skills/omnistudio-flexcard-generate/references/best-practices.md +6 -6
  117. package/skills/omnistudio-flexcard-generate/references/data-binding-guide.md +9 -9
  118. package/skills/omnistudio-integration-procedure-generate/SKILL.md +9 -1
  119. package/skills/omnistudio-integration-procedure-generate/references/element-types.md +3 -3
  120. package/skills/omnistudio-omniscript-generate/SKILL.md +2 -2
  121. package/skills/omnistudio-omniscript-generate/references/best-practices.md +1 -1
  122. package/skills/omnistudio-omniscript-generate/scripts/check-duplicate-omniscript.sh +8 -0
  123. package/skills/omnistudio-omniscript-generate/scripts/deploy-omniscript.sh +8 -0
  124. package/skills/platform-apex-logs-debug/README.md +2 -2
  125. package/skills/platform-apex-logs-debug/references/cli-commands.md +2 -2
  126. package/skills/platform-apex-logs-debug/references/debug-log-reference.md +16 -16
  127. package/skills/platform-apex-logs-debug/references/log-analysis-tools.md +2 -2
  128. package/skills/platform-apex-test-run/README.md +1 -1
  129. package/skills/platform-apex-test-run/references/test-fix-loop.md +2 -2
  130. package/skills/platform-apex-test-run/references/testing-best-practices.md +3 -3
  131. package/skills/platform-custom-field-generate/SKILL.md +12 -11
  132. package/skills/platform-custom-field-generate/references/advanced-picklists.md +17 -17
  133. package/skills/platform-custom-report-type-generate/SKILL.md +259 -0
  134. package/skills/platform-custom-report-type-generate/examples/AccountProjectsWithTasks.reportType-meta.xml +51 -0
  135. package/skills/platform-custom-report-type-generate/examples/AccountsWithIndustry.reportType-meta.xml +27 -0
  136. package/skills/platform-custom-report-type-generate/examples/AccountsWithProjects.reportType-meta.xml +44 -0
  137. package/skills/platform-custom-report-type-generate/references/category-values.md +32 -0
  138. package/skills/platform-custom-report-type-generate/references/errors-and-troubleshooting.md +24 -0
  139. package/skills/platform-data-manage/README.md +4 -4
  140. package/skills/platform-data-manage/references/bulk-testing-example.md +1 -1
  141. package/skills/platform-data-manage/references/crud-workflow-example.md +2 -2
  142. package/skills/platform-data-manage/references/orchestration.md +6 -6
  143. package/skills/platform-dataspace-access-configure/SKILL.md +318 -0
  144. package/skills/platform-docs-get/SKILL.md +4 -0
  145. package/skills/platform-docs-get/scripts/extract_salesforce_doc.py +78 -13
  146. package/skills/platform-encryption-configure/SKILL.md +122 -0
  147. package/skills/platform-encryption-configure/assets/EncryptionKey.settings-meta.xml +17 -0
  148. package/skills/platform-encryption-configure/assets/PlatformEncryption.settings-meta.xml +15 -0
  149. package/skills/platform-encryption-configure/assets/encrypted-field.field-meta.xml +22 -0
  150. package/skills/platform-encryption-configure/examples/cache-only-keys.settings-meta.xml +11 -0
  151. package/skills/platform-encryption-configure/references/encryption-schemes.md +34 -0
  152. package/skills/platform-encryption-configure/references/key-models.md +34 -0
  153. package/skills/platform-encryption-configure/references/tenant-secret-lifecycle.md +23 -0
  154. package/skills/platform-encryption-configure/scripts/validate-encryption-metadata.sh +54 -0
  155. package/skills/platform-flexipage-generate/SKILL.md +281 -346
  156. package/skills/platform-flexipage-generate/references/cli_commands.md +39 -0
  157. package/skills/platform-flexipage-generate/references/flexipage_fieldSection.md +162 -0
  158. package/skills/platform-flexipage-generate/references/flexipage_richText.md +84 -0
  159. package/skills/platform-flexipage-generate/references/identifiers_and_regions.md +167 -0
  160. package/skills/platform-flexipage-generate/references/mcp_action_examples.md +104 -0
  161. package/skills/platform-flexipage-generate/references/record_flexipage_dynamicHighlights.md +119 -0
  162. package/skills/platform-flexipage-generate/references/xml_rules.md +335 -0
  163. package/skills/platform-flexipage-generate/scripts/resolve-component-instructions.sh +42 -0
  164. package/skills/platform-flexipage-generate/scripts/scan-lwc-components.sh +113 -0
  165. package/skills/platform-metadata-api-context-get/SKILL.md +13 -10
  166. package/skills/platform-metadata-deploy/README.md +2 -2
  167. package/skills/platform-metadata-deploy/references/agent-deployment-guide.md +2 -2
  168. package/skills/platform-metadata-deploy/references/deployment-workflows.md +16 -16
  169. package/skills/platform-metadata-deploy/references/orchestration.md +3 -3
  170. package/skills/platform-metadata-deploy/references/trigger-deployment-safety.md +2 -2
  171. package/skills/platform-models-api-configure/SKILL.md +140 -0
  172. package/skills/platform-models-api-configure/scripts/get-orgjwt.sh +48 -0
  173. package/skills/platform-policy-rule-generate/SKILL.md +260 -0
  174. package/skills/platform-policy-rule-generate/references/deploy-errors.md +54 -0
  175. package/skills/platform-policy-rule-generate/references/fixtures-index.md +29 -0
  176. package/skills/platform-policy-rule-generate/references/policy-schema-full.md +250 -0
  177. package/skills/platform-policy-rule-generate/references/templates-access.md +132 -0
  178. package/skills/platform-policy-rule-generate/references/templates-advanced.md +58 -0
  179. package/skills/platform-policy-rule-generate/references/templates-record.md +75 -0
  180. package/skills/platform-policy-rule-generate/references/templates-transform.md +70 -0
  181. package/skills/platform-policy-rule-generate/references/templates.md +10 -0
  182. package/skills/platform-policy-rule-generate/references/ui-compatibility.md +142 -0
  183. package/skills/platform-soql-query/README.md +1 -1
  184. package/skills/platform-soql-query/SKILL.md +1 -1
  185. package/skills/platform-soql-query/references/anti-patterns.md +1 -1
  186. package/skills/platform-soql-query/references/field-coverage-rules.md +1 -1
  187. package/skills/platform-soql-query/references/query-optimization.md +1 -1
  188. package/skills/platform-soql-query/scripts/post-tool-validate.py +3 -3
  189. package/skills/data360-activate/CREDITS.md +0 -5
  190. package/skills/data360-connect/CREDITS.md +0 -5
  191. package/skills/data360-harmonize/CREDITS.md +0 -3
  192. package/skills/data360-orchestrate/CREDITS.md +0 -15
  193. package/skills/data360-orchestrate/UPSTREAM.md +0 -45
  194. package/skills/data360-prepare/CREDITS.md +0 -7
  195. package/skills/data360-query/CREDITS.md +0 -7
  196. package/skills/data360-segment/CREDITS.md +0 -3
  197. package/skills/experience-lwc-generate/CREDITS.md +0 -5
  198. package/skills/external-diagram-mermaid-generate/CREDITS.md +0 -46
  199. package/skills/external-diagram-visual-generate/CREDITS.md +0 -80
  200. package/skills/external-diagram-visual-generate/README.md +0 -83
  201. package/skills/external-diagram-visual-generate/SKILL.md +0 -207
  202. package/skills/external-diagram-visual-generate/assets/architecture/integration-flow.md +0 -55
  203. package/skills/external-diagram-visual-generate/assets/erd/core-objects.md +0 -131
  204. package/skills/external-diagram-visual-generate/assets/erd/custom-objects.md +0 -60
  205. package/skills/external-diagram-visual-generate/assets/lwc/dashboard-card.md +0 -45
  206. package/skills/external-diagram-visual-generate/assets/lwc/data-table.md +0 -57
  207. package/skills/external-diagram-visual-generate/assets/lwc/record-form.md +0 -60
  208. package/skills/external-diagram-visual-generate/assets/review/apex-review.md +0 -57
  209. package/skills/external-diagram-visual-generate/assets/review/lwc-review.md +0 -48
  210. package/skills/external-diagram-visual-generate/references/architect-aesthetic-guide.md +0 -257
  211. package/skills/external-diagram-visual-generate/references/examples-index.md +0 -35
  212. package/skills/external-diagram-visual-generate/references/gemini-cli-setup.md +0 -65
  213. package/skills/external-diagram-visual-generate/references/interview-questions.md +0 -529
  214. package/skills/external-diagram-visual-generate/references/iteration-workflow.md +0 -173
  215. package/skills/external-diagram-visual-generate/scripts/check-prerequisites.sh +0 -101
  216. package/skills/external-diagram-visual-generate/scripts/generate_image.py +0 -243
  217. package/skills/integration-connectivity-connected-app-configure/CREDITS.md +0 -3
  218. package/skills/integration-connectivity-generate/CREDITS.md +0 -5
  219. package/skills/omnistudio-callable-apex-generate/CREDITS.md +0 -9
  220. package/skills/omnistudio-datamapper-generate/CREDITS.md +0 -5
  221. package/skills/omnistudio-datapacks-deploy/CREDITS.md +0 -5
  222. package/skills/omnistudio-dependencies-analyze/CREDITS.md +0 -5
  223. package/skills/omnistudio-epc-catalog-generate/CREDITS.md +0 -14
  224. package/skills/omnistudio-flexcard-generate/CREDITS.md +0 -5
  225. package/skills/omnistudio-integration-procedure-generate/CREDITS.md +0 -5
  226. package/skills/omnistudio-omniscript-generate/CREDITS.md +0 -5
  227. package/skills/platform-apex-generate/CREDITS.md +0 -5
  228. package/skills/platform-apex-logs-debug/CREDITS.md +0 -22
  229. package/skills/platform-apex-test-generate/CREDITS.md +0 -5
  230. package/skills/platform-apex-test-run/CREDITS.md +0 -22
  231. package/skills/platform-data-manage/CREDITS.md +0 -5
  232. package/skills/platform-metadata-deploy/CREDITS.md +0 -25
  233. package/skills/platform-soql-query/CREDITS.md +0 -21
  234. /package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterfaceConversion/{MyCustomVlocityOpenInterface2.cls → MyCustomClass.cls} +0 -0
@@ -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**: 90+ (Deploy) | ⚠️ 67-89 (Review) | <67 (Block - fix required)
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**: 90+ (Deploy) | ⚠️ 67-89 (Review) | <67 (Block - fix required)
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
- | sf-apex | Fix identified Apex issues |
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
  ├─────────────────────────────────────────────────────────────┤
@@ -15,7 +15,7 @@ Comprehensive Salesforce testing skill with test execution, code coverage analys
15
15
 
16
16
  ### 1. Invoke the skill
17
17
 
18
- ```
18
+ ```yaml
19
19
  Skill: platform-apex-test-run
20
20
  Request: "Run all tests and show coverage report for org dev"
21
21
  ```
@@ -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?
@@ -4,6 +4,7 @@ description: "Use this skill when users need to create, generate, or validate Sa
4
4
  metadata:
5
5
  version: "1.0"
6
6
  minApiVersion: "51.0"
7
+ relatedSkills: ["platform-value-set-generate", "platform-validation-rule-generate"]
7
8
  ---
8
9
 
9
10
  # Salesforce Custom Field Generator and Validator
@@ -20,7 +21,7 @@ Every generated field must include these tags:
20
21
 
21
22
  | Attribute | Requirement | Notes |
22
23
  |-----------|-------------|-------|
23
- | `<fullName>` | Required | **Field** name only: derive from `<label>` — capitalize each word, replace spaces with `_`, append `__c`. Must start with a letter. E.g., label `Total Contract Value` → `Total_Contract_Value__c`. ⚠️ This rule is for the FIELD name. **Picklist VALUE `<fullName>` is different — keep it exactly as the user spelled it, spaces and all, no `__c`** (e.g. `Closed Won`, NOT `Closed_Won`). See [`references/advanced-picklists.md`](references/advanced-picklists.md) (ref §3). |
24
+ | `<fullName>` | Required | **Field** name only: derive from `<label>` — capitalize each word, replace spaces with `_`, append `__c`. Must start with a letter. E.g., label `Total Contract Value` → `Total_Contract_Value__c`. This rule is for the FIELD name. **Picklist VALUE `<fullName>` is different — keep it exactly as the user spelled it, spaces and all, no `__c`** (e.g. `Closed Won`, NOT `Closed_Won`). See [`references/advanced-picklists.md`](references/advanced-picklists.md) (ref §3). |
24
25
  | `<label>` | Required | The UI name (Title Case) |
25
26
  | `<description>` | Always include | Explain the business reason *why* this field exists. |
26
27
  | `<inlineHelpText>` | Always include | Actionable end-user guidance that adds value beyond the label (e.g., "Enter the value in USD including tax", not "The amount"). |
@@ -49,7 +50,7 @@ To ensure deployment success, follow these mathematical constraints:
49
50
 
50
51
  ### The "Fixed 255" Rule
51
52
 
52
- **TextArea: always include `<length>255</length>` exactly** this literal value is required by the Metadata API and **omitting it fails deployment**, even though the UI exposes no length control. Unlike every other type where `length` is a value you calculate, TextArea's is a fixed constant.
53
+ **TextArea: do NOT include `<length>`**the Metadata API fixes the length at 255 implicitly and **rejects an explicit `<length>` value** with "Can not specify 'length' for a CustomField of type TextArea". Omit `<length>` entirely; the field only needs `<fullName>`, `<label>`, and `<type>TextArea</type>`.
53
54
 
54
55
  ### Visible Lines
55
56
 
@@ -76,7 +77,7 @@ Mandatory for Long/Rich text and Multi-select picklists to control UI height.
76
77
  | Phone | `Phone` | Standardizes phone number formatting |
77
78
  | Picklist | `Picklist` | `valueSet` containing EITHER `valueSetDefinition` (inline) OR `valueSetName` (reference); `restricted` (see "Picklist `restricted` default" below; advanced cases in §3.4) |
78
79
  | Text | `Text` | `length` (Max 255) |
79
- | Text Area | `TextArea` | `<length>255</length>` |
80
+ | Text Area | `TextArea` | None — do NOT include `<length>`; the API fixes length at 255 implicitly |
80
81
  | Text (Long) | `LongTextArea` | `length`, `visibleLines` (default 3) |
81
82
  | Text (Rich) | `Html` | `length`, `visibleLines` (default 25) |
82
83
  | Time | `Time` | Stores time only (no date) |
@@ -112,7 +113,7 @@ Mandatory for Long/Rich text and Multi-select picklists to control UI height.
112
113
 
113
114
  ### 3.4 Advanced Picklists
114
115
 
115
- The inline `<valueSetDefinition>` above is the simple case. Full rules and worked ✅/❌
116
+ The inline `<valueSetDefinition>` above is the simple case. Full rules and worked correct/incorrect
116
117
  examples for everything below are in
117
118
  [`references/advanced-picklists.md`](references/advanced-picklists.md) — load it for any
118
119
  non-trivial picklist. Section numbers in parentheses below (e.g. "ref §1") point to that
@@ -166,12 +167,12 @@ Master-Detail fields have **strict attribute restrictions** that differ from Loo
166
167
 
167
168
  | Attribute | Master-Detail | Lookup |
168
169
  |-----------|---------------|--------|
169
- | `<required>` | FORBIDDEN | Optional |
170
- | `<deleteConstraint>` | FORBIDDEN (always CASCADE) | Required (`SetNull`, `Restrict`, `Cascade`) |
171
- | `<lookupFilter>` | FORBIDDEN | Optional |
172
- | `<relationshipOrder>` | Required (0 or 1) | Not applicable |
173
- | `<reparentableMasterDetail>` | Optional | Not applicable |
174
- | `<writeRequiresMasterRead>` | Optional | Not applicable |
170
+ | `<required>` | FORBIDDEN | Optional |
171
+ | `<deleteConstraint>` | FORBIDDEN (always CASCADE) | Required (`SetNull`, `Restrict`, `Cascade`) |
172
+ | `<lookupFilter>` | FORBIDDEN | Optional |
173
+ | `<relationshipOrder>` | Required (0 or 1) | Not applicable |
174
+ | `<reparentableMasterDetail>` | Optional | Not applicable |
175
+ | `<writeRequiresMasterRead>` | Optional | Not applicable |
175
176
 
176
177
  ### INCORRECT — Master-Detail with forbidden attributes:
177
178
 
@@ -451,7 +452,7 @@ Before generating CustomField XML, verify:
451
452
  - [ ] Is `precision ≤ 18`?
452
453
 
453
454
  ### Text Area Checks
454
- - [ ] For TextArea: Is `<length>255</length>` explicitly included?
455
+ - [ ] For TextArea: Is `<length>` **omitted**? (The API rejects an explicit `<length>` value on TextArea fields.)
455
456
  - [ ] For LongTextArea/Html: Is `<visibleLines>` set?
456
457
 
457
458
  ### Relationship Limit Checks