@salesforce/afv-skills 1.63.0 → 1.65.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 (484) hide show
  1. package/package.json +1 -1
  2. package/skills/agentforce-gpt-email-generation-configure/SKILL.md +312 -0
  3. package/skills/agentforce-offline-experimentation-run/SKILL.md +253 -0
  4. package/skills/agentforce-offline-experimentation-run/scripts/build_report.py +796 -0
  5. package/skills/agentforce-offline-experimentation-run/scripts/resolve-token.sh +111 -0
  6. package/skills/agentforce-offline-experimentation-run/scripts/sfap_replay.py +1053 -0
  7. package/skills/agentforce-wizard-ui-forecasting-analytics-components-configure/SKILL.md +64 -0
  8. package/skills/agentforce-wizard-ui-sales-einstein-components-configure/SKILL.md +46 -0
  9. package/skills/automation-company-profile-info-query/SKILL.md +51 -0
  10. package/skills/automation-digital-wallet-configure/SKILL.md +689 -0
  11. package/skills/automation-flow-coordinate/SKILL.md +95 -0
  12. package/skills/automation-flow-coordinate/references/elements/action-call/action-call.md +1569 -0
  13. package/skills/automation-flow-coordinate/references/elements/action-call/conversation-messaging.md +96 -0
  14. package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-sms-message.json +23 -0
  15. package/skills/automation-flow-coordinate/references/elements/action-call/examples/send-to-journey-no-fields.json +31 -0
  16. package/skills/automation-flow-coordinate/references/elements/action-call/send-to-journey.md +179 -0
  17. package/skills/automation-flow-coordinate/references/elements/exit-rule/examples/event-email-link-click.json +13 -0
  18. package/skills/automation-flow-coordinate/references/elements/exit-rule/exit-rule.md +83 -0
  19. package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/examples/forward-to-bot-or-agent.json +69 -0
  20. package/skills/automation-flow-coordinate/references/elements/forward-to-bot-or-agent/forward-to-bot-or-agent.md +274 -0
  21. package/skills/automation-flow-coordinate/references/elements/start/audience-common.md +192 -0
  22. package/skills/automation-flow-coordinate/references/elements/start/automation-event-triggered.md +130 -0
  23. package/skills/automation-flow-coordinate/references/elements/start/data-cloud-data-change-triggered.md +92 -0
  24. package/skills/automation-flow-coordinate/references/elements/start/form-submission-triggered.md +88 -0
  25. package/skills/automation-flow-coordinate/references/elements/start/segment-triggered.md +152 -0
  26. package/skills/automation-flow-coordinate/references/elements/start/start.md +539 -0
  27. package/skills/automation-flow-coordinate/references/elements/subflow/subflow.md +152 -0
  28. package/skills/automation-flow-coordinate/references/elements/wait/wait.md +497 -0
  29. package/skills/automation-flow-coordinate/references/recipes/author/author.md +868 -0
  30. package/skills/automation-flow-coordinate/references/recipes/summarize/element-generic.md +300 -0
  31. package/skills/automation-flow-coordinate/references/recipes/summarize/reference-resolution.md +292 -0
  32. package/skills/automation-flow-coordinate/references/recipes/summarize/summarize.md +323 -0
  33. package/skills/automation-flow-coordinate/references/recipes/testing/examples/debug-output-template.md +109 -0
  34. package/skills/automation-flow-coordinate/references/recipes/testing/shape.md +219 -0
  35. package/skills/automation-flow-coordinate/references/recipes/testing/shared-stages/intent-analyzer.md +180 -0
  36. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/debug.md +175 -0
  37. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/promote.md +255 -0
  38. package/skills/automation-flow-coordinate/references/recipes/testing/workflows/save-debug.md +212 -0
  39. package/skills/automation-flow-coordinate/references/resources/variable/variable.md +171 -0
  40. package/skills/automation-flow-coordinate/references/shared/anti-patterns.md +786 -0
  41. package/skills/automation-flow-coordinate/references/shared/end/end.md +267 -0
  42. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/README.md +69 -0
  43. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/predictions.jsonl +80 -0
  44. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/eval/prompts.jsonl +116 -0
  45. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/flow-type-resolver.md +321 -0
  46. package/skills/automation-flow-coordinate/references/shared/flow-type-resolver/taxonomy.json +320 -0
  47. package/skills/automation-flow-coordinate/references/shared/server-functions.md +597 -0
  48. package/skills/automation-sandbox-post-copy-config-generate/SKILL.md +21 -11
  49. package/skills/automation-sandbox-post-copy-config-generate/assets/config_template.json +10 -0
  50. package/skills/automation-sandbox-post-copy-config-generate/assets/json_schema.json +33 -1
  51. package/skills/automation-sandbox-post-copy-config-generate/references/configuration_catalog.md +44 -1
  52. package/skills/automation-sandbox-post-copy-configure/SKILL.md +132 -124
  53. package/skills/automation-sandbox-post-copy-configure/references/flow_activation_path.md +151 -0
  54. package/skills/automation-sandbox-post-copy-configure/references/scheduled_apex_path.md +55 -9
  55. package/skills/automotive-cloud-appraisal-management-settings-configure/SKILL.md +69 -0
  56. package/skills/automotive-cloud-dealer-essentials-configure/SKILL.md +78 -0
  57. package/skills/automotive-cloud-ground-agent-data-pipelines-configure/SKILL.md +373 -0
  58. package/skills/automotive-cloud-ground-mfg-agent-data-pipelines-configure/SKILL.md +273 -0
  59. package/skills/automotive-cloud-mfg-agent-data-pipelines-configure/SKILL.md +259 -0
  60. package/skills/automotive-cloud-mfg-sales-concierge-agent-create/SKILL.md +369 -0
  61. package/skills/automotive-cloud-mfg-sales-concierge-foundation-configure/SKILL.md +542 -0
  62. package/skills/automotive-cloud-mfg-sales-concierge-foundation-coordinate/SKILL.md +159 -0
  63. package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-agent-create/SKILL.md +349 -0
  64. package/skills/automotive-cloud-mfg-sales-concierge-orchestrator-configure/SKILL.md +505 -0
  65. package/skills/automotive-cloud-sales-concierge-agent-create/SKILL.md +380 -0
  66. package/skills/automotive-cloud-sales-concierge-foundation-configure/SKILL.md +567 -0
  67. package/skills/automotive-cloud-sales-concierge-foundation-coordinate/SKILL.md +159 -0
  68. package/skills/automotive-cloud-sales-concierge-orchestrator-agent-create/SKILL.md +360 -0
  69. package/skills/automotive-cloud-sales-concierge-orchestrator-configure/SKILL.md +539 -0
  70. package/skills/automotive-cloud-sales-concierge-search-grounding-configure/SKILL.md +358 -0
  71. package/skills/commerce-b2b-merchant-quote-configure/SKILL.md +602 -0
  72. package/skills/commerce-b2b-store-configure/SKILL.md +251 -0
  73. package/skills/commerce-credit-memo-create/SKILL.md +139 -0
  74. package/skills/commerce-delivery-business-hours-configure/SKILL.md +277 -0
  75. package/skills/commerce-delivery-estimation-apply/SKILL.md +155 -0
  76. package/skills/commerce-delivery-estimation-configure/SKILL.md +377 -0
  77. package/skills/commerce-delivery-routing-specs-integrate/SKILL.md +174 -0
  78. package/skills/commerce-estimate-bopis-query/SKILL.md +279 -0
  79. package/skills/commerce-estimate-delivery-date-query/SKILL.md +349 -0
  80. package/skills/commerce-fees-apply/SKILL.md +227 -0
  81. package/skills/commerce-fulfillment-routing-analyze/SKILL.md +200 -0
  82. package/skills/commerce-guest-buyer-create/SKILL.md +173 -0
  83. package/skills/commerce-location-bopis-configure/SKILL.md +378 -0
  84. package/skills/commerce-location-business-hours-configure/SKILL.md +235 -0
  85. package/skills/commerce-location-delivery-processing-time-configure/SKILL.md +309 -0
  86. package/skills/commerce-location-graph-integrate/SKILL.md +131 -0
  87. package/skills/commerce-location-shipping-carrier-method-configure/SKILL.md +755 -0
  88. package/skills/commerce-location-temporary-operating-hours-configure/SKILL.md +331 -0
  89. package/skills/commerce-merchant-buyer-groups-configure/SKILL.md +579 -0
  90. package/skills/commerce-merchant-buyer-user-onboarding-create/SKILL.md +626 -0
  91. package/skills/commerce-merchant-catalog-configure/SKILL.md +614 -0
  92. package/skills/commerce-merchant-extension-provider-configure/SKILL.md +368 -0
  93. package/skills/commerce-merchant-insights-account-health-churn-analyze/SKILL.md +118 -0
  94. package/skills/commerce-merchant-insights-inventory-returns-analyze/SKILL.md +65 -0
  95. package/skills/commerce-merchant-insights-order-shopper-get/SKILL.md +90 -0
  96. package/skills/commerce-merchant-insights-product-performance-analyze/SKILL.md +72 -0
  97. package/skills/commerce-merchant-insights-query/SKILL.md +279 -0
  98. package/skills/commerce-merchant-storefront-guest-access-configure/SKILL.md +656 -0
  99. package/skills/commerce-order-summary-change-apply/SKILL.md +375 -0
  100. package/skills/commerce-product-details-get/SKILL.md +363 -0
  101. package/skills/commerce-product-search/SKILL.md +563 -0
  102. package/skills/commerce-react-storefront-create/SKILL.md +350 -0
  103. package/skills/commerce-return-order-summary-create/SKILL.md +513 -0
  104. package/skills/commerce-search-relevance-analyze/SKILL.md +757 -0
  105. package/skills/commerce-temporary-processing-time-override-create/SKILL.md +274 -0
  106. package/skills/communications-initial-setup-configure/SKILL.md +630 -0
  107. package/skills/communications-multisite-configure/SKILL.md +571 -0
  108. package/skills/communications-revenue-cloud-settings-configure/SKILL.md +74 -0
  109. package/skills/communications-smb-fiber-catalog-create/SKILL.md +413 -0
  110. package/skills/communications-tmf-integrate/SKILL.md +1368 -0
  111. package/skills/consumer-goods-promotion-bo-api-deploy/SKILL.md +54 -107
  112. package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/payloads/copy.json +1 -1
  113. package/skills/consumer-goods-promotion-bo-api-deploy/references/conventions-and-payload-rules.md +82 -5
  114. package/skills/consumer-goods-promotion-bo-api-deploy/references/generate-and-wire.md +35 -2
  115. package/skills/consumer-goods-promotion-bo-api-deploy/references/preflight-and-seed-queries.md +149 -0
  116. package/skills/consumer-goods-promotion-bo-api-deploy/references/smoke-and-verify.md +17 -1
  117. package/skills/consumer-goods-visit-activity-act4-questions-assign/SKILL.md +448 -0
  118. package/skills/consumer-goods-visit-activity-act5-standard-create/SKILL.md +269 -0
  119. package/skills/consumer-goods-visit-activity-act6-assortment-configure/SKILL.md +271 -0
  120. package/skills/consumer-goods-visit-activity-act7-account-scoping-create/SKILL.md +382 -0
  121. package/skills/consumer-goods-visit-activity-act8-plan-attach-create/SKILL.md +373 -0
  122. package/skills/consumer-goods-visit-activity-act9-proof-validate/SKILL.md +389 -0
  123. package/skills/consumer-goods-visit-and-activity-act1-specification-create/SKILL.md +338 -0
  124. package/skills/consumer-goods-visit-and-activity-act2-template-create/SKILL.md +547 -0
  125. package/skills/consumer-goods-visit-and-activity-act3-definition-create/SKILL.md +346 -0
  126. package/skills/consumer-goods-visit-and-activity-configure/SKILL.md +1110 -0
  127. package/skills/crm-analytics-adoption-insights-configure/SKILL.md +224 -0
  128. package/skills/crm-analytics-custom-report-type-lightning-configure/SKILL.md +418 -0
  129. package/skills/crm-analytics-dashboards-configure/SKILL.md +731 -0
  130. package/skills/crm-analytics-operational-analytics-metadata-bridge-migrate/SKILL.md +233 -0
  131. package/skills/crm-analytics-report-notifications-ui-configure/SKILL.md +184 -0
  132. package/skills/crm-analytics-sharing-inheritance-coverage-analyze/SKILL.md +167 -0
  133. package/skills/crm-analytics-sonic-getting-started-configure/SKILL.md +55 -0
  134. package/skills/crm-analytics-tableau-next-app-deploy/SKILL.md +1350 -0
  135. package/skills/crm-analytics-tableau-next-c360-basemodel-validate/SKILL.md +1862 -0
  136. package/skills/crm-analytics-tableau-next-datacloud-validate/SKILL.md +83 -0
  137. package/skills/crm-analytics-tableau-next-provisioning-validate/SKILL.md +81 -0
  138. package/skills/data360-activation-create/SKILL.md +104 -0
  139. package/skills/data360-activation-external-platform-get/SKILL.md +49 -0
  140. package/skills/data360-activation-target-create/SKILL.md +93 -0
  141. package/skills/data360-activation-v2-create/SKILL.md +456 -0
  142. package/skills/data360-audience-dmo-get/SKILL.md +38 -0
  143. package/skills/data360-calculated-affinity-create/SKILL.md +82 -0
  144. package/skills/data360-calculated-insight-create/SKILL.md +148 -0
  145. package/skills/data360-catalog-metadata-create/SKILL.md +183 -0
  146. package/skills/data360-code-extension-create/SKILL.md +115 -0
  147. package/skills/data360-communication-capping-create/SKILL.md +227 -0
  148. package/skills/data360-connection-create/SKILL.md +491 -0
  149. package/skills/data360-content-lens-create/SKILL.md +181 -0
  150. package/skills/data360-data-action-create/SKILL.md +126 -0
  151. package/skills/data360-data-action-target-create/SKILL.md +181 -0
  152. package/skills/data360-data-clean-room-create/SKILL.md +238 -0
  153. package/skills/data360-data-governance-create/SKILL.md +746 -0
  154. package/skills/data360-data-graph-create/SKILL.md +82 -0
  155. package/skills/data360-data-harmonized-model-object-reference-create/SKILL.md +38 -0
  156. package/skills/data360-data-lake-object-create/SKILL.md +207 -0
  157. package/skills/data360-data-model-object-catalog-get/SKILL.md +49 -0
  158. package/skills/data360-data-model-object-create/SKILL.md +128 -0
  159. package/skills/data360-data-model-object-mapping-create/SKILL.md +106 -0
  160. package/skills/data360-data-space-create/SKILL.md +161 -0
  161. package/skills/data360-data-streams-create/SKILL.md +324 -0
  162. package/skills/data360-engagement-signal-get/SKILL.md +38 -0
  163. package/skills/data360-experiment-create/SKILL.md +82 -0
  164. package/skills/data360-goal-based-campaign-create/SKILL.md +192 -0
  165. package/skills/data360-harmonization-process-history-get/SKILL.md +38 -0
  166. package/skills/data360-harmonized-unstructured-dmo-create/SKILL.md +84 -0
  167. package/skills/data360-identity-resolution-create/SKILL.md +115 -0
  168. package/skills/data360-intelligent-document-processing-create/SKILL.md +148 -0
  169. package/skills/data360-knowledge-graph-construction-create/SKILL.md +93 -0
  170. package/skills/data360-knowledge-graph-create/SKILL.md +216 -0
  171. package/skills/data360-knowledge-space-mcp-configure/SKILL.md +475 -0
  172. package/skills/data360-machine-learning-mcp-configure/SKILL.md +697 -0
  173. package/skills/data360-multi-org-mcp-configure/SKILL.md +117 -0
  174. package/skills/data360-secondary-index-mcp-configure/SKILL.md +126 -0
  175. package/skills/data360-segment-mcp-configure/SKILL.md +159 -0
  176. package/skills/data360-semantic-calculated-dimension-mcp-configure/SKILL.md +93 -0
  177. package/skills/data360-semantic-calculated-measurement-mcp-configure/SKILL.md +93 -0
  178. package/skills/data360-semantic-data-object-mcp-configure/SKILL.md +93 -0
  179. package/skills/data360-semantic-dimension-mcp-configure/SKILL.md +38 -0
  180. package/skills/data360-semantic-engine-mcp-configure/SKILL.md +62 -0
  181. package/skills/data360-semantic-measurement-mcp-configure/SKILL.md +38 -0
  182. package/skills/data360-semantic-metric-mcp-configure/SKILL.md +93 -0
  183. package/skills/data360-semantic-model-mcp-configure/SKILL.md +115 -0
  184. package/skills/data360-standard-mapping-mcp-configure/SKILL.md +38 -0
  185. package/skills/data360-tenant-lifecycle-mcp-configure/SKILL.md +73 -0
  186. package/skills/dx-devops-conflict-resolve/SKILL.md +1 -5
  187. package/skills/dx-devops-pipeline-manage/SKILL.md +1 -5
  188. package/skills/dx-devops-project-manage/SKILL.md +1 -5
  189. package/skills/dx-devops-promote/SKILL.md +1 -5
  190. package/skills/dx-devops-request-status/SKILL.md +1 -5
  191. package/skills/dx-lifecycle-center/SKILL.md +120 -0
  192. package/skills/dx-lifecycle-center/examples/workflows.md +175 -0
  193. package/skills/dx-lifecycle-center/references/connect-api.md +123 -0
  194. package/skills/dx-lifecycle-center/references/connect-org.md +184 -0
  195. package/skills/dx-lifecycle-center/references/deploy.md +153 -0
  196. package/skills/dx-lifecycle-center/references/error-handling.md +21 -0
  197. package/skills/dx-lifecycle-center/references/hub-org.md +37 -0
  198. package/skills/dx-lifecycle-center/references/list-orgs.md +99 -0
  199. package/skills/dx-lifecycle-center/references/request-body.md +75 -0
  200. package/skills/dx-lifecycle-center/references/troubleshooting.md +31 -0
  201. package/skills/dx-lifecycle-center/scripts/poll-deploy-status.sh +200 -0
  202. package/skills/dx-lifecycle-center/scripts/resolve-environment.sh +120 -0
  203. package/skills/dx-org-devhub-configure/SKILL.md +1 -3
  204. package/skills/dx-org-shape-manage/SKILL.md +1 -5
  205. package/skills/dx-org-snapshot-manage/SKILL.md +1 -3
  206. package/skills/education-cloud-academic-calendar-generate/SKILL.md +1 -3
  207. package/skills/education-cloud-course-catalog-migrate/SKILL.md +1 -3
  208. package/skills/education-cloud-domain-configure/SKILL.md +1 -3
  209. package/skills/education-cloud-multi-campus-configure/SKILL.md +1 -3
  210. package/skills/education-cloud-student-recruitment-agent-configure/SKILL.md +1 -5
  211. package/skills/experience-afv-query/SKILL.md +234 -0
  212. package/skills/experience-agentforce-vibes-in-react-configure/SKILL.md +63 -0
  213. package/skills/experience-apex-components-configure/SKILL.md +69 -0
  214. package/skills/experience-apex-pages-configure/SKILL.md +107 -0
  215. package/skills/experience-app-home-configure/SKILL.md +76 -0
  216. package/skills/experience-aura-lightning-out-access-configure/SKILL.md +58 -0
  217. package/skills/experience-briefcase-configure/SKILL.md +287 -0
  218. package/skills/experience-community-flexi-page-list-create/SKILL.md +74 -0
  219. package/skills/experience-community-template-definition-list-query/SKILL.md +48 -0
  220. package/skills/experience-community-theme-definition-list-query/SKILL.md +38 -0
  221. package/skills/experience-content-assets-configure/SKILL.md +86 -0
  222. package/skills/experience-custom-domain-create/SKILL.md +727 -0
  223. package/skills/experience-defer-rendering-workspace-page-setup-configure/SKILL.md +41 -0
  224. package/skills/experience-field-service-app-builder-configure/SKILL.md +187 -0
  225. package/skills/experience-flow-category-configure/SKILL.md +117 -0
  226. package/skills/experience-formula-configure/SKILL.md +358 -0
  227. package/skills/experience-global-actions-configure/SKILL.md +69 -0
  228. package/skills/experience-global-publisher-layouts-configure/SKILL.md +79 -0
  229. package/skills/experience-instrumentation-configure/SKILL.md +64 -0
  230. package/skills/experience-lex-engagement-configure/SKILL.md +50 -0
  231. package/skills/experience-lightning-bolt-open/SKILL.md +12 -0
  232. package/skills/experience-lightning-out-configure/SKILL.md +129 -0
  233. package/skills/experience-lightning-preview-configure/SKILL.md +67 -0
  234. package/skills/experience-lightning-types-query/SKILL.md +98 -0
  235. package/skills/experience-malware-scan-configure/SKILL.md +71 -0
  236. package/skills/experience-my-salesforce-configure/SKILL.md +126 -0
  237. package/skills/experience-navigation-menus-configure/SKILL.md +235 -0
  238. package/skills/experience-notification-types-configure/SKILL.md +206 -0
  239. package/skills/experience-notifications-configure/SKILL.md +75 -0
  240. package/skills/experience-record-discovery-query/SKILL.md +227 -0
  241. package/skills/experience-regenerate-previews-open/SKILL.md +94 -0
  242. package/skills/experience-sales-cloud-mab-configure/SKILL.md +254 -0
  243. package/skills/experience-schema-builder-open/SKILL.md +38 -0
  244. package/skills/experience-simple-record-home-configure/SKILL.md +110 -0
  245. package/skills/experience-static-resources-configure/SKILL.md +74 -0
  246. package/skills/experience-ui-bundle-2gp-deploy/SKILL.md +1 -3
  247. package/skills/experience-ui-bundle-features-generate/SKILL.md +1 -5
  248. package/skills/experience-ui-bundle-mfa-configure/SKILL.md +1 -3
  249. package/skills/field-service-data-capture-form-deployer-configure/SKILL.md +23 -2
  250. package/skills/field-service-data-capture-form-designer-configure/SKILL.md +13 -3
  251. package/skills/field-service-data-capture-migrate/SKILL.md +1 -3
  252. package/skills/field-service-mobile-branding-configure/SKILL.md +17 -3
  253. package/skills/field-service-objective-designer-configure/SKILL.md +72 -379
  254. package/skills/field-service-prework-brief-deployer-configure/SKILL.md +10 -537
  255. package/skills/field-service-scheduling-policy-designer-query/SKILL.md +65 -1093
  256. package/skills/{field-service-setup-orchestrator-get → field-service-setup-coordinate}/SKILL.md +18 -3
  257. package/skills/field-service-sobject-create-configure/SKILL.md +13 -213
  258. package/skills/field-service-voice-to-form-configure/SKILL.md +40 -11
  259. package/skills/field-service-work-plan-configure/SKILL.md +253 -0
  260. package/skills/field-service-work-rule-designer-configure/SKILL.md +121 -95
  261. package/skills/fsc-actionable-segmentation-settings-configure/SKILL.md +180 -0
  262. package/skills/fsc-digital-origination-bre-decision-matrix-foundation-create/SKILL.md +196 -0
  263. package/skills/fsc-digital-origination-bre-disclosures-consent-configure/SKILL.md +106 -0
  264. package/skills/fsc-digital-origination-bre-document-upload-configure/SKILL.md +96 -0
  265. package/skills/fsc-digital-origination-bre-permissions-assign/SKILL.md +111 -0
  266. package/skills/fsc-digital-origination-bre-setup-coordinate/SKILL.md +250 -0
  267. package/skills/fsc-digital-origination-bre-stp-eligibility-configure/SKILL.md +122 -0
  268. package/skills/fsc-digital-origination-coordinate/SKILL.md +653 -0
  269. package/skills/fsc-digital-origination-demo-run/SKILL.md +225 -0
  270. package/skills/fsc-digital-origination-execution-guardrails-validate/SKILL.md +112 -0
  271. package/skills/fsc-digital-origination-initial-setup-configure/SKILL.md +396 -0
  272. package/skills/fsc-digital-origination-pricing-setup-coordinate/SKILL.md +336 -0
  273. package/skills/fsc-digital-origination-pricing-setup-data-foundation-create/SKILL.md +208 -0
  274. package/skills/fsc-digital-origination-pricing-setup-procedure-create/SKILL.md +375 -0
  275. package/skills/fsc-digital-origination-product-setup-act1-permissions-assign/SKILL.md +83 -0
  276. package/skills/fsc-digital-origination-product-setup-coordinate/SKILL.md +248 -0
  277. package/skills/fsc-digital-origination-sample-data-create/SKILL.md +206 -0
  278. package/skills/fsc-document-checklist-settings-configure/SKILL.md +57 -0
  279. package/skills/fsc-flexible-hierarchy-configure/SKILL.md +148 -0
  280. package/skills/fsc-flexible-hierarchy-foundation-configure/SKILL.md +1430 -0
  281. package/skills/fsc-flexible-hierarchy-graph-config-create/SKILL.md +471 -0
  282. package/skills/fsc-flexible-hierarchy-rule-based-graph-deploy/SKILL.md +429 -0
  283. package/skills/fsc-pricing-product-configurator-configure/SKILL.md +150 -0
  284. package/skills/fsc-pricing-salesforce-omnistudio-switch/SKILL.md +123 -0
  285. package/skills/fsc-product-act2-catalog-categories-create/SKILL.md +82 -0
  286. package/skills/fsc-product-act3-attributes-create/SKILL.md +249 -0
  287. package/skills/fsc-product-act4-classification-assignment-create/SKILL.md +196 -0
  288. package/skills/fsc-product-act5-considerations-get/SKILL.md +44 -0
  289. package/skills/fsc-stage-management-apex-flow-deploy/SKILL.md +384 -0
  290. package/skills/fsc-stage-management-compliant-data-sharing-configure/SKILL.md +144 -0
  291. package/skills/fsc-stage-management-decision-matrices-create/SKILL.md +107 -0
  292. package/skills/fsc-stage-management-definition-assignments-create/SKILL.md +189 -0
  293. package/skills/fsc-stage-management-definition-create/SKILL.md +108 -0
  294. package/skills/fsc-stage-management-permissions-assign/SKILL.md +143 -0
  295. package/skills/fsc-stage-management-transitions-configure/SKILL.md +139 -0
  296. package/skills/health-cloud-appt-booking-config-configure/SKILL.md +135 -0
  297. package/skills/health-cloud-appt-booking-url-config-configure/SKILL.md +134 -0
  298. package/skills/health-cloud-care-provider-affl-role-config-configure/SKILL.md +136 -0
  299. package/skills/health-cloud-care-provider-search-config-configure/SKILL.md +134 -0
  300. package/skills/health-cloud-care-requests-create/SKILL.md +178 -0
  301. package/skills/health-cloud-initial-configure/SKILL.md +511 -0
  302. package/skills/health-cloud-patient-appointment-scheduling-configure/SKILL.md +1374 -0
  303. package/skills/health-cloud-provider-search-settings-configure/SKILL.md +924 -0
  304. package/skills/health-cloud-referral-management-coordinate/SKILL.md +513 -0
  305. package/skills/health-cloud-timeline-configure/SKILL.md +622 -0
  306. package/skills/health-cloud-virtual-visit-config-configure/SKILL.md +135 -0
  307. package/skills/industries-account-score-settings-query/SKILL.md +78 -0
  308. package/skills/industries-actionable-list-data-sources-dmo-configure/SKILL.md +177 -0
  309. package/skills/industries-ad-product-availability-search/SKILL.md +399 -0
  310. package/skills/industries-advanced-account-forecast-settings-configure/SKILL.md +628 -0
  311. package/skills/industries-advanced-therapy-management-settings-configure/SKILL.md +73 -0
  312. package/skills/industries-atm-settings-starter-configure/SKILL.md +76 -0
  313. package/skills/industries-batch-document-ai-configure/SKILL.md +196 -0
  314. package/skills/industries-behavioral-health-app-settings-configure/SKILL.md +71 -0
  315. package/skills/industries-branch-management-settings-configure/SKILL.md +89 -0
  316. package/skills/industries-bre-decision-table-access-configure/SKILL.md +367 -0
  317. package/skills/industries-brokerage-settings-configure/SKILL.md +41 -0
  318. package/skills/industries-calendar-sync-settings-configure/SKILL.md +89 -0
  319. package/skills/industries-care-request-settings-configure/SKILL.md +218 -0
  320. package/skills/industries-case-management-intelligence-settings-configure/SKILL.md +54 -0
  321. package/skills/industries-catalog-process-attributes-products-configure/SKILL.md +380 -0
  322. package/skills/industries-catalog-process-fulfillment-configure/SKILL.md +216 -0
  323. package/skills/industries-catalog-process-intake-configure/SKILL.md +219 -0
  324. package/skills/industries-catalog-process-knowledge-configure/SKILL.md +153 -0
  325. package/skills/industries-catalog-process-preprocessor-configure/SKILL.md +168 -0
  326. package/skills/industries-cds-general-settings-configure/SKILL.md +69 -0
  327. package/skills/industries-claim-financial-settings-configure/SKILL.md +169 -0
  328. package/skills/industries-clinical-data-model-settings-configure/SKILL.md +136 -0
  329. package/skills/industries-clinical-data-model-settings-starter-configure/SKILL.md +105 -0
  330. package/skills/industries-collection-plan-settings-configure/SKILL.md +132 -0
  331. package/skills/industries-comms-service-console-settings-configure/SKILL.md +159 -0
  332. package/skills/industries-compliance-configure/SKILL.md +102 -0
  333. package/skills/industries-compliance-document-extraction-setup-configure/SKILL.md +76 -0
  334. package/skills/industries-contact-center-app-layout-configure/SKILL.md +88 -0
  335. package/skills/industries-contact-center-components-configure/SKILL.md +96 -0
  336. package/skills/industries-contact-center-path-knowledge-configure/SKILL.md +95 -0
  337. package/skills/industries-contact-center-user-access-assign/SKILL.md +96 -0
  338. package/skills/industries-course-waitlist-config-configure/SKILL.md +162 -0
  339. package/skills/industries-crisis-center-settings-configure/SKILL.md +84 -0
  340. package/skills/industries-custom-object-settings-configure/SKILL.md +94 -0
  341. package/skills/industries-data-cloud-integration-configure/SKILL.md +88 -0
  342. package/skills/industries-data-space-feature-mappings-configure/SKILL.md +245 -0
  343. package/skills/industries-decision-matrix-builder-configure/SKILL.md +78 -0
  344. package/skills/industries-decision-table-hbase-configure/SKILL.md +87 -0
  345. package/skills/industries-decision-table-version-configure/SKILL.md +74 -0
  346. package/skills/industries-decision-tables-builder-configure/SKILL.md +253 -0
  347. package/skills/industries-decision-tables-configure/SKILL.md +439 -0
  348. package/skills/industries-energy-utilities-configure/SKILL.md +251 -0
  349. package/skills/industries-eu-cloud-multisite-configure/SKILL.md +1008 -0
  350. package/skills/industries-eu-new-connections-configure/SKILL.md +30 -0
  351. package/skills/industries-explainability-msg-template-configure/SKILL.md +135 -0
  352. package/skills/industries-expression-set-message-token-configure/SKILL.md +135 -0
  353. package/skills/industries-field-service-settings-configure/SKILL.md +82 -0
  354. package/skills/industries-form-framework-settings-configure/SKILL.md +30 -0
  355. package/skills/industries-fsc-ai-settings-configure/SKILL.md +57 -0
  356. package/skills/industries-fsc-association-engine-settings-configure/SKILL.md +172 -0
  357. package/skills/industries-fsc-b2b-settings-configure/SKILL.md +61 -0
  358. package/skills/industries-fsc-insurance-settings-configure/SKILL.md +58 -0
  359. package/skills/industries-fsc-visa-fulfillment-setup-configure/SKILL.md +103 -0
  360. package/skills/industries-fsc-wealth-agent-settings-configure/SKILL.md +117 -0
  361. package/skills/industries-fsc-wealth-settings-configure/SKILL.md +99 -0
  362. package/skills/industries-fundraising-gift-entry-settings-configure/SKILL.md +120 -0
  363. package/skills/industries-fundraising-rfm-configure/SKILL.md +128 -0
  364. package/skills/industries-fundraising-settings-configure/SKILL.md +145 -0
  365. package/skills/industries-fundraising-source-code-gen-configure/SKILL.md +299 -0
  366. package/skills/industries-google-maps-api-key-settings-configure/SKILL.md +87 -0
  367. package/skills/industries-grantmaking-intelligence-settings-open/SKILL.md +58 -0
  368. package/skills/industries-hc-score-category-settings-configure/SKILL.md +167 -0
  369. package/skills/industries-health-engagement-settings-configure/SKILL.md +218 -0
  370. package/skills/industries-home-health-agentforce-setup-configure/SKILL.md +131 -0
  371. package/skills/industries-home-health-bundling-policy-create/SKILL.md +50 -0
  372. package/skills/industries-home-health-entity-labels-configure/SKILL.md +29 -0
  373. package/skills/industries-home-health-fsl-package-deploy/SKILL.md +71 -0
  374. package/skills/industries-home-health-fsl-settings-validate/SKILL.md +27 -0
  375. package/skills/industries-home-health-guided-setup-care-and-skill-get/SKILL.md +80 -0
  376. package/skills/industries-home-health-guided-setup-configure/SKILL.md +836 -0
  377. package/skills/industries-home-health-guided-setup-enable-org-fsl-get/SKILL.md +55 -0
  378. package/skills/industries-home-health-guided-setup-get-org-ready-get/SKILL.md +61 -0
  379. package/skills/industries-home-health-licenses-assign/SKILL.md +27 -0
  380. package/skills/industries-home-health-operating-hours-create/SKILL.md +40 -0
  381. package/skills/industries-home-health-scheduling-policy-create/SKILL.md +41 -0
  382. package/skills/industries-home-health-service-objective-create/SKILL.md +22 -0
  383. package/skills/industries-home-health-skills-create/SKILL.md +31 -0
  384. package/skills/industries-home-health-users-create/SKILL.md +29 -0
  385. package/skills/industries-icm-act3-toggles-configure/SKILL.md +198 -0
  386. package/skills/industries-icm-act5-genai-suggested-assessments-configure/SKILL.md +361 -0
  387. package/skills/industries-icm-act6-mcg-integration-configure/SKILL.md +550 -0
  388. package/skills/industries-integrated-care-management-configure/SKILL.md +168 -0
  389. package/skills/industries-object-enablement-configure/SKILL.md +86 -0
  390. package/skills/industries-tpm-system-processing-service-configure/SKILL.md +64 -0
  391. package/skills/insurance-brokerage-agency-billing-configure/SKILL.md +1 -3
  392. package/skills/integration-apex-settings-configure/SKILL.md +61 -0
  393. package/skills/marketing-e360-email-archiving-configure/SKILL.md +73 -0
  394. package/skills/marketing-message-test/SKILL.md +1 -3
  395. package/skills/nonprofit-fundraising-configure/SKILL.md +240 -0
  396. package/skills/nonprofit-fundraising-configure/references/gotchas.md +26 -0
  397. package/skills/nonprofit-fundraising-configure/references/mcp-invocation.md +678 -0
  398. package/skills/nonprofit-fundraising-configure/references/permission-targeting.md +35 -0
  399. package/skills/nonprofit-volunteer-management-model-get/SKILL.md +166 -0
  400. package/skills/nonprofit-volunteer-management-model-get/references/entities.md +315 -0
  401. package/skills/nonprofit-volunteer-management-model-get/references/relationships.md +175 -0
  402. package/skills/nonprofit-volunteer-management-model-get/references/themes.md +143 -0
  403. package/skills/nonprofit-volunteer-management-records-create/SKILL.md +121 -0
  404. package/skills/nonprofit-volunteer-management-records-create/references/field-guide.md +284 -0
  405. package/skills/nonprofit-volunteer-management-records-create/references/mcp-invocation.md +248 -0
  406. package/skills/nonprofit-volunteer-management-records-create/references/review-format.md +140 -0
  407. package/skills/nonprofit-volunteer-management-records-create/scripts/expand-series.py +632 -0
  408. package/skills/nonprofit-volunteer-management-records-create/scripts/render-review-table.py +419 -0
  409. package/skills/nonprofit-volunteer-management-records-create/scripts/tests/test_expand_series.py +690 -0
  410. package/skills/nonprofit-volunteer-management-records-create/scripts/tests/test_render_review_table.py +421 -0
  411. package/skills/nonprofit-volunteer-management-structure-generate/SKILL.md +119 -0
  412. package/skills/nonprofit-volunteer-management-structure-generate/references/configuration-decisions.md +159 -0
  413. package/skills/nonprofit-volunteer-management-structure-generate/references/discovery-interview.md +137 -0
  414. package/skills/nonprofit-volunteer-management-structure-generate/references/edge-cases.md +48 -0
  415. package/skills/nonprofit-volunteer-management-structure-generate/references/mcp-invocation.md +75 -0
  416. package/skills/nonprofit-volunteer-management-structure-generate/references/plan-output.md +141 -0
  417. package/skills/platform-custom-field-generate/SKILL.md +1 -0
  418. package/skills/platform-custom-field-generate/references/advanced-picklists.md +5 -5
  419. package/skills/platform-custom-metadata-type-generate/SKILL.md +3 -0
  420. package/skills/platform-custom-object-generate/SKILL.md +4 -0
  421. package/skills/platform-custom-permissions-configure/SKILL.md +687 -0
  422. package/skills/platform-custom-setting-generate/SKILL.md +3 -0
  423. package/skills/platform-datamask-run/SKILL.md +1 -5
  424. package/skills/platform-label-workbench-import-create/SKILL.md +67 -0
  425. package/skills/platform-permission-set-generate/SKILL.md +3 -0
  426. package/skills/platform-privacy-agent-settings-configure/SKILL.md +752 -0
  427. package/skills/platform-salesforce-connect-adapter-generate/SKILL.md +1 -3
  428. package/skills/platform-sandbox-configure/SKILL.md +1 -3
  429. package/skills/platform-value-set-generate/SKILL.md +3 -0
  430. package/skills/sales-call-scoring-configure/SKILL.md +1 -5
  431. package/skills/service-agentforce-channel-configure/SKILL.md +1 -3
  432. package/skills/service-agentforce-human-escalation-configure/SKILL.md +1 -3
  433. package/skills/service-catalog-template-coordinate/SKILL.md +1 -3
  434. package/skills/service-concierge-portal-generate/SKILL.md +1 -3
  435. package/skills/service-email-to-case-configure/SKILL.md +1 -5
  436. package/skills/service-itsm-agentic-setup-agent-runtime-access-assign/SKILL.md +1 -3
  437. package/skills/service-itsm-agentic-setup-agentforce-coordinate/SKILL.md +1 -3
  438. package/skills/service-itsm-agentic-setup-agentforce-studio-configure/SKILL.md +1 -3
  439. package/skills/service-itsm-agentic-setup-agentforce-studio-validate/SKILL.md +1 -3
  440. package/skills/service-itsm-agentic-setup-cmdb-access-assign/SKILL.md +1 -3
  441. package/skills/service-itsm-agentic-setup-cmdb-bundle-deploy/SKILL.md +1 -5
  442. package/skills/service-itsm-agentic-setup-cmdb-configure/SKILL.md +1 -3
  443. package/skills/service-itsm-agentic-setup-cmdb-coordinate/SKILL.md +1 -3
  444. package/skills/service-itsm-agentic-setup-cmdb-discovery-configure/SKILL.md +1 -3
  445. package/skills/service-itsm-agentic-setup-employee-agent-configure/SKILL.md +1 -3
  446. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/SKILL.md +1 -3
  447. package/skills/service-itsm-agentic-setup-incident-sla-configure/SKILL.md +1 -0
  448. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/SKILL.md +1 -3
  449. package/skills/service-itsm-agentic-setup-uel-user-create/SKILL.md +1 -9
  450. package/skills/service-itsm-incident-mgmt-configure/SKILL.md +1 -5
  451. package/skills/service-itsm-incident-priority-configure/SKILL.md +1 -3
  452. package/skills/service-itsm-slack-itservice-configure/SKILL.md +1 -3
  453. package/skills/service-itsm-swarming-configure/SKILL.md +1 -3
  454. package/skills/service-itsm-teams-configure/SKILL.md +1 -3
  455. package/skills/service-itsm-teams-debug/SKILL.md +1 -3
  456. package/skills/service-itsm-teams-employee-agent-configure/SKILL.md +1 -3
  457. package/skills/service-itsm-teams-itdesk-configure/SKILL.md +1 -3
  458. package/skills/service-itsm-teams-itservice-configure/SKILL.md +1 -3
  459. package/skills/service-native-voice-recording-transcription-configure/SKILL.md +1 -3
  460. package/skills/service-omni-agent-users-create/SKILL.md +1 -3
  461. package/skills/service-omni-agent-work-sharing-configure/SKILL.md +1 -3
  462. package/skills/service-omni-attribute-routing-configure/SKILL.md +1 -3
  463. package/skills/service-omni-base-settings-configure/SKILL.md +1 -3
  464. package/skills/service-omni-channel-inventory-analyze/SKILL.md +1 -3
  465. package/skills/service-omni-channel-limits-analyze/SKILL.md +1 -3
  466. package/skills/service-omni-channel-setup-coordinate/SKILL.md +1 -3
  467. package/skills/service-omni-command-center-analyze/SKILL.md +1 -3
  468. package/skills/service-omni-command-center-configure/SKILL.md +1 -3
  469. package/skills/service-omni-permission-set-assign/SKILL.md +1 -3
  470. package/skills/service-omni-presence-status-deploy/SKILL.md +1 -3
  471. package/skills/service-omni-presence-user-config-deploy/SKILL.md +1 -3
  472. package/skills/service-omni-queue-deploy/SKILL.md +1 -3
  473. package/skills/service-omni-queue-members-assign/SKILL.md +1 -3
  474. package/skills/service-omni-queue-routing-config-deploy/SKILL.md +1 -3
  475. package/skills/service-omni-routing-flow-deploy/SKILL.md +1 -3
  476. package/skills/service-omni-service-channel-configure/SKILL.md +1 -3
  477. package/skills/service-omni-sidebar-configure/SKILL.md +1 -3
  478. package/skills/service-omni-skills-based-routing-configure/SKILL.md +1 -3
  479. package/skills/service-omni-supervisor-config-deploy/SKILL.md +1 -3
  480. package/skills/service-omni-supervisor-permset-assign/SKILL.md +1 -3
  481. package/skills/service-omni-supervisor-surface-deploy/SKILL.md +1 -3
  482. package/skills/service-omni-supervisor-users-create/SKILL.md +1 -3
  483. package/skills/service-omni-work-skill-routing-configure/SKILL.md +1 -3
  484. package/skills/tableau-next-asset-create/README.md +0 -65
