@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.
Files changed (235) 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-connect/README.md +0 -2
  10. package/skills/data360-connect/SKILL.md +0 -2
  11. package/skills/data360-harmonize/SKILL.md +0 -1
  12. package/skills/data360-orchestrate/README.md +0 -7
  13. package/skills/data360-orchestrate/SKILL.md +0 -2
  14. package/skills/data360-prepare/README.md +0 -1
  15. package/skills/data360-prepare/SKILL.md +0 -1
  16. package/skills/data360-query/README.md +0 -1
  17. package/skills/data360-query/SKILL.md +0 -1
  18. package/skills/data360-segment/README.md +0 -1
  19. package/skills/data360-segment/SKILL.md +0 -2
  20. package/skills/dx-code-analyzer-configure/SKILL.md +31 -13
  21. package/skills/dx-code-analyzer-custom-rule-create/SKILL.md +484 -0
  22. package/skills/dx-code-analyzer-custom-rule-create/assets/pmd-ruleset-template.xml +31 -0
  23. package/skills/dx-code-analyzer-custom-rule-create/examples/metadata-xml-example-fields-api.md +87 -0
  24. package/skills/dx-code-analyzer-custom-rule-create/examples/metadata-xml-example-flows.md +105 -0
  25. package/skills/dx-code-analyzer-custom-rule-create/examples/metadata-xml-example-permissions.md +95 -0
  26. package/skills/dx-code-analyzer-custom-rule-create/examples/metadata-xml-examples.md +84 -0
  27. package/skills/dx-code-analyzer-custom-rule-create/examples/regex-examples.md +127 -0
  28. package/skills/dx-code-analyzer-custom-rule-create/examples/xpath-examples.md +227 -0
  29. package/skills/dx-code-analyzer-custom-rule-create/references/advanced-pmd-patterns.md +288 -0
  30. package/skills/dx-code-analyzer-custom-rule-create/references/apex-ast-reference.md +127 -0
  31. package/skills/dx-code-analyzer-custom-rule-create/references/eslint-custom-plugins.md +247 -0
  32. package/skills/dx-code-analyzer-custom-rule-create/references/eslint-rules-discovery.md +188 -0
  33. package/skills/dx-code-analyzer-custom-rule-create/references/eslint-tier2-configurable.md +114 -0
  34. package/skills/dx-code-analyzer-custom-rule-create/references/eslint-tier3-custom-plugins.md +113 -0
  35. package/skills/dx-code-analyzer-custom-rule-create/references/metadata-xml-rules.md +285 -0
  36. package/skills/dx-code-analyzer-custom-rule-create/references/regex-rule-schema.md +174 -0
  37. package/skills/dx-code-analyzer-custom-rule-create/references/troubleshooting.md +141 -0
  38. package/skills/dx-code-analyzer-custom-rule-create/references/xpath-patterns-governor-limits.md +83 -0
  39. package/skills/dx-code-analyzer-custom-rule-create/references/xpath-patterns-method-calls.md +108 -0
  40. package/skills/dx-code-analyzer-custom-rule-create/references/xpath-patterns-security.md +45 -0
  41. package/skills/dx-code-analyzer-custom-rule-create/references/xpath-patterns-structure.md +127 -0
  42. package/skills/dx-code-analyzer-custom-rule-create/references/xpath-patterns.md +131 -0
  43. package/skills/dx-code-analyzer-custom-rule-create/scripts/create-pmd-rule.js +209 -0
  44. package/skills/dx-code-analyzer-custom-rule-create/scripts/create-regex-rule.js +220 -0
  45. package/skills/dx-code-analyzer-run/SKILL.md +41 -8
  46. package/skills/experience-cms-brand-apply/SKILL.md +47 -16
  47. package/skills/experience-lwc-generate/README.md +3 -2
  48. package/skills/experience-lwc-generate/references/async-notification-patterns.md +1 -1
  49. package/skills/experience-lwc-generate/references/component-patterns.md +3 -3
  50. package/skills/experience-lwc-generate/references/flow-integration-guide.md +1 -1
  51. package/skills/experience-lwc-generate/references/lwc-best-practices.md +4 -4
  52. package/skills/experience-lwc-generate/references/scoring-and-testing.md +1 -1
  53. package/skills/experience-lwc-generate/references/state-management.md +2 -2
  54. package/skills/experience-lwc-generate/references/triangle-pattern.md +3 -3
  55. package/skills/experience-lwc-generate/scripts/post-tool-validate.py +2 -2
  56. package/skills/experience-lwc-generate/scripts/template_validator.py +1 -1
  57. package/skills/external-diagram-mermaid-generate/README.md +2 -2
  58. package/skills/external-diagram-mermaid-generate/SKILL.md +1 -3
  59. package/skills/external-diagram-mermaid-generate/assets/agentforce/agent-flow.md +4 -4
  60. package/skills/external-diagram-mermaid-generate/assets/architecture/system-landscape.md +1 -1
  61. package/skills/external-diagram-mermaid-generate/assets/datamodel/b2b-commerce-erd.md +3 -3
  62. package/skills/external-diagram-mermaid-generate/assets/datamodel/campaigns-erd.md +1 -1
  63. package/skills/external-diagram-mermaid-generate/assets/datamodel/consent-erd.md +2 -2
  64. package/skills/external-diagram-mermaid-generate/assets/datamodel/files-erd.md +2 -2
  65. package/skills/external-diagram-mermaid-generate/assets/datamodel/forecasting-erd.md +2 -2
  66. package/skills/external-diagram-mermaid-generate/assets/datamodel/fsl-erd.md +2 -2
  67. package/skills/external-diagram-mermaid-generate/assets/datamodel/party-model-erd.md +1 -1
  68. package/skills/external-diagram-mermaid-generate/assets/datamodel/quote-order-erd.md +3 -3
  69. package/skills/external-diagram-mermaid-generate/assets/datamodel/revenue-cloud-erd.md +2 -2
  70. package/skills/external-diagram-mermaid-generate/assets/datamodel/sales-cloud-erd.md +1 -1
  71. package/skills/external-diagram-mermaid-generate/assets/datamodel/salesforce-erd.md +1 -1
  72. package/skills/external-diagram-mermaid-generate/assets/datamodel/scheduler-erd.md +2 -2
  73. package/skills/external-diagram-mermaid-generate/assets/datamodel/service-cloud-erd.md +3 -3
  74. package/skills/external-diagram-mermaid-generate/assets/datamodel/territory-management-erd.md +1 -1
  75. package/skills/external-diagram-mermaid-generate/assets/integration/api-sequence.md +1 -1
  76. package/skills/external-diagram-mermaid-generate/assets/oauth/authorization-code-pkce.md +1 -1
  77. package/skills/external-diagram-mermaid-generate/assets/oauth/authorization-code.md +1 -1
  78. package/skills/external-diagram-mermaid-generate/assets/oauth/client-credentials.md +1 -1
  79. package/skills/external-diagram-mermaid-generate/assets/oauth/device-authorization.md +2 -2
  80. package/skills/external-diagram-mermaid-generate/assets/oauth/jwt-bearer.md +2 -2
  81. package/skills/external-diagram-mermaid-generate/assets/oauth/refresh-token.md +1 -1
  82. package/skills/external-diagram-mermaid-generate/assets/oauth/user-agent-social-sign-on.md +2 -2
  83. package/skills/external-diagram-mermaid-generate/assets/role-hierarchy/user-hierarchy.md +1 -1
  84. package/skills/external-diagram-mermaid-generate/references/color-palette.md +13 -13
  85. package/skills/external-diagram-mermaid-generate/references/diagram-conventions.md +5 -5
  86. package/skills/external-diagram-mermaid-generate/references/erd-conventions.md +1 -1
  87. package/skills/external-diagram-mermaid-generate/references/mermaid-styling.md +2 -2
  88. package/skills/external-diagram-mermaid-generate/references/preview-guide.md +1 -1
  89. package/skills/external-diagram-mermaid-generate/references/usage-examples.md +9 -9
  90. package/skills/external-diagram-mermaid-generate/scripts/README.md +1 -1
  91. package/skills/integration-connectivity-connected-app-configure/README.md +4 -5
  92. package/skills/integration-connectivity-connected-app-configure/SKILL.md +2 -2
  93. package/skills/integration-connectivity-connected-app-configure/references/example-usage.md +7 -7
  94. package/skills/integration-connectivity-connected-app-configure/references/migration-guide.md +1 -1
  95. package/skills/integration-connectivity-connected-app-configure/references/oauth-flows-reference.md +1 -1
  96. package/skills/integration-connectivity-connected-app-configure/references/testing-validation-guide.md +3 -3
  97. package/skills/integration-connectivity-generate/README.md +1 -1
  98. package/skills/integration-connectivity-generate/SKILL.md +6 -0
  99. package/skills/integration-connectivity-generate/assets/callouts/rest-queueable-callout.cls +1 -1
  100. package/skills/integration-connectivity-generate/assets/external-services/external-service-operations.md +1 -1
  101. package/skills/integration-connectivity-generate/assets/soap/wsdl2apex-guide.md +1 -1
  102. package/skills/integration-connectivity-generate/references/callout-patterns.md +4 -0
  103. package/skills/integration-connectivity-generate/references/cdc-guide.md +2 -2
  104. package/skills/integration-connectivity-generate/references/event-driven-architecture-guide.md +5 -5
  105. package/skills/integration-connectivity-generate/references/event-patterns.md +3 -2
  106. package/skills/integration-connectivity-generate/references/external-services-guide.md +4 -1
  107. package/skills/integration-connectivity-generate/references/messaging-api-v2.md +2 -2
  108. package/skills/integration-connectivity-generate/references/named-credentials-automation.md +1 -1
  109. package/skills/integration-connectivity-generate/references/named-credentials-guide.md +12 -2
  110. package/skills/integration-connectivity-generate/references/platform-events-guide.md +3 -3
  111. package/skills/integration-connectivity-generate/references/rest-callout-patterns.md +1 -1
  112. package/skills/integration-connectivity-generate/references/scoring-rubric.md +1 -1
  113. package/skills/integration-connectivity-generate/references/security-best-practices.md +5 -2
  114. package/skills/integration-connectivity-generate/scripts/configure-named-credential.sh +16 -5
  115. package/skills/integration-connectivity-generate/scripts/set-api-credential.sh +11 -2
  116. package/skills/integration-connectivity-generate/scripts/suggest_credential_setup.py +4 -3
  117. package/skills/integration-connectivity-generate/scripts/validate_integration.py +1 -1
  118. package/skills/mobile-platform-native-capabilities-integrate/SKILL.md +3 -3
  119. package/skills/omnistudio-callable-apex-generate/README.md +1 -5
  120. package/skills/omnistudio-callable-apex-generate/SKILL.md +14 -4
  121. package/skills/omnistudio-callable-apex-generate/assets/pattern_callable_vanilla.cls +8 -1
  122. package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterface2Conversion/TRANSCRIPT.md +1 -1
  123. package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterfaceConversion/TRANSCRIPT.md +1 -1
  124. package/skills/omnistudio-datamapper-generate/SKILL.md +1 -1
  125. package/skills/omnistudio-datamapper-generate/assets/completion-summary-template.md +2 -2
  126. package/skills/omnistudio-datamapper-generate/references/best-practices.md +9 -9
  127. package/skills/omnistudio-datamapper-generate/references/naming-conventions.md +6 -6
  128. package/skills/omnistudio-datapacks-deploy/README.md +1 -1
  129. package/skills/omnistudio-datapacks-deploy/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +1 -1
  130. package/skills/omnistudio-dependencies-analyze/SKILL.md +12 -5
  131. package/skills/omnistudio-dependencies-analyze/references/dependency-patterns.md +9 -9
  132. package/skills/omnistudio-dependencies-analyze/references/namespace-guide.md +1 -1
  133. package/skills/omnistudio-epc-catalog-generate/README.md +1 -1
  134. package/skills/omnistudio-flexcard-generate/SKILL.md +11 -4
  135. package/skills/omnistudio-flexcard-generate/references/best-practices.md +6 -6
  136. package/skills/omnistudio-flexcard-generate/references/data-binding-guide.md +9 -9
  137. package/skills/omnistudio-integration-procedure-generate/SKILL.md +9 -1
  138. package/skills/omnistudio-integration-procedure-generate/references/element-types.md +3 -3
  139. package/skills/omnistudio-omniscript-generate/SKILL.md +2 -2
  140. package/skills/omnistudio-omniscript-generate/references/best-practices.md +1 -1
  141. package/skills/omnistudio-omniscript-generate/scripts/check-duplicate-omniscript.sh +8 -0
  142. package/skills/omnistudio-omniscript-generate/scripts/deploy-omniscript.sh +8 -0
  143. package/skills/platform-apex-logs-debug/README.md +2 -2
  144. package/skills/platform-apex-logs-debug/references/cli-commands.md +2 -2
  145. package/skills/platform-apex-logs-debug/references/debug-log-reference.md +16 -16
  146. package/skills/platform-apex-logs-debug/references/log-analysis-tools.md +2 -2
  147. package/skills/platform-apex-test-run/README.md +1 -1
  148. package/skills/platform-apex-test-run/references/test-fix-loop.md +2 -2
  149. package/skills/platform-apex-test-run/references/testing-best-practices.md +3 -3
  150. package/skills/platform-custom-field-generate/SKILL.md +86 -126
  151. package/skills/platform-custom-field-generate/references/advanced-picklists.md +590 -0
  152. package/skills/platform-data-manage/README.md +4 -4
  153. package/skills/platform-data-manage/references/bulk-testing-example.md +1 -1
  154. package/skills/platform-data-manage/references/crud-workflow-example.md +2 -2
  155. package/skills/platform-data-manage/references/orchestration.md +6 -6
  156. package/skills/platform-flexipage-generate/SKILL.md +281 -346
  157. package/skills/platform-flexipage-generate/references/cli_commands.md +39 -0
  158. package/skills/platform-flexipage-generate/references/flexipage_fieldSection.md +162 -0
  159. package/skills/platform-flexipage-generate/references/flexipage_richText.md +84 -0
  160. package/skills/platform-flexipage-generate/references/identifiers_and_regions.md +167 -0
  161. package/skills/platform-flexipage-generate/references/mcp_action_examples.md +104 -0
  162. package/skills/platform-flexipage-generate/references/record_flexipage_dynamicHighlights.md +119 -0
  163. package/skills/platform-flexipage-generate/references/xml_rules.md +335 -0
  164. package/skills/platform-flexipage-generate/scripts/resolve-component-instructions.sh +42 -0
  165. package/skills/platform-flexipage-generate/scripts/scan-lwc-components.sh +113 -0
  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/platform-value-set-generate/SKILL.md +305 -0
  190. package/skills/data360-activate/CREDITS.md +0 -5
  191. package/skills/data360-connect/CREDITS.md +0 -5
  192. package/skills/data360-harmonize/CREDITS.md +0 -3
  193. package/skills/data360-orchestrate/CREDITS.md +0 -15
  194. package/skills/data360-orchestrate/UPSTREAM.md +0 -45
  195. package/skills/data360-prepare/CREDITS.md +0 -7
  196. package/skills/data360-query/CREDITS.md +0 -7
  197. package/skills/data360-segment/CREDITS.md +0 -3
  198. package/skills/experience-lwc-generate/CREDITS.md +0 -5
  199. package/skills/external-diagram-mermaid-generate/CREDITS.md +0 -46
  200. package/skills/external-diagram-visual-generate/CREDITS.md +0 -80
  201. package/skills/external-diagram-visual-generate/README.md +0 -83
  202. package/skills/external-diagram-visual-generate/SKILL.md +0 -207
  203. package/skills/external-diagram-visual-generate/assets/architecture/integration-flow.md +0 -55
  204. package/skills/external-diagram-visual-generate/assets/erd/core-objects.md +0 -131
  205. package/skills/external-diagram-visual-generate/assets/erd/custom-objects.md +0 -60
  206. package/skills/external-diagram-visual-generate/assets/lwc/dashboard-card.md +0 -45
  207. package/skills/external-diagram-visual-generate/assets/lwc/data-table.md +0 -57
  208. package/skills/external-diagram-visual-generate/assets/lwc/record-form.md +0 -60
  209. package/skills/external-diagram-visual-generate/assets/review/apex-review.md +0 -57
  210. package/skills/external-diagram-visual-generate/assets/review/lwc-review.md +0 -48
  211. package/skills/external-diagram-visual-generate/references/architect-aesthetic-guide.md +0 -257
  212. package/skills/external-diagram-visual-generate/references/examples-index.md +0 -35
  213. package/skills/external-diagram-visual-generate/references/gemini-cli-setup.md +0 -65
  214. package/skills/external-diagram-visual-generate/references/interview-questions.md +0 -529
  215. package/skills/external-diagram-visual-generate/references/iteration-workflow.md +0 -173
  216. package/skills/external-diagram-visual-generate/scripts/check-prerequisites.sh +0 -101
  217. package/skills/external-diagram-visual-generate/scripts/generate_image.py +0 -243
  218. package/skills/integration-connectivity-connected-app-configure/CREDITS.md +0 -3
  219. package/skills/integration-connectivity-generate/CREDITS.md +0 -5
  220. package/skills/omnistudio-callable-apex-generate/CREDITS.md +0 -9
  221. package/skills/omnistudio-datamapper-generate/CREDITS.md +0 -5
  222. package/skills/omnistudio-datapacks-deploy/CREDITS.md +0 -5
  223. package/skills/omnistudio-dependencies-analyze/CREDITS.md +0 -5
  224. package/skills/omnistudio-epc-catalog-generate/CREDITS.md +0 -14
  225. package/skills/omnistudio-flexcard-generate/CREDITS.md +0 -5
  226. package/skills/omnistudio-integration-procedure-generate/CREDITS.md +0 -5
  227. package/skills/omnistudio-omniscript-generate/CREDITS.md +0 -5
  228. package/skills/platform-apex-generate/CREDITS.md +0 -5
  229. package/skills/platform-apex-logs-debug/CREDITS.md +0 -22
  230. package/skills/platform-apex-test-generate/CREDITS.md +0 -5
  231. package/skills/platform-apex-test-run/CREDITS.md +0 -22
  232. package/skills/platform-data-manage/CREDITS.md +0 -5
  233. package/skills/platform-metadata-deploy/CREDITS.md +0 -25
  234. package/skills/platform-soql-query/CREDITS.md +0 -21
  235. /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/modeling-omnistudio-epc-catalog/examples/business-internet-plus-bundle
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**: 90+ (Deploy) | ⚠️ 67-89 (Review) | <67 (Block - fix required)
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**: 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
  ============================================================