@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,550 @@
1
+ ---
2
+ name: industries-icm-act6-mcg-integration-configure
3
+ description: "Act 6 of Health Cloud ICM setup — the sixth act of the full 1→8 journey (runs after Act 5 for an unqualified \"set up ICM\", followed by Acts 7-8; also runnable standalone on an explicit MCG ask) — stand up the working MCG (Milliman Care Guidelines) integration end-to-end, not just the Act 3 reveal toggle. Detect the MCG license stack first (hard-stop on the ISE PSL if absent), verify-then-enable the MCG preference + Discovery Framework, build the External/Named Credential chain (secrets are hard-manual; the principal-access permission set is automatable, authored here), create + activate the Integration Definition (prefer the controller dispatch the Setup UI itself uses; fall back to the UI create for the managed MCG case), then set the org-value the sync depends on (MANDATORY on the MDAPI path), wire the Assessment component's External Assessment Integration attribute (Tooling), and (on confirmation) guide the first data sync. Backing runbook: source/references/mcg-integration-runbook.md."
4
+ metadata:
5
+ version: "1.0"
6
+ cliTools:
7
+ - tool:
8
+ - "sf"
9
+ semver: ">=2.0.0"
10
+ ---
11
+
12
+ # Act 6 — Full MCG (Milliman Care Guidelines) integration
13
+
14
+ Part of the [`icm-setup`](../../SKILL.md) skill — the **sixth act** of the full 1→8
15
+ journey. For an unqualified "set up ICM" it runs **after
16
+ [Act 5](../act5-genai-suggested-assessments/SKILL.md)** and is followed by Acts 7-8; it is also runnable standalone on an
17
+ explicit MCG ask ("set up MCG", "configure Milliman Care Guidelines", "wire up the MCG
18
+ integration"). Because MCG requires a provisioned MCG license, a real Milliman (CareWebQI) account,
19
+ and customer secrets, Act 6 — like Act 5 — may legitimately **hard-stop for a genuinely absent
20
+ license stack**: detect the license FIRST, and if it's absent, report the named prerequisite rather
21
+ than forcing the integration (that's the act *running and reporting*, not being skipped). Runs after
22
+ — or re-verifies — [Act 2](../act2-discovery-framework/SKILL.md) (Discovery Framework) and
23
+ [Act 3](../act3-icm-toggles/SKILL.md) (whose toggle 5 only *reveals* MCG in the ICM Setting UI). The
24
+ full backing detail — component map, per-step automation verdict, transport contracts, the
25
+ unified-search dependency — lives in
26
+ [`../../references/mcg-integration-runbook.md`](../../references/mcg-integration-runbook.md);
27
+ **read it before telling an admin "MCG is set up."**
28
+
29
+ > ⚠️ **Secrets handling — non-negotiable.** The MCG **ClientID**, **HashKey**, and **endpoint
30
+ > URL** are Basic-Auth credentials to an external (Milliman) system. They must **never** be
31
+ > echoed into chat, prompts, logs, committed artifacts, or a deploy file — secure UI entry only.
32
+ > Never surface a literal MCG URL, ClientID, or HashKey even as an example; use placeholders
33
+ > (`{MCG_URL}`, `{MCG_CLIENT_ID}`, `{MCG_HASH_KEY}`). This applies to every step below that
34
+ > touches the credential chain.
35
+
36
+ ## What "MCG" actually is (and why the Act-3 toggle is not enough)
37
+
38
+ MCG is **not** a toggle. Act 3's toggle 5 (`mcgPreference`) only **reveals** MCG in the ICM
39
+ Setting UI. The **working feature** is an external-system integration: Salesforce calls out to
40
+ Milliman's CareWebQI API to fetch guidelines, and an async job syncs MCG data back into the
41
+ `ExternalAssessmentDefinition` entity that the Assessment Library's **unified search** reads. That
42
+ requires a full Named-Credential → Integration-Definition → org-value → sync chain — none of which
43
+ the basic toggle touches. **This Act builds that chain.**
44
+
45
+ **Net scope (validated live):** the automatable-via-compliant-transport pieces are the
46
+ prerequisite toggles (MCG preference, Discovery Framework), the credential-chain *structure* + the
47
+ **principal-access permission set** (Phase 4b, MDAPI `PermissionSet` — this skill authors it, not the
48
+ admin), the `enableMcgSyncData` preference
49
+ (MDAPI `IndustriesSettings`), the `MCG_INTEGRATION_DEF_DETAILS` org-value write (**the Setup Connect
50
+ API for org values**), and the Assessment-component wiring (**Tooling** FlexiPage). The
51
+ **Integration-Definition create+activate** (Phase 5) should route to the **`IntegrationConfigurationSetup`
52
+ controller** (`/headless/invoke/platform/integration-configuration/*` — the surface the Setup UI
53
+ itself uses); **prefer** it, but its **managed-`healthcloudext`-Apex-class bind is not yet
54
+ live-verified** over headless dispatch (validate live first), and a subscriber **MDAPI deploy can't
55
+ bind that managed class at all** (MDAPI create works only for Java/LowCode/unmanaged-Apex), so **fall
56
+ back to the Setup UI create** for the managed MCG case if the controller bind isn't confirmed. The
57
+ one step with **no compliant API surface at all** is the `runSync` first sync (no
58
+ MDAPI/Tooling/Connect/invocable/platform-event surface of its own) — guided-manual UI + read-only
59
+ verify. The secret-bearing credential entry (Phase 4a) is the hard-manual step (structure deploys,
60
+ secrets don't); the Phase 4b principal-access perm set is automatable.
61
+ ⚠️ **Runtime object vs deployable metadata type — don't conflate them:** the runtime object
62
+ `IntegrationProviderDefinition` has **no SOQL/Tooling *read* surface** — but it IS
63
+ readable through the `platform/integration-configuration` dispatch surface
64
+ (the `.../get-integration-config-definition-details` read-back + the list route), and the **deployable
65
+ metadata type `IntegrationProviderDef`** (a different, shorter name — dir
66
+ `integrationProviderDefinitions/`, suffix `.integrationProviderDefinition`) is a real public MDAPI
67
+ type. Verify read-only via those controller reads or `listMetadata`/retrieve, **never** SOQL. ⚠️
68
+ **Critical consequence:** the legacy UI wizard set `MCG_INTEGRATION_DEF_DETAILS` **for free**, but a
69
+ **controller- or MDAPI-created definition may NOT** — so Phase 5b's org-value write is
70
+ **verify-or-repair on every path** (read it back; write it if missing/stale; never assume). That
71
+ closes the #1 silent-failure trap only if you *always* verify it.
72
+
73
+ > **Transport discipline for this Act: MD-API / Tooling / Connect only.** The `runSync` first sync
74
+ > is the one capability whose **only** supported surface is the setup UI — a **guided manual** UI
75
+ > action plus read-only verify, never an API call from this skill. The Integration-Definition create
76
+ > is **not** UI-only: prefer the `IntegrationConfigurationSetup` controller dispatch
77
+ > (`/headless/invoke/platform/integration-configuration/*`, a compliant Connect surface). Its managed
78
+ > `healthcloudext` Apex-class bind is **not yet live-verified** over headless dispatch, and a
79
+ > subscriber MDAPI deploy can't bind that managed class at all (MDAPI only for
80
+ > Java/LowCode/unmanaged-Apex), so **fall back to the UI create** for the managed MCG case if the
81
+ > controller bind isn't confirmed.
82
+ >
83
+ > **Read `IndustriesSettings` state (the MCG reveal toggle, Discovery Framework master,
84
+ > `enableMcgSyncData`, `enableGlobalSearchForAssmt`) with a single `Settings:Industries` retrieve**
85
+ > (parent *Transport & deploy discipline* rule 4), not per-toggle Tooling `Is*Enabled` queries — the
86
+ > Tooling `SELECT … FROM IndustriesSettings` path server-errors on OrgFarm orgs. The Tooling column
87
+ > names used below are single-field fallbacks / for resolving exact element names, not the primary
88
+ > read. (`IntegrationProviderDefinition` is a separate matter — a non-queryable runtime POJO read via
89
+ > `listMetadata`/retrieve, never SOQL/Tooling, as its step already states.)
90
+
91
+ ## Never defer the whole Act because of one manual step
92
+
93
+ **A confirmed live-run miss:** MCG setup was deferred **in its entirety** — the credential-chain
94
+ principal-access perm set (Phase 4b, fully MDAPI-automatable — author+deploy+assign) was skipped
95
+ along with the genuinely-manual credential-entry, Integration-Definition create, and `runSync`
96
+ steps — because the admin balked at the manual tail and treating the whole Act as deferred felt
97
+ like the simpler offer. **Do not do this.** The three things in this Act that require an admin
98
+ to leave the chat are (a) entering the MCG secrets (Phase 4a), (b) the MCG **Integration Definition**
99
+ create (Phase 5) — **only if** the controller dispatch can't bind the managed `healthcloudext` Apex
100
+ class (attempt the controller first; a subscriber MDAPI deploy definitely can't bind it, so the UI
101
+ fallback is the leave-the-chat path when the controller bind isn't confirmed), and (c)
102
+ confirming/running the first sync (Phase 7). Everything else — license detect, preference toggles, the **Phase 4b perm set**
103
+ (author+deploy+assign), the `MCG_INTEGRATION_DEF_DETAILS`/`enableMcgSyncData` writes, and the
104
+ Assessment-component wiring — has a compliant transport and must run regardless of whether or when
105
+ the admin does the three manual pieces. In particular **the Phase 4b perm set is NOT part of the
106
+ credential's manual boundary** — build and assign it even when the admin enters the secrets by hand.
107
+ If the admin isn't ready for credential entry yet, say so plainly and keep going with everything
108
+ that doesn't depend on the credential existing yet (the Phase 4b perm set can be authored and
109
+ deployed before secrets are entered); only the pieces that genuinely need the credential/definition
110
+ to exist first (the `MCG_INTEGRATION_DEF_DETAILS` write, the component wiring, `runSync`) wait on it.
111
+
112
+ ## License stack — DETECT FIRST, hard-stop if the ISE PSL is absent
113
+
114
+ MCG's gating unknown for any given org. Detect via the real `PermissionSetLicense.DeveloperName`
115
+ values (never the non-existent `*AddOn` names — the same lesson as Act 1/Act 5 license detection):
116
+
117
+ | Required entitlement | Queryable proxy — `PermissionSetLicense.DeveloperName` | On absence |
118
+ |---|---|---|
119
+ | Industries Service Excellence (backs the Integration Definition) | `IndustriesServiceExcellencePsl` | **HARD STOP** |
120
+ | Health Cloud base | `HealthCloudGA_HealthCloudPsl` | **HARD STOP** |
121
+ | OmniStudio (the sync runs an OmniStudio Integration Procedure) | `OmniStudioDesigner`, `OmniStudioRuntime`, `OmniStudioRuntimeCC` | report + continue best-effort |
122
+ | Dynamic Assessments | `DynamicAssessmentPsl` | report + continue |
123
+ | Community access (if MCG via a site) | `HealthCloudCmtyAccessPSL` | report + continue |
124
+
125
+ ```sql
126
+ SELECT DeveloperName, TotalLicenses, UsedLicenses FROM PermissionSetLicense
127
+ WHERE DeveloperName IN ('IndustriesServiceExcellencePsl','HealthCloudGA_HealthCloudPsl',
128
+ 'OmniStudioDesigner','OmniStudioRuntime','OmniStudioRuntimeCC','DynamicAssessmentPsl')
129
+ ```
130
+
131
+ If `IndustriesServiceExcellencePsl` (or the HC base PSL) returns zero rows: **stop and name every
132
+ missing entitlement explicitly** — "MCG can't be set up — your org is missing Industries Service
133
+ Excellence; ask your account team to provision it, then re-run." Don't attempt the Integration
134
+ Definition create into an org that lacks it (Phase 5 will reject). Report the full list of what's
135
+ absent, not the first miss.
136
+
137
+ ## Standalone entry — re-check and enable the prerequisites
138
+
139
+ When Act 6 is asked for on its own, re-verify the two prerequisites it depends on and enable what
140
+ you can (reuse the existing idempotent enable/verify idiom — do not author parallel logic):
141
+
142
+ 1. **Discovery Framework** (Act 2 master `enableIndustriesAssessment`) — enable if off. The
143
+ Assessment component and its unified search gate on it.
144
+ 2. **MCG preference** (Act 3 toggle 5, `mcgPreference`, enable and verify via the
145
+ existing toggle steps) — enable
146
+ if off. This only *reveals* MCG in the UI; the rest of this Act does the real work.
147
+
148
+ Person Accounts and the base ICM prereqs are Act 1's concern; if Act 6 is truly the first thing
149
+ run against a green org, defer to Act 1's hard-stop on Person Accounts before proceeding.
150
+
151
+ ## What this Act does — the phases
152
+
153
+ Follow the runbook's per-step automation verdicts; the phases below are the validated live
154
+ sequence. **Every write uses a compliant transport — MD-API / Tooling / Connect only.**
155
+ The `runSync` first sync (Phase 7 — no supported API surface) is **guided manual** (setup-UI action +
156
+ read-only verify, not an API call from this skill). The **Integration-Definition create+activate
157
+ (Phase 5)** prefers the **`IntegrationConfigurationSetup` controller dispatch**
158
+ (`/headless/invoke/platform/integration-configuration/*`) — its managed-`healthcloudext`-Apex-class
159
+ bind is **not yet live-verified** over headless dispatch, and a subscriber MDAPI deploy can't bind
160
+ that managed class at all (MDAPI viable only for Java/LowCode/unmanaged-Apex service classes), so
161
+ **fall back to the UI create** for the managed MCG case if the controller bind isn't confirmed. Standard
162
+ write discipline otherwise (MDAPI/Tooling fallback on 404; dry-run before real deploys; re-read to
163
+ verify — see the parent SKILL.md "Transport & deploy discipline").
164
+
165
+ > **Hand-off batching (see the parent SKILL.md "Manual-step hand-offs — batch per tier, then
166
+ > verify").** This Act is the case that shows why you batch *within* a tier and never collapse the
167
+ > chain. Three manual boundaries exist along the automated chain: the **Phase 4a credential entry**
168
+ > (External Credential + Named Principal + Named Credential secrets) is one manual cluster the admin
169
+ > does in a single trip to Setup, up front; the **Phase 5 Integration-Definition create** — a manual
170
+ > boundary **only if** its controller dispatch can't bind the managed Apex class (then a UI-create
171
+ > hand-off); and the **Phase 7 first sync**. Between them sit the fully
172
+ > automated pieces this skill runs itself: the **Phase 4b principal-access perm set**, the **Phase 5b**
173
+ > org-value write, and the **Phase 6** component wiring. So hand off the credential cluster together,
174
+ > verify it read-only, author+deploy+assign the Phase 4b perm set, attempt the Phase 5 controller
175
+ > create (hand off the UI create only if it can't bind the managed class),
176
+ > then run the automated Phase 5b → 6 work, then hand off Phase 7 (sync) at its point in the chain.
177
+ > Keep the admin oriented with a running marker (e.g. *"Act 6 of 9 · credential entry is the manual
178
+ > step (plus the Integration-Definition create if the controller can't bind the managed class); the
179
+ > first sync is the last hand-off after I wire the org value"*), and verify every hand-off by reading
180
+ > org state back (`calloutStatus`, the
181
+ > definition read back via `listMetadata`/retrieve, `MCG_INTEGRATION_DEF_DETAILS`, the
182
+ > `MCG_SYNC_JOB_DETAILS` poll) — never on the admin's "done" alone.
183
+
184
+ ### Phase 1 — Licenses (detect + report)
185
+ The license table above. Hard-stop on a missing `IndustriesServiceExcellencePsl` / HC base PSL;
186
+ otherwise report and continue.
187
+
188
+ ### Phase 2 — MCG preference (verify-then-enable)
189
+ Act 3 toggle 5. Verify `getPreference(mcgPreference)`; enable if off. Idempotent.
190
+
191
+ ### Phase 3 — Discovery Framework (verify-then-enable)
192
+ Act 2 master. Verify; enable if off. Idempotent.
193
+
194
+ ### Phase 4 — Credential chain (secret entry is hard-manual; the principal-access perm set is AUTOMATABLE)
195
+ This phase has **two distinct halves** — do not collapse them. 4a (secrets) is hard-manual; 4b (the
196
+ MCG permission set) is a compliant MDAPI deploy this skill **must author itself**, even when the admin
197
+ builds 4a in the UI.
198
+
199
+ **4a — External + Named Credential (HARD-MANUAL, secret-bearing):**
200
+ 1. **External Credential** (Basic Auth) `MCG` + a **Named Principal** — ⚠️ **sequenceNumber `2`
201
+ (NOT 1)**. The `ExternalCredential` *structure* is MDAPI-deployable, but the
202
+ **ClientID (username) + HashKey (password) are secrets** — **guide the admin through secure
203
+ UI entry**; never bake them into a deploy artifact, script, or committed metadata.
204
+ 2. **Named Credential** `MCG` pointing at the MCG endpoint (`{MCG_URL}` — customer-specific;
205
+ presumes a real Milliman account), enabled for callout. Verify `calloutStatus = Enabled`.
206
+
207
+ **4b — MCG permission set (AUTOMATABLE — this skill authors, deploys, and assigns it):**
208
+ 3. **Permission Set** (suggested API name **`ICM_MCG_External_Credential_Access`**, label "Health
209
+ Cloud ICM MCG External Credential Access" — detect an existing equivalent first, don't blind-create)
210
+ with an **`externalCredentialPrincipalAccesses`** entry granting access to the 4a Named Principal,
211
+ the **`UserExternalCredentials`** user permission, and the **SetupEntityAccess** row wiring the perm
212
+ set to the principal. This is a normal MDAPI `PermissionSet` deploy — **it has a compliant transport
213
+ and is NOT part of the manual secret entry.**
214
+ 4. **Assign** that perm set — gated like every perm-set assignment in this skill:
215
+ check → report → confirm → assign, **never auto-assign** (`DUPLICATE_VALUE` = already-assigned
216
+ success).
217
+
218
+ > ⚠️ **The perm set is a SEPARATE deliverable from the credential — build it even when the admin
219
+ > enters the credentials manually.** A confirmed live-run miss: the admin created the External/Named
220
+ > Credential + principal in the UI, so the run treated *all* of Phase 4 as "the admin's manual work"
221
+ > and **never authored the principal-access permission set at all** — then, when asked "what's the
222
+ > name of the custom MCG perm set you created?", answered "I didn't create one." The only genuinely
223
+ > hard-manual piece is the **secret entry (4a)**; the **permission set (4b) is always this skill's job**
224
+ > and produces a named, deployable artifact the admin can point to. Authoring it needs only the
225
+ > Named Principal to exist (4a step 1) — it does **not** wait on Phase 5.
226
+
227
+ ### Phase 5 — Integration Definition (create + activate)
228
+ The **runtime** object is the Industries Consumption Framework **`IntegrationProviderDefinition`** —
229
+ not SOQL-queryable. It is reachable through **three** surfaces, not the two
230
+ ("MDAPI vs. UI") this Act originally framed:
231
+ - **A dispatchable server-side surface** — the public `platform/integration-configuration` dispatch
232
+ routes under `/headless/invoke/platform/integration-configuration/*`. They carry both the
233
+ **create/activate writes** the Setup UI itself calls and the **dispatch reads**
234
+ (`.../get-integration-config-definition-details` + the list route) — so the runtime object
235
+ is NOT read-surface-less; only *SOQL/Tooling* can't see it.
236
+ - **The `IntegrationProviderDef` Metadata API type** (a *different, shorter* name — dir
237
+ `integrationProviderDefinitions/`, suffix `.integrationProviderDefinition`), a real public type.
238
+ - **The Setup UI** create wizard.
239
+
240
+ > ⚠️ **PREFER the controller dispatch; fall back to the UI for the managed MCG case.** The controller
241
+ > is the surface the Setup UI itself uses, so it is the right thing to **attempt** from a hosted agent
242
+ > (no CLI / no local deploy / no external auth):
243
+ > 1. `GET /headless/invoke/platform/integration-configuration/fetch-apex-class-records` — resolve the
244
+ > Apex class id (the same picker the UI uses; it surfaces managed/namespaced classes like
245
+ > `healthcloudext.HealthCareICMExternalService`).
246
+ > 2. `PATCH .../create-or-update-integration-configuration-definition` with
247
+ > `integrationConfigurationDefinitionJson` = `{ definitionType: Apex, the resolved apexClassId,
248
+ > integrationProviderAttributes Edition + Named Credential }`.
249
+ > 3. `PATCH .../activate` with the returned definition id.
250
+ > 4. Verify via the dispatch reads (`.../get-integration-config-definition-details` or the list
251
+ > route) — `isActive=true`, capture `developerName`.
252
+ >
253
+ > ⚠️ **This managed-class bind is NOT yet live-verified over headless dispatch — validate it
254
+ > end-to-end on a live org (expertise harness) before promising it.** What **is** live-proven: a
255
+ > subscriber **MDAPI deploy CANNOT bind the managed Apex class.** MCG's def points at `type=Apex`,
256
+ > `apexClass=healthcloudext.HealthCareICMExternalService` — a **managed-package global class**. A
257
+ > subscriber's **MDAPI `ApexClassId` resolver cannot bind a managed global class** that isn't
258
+ > subscriber-SOQL-visible (`SELECT … FROM ApexClass` returns 0 rows; Tooling too), even though the
259
+ > **Setup UI apex-class picker resolves it fine**. A live run proved this: with a fully valid XML
260
+ > body, the deploy failed `In field: ApexClassId - no ApexClass named
261
+ > healthcloudext.HealthCareICMExternalService found` — for *every* reference format
262
+ > (`HealthCareICMExternalService`, `healthcloudext__HealthCareICMExternalService`,
263
+ > `healthcloudext.HealthCareICMExternalService`). This is a **platform visibility boundary, not a
264
+ > naming mistake**. So **if the controller bind is not (yet) confirmed for the managed class, guide
265
+ > the admin to create + activate the definition in the Setup UI** (Integrated Care Management Setting
266
+ > → the MCG section, or Consumption Framework "Integrations" → New), then resume automation. The MDAPI
267
+ > deploy is only viable when the service class is **`type=Java`/`type=LowCode`, or
268
+ > first-party/unmanaged Apex** — not the managed `healthcloudext` class. (The earlier "AUTOMATABLE via
269
+ > a compliant MDAPI deploy, verified end-to-end" verdict was validated against the shipped `type=Java`
270
+ > **sample** class `industriesintegrationfwk.SampleJavaClass`, which binds fine — it never exercised
271
+ > the managed MCG Apex class, which does not.)
272
+
273
+ **Create values** (controller payload, or the wizard fields on the UI fallback):
274
+ - **Apex class**: `healthcloudext.HealthCareICMExternalService` (resolve its id via
275
+ `fetch-apex-class-records` for the controller payload).
276
+ - **Named Credential**: the NC from Phase 4a (`MCG`)
277
+ - **Edition**: an **admin question** — ask; **default the current release value, e.g. `29`**; it
278
+ upgrades across releases, don't assume.
279
+ - **Active**: yes (the `activate` call, or check "Active" on save in the UI).
280
+ - **Name**: anything (e.g. `MCGNEW`) — **auto-discover it afterward** (controller read /
281
+ `listMetadata`), so the admin doesn't need to report it. (`MCGNEW` is a common wizard default; other
282
+ orgs differ — never hardcode.)
283
+
284
+ After create+activate: **read it back** — via the dispatch reads
285
+ (`.../get-integration-config-definition-details` or the list route) or `listMetadata`/retrieve — confirm `active=true`
286
+ and **capture the org's actual `developerName`** for Phases 5b and 6. **Do not SOQL
287
+ `IntegrationProviderDefinition`** (the runtime object isn't SOQL/Tooling-visible); the dispatch reads
288
+ or `listMetadata`/retrieve are the supported read paths.
289
+
290
+ **If you DO deploy via MDAPI (Java/LowCode/unmanaged-Apex case), the exact `IntegrationProviderDef`
291
+ schema is (reverse-engineered live — don't re-discover it by dry-run iteration):**
292
+ ```xml
293
+ <?xml version="1.0" encoding="UTF-8"?>
294
+ <IntegrationProviderDef xmlns="http://soap.sforce.com/2006/04/metadata">
295
+ <active>true</active> <!-- the active element does the activation -->
296
+ <apexClass>...</apexClass> <!-- or <javaClassName>/<lowCode ref>; NO top-level masterLabel (label = file name) -->
297
+ <integrationProviderAttributes>
298
+ <dataType>String</dataType> <!-- per-attribute REQUIRED, alphabetical order: -->
299
+ <developerName>Edition</developerName> <!-- dataType, developerName, label, required, stringValue -->
300
+ <label>Edition</label>
301
+ <required>false</required>
302
+ <stringValue>29</stringValue> <!-- value element is stringValue, NOT value/masterLabel -->
303
+ </integrationProviderAttributes>
304
+ <integrationProviderAttributes>
305
+ <dataType>String</dataType>
306
+ <developerName>NamedCredential</developerName>
307
+ <label>Named Credential</label>
308
+ <required>false</required>
309
+ <stringValue>MCG</stringValue>
310
+ </integrationProviderAttributes>
311
+ <type>Apex</type> <!-- top-level order: active, apexClass, attributes, type -->
312
+ </IntegrationProviderDef>
313
+ ```
314
+ The two MCG attribute developerNames — **`Edition`** and **`NamedCredential`** — are **live-confirmed**
315
+ against a UI-created def's retrieve (Edition=`29`, NamedCredential=`MCG`); the retrieve normalizes the
316
+ class to `healthcloudext__HealthCareICMExternalService`.
317
+
318
+ > The old NPE/`apexOldAttributes` and reflected-attribute-casing traps belonged to a *different*,
319
+ > internal programmatic create path and do **not** apply to the `IntegrationProviderDef` MDAPI deploy
320
+ > or the UI-wizard fallback.
321
+
322
+ ### Phase 5b — Set the org-value the sync depends on ⚠️ CRITICAL — VERIFY-OR-REPAIR on every path
323
+ ⚠️ **Whichever way Phase 5 created the definition (controller dispatch, MDAPI, or the UI fallback),
324
+ this org value may not be set — so read it back and write it if missing/stale; never assume.** A
325
+ **controller- or MDAPI-created `IntegrationProviderDef` may NOT populate `MCG_INTEGRATION_DEF_DETAILS`**
326
+ — only the legacy UI wizard set it "for free," and even then a live run found it `null` after a UI
327
+ create. So `GET` it first; if it is missing or stale (pointing at a since-replaced def), **you must
328
+ write it.** If it stays unset, the sync no-ops → **zero** `ExternalAssessmentDefinition` records →
329
+ **unified assessment search silently returns nothing** while everything *looks* configured (the #1
330
+ silent failure). Treat Phases 5 → 5b → 7 as one indivisible unit.
331
+
332
+ 1. **`MCG_INTEGRATION_DEF_DETAILS`** must carry the **active definition's developerName** (Phase 5 —
333
+ read it from the definition via the controller reads or `listMetadata`/retrieve, never hardcode).
334
+ Always `GET` the org value first; write it via `PATCH
335
+ /services/data/v{version}/setup/org/values/MCG_INTEGRATION_DEF_DETAILS` only if it is missing or
336
+ stale — this **is a compliant, supported transport** (**the Setup Connect API** — a supported
337
+ REST/Connect resource). ⚠️ The PATCH **request** field is
338
+ **`orgValue`** (a bare `stringValue`/`value` → `JSON_PARSER_ERROR`; the GET *response* shape
339
+ `{stringValue,booleanValue,…}` is NOT the request shape):
340
+ ```json
341
+ {"orgValue":"{\"developerName\":\"<active def developerName>\"}"}
342
+ ```
343
+ ⚠️ **Read the developerName from the active `IntegrationProviderDefinition` — never hardcode a
344
+ literal.** It is customer-specific (`MCGNEW` is a common wizard default; other orgs differ). The
345
+ enum name is underscored (`MCG_INTEGRATION_DEF_DETAILS`), **not** camelCase.
346
+ 2. **`enableMcgSyncData = true`** (`IndustriesSettings`) — the sync's org preference gate.
347
+ `PUT /services/data/v{version}/headless/metadata` with a **minimal** settings body — ⚠️ the
348
+ envelope is `{type, fullName, xmlRep}` (raw XML in `xmlRep`), **not** `{metadataType, fullName,
349
+ body}`; and use a **single-field** body — round-tripping a full read redeploys read-only prefs
350
+ and 500s (`INSUFFICIENT_ACCESS_OR_READONLY`):
351
+ ```json
352
+ {"type":"IndustriesSettings","fullName":"Industries",
353
+ "xmlRep":"<IndustriesSettings xmlns=\"http://soap.sforce.com/2006/04/metadata\"><enableMcgSyncData>true</enableMcgSyncData></IndustriesSettings>"}
354
+ ```
355
+ ⚠️ **Read-back caveat (don't burn cycles retrying the GET):** the `Settings:Industries`
356
+ settings-read GET **does not reliably echo `enableMcgSyncData`** — a live run saw it return only
357
+ `enableMcgSetting` while `enableMcgSyncData` was simply absent from the response, which is **not**
358
+ evidence the write failed. Confirm persistence via the **Tooling** object instead
359
+ (`SELECT EnableMcgSyncData FROM IndustriesSettings`, non-OrgFarm only — the OrgFarm caveat above
360
+ still applies); if neither read surface returns the field on this org, **rely on the PUT/deploy
361
+ success** rather than re-issuing the read in different query-string forms. (On an org where the
362
+ `headless/metadata` PUT is not available, the customer-transport equivalent is an
363
+ `sf project deploy` of the same one-field `IndustriesSettings`.)
364
+
365
+ ### Phase 6 — Wire the Assessment component's External Assessment Integration attribute
366
+ The Assessment component (`industries_common:assessmentContainer`) exposes the design attribute
367
+ **`integrationDefinition`** (LAB label "External Assessment Integration"), which must hold the
368
+ Integration Definition's **developerName**. A Tooling FlexiPage metadata write, independent of
369
+ FlexCard activation:
370
+
371
+ 1. Find the FlexiPage(s) carrying the component: `SELECT Id,DeveloperName FROM FlexiPage` (Tooling),
372
+ retrieve each, and match the `componentInstance` with
373
+ `componentName = "industries_common:assessmentContainer"` — the **ICM** Account record page
374
+ (e.g. `ICM_Account_Record_Page` from Act 4, matched by its tab-label props), **not** the plain
375
+ `Account_Record_Page` (which has no assessmentContainer).
376
+ 2. Inject/replace `{"name":"integrationDefinition","value":"<active def developerName>"}` in that
377
+ instance's `componentInstanceProperties`, then `PATCH` the FlexiPage with the full `Metadata`
378
+ block (HTTP 204). Read-back to confirm it persisted.
379
+ 3. ⚠️ **Read the value from the active definition — never hardcode a literal** (`MCGNEW`/`MCG`
380
+ differ per org). Same rule as Phase 5b.
381
+
382
+ ### Phase 7 — (optional, on confirmation) kick off the first data sync — GUIDED MANUAL (no compliant API)
383
+ There is **no supported API to trigger the sync** — there is **no MDAPI / Tooling /
384
+ Connect / invocable / platform-event** surface, so it is **out of this skill's transport scope**.
385
+ **Do not attempt it programmatically.** Instead, guide the admin to run the sync from the **Integrated Care Management
386
+ Setting** UI (the "Sync" / "Sync Now" action on the MCG section). ⚠️ This is a **real external
387
+ callout to the customer's MCG endpoint** = *using* the feature, not strictly a setup step, and it is
388
+ guarded to sysadmin/customize-application + `ORG_HAS_HEALTH_CLOUD` + `ORG_HAS_CARE_PLANS`. **Only
389
+ proceed on explicit admin confirmation.** The sync reads `developerName` out of
390
+ `MCG_INTEGRATION_DEF_DETAILS` (Phase 5b), runs the OmniStudio IP `GetGuidelines_Metadata`, and
391
+ upserts `ExternalAssessmentDefinition` (Name←GuidelineTitle, SourceSystemName='MCG', …). Verify
392
+ read-only: poll the `MCG_SYNC_JOB_DETAILS` org value (`currentSyncStatus`/`lastSyncStatus`) for
393
+ completion. On success, `ExternalAssessmentDefinition` populates and the Assessment Library's
394
+ unified search returns those indexed records (allow a few minutes for SOSL indexing lag).
395
+
396
+ ## Unified search dependency (why "search returns nothing" after setup)
397
+
398
+ When **`enableGlobalSearchForAssmt` / `IsGlobalSearchForAssmtEnabled`** (the "Unified Search
399
+ Experience for Assessments" pref, API 67.0+, **deployed in [Act 5](../act5-genai-suggested-assessments/SKILL.md),
400
+ NOT this Act**) is ON, the Assessment Library search runs as a
401
+ **SOSL** query over `OmniProcess` + `ExternalAssessmentDefinition` and returns only **indexed**
402
+ records. `ExternalAssessmentDefinition` is populated **exclusively by the MCG sync** (Phase 7). So
403
+ the chain that MUST be complete for unified search to return results is:
404
+ **Act 5 (`enableGlobalSearchForAssmt` genuinely effective) → Phase 5 (create+activate def) → Phase
405
+ 5b (`MCG_INTEGRATION_DEF_DETAILS` + `enableMcgSyncData`) → Phase 7 (`runSync` upserts
406
+ `ExternalAssessmentDefinition`)**. Break any link — most commonly a **Phase 5 create (controller or
407
+ MDAPI) with Phase 5b skipped** (a programmatic create may NOT set the org value, so skipping 5b is
408
+ the default failure on the automated path) — and unified search silently shows the empty state even though direct
409
+ (pref-OFF) search works.
410
+
411
+ **Recognized recurring symptom — "search works with the pref off but fails with it on."** This has
412
+ recurred across multiple runs even after being fixed once before, so treat it as a known failure
413
+ class, not a one-off: it means the pref is reading `true` but at least one link in the chain above
414
+ is actually broken. **Don't stop at "the preference reads true" — re-verify the whole chain every
415
+ time this symptom is reported:**
416
+ 1. **Re-confirm `enableGlobalSearchForAssmt` is genuinely effective** — re-read
417
+ `IsGlobalSearchForAssmtEnabled`, and confirm it isn't itself silently dropped (Act 5's own
418
+ gate/version-floor caveats apply here too).
419
+ 2. **Re-read `MCG_INTEGRATION_DEF_DETAILS`** — don't assume the earlier Phase 5b write is still
420
+ correct. A later redeploy of the Integration Definition, or a definition recreated with a new
421
+ `developerName`, leaves the org value pointing at a **stale** definition — it will still be
422
+ "set" (non-null), so a naive presence-check passes while the value itself is wrong. Compare its
423
+ `developerName` against the **currently active** `IntegrationProviderDef` read via
424
+ `listMetadata`/retrieve, not just "is it non-null."
425
+ 3. **Run an explicit `ExternalAssessmentDefinition` COUNT, don't infer it from "the sync ran
426
+ successfully."** `SELECT COUNT() FROM ExternalAssessmentDefinition` (or `WHERE
427
+ SourceSystemName='MCG'`) — a `runSync` that reports success can still upsert zero rows if
428
+ `MCG_INTEGRATION_DEF_DETAILS` was stale at sync time (step 2) or the callout partially failed.
429
+ Zero rows here is the direct, unambiguous cause of the empty-state symptom; a non-zero count that
430
+ still doesn't show up in search points at indexing lag (next) instead.
431
+ 4. **Allow longer than "a few minutes" for SOSL indexing before concluding it's broken.** Indexing
432
+ lag on `ExternalAssessmentDefinition` (an `isTextIndexed` object) has been observed to run
433
+ noticeably longer than a first-glance check accounts for — if the COUNT in step 3 is non-zero,
434
+ re-check search after a longer wait (on the order of 15-30 minutes, not 2-3) before concluding
435
+ the chain is broken again; re-verify steps 1-3 first so you're not just waiting out an indexing
436
+ delay that's masking a real stale-value bug.
437
+
438
+ **Separate, org-side condition (not fixable from this Act):** the LAB **OmniProcess Fields /
439
+ Unified Search Fields** default-field pickers only render their built-in defaults with
440
+ a Salesforce-managed release setting (API version 67.0+) enabled; on an older org, or one where
441
+ that release setting isn't enabled, those lists show empty and "Add Field" errors. That's an org
442
+ version / release-setting condition, **not** a metadata write — flag it, don't try to fix it via
443
+ the component.
444
+
445
+ ## Deferred / report-only (call out, do not build)
446
+
447
+ - **Named-Credential endpoint + secrets** (Phase 4a) — the structure deploys, the ClientID/HashKey/
448
+ URL do not. Hard-manual, secure UI entry. (The Phase 4b principal-access perm set is a SEPARATE,
449
+ automatable deliverable — it is NOT deferred; see Act end state.)
450
+ - **MCG Integration-Definition create** (Phase 5, real-MCG case) — **not flatly deferred: attempt the
451
+ `platform/integration-configuration` dispatch surface first** (`/headless/invoke/platform/integration-configuration/*`
452
+ — fetch the managed apex class id, `create-or-update-integration-configuration-definition`, then
453
+ `activate`). That dispatch-bound create is **not yet live-verified for the managed `healthcloudext`
454
+ Apex class**, and the subscriber **MDAPI** `IntegrationProviderDef` deploy definitely can't bind it
455
+ (MDAPI create is viable only for Java/LowCode/unmanaged-Apex) — so if the controller create fails on
456
+ the managed class, **fall back to the guided Setup-UI create**. Everything around it
457
+ (Edition/NamedCredential values, read-back, the `MCG_INTEGRATION_DEF_DETAILS` verify-or-repair,
458
+ component wiring) is automated regardless of which create path lands.
459
+ - **"User External Credentials" on a standard-user profile** — profile edits are heavy/risky;
460
+ treat as guided, confirm scope before touching a shared profile.
461
+ - **Automated Process user perm-set grant for the cron sync** — binding the MCG permission set to
462
+ the Automated Process user (for the cron sync job) has no supported customer API surface. Report as a gap; don't fabricate a
463
+ call path.
464
+ - **The API-67 / release-setting condition** behind the empty LAB field-pickers (above).
465
+
466
+ ## Act 6 end state
467
+
468
+ - MCG license stack detected (`IndustriesServiceExcellencePsl` + HC base present) — or the Act
469
+ stopped with a named missing-license message.
470
+ - MCG preference + Discovery Framework verified/enabled.
471
+ - Credential chain built: External Credential + Named Principal (**sequenceNumber 2**), Named
472
+ Credential (`calloutStatus = Enabled`) — with the secret entry done by the admin, never by this
473
+ skill (Phase 4a).
474
+ - **MCG permission set authored, deployed, and assigned by this skill (Phase 4b)** — a named artifact
475
+ (e.g. `ICM_MCG_External_Credential_Access`) with `externalCredentialPrincipalAccesses` to the Named
476
+ Principal + the `UserExternalCredentials` user perm + SetupEntityAccess, assigned on confirmation.
477
+ **Built even when the admin created the credentials manually** — it is not part of the manual secret
478
+ entry, and the admin should be able to name it.
479
+ - Integration Definition created **and activated**, Edition set to the admin's value, Named Credential
480
+ wired — **dispatch-first for MCG** (via the public
481
+ `/headless/invoke/platform/integration-configuration/*` routes), **guided Setup-UI create as the fallback**
482
+ if the controller-bound create can't bind the managed `healthcloudext` Apex class (that bind is not
483
+ yet live-verified; the subscriber MDAPI deploy definitely can't do it — MDAPI create is viable only
484
+ for Java/LowCode/unmanaged-Apex), with the org's actual `developerName` read back via the controller
485
+ read / `listMetadata` (not SOQL).
486
+ - **`MCG_INTEGRATION_DEF_DETAILS` set** via the Connect PATCH (on any **programmatic create path**
487
+ — controller or MDAPI — assume it is NOT set for you; on the **UI create path** the wizard
488
+ *sometimes* sets it — a live run found it `null` after a UI create, so on **every** path **read it
489
+ back and write it if missing/stale**, never assume) and **`enableMcgSyncData = true`**.
490
+ - Assessment component's `integrationDefinition` attribute set to the active def's developerName
491
+ (Tooling FlexiPage, read not hardcoded).
492
+ - Optionally, the first sync run from the UI on confirmation → `ExternalAssessmentDefinition`
493
+ populated → unified assessment search returns results.
494
+ - The genuine deferrals (`runSync` = guided-manual, no compliant API at all; secret entry; User
495
+ External Credentials profile flag; Automated Process user grant; the API-67 / release-setting
496
+ field-picker condition) reported explicitly. **The MCG Integration-Definition create is NOT in this
497
+ list** — it is controller-first with a UI fallback (the fallback fires only if the not-yet-live-verified
498
+ controller bind of the managed `healthcloudext` Apex class fails), reported as such.
499
+
500
+ ## Gotchas learned from live execution
501
+
502
+ - **Transport discipline: controller / MD-API / Tooling / Connect — in that order of preference.**
503
+ Only **one** thing has **no compliant write path for the real MCG case** and is flatly guided-manual:
504
+ **`runSync`** (no MDAPI/Tooling/Connect/invocable/platform-event/controller surface at all). The
505
+ **MCG Integration-Definition create** is NOT in that bucket — it has a real server-side surface, the
506
+ public **`platform/integration-configuration`** dispatch routes at `/headless/invoke/platform/integration-configuration/*`
507
+ (the same picker the UI uses; it surfaces managed classes). **Attempt that dispatch create first**
508
+ (fetch apex class id → `create-or-update-integration-configuration-definition` → `activate`). CAUTION:
509
+ binding the managed `healthcloudext` Apex class over that controller is **not yet live-verified** —
510
+ so if it fails, fall back to the guided Setup-UI create. The deployable metadata type
511
+ **`IntegrationProviderDef`** (shorter name than the runtime POJO `IntegrationProviderDefinition`)
512
+ *is* a real public MDAPI type, BUT a subscriber MDAPI deploy **definitely cannot bind MCG's managed
513
+ `healthcloudext` Apex class** (not subscriber-SOQL-visible, so the `ApexClassId` resolver fails) —
514
+ which is exactly what a live run hit — so MDAPI create is viable only for Java/LowCode/unmanaged-Apex
515
+ integration defs. Don't re-conflate the non-queryable runtime POJO (no SOQL *read* surface) with the
516
+ deployable metadata type; read the created def back via the controller read / `listMetadata`, never SOQL.
517
+ - **The `MCG_INTEGRATION_DEF_DETAILS` org value is load-bearing — and MANDATORY to verify-or-repair on
518
+ every programmatic create path.** A **programmatically created def (controller OR MDAPI) may NOT set
519
+ it** (only the legacy UI wizard did, for free — and a live run found even a UI create left it `null`) —
520
+ so on any automated path you must read it back and PATCH it yourself; skipping it silently no-ops the
521
+ sync → 0 `ExternalAssessmentDefinition` → unified search returns nothing while looking correct.
522
+ Write/repair via the compliant Connect PATCH (the Setup Connect API for org values). Always do
523
+ Phases 5 → 5b → 7 as a unit. (An earlier research pass used the wrong camelCase enum name and
524
+ wrongly concluded the org value "didn't apply" — the real name is underscored and it IS required.)
525
+ - **Transport request-vs-response shapes differ.** The org-value PATCH accepts `{"orgValue":…}`,
526
+ not the GET's `{stringValue,…}` response shape. The `/headless/metadata` deploy body is
527
+ `{type,fullName,xmlRep}` (raw XML), not `{metadataType,fullName,body}`; use a minimal one-field
528
+ settings body or a full round-trip 500s on read-only prefs.
529
+ - **Never hardcode the definition developerName** — read it from the active `IntegrationProviderDef`
530
+ via `listMetadata`/retrieve (never SOQL — the runtime `IntegrationProviderDefinition` POJO has no
531
+ queryable surface). It is customer-specific (`MCGNEW` common default; others differ) and is written
532
+ in two places (Phase 5b org value + Phase 6 component attr) — both must use the org's actual value.
533
+ - **`runSync` is a real external MCG callout**, not a passive setup step — proceed only on explicit
534
+ confirmation (from the setup UI), and only once the credential chain + Phase 5b are complete.
535
+
536
+ <!-- skill-validate: ignore-start -->
537
+ <!-- codey:operations start -->
538
+ ## Operations Reference
539
+
540
+ Operations this skill uses — routing and dependency reference.
541
+
542
+ | Operation | Purpose | Status | Call | Depends on |
543
+ |-----------|---------|--------|------|------------|
544
+ | `detect-mcg-license-stack` | read | — | `GET /services/data/v63.0/query` | — |
545
+ | `establish-mcg-credential-chain` | discovery | — | — | `detect-mcg-license-stack` |
546
+ | `provision-mcg-integration-definition` | write | — | `PATCH /headless/invoke/platform/integration-configuration/create-or-update-integration-configuration-definition` | `establish-mcg-credential-chain` |
547
+ | `verify-mcg-integration-definition-active` | verify | — | `GET /headless/invoke/platform/integration-configuration/get-integration-config-definition-details` | `provision-mcg-integration-definition` |
548
+ | `run-mcg-first-data-sync` | discovery | — | — | — |
549
+ <!-- codey:operations end -->
550
+ <!-- skill-validate: ignore-end -->