@@ -0,0 +1,212 @@
1
+ ---
2
+ id: flow.recipes.testing.workflows.save-debug
3
+ description: "Boilerplate WithoutAssertion FlowTest — pin a scenario's inputs as a re-runnable smoke test with no expectations. The assertions-free subset of author-test; for promoting an interactive debug run instead, use promote."
4
+ ---
5
+
6
+ <!-- Consumers: testing router (direct entry when user says "save a smoke test", "no assertions", "just lock in that this passes") -->
7
+
8
+ # Save a WithoutAssertion smoke test
9
+
10
+ Use when the user wants to persist a scenario's **inputs** as a
11
+ re-runnable test but has **no expectations to assert** — "just save that
12
+ this flow runs clean for this record", "lock in this input set", "a
13
+ smoke test, no assertions". The output is a `WithoutAssertion` FlowTest:
14
+ a Start binding, `assertions: []`, and nothing else.
15
+
16
+ This is the assertions-free subset of
17
+ [[flow.recipes.testing.workflows.author-test]]. It exists as its own
18
+ recipe because the boilerplate is small and the user should not be
19
+ walked through assertion-intent ceremony they explicitly don't want.
20
+
21
+ **Pick a different recipe when:**
22
+
23
+ - The inputs come from an **interactive debug run** the user just
24
+ iterated → [[flow.recipes.testing.workflows.promote]] (its Route A
25
+ with `assertions: []` is this same payload, seeded from debug context).
26
+ - The user **does** want to check an outcome → the full
27
+ [[flow.recipes.testing.workflows.author-test]].
28
+
29
+ What "passes" means here: a `WithoutAssertion` test has no assertions to
30
+ fail, so a run succeeds iff the flow completes without a fault. The run
31
+ step still matters — it's what catches a binding that saved clean but
32
+ drives the flow into an error path.
33
+
34
+ ---
35
+
36
+ ## Phase 1 — Assess (shared stage)
37
+
38
+ Load [[flow.recipes.testing.shared-stages.intent-analyzer]].
39
+
40
+ It confirms the flow is **save-eligible** (`"FlowTesting"` in the
41
+ features list — narrower than debug eligibility), reads the flow shape,
42
+ and emits the assessment object the builder consumes. Silo mode is
43
+ auto-detected the same way as in author-test; if the user named an
44
+ `@testSetup` class, the silo gate (`"FlowTestingWithDataSilo"`) is
45
+ probed too.
46
+
47
+ If the flow is not save-eligible, STOP and route to
48
+ [[flow.recipes.testing.workflows.debug]] for ad-hoc validation — there
49
+ is no persistent artifact to produce. Do not call
50
+ `POST /services/data/vXX.0/flowbuilder/flow-test` / `PATCH /services/data/vXX.0/flowbuilder/flow-test/{id}` against an ineligible flow.
51
+
52
+ ---
53
+
54
+ ## Phase 2 — Build (shared stage, assertions skipped)
55
+
56
+ Load [[flow.recipes.testing.shared-stages.payload-builder]]. Run it
57
+ **without Step 4**:
58
+
59
+ - **Step 2** — top-level fields. `doesCommitChanges: false` unless the
60
+ user explicitly asked for a committing test. If the Intent Analyzer's
61
+ `flowShape.hasWaits` is `true`, also decide `doesTestWaitElement`:
62
+ a `WithoutAssertion` test is a saved debug-run setup, and
63
+ `doesTestWaitElement: true` makes it pause at Waits when replayed, as the
64
+ debug run did. Propose `true` when the flow is an autolaunched flow with
65
+ no trigger.
66
+ - **Step 3** — the Start `testPoint`, bound by trigger type per
67
+ [[flow.recipes.testing.flowtest-elements.parameters]]. This is the
68
+ whole payload's substance — pin the real inputs the scenario uses
69
+ (a real record ID for record-triggered, one `InputVariable` per
70
+ declared variable for non-triggered).
71
+ - **Skip Step 4 entirely.** No assertion `testPoint`. The single Start
72
+ entry carries `assertions: []`.
73
+ - **Step 5** — `testType: "WithoutAssertion"`. (With no non-empty
74
+ `assertions[]` anywhere, this is the only correct value; the reviewer
75
+ auto-fix in Phase 3 confirms it.)
76
+ - **Step 6** — silo additions only if `siloMode: true`.
77
+
78
+ The result is a one-`testPoint` payload: `Start` bound, `assertions:
79
+ []`, `testType: "WithoutAssertion"`.
80
+
81
+ ---
82
+
83
+ ## Phase 3 — Review (shared stage, auto-fixes only)
84
+
85
+ Load [[flow.recipes.testing.shared-stages.reviewer]], but only its
86
+ **job 1** applies here:
87
+
88
+ - **Apply the cheap local auto-fixes** — `testType` correctness,
89
+ `flowVersionNumber` stringification, `sobjectValue` stringification,
90
+ legacy `"Input"` → `"InputVariable"`. Report each as a one-line `WARN`.
91
+
92
+ The reviewer's **job 2 (assertion intent check) does not apply** — there
93
+ are no assertions to second-guess. The one intent concern that *does*
94
+ survive is the same as promotion's: a `WithoutAssertion` test built from
95
+ a throwaway `sobjectValue: "{}"` placeholder isn't a durable scenario.
96
+ If the Start binding is `"{}"` rather than a real record, `BLOCK` and ask
97
+ for a real record ID before saving.
98
+
99
+ ---
100
+
101
+ ## Phase 4 — Save & run
102
+
103
+ **Invariant — no broken test lingers in the org without the user's
104
+ say-so.** Same rule as author-test Phase 5: on terminal run failure,
105
+ pause and ask the user how to handle the artifact. `save-debug`
106
+ always starts with a `POST /services/data/vXX.0/flowbuilder/flow-test` (first-time save) and never has a prior passing
107
+ state to restore to, so the cleanup choice is **delete-or-keep** —
108
+ rollback doesn't apply here. The single carve-out is the fault-path
109
+ case at the end of this phase — a `WithoutAssertion` test that
110
+ consistently reaches a known fault is a valid regression scenario,
111
+ so the failure IS the intended artifact and the cleanup prompt is
112
+ skipped (confirm this intent with the user before treating the
113
+ failure as intended).
114
+
115
+ `POST /services/data/vXX.0/flowbuilder/flow-test` with body `flowTestJson`. Continue only when
116
+ `isSuccess === true` and `flowTestId` is a non-empty string; capture that
117
+ `320xxx` ID.
118
+
119
+ On `isSuccess: false`, surface each returned error's `message` and
120
+ `statusCode`; target a field only if the message identifies one, then
121
+ re-save (cap: one retry). The server's deep validator owns structural
122
+ correctness — don't pre-check against a memorized rule list. **No org
123
+ cleanup needed** on a failed `POST /services/data/vXX.0/flowbuilder/flow-test` — nothing was persisted.
124
+ If status or a usable ID is missing, surface the raw response and stop;
125
+ the create outcome is unproven, so do not run, update, or delete without a
126
+ confirmed ID.
127
+
128
+ Then **run it once** — `POST /services/data/vXX.0/flowbuilder/flow-test/actions/run` with the pinned `flowVersionId`
129
+ (**required**), the new `testIds`, and `showTrace: true`. Read per
130
+ [[flow.recipes.testing.run-results]]:
131
+
132
+ - `testStatus: "Pass"` → success for the documented run-result contract.
133
+ Report the `320xxx` ID and the version it's pinned to, and surface any
134
+ `interviewErrors` or `lastRunError` fields that are also present.
135
+ - Missing/empty `results` or a server error with no descriptor → no
136
+ documented per-test descriptor is available. Surface the raw response without inferring a
137
+ cause. Round-trip via `GET /services/data/vXX.0/flowbuilder/flow-test/{id}`, parse `flowTestJson`, and compare
138
+ it with what was sent. Apply one fix only if that comparison proves a
139
+ discrepancy, then call `dispatch(method: "PATCH", url: "/services/data/vXX.0/flowbuilder/flow-test/{id}")` with
140
+ `{id, flowTestJson: JSON.stringify(completeDefinition)}`. Re-run only
141
+ when the update returns `isSuccess === true`; otherwise surface its
142
+ errors or raw response and hand off to terminal failure. If the second
143
+ run still fails, hand off to the Terminal failure section below.
144
+ - Any returned descriptor whose `testStatus` is missing or is not exactly
145
+ `Pass` → report `lastRunFailedAssertions`, `lastRunError`, and
146
+ `interviewErrors` when present, then hand off to Terminal failure. Do not
147
+ assume a runtime error means `results` is absent.
148
+ - A fault path the user actually wants to lock in → the fault-path
149
+ carve-out applies. Confirm with the user; if confirmed, keep the
150
+ test and skip the Terminal failure prompt.
151
+
152
+ ### Terminal failure — user chooses cleanup
153
+
154
+ Reached when no descriptor reports exactly `testStatus: "Pass"` after the one-shot self-correct
155
+ and the fault-path carve-out does not apply.
156
+
157
+ 1. **Surface the failure.** Report to the user:
158
+ - (a) the verbatim run signal — `testStatus`, `lastRunFailedAssertions`,
159
+ `lastRunError`, `interviewErrors`, the retrieved-vs-sent diff, or the
160
+ raw absent/empty `results` response;
161
+ - (b) the specific binding field(s) implicated only when the response
162
+ identifies them;
163
+ - (c) the current org state — the `320xxx` id.
164
+
165
+ 2. **Ask the user how to handle the artifact:**
166
+
167
+ > This smoke test is broken as saved. How do you want to handle it?
168
+ > - **delete** — remove the `320xxx` from the org.
169
+ > - **keep** — leave it in place for hand-editing; I'll report the
170
+ > `320xxx` and the failure trace.
171
+
172
+ Silence is not consent — wait for a reply.
173
+
174
+ 3. **Execute the choice:**
175
+ - **delete** → `DELETE /services/data/vXX.0/flowbuilder/flow-test/{id}` with the CURRENT
176
+ smoke test's `320xxx` as the path `id` (single id per call —
177
+ there is no bulk delete). `save-debug` is one-shot per
178
+ invocation, so there is never more than one id in scope here.
179
+ Report deletion only when `isSuccess === true`. On `false`, surface
180
+ `errorMessage` when present; when status is missing, report the delete
181
+ outcome as unproven. The parent flow is untouched.
182
+ - **keep** → leave the artifact in place; report the `320xxx`, the
183
+ failure trace, and the pointer to `DELETE /services/data/vXX.0/flowbuilder/flow-test/{id}`
184
+ for later cleanup if the user changes their mind.
185
+
186
+ 4. **Offer a redesign.** After cleanup, ask whether to re-enter at
187
+ Phase 1 (Assess) with a different binding, or stop.
188
+
189
+ ---
190
+
191
+ ## Editing an existing WithoutAssertion test
192
+
193
+ To change the pinned inputs, parse the current complete definition, make
194
+ the edits, and call `dispatch(method: "PATCH", url: "/services/data/vXX.0/flowbuilder/flow-test/{id}")` with
195
+ `{id, flowTestJson: JSON.stringify(completeDefinition)}`. Require
196
+ `isSuccess === true`; the wire shape has no partial patch. To **add**
197
+ assertions later (promote a smoke test to a real
198
+ assertion test), switch to
199
+ [[flow.recipes.testing.workflows.author-test]]'s build phase: add a
200
+ `Finish` `testPoint`, flip `testType` to `"WithAssertion"`, and re-save.
201
+
202
+ ---
203
+
204
+ ## Notes for callers
205
+
206
+ - This recipe is intentionally thin: it is author-test minus assertion
207
+ authoring and minus the assertion-intent review. If a scenario grows an
208
+ expectation, it graduates to author-test — don't bolt assertion logic
209
+ onto this path.
210
+ - Tool budget: 2–4 calls in the happy path (1 retrieve for eligibility/
211
+ shape via the analyzer, 1 store, 1 run, optionally 1 retrieve
212
+ round-trip on failure).
@@ -0,0 +1,171 @@
1
+ ---
2
+ name: flow-resource-variable
3
+ license: LICENSE.txt has complete terms
4
+ description: "Use this skill when creating, editing, or asking about Flow variables, including collection variables, variable data types, input/output availability, default values, and the isExternallyAccessible setting. TRIGGER when: user asks to create a variable, declare a collection, set input/output availability, or configure variable data types. DO NOT TRIGGER when the user needs a formula or constant (use flow-resource-formula or flow-resource-constant)."
5
+ metadata:
6
+ version: "1.0"
7
+ related-skills: flow-value-rules, flow-formula-expression, flow-resource-constant
8
+ ---
9
+
10
+ # Flow Variables
11
+
12
+ ## Reference File Index
13
+
14
+ | File | Purpose |
15
+ |---|---|
16
+ | `examples/sobject-collection.json` | SObject collection variable |
17
+ | `examples/apex-collection.json` | Apex collection variable with output |
18
+ | `examples/currency-with-default.json` | Currency variable with default value |
19
+ | `examples/number-counter.json` | Number counter variable |
20
+ | `examples/wrong-both-types.json` | WRONG: Both objectType and apexClass set |
21
+ | `examples/wrong-collection-default.json` | WRONG: Collection with default value |
22
+ | `examples/wrong-currency-scale-zero.json` | WRONG: Currency with scale=0 |
23
+ | `examples/wrong-scale-exceeds-limit.json` | WRONG: Scale exceeds maximum of 17 |
24
+ | `examples/wrong-missing-scale.json` | WRONG: Missing required scale field |
25
+
26
+ ## Overview
27
+ A variable is a named container that holds a value during a flow's execution. Variables can hold a single value or a collection (list) of values. They can be passed in from outside the flow (input), passed back out when the flow finishes (output), or used purely inside the flow.
28
+
29
+ ## When to Use
30
+ Use a variable when you need to store, modify, or pass data within a flow. Use a collection variable when you need to work with multiple records or values of the same type. Use input/output settings to share data between flows or with calling code.
31
+
32
+ ## Required Properties
33
+ | Property | Description | Constraints |
34
+ |---|---|---|
35
+ | Name (API Name) | Developer-facing unique identifier | Max 80 characters; must follow API naming rules |
36
+ | Data Type | The type of data the variable holds | Must be one of the supported types listed below; cannot be changed after creation |
37
+
38
+ ## Optional Properties
39
+ | Property | Description | Default |
40
+ |---|---|---|
41
+ | Description | Human-readable explanation of the variable's purpose | Empty string |
42
+ | Collection | Whether the variable holds multiple values of the same type | false |
43
+ | Default Value | The initial value assigned to the variable | null (none) |
44
+ | Scale | Decimal places for Number and Currency types (range: 0-17) | Metadata default when omitted: 0; recommended for Currency: 2 (see Key Rules) |
45
+ | Object Type (subtype) | The Salesforce object or Apex class when Data Type is Record or Apex | null |
46
+ | Available for Input | Lets external callers pass a value in when the flow starts | false |
47
+ | Available for Output | Exposes the variable's value to callers after the flow runs | false |
48
+ | Externally Accessible | Controls whether the variable is exposed at all in capability-triggered flows | Depends on flow trigger type (true for most flows; false for automatic-input capability-triggered flows) |
49
+
50
+ ## Data Types Supported
51
+ All of the following data types are supported for variables:
52
+
53
+ - **String** — text values
54
+ - **Number** — numeric values; supports a decimal scale
55
+ - **Currency** — monetary values; supports a decimal scale
56
+ - **Boolean** — true/false
57
+ - **Date** — a calendar date
58
+ - **DateTime** — date plus time
59
+ - **Time** — time of day (only available when the org has Time data type support and the flow process/trigger type supports it)
60
+ - **Picklist** — a single picklist value (no default value allowed)
61
+ - **Multi-Select Picklist** — multiple picklist values (no default value allowed)
62
+ - **Record (SObject)** — a Salesforce object record; requires selecting the Object Type; no default value allowed
63
+ - **Apex** — an Apex-defined type; requires selecting the Apex Class; the Apex class must be global or accessible from Flow context; no default value allowed; supports field access via dot-notation (e.g., `varWrapper.fieldName`)
64
+
65
+ ## Collection Variables
66
+ Any data type can be used as a collection variable by checking "Allow multiple values (collection)". Key constraints:
67
+ - Collection variables **cannot have a default value**, regardless of data type.
68
+ - Collection variables with Record or Apex types behave like lists of records/objects.
69
+ - When `isCollection` is true, the `defaultValue` field is always ignored.
70
+
71
+ ## Default Value Constraints
72
+ Default values are only available for these types on **non-collection** variables:
73
+ - String, Number, Currency, Boolean, Date, DateTime, Time
74
+
75
+ Default values are **NOT** available for:
76
+ - Picklist
77
+ - Multi-Select Picklist
78
+ - Record (SObject)
79
+ - Apex
80
+ - Any collection variable
81
+
82
+ The default value can be a literal or a reference to another resource (a value object).
83
+
84
+ ## Input / Output Availability
85
+ - **Available for Input (isInput)** — the variable can be populated from the outside when the flow is invoked. Changing this setting on an existing variable that is already used as an input may cause runtime errors in calling flows.
86
+ - **Available for Output (isOutput)** — the variable's value is returned to the caller after the flow ends. Changing this or renaming an output variable on an existing flow may break calling flows.
87
+ - A warning is shown in the editor when you rename a variable or change its input/output settings if it was previously marked as input or output.
88
+ - Both can be true simultaneously (the variable is both readable and writable from outside the flow).
89
+
90
+ ## isExternallyAccessible
91
+ - Controls whether the variable appears at all in external access contexts.
92
+ - Defaults to `true` for most flow types.
93
+ - Defaults to `false` specifically for capability-triggered flows that use automatic (non-manual) input configuration. In that case the variable is hidden from external callers unless the org has `optionalCapabilities` enabled and the flow is set to manual input.
94
+ - This is separate from `isInput`/`isOutput` — `isExternallyAccessible` gates visibility; `isInput`/`isOutput` control the direction.
95
+
96
+ ## Validation Rules & Constraints
97
+ - Data Type must be set (cannot be null or undefined).
98
+ - When Data Type is Record (SObject) or Apex, the subtype (Object Type or Apex Class) is also required.
99
+ - Default value, if provided, must pass the resource-picker validation for the variable's data type.
100
+ - The data type **cannot be changed** after a variable has been saved (editor disables the picker in edit mode).
101
+ - API name max length is 80 characters. A variable has no label, only its API name: a `<label>` in `<variables>` fails the save.
102
+
103
+ ## Common Patterns
104
+ - Store a record retrieved via Get Records into a Record variable to reuse its field values later.
105
+ - Use a collection Record variable as the target when Get Records returns multiple records.
106
+ - Mark a String variable as both input and output to pass data in, process it, and return the result.
107
+ - For scale guidance on Number/Currency variables, see the `scale` rule in the Metadata Shape > Key rules section.
108
+ - A Boolean variable is useful as a flag to track whether a condition was ever met during the flow.
109
+ - Use Apex collection variables as Transform element outputs when mapping SObject records to custom wrapper classes.
110
+
111
+ ## Aura/Server Functions
112
+ - `getFlowInputOutputVariables` — retrieves the input and output variable definitions for a referenced flow (used when configuring subflow variable assignments)
113
+
114
+ ## Metadata Shape
115
+
116
+ Variables live in `metadata.variables[]`. Each entry:
117
+
118
+ | Field | Type | Required | Notes |
119
+ |---|---|---|---|
120
+ | `name` | string | yes | dev-name; unique within the flow; ≤ 80 chars; ASCII alphanumeric + underscore |
121
+ | `description` | string | no | empty string by default |
122
+ | `dataType` | string | yes | `String`, `Number`, `Currency`, `Date`, `DateTime`, `Boolean`, `Picklist`, `Multipicklist`, `SObject`, `Apex` |
123
+ | `isCollection` | boolean | no | default `false` |
124
+ | `isInput` | boolean | no | default `false` — "Available for input" |
125
+ | `isOutput` | boolean | no | default `false` — "Available for output" |
126
+ | `scale` | number | **required** for `Number`/`Currency` | decimal places (0-17); **must not be null** — default to `0` if unspecified |
127
+ | `objectType` | string | conditional | ONLY when `dataType` = `"SObject"` |
128
+ | `apexClass` | string | conditional | ONLY when `dataType` = `"Apex"` |
129
+ | `value` | value object | no | optional default value |
130
+
131
+ ### Key rules
132
+
133
+ - `dataType` must use exact Metadata API casing. Note: Multi-Select Picklist is `"Multipicklist"` (capital M, lowercase p) — NOT `"MultiPicklist"` or `"MultiSelectPicklist"`, which are rejected with a deserialization error.
134
+ - `objectType` is set if and only if `dataType === "SObject"`. `apexClass` is set if and only if `dataType === "Apex"`. **Never set both** — they are mutually exclusive.
135
+ - `scale` is required for `Number` and `Currency` (range: 0-17) — omitting it (null) causes a save warning that blocks activation. **Always set scale explicitly:** use `scale: 2` for Currency (standard financial precision), `scale: 0` for Number counters/IDs, `scale: 4-6` for scientific calculations. If the caller hasn't specified precision, default to `0` as a technical fallback, but note that `scale: 0` is rarely appropriate for Currency types as it truncates fractional amounts.
136
+ - `value` (default) is a value object (see `../../shared/value-rules.md` for complete value object rules). Omit the `value` field entirely when there is no default. Collection variables and SObject/Apex/Picklist variables cannot have a default value.
137
+ - `isCollection: true` is required when the variable will hold multiple rows (e.g. output of a `recordLookup` without `getFirstRecordOnly`, or an accumulator inside a `Loop`). An Assignment with `operator: "Add"` requires the target variable to be a collection OR a Number/Currency (for increment operations).
138
+ - `isInput: true` / `isOutput: true` variables define this flow's subflow contract. A calling flow's `inputAssignments[].name` must match an `isInput: true` variable in the called flow.
139
+ - When using Apex variables, verify the Apex class exists in the org before declaring the variable. The class must be global or accessible from the Flow context.
140
+ - Access fields on SObject or Apex variables using dot-notation: `varAccount.Name` or `varWrapper.orderNumber`.
141
+ - Declare only the variables that other elements reference. Speculative declarations bloat the flow and cause confusion.
142
+ - Variables don't have connectors and cannot throw.
143
+
144
+ ### Save-time rejections
145
+
146
+ - `Variable '<name>' has both objectType and apexClass`
147
+ - `objectType '<name>' is not a valid sObject`
148
+ - `Variable '<name>' dataType requires objectType` (SObject without `objectType`)
149
+ - `In field: apexClass - no ApexClass named '<name>' found` (Apex variable with invalid class)
150
+ - `Variable '<name>' value type mismatch with dataType`
151
+ - `Can not construct instance of ...FlowDataType from String value 'MultiPicklist'` (wrong casing; use `Multipicklist`)
152
+ - `Cannot use Add operator on a non-collection variable` (Note: Add works on Number/Currency for increment operations)
153
+ - `Variable '<name>' has scale exceeding limit of 17` (scale > 17)
154
+ - `Element {http://soap.sforce.com/2006/04/metadata}label invalid at this location in type FlowVariable` (a `<label>` in a variable; remove it)
155
+
156
+ ## Common Errors
157
+
158
+ **Both objectType and apexClass set**
159
+ See `examples/wrong-both-types.json`. Error: `Variable 'invalidVariable' has both objectType and apexClass`. These fields are mutually exclusive.
160
+
161
+ **Collection with default value**
162
+ See `examples/wrong-collection-default.json`. The `value` field is ignored; collections cannot have defaults and will be uninitialized.
163
+
164
+ **Currency with scale=0**
165
+ See `examples/wrong-currency-scale-zero.json`. While technically valid, `scale: 0` truncates fractional monetary amounts (e.g., $10.50 becomes $10). Always use `scale: 2` for standard financial precision unless you specifically need whole-dollar amounts.
166
+
167
+ **Scale exceeds limit**
168
+ See `examples/wrong-scale-exceeds-limit.json`. Error: `Variable 'preciseNumber' has scale exceeding limit of 17`. Maximum scale is 17.
169
+
170
+ **Missing scale for Currency/Number**
171
+ See `examples/wrong-missing-scale.json`. Activation blocked until `scale` is set. Default to `scale: 0` if unspecified.