@salesforce/afv-skills 1.46.0 → 1.48.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 (317) hide show
  1. package/package.json +1 -1
  2. package/skills/agentforce-observe/SKILL.md +32 -4
  3. package/skills/agentforce-observe/references/ahm-alerts.md +719 -0
  4. package/skills/consumer-goods-promotion-bo-api-deploy/SKILL.md +275 -0
  5. package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/README.md +32 -0
  6. package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/SetCommentValue.cls +75 -0
  7. package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/SetCommentValue.cls-meta.xml +5 -0
  8. package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/interview-answers.json +13 -0
  9. package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/payloads/copy.json +10 -0
  10. package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/payloads/create.json +20 -0
  11. package/skills/consumer-goods-promotion-bo-api-deploy/assets/set-comment-value/payloads/update.json +16 -0
  12. package/skills/consumer-goods-promotion-bo-api-deploy/references/conventions-and-payload-rules.md +273 -0
  13. package/skills/consumer-goods-promotion-bo-api-deploy/references/generate-and-wire.md +236 -0
  14. package/skills/consumer-goods-promotion-bo-api-deploy/references/reference-example-set-comment-value.md +132 -0
  15. package/skills/consumer-goods-promotion-bo-api-deploy/references/smoke-and-verify.md +211 -0
  16. package/skills/dx-devops-project-manage/SKILL.md +197 -0
  17. package/skills/dx-devops-project-manage/examples/common-workflows.md +197 -0
  18. package/skills/dx-devops-project-manage/references/cli-commands.md +295 -0
  19. package/skills/dx-devops-project-manage/scripts/create-project.sh +48 -0
  20. package/skills/dx-devops-project-manage/scripts/list-projects.sh +51 -0
  21. package/skills/dx-devops-project-manage/scripts/update-project.sh +96 -0
  22. package/skills/education-cloud-academic-calendar-generate/SKILL.md +225 -0
  23. package/skills/education-cloud-academic-calendar-generate/examples/quarter-calendar.json +47 -0
  24. package/skills/education-cloud-academic-calendar-generate/examples/sample-output.md +57 -0
  25. package/skills/education-cloud-academic-calendar-generate/examples/semester-calendar.json +54 -0
  26. package/skills/education-cloud-academic-calendar-generate/references/calendar-systems.md +127 -0
  27. package/skills/education-cloud-academic-calendar-generate/references/date-validation.md +222 -0
  28. package/skills/education-cloud-academic-calendar-generate/references/foundation_prerequisites.md +40 -0
  29. package/skills/education-cloud-academic-calendar-generate/scripts/validate_calendar_dates.py +143 -0
  30. package/skills/education-cloud-course-catalog-migrate/SKILL.md +321 -0
  31. package/skills/education-cloud-course-catalog-migrate/references/gotchas-detail.md +16 -0
  32. package/skills/education-cloud-course-catalog-migrate/references/gotchas.md +16 -0
  33. package/skills/education-cloud-course-catalog-migrate/references/large-catalog-handling.md +42 -0
  34. package/skills/education-cloud-course-catalog-migrate/scripts/batch_courses.py +36 -0
  35. package/skills/education-cloud-course-catalog-migrate/scripts/detect_linked_courses.py +51 -0
  36. package/skills/education-cloud-course-catalog-migrate/scripts/detect_modality_variants.py +48 -0
  37. package/skills/education-cloud-course-catalog-migrate/scripts/resolve_api_version.py +43 -0
  38. package/skills/education-cloud-course-catalog-migrate/scripts/split_course_code.py +39 -0
  39. package/skills/education-cloud-course-catalog-migrate/scripts/validate_completeness.py +54 -0
  40. package/skills/education-cloud-domain-configure/SKILL.md +234 -0
  41. package/skills/education-cloud-domain-configure/references/dependent-features.md +198 -0
  42. package/skills/education-cloud-domain-configure/references/domain-features/academic-operations.md +386 -0
  43. package/skills/education-cloud-domain-configure/references/domain-features/alumni-relations.md +155 -0
  44. package/skills/education-cloud-domain-configure/references/domain-features/cross-domain-dependencies.md +18 -0
  45. package/skills/education-cloud-domain-configure/references/domain-features/industriessettings-toggle-reference.md +43 -0
  46. package/skills/education-cloud-domain-configure/references/domain-features/mentoring.md +198 -0
  47. package/skills/education-cloud-domain-configure/references/domain-features/recruitment-admissions.md +315 -0
  48. package/skills/education-cloud-domain-configure/references/domain-features/student-management.md +155 -0
  49. package/skills/education-cloud-domain-configure/references/domain-features/student-success.md +249 -0
  50. package/skills/education-cloud-domain-configure/references/domain-features.md +27 -0
  51. package/skills/education-cloud-domain-configure/references/gotchas-extended.md +23 -0
  52. package/skills/education-cloud-domain-configure/references/toggle-write-path.md +67 -0
  53. package/skills/education-cloud-domain-configure/scripts/check_license_provisioned.py +62 -0
  54. package/skills/education-cloud-domain-configure/scripts/check_org_edition.py +44 -0
  55. package/skills/education-cloud-domain-configure/scripts/check_permission_assigned.py +39 -0
  56. package/skills/education-cloud-multi-campus-configure/SKILL.md +7 -0
  57. package/skills/education-cloud-multi-campus-configure/references/foundation_prerequisites.md +1 -2
  58. package/skills/education-cloud-student-recruitment-agent-configure/SKILL.md +177 -0
  59. package/skills/education-cloud-student-recruitment-agent-configure/references/agent-and-subagents.md +151 -0
  60. package/skills/education-cloud-student-recruitment-agent-configure/references/customer-narration.md +34 -0
  61. package/skills/education-cloud-student-recruitment-agent-configure/references/execution-model.md +54 -0
  62. package/skills/education-cloud-student-recruitment-agent-configure/references/flows.md +82 -0
  63. package/skills/education-cloud-student-recruitment-agent-configure/references/grounding.md +199 -0
  64. package/skills/education-cloud-student-recruitment-agent-configure/references/permissions.md +183 -0
  65. package/skills/education-cloud-student-recruitment-agent-configure/references/platform-enablement.md +82 -0
  66. package/skills/education-cloud-student-recruitment-agent-configure/references/prerequisites.md +158 -0
  67. package/skills/education-cloud-student-recruitment-agent-configure/references/routing.md +141 -0
  68. package/skills/experience-cms-brand-apply/SKILL.md +5 -5
  69. package/skills/experience-cms-brand-create/SKILL.md +2 -2
  70. package/skills/experience-cms-content-generate/SKILL.md +1 -0
  71. package/skills/experience-cms-content-render/SKILL.md +173 -0
  72. package/skills/experience-cms-content-render/assets/angular/DetailPage.component.ts +25 -0
  73. package/skills/experience-cms-content-render/assets/angular/MediaRenderer.component.ts +133 -0
  74. package/skills/experience-cms-content-render/assets/angular/TypeList.component.ts +38 -0
  75. package/skills/experience-cms-content-render/assets/angular/TypeRenderer.component.ts +90 -0
  76. package/skills/experience-cms-content-render/assets/angular/cms-content.component.ts +248 -0
  77. package/skills/experience-cms-content-render/assets/angular/cms-item.service.ts +100 -0
  78. package/skills/experience-cms-content-render/assets/react/DetailPage.tsx +20 -0
  79. package/skills/experience-cms-content-render/assets/react/MediaRenderer.tsx +129 -0
  80. package/skills/experience-cms-content-render/assets/react/TypeList.tsx +40 -0
  81. package/skills/experience-cms-content-render/assets/react/TypeRenderer.tsx +64 -0
  82. package/skills/experience-cms-content-render/assets/react/heuristicRenderer.tsx +310 -0
  83. package/skills/experience-cms-content-render/assets/react/useCmsItem.ts +129 -0
  84. package/skills/experience-cms-content-render/assets/shared/cmsContentType.ts +49 -0
  85. package/skills/experience-cms-content-render/assets/shared/cmsCore.types.ts +96 -0
  86. package/skills/experience-cms-content-render/assets/shared/externalRefs.ts +55 -0
  87. package/skills/experience-cms-content-render/references/bulk-loading.md +60 -0
  88. package/skills/experience-cms-content-render/references/codegen-guardrails.md +111 -0
  89. package/skills/experience-cms-content-render/references/detail-pages.md +87 -0
  90. package/skills/experience-cms-content-render/references/embed-recipes.md +127 -0
  91. package/skills/experience-cms-content-render/references/failure-modes.md +96 -0
  92. package/skills/experience-cms-content-render/references/heuristic-render-rules.md +131 -0
  93. package/skills/experience-cms-content-render/references/init-scaffold.md +122 -0
  94. package/skills/experience-cms-content-render/references/interaction-model.md +173 -0
  95. package/skills/experience-cms-content-render/references/package-api.md +106 -0
  96. package/skills/experience-cms-content-render/references/schema-sync.md +114 -0
  97. package/skills/experience-cms-content-render/references/styling-scopes.md +65 -0
  98. package/skills/experience-cms-content-render/references/verify.md +49 -0
  99. package/skills/experience-cms-content-type-generate/SKILL.md +2 -2
  100. package/skills/experience-content-media-stock-image-search/SKILL.md +5 -4
  101. package/skills/experience-search-coordinate/SKILL.md +198 -0
  102. package/skills/experience-search-coordinate/assets/search-payload-template.json +25 -0
  103. package/skills/experience-search-coordinate/references/content-route.md +313 -0
  104. package/skills/experience-search-coordinate/references/content-type-discovery.md +57 -0
  105. package/skills/experience-search-coordinate/references/media-route.md +172 -0
  106. package/skills/experience-search-coordinate/references/scope-resolution.md +14 -0
  107. package/skills/experience-ui-bundle-localize/SKILL.md +1 -1
  108. package/skills/experience-ui-bundle-localize/references/i18n-setup.md +5 -3
  109. package/skills/experience-ui-bundle-project-generate/SKILL.md +18 -14
  110. package/skills/experience-ui-bundle-project-generate/references/angular-project-generate.md +22 -0
  111. package/skills/experience-ui-bundle-project-generate/references/react-project-generate.md +20 -0
  112. package/skills/experience-ui-bundle-salesforce-data-access/SKILL.md +58 -54
  113. package/skills/experience-ui-bundle-salesforce-data-access/references/caching.md +6 -0
  114. package/skills/experience-ui-bundle-salesforce-data-access/references/graphiti-cli.md +2 -2
  115. package/skills/experience-ui-bundle-salesforce-data-access/references/migration.md +6 -0
  116. package/skills/experience-ui-bundle-salesforce-data-access/references/rest-and-integration.md +2 -1
  117. package/skills/experience-ui-bundle-salesforce-data-access/references/sdk-api.md +6 -0
  118. package/skills/experience-ui-bundle-site-generate/SKILL.md +59 -8
  119. package/skills/experience-ui-bundle-site-generate/references/configure-metadata-digital-experience.md +8 -3
  120. package/skills/experience-ui-bundle-site-generate/references/configure-metadata-language-settings.md +120 -0
  121. package/skills/life-sciences-fieldsalesrep-coordinate/SKILL.md +336 -0
  122. package/skills/life-sciences-fieldsalesrep-coordinate/references/orchestration-flow.md +143 -0
  123. package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-2-starter-config-application-flexipage-mapping.md +127 -0
  124. package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-2-starter-config-deploy-commands.md +116 -0
  125. package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-2-starter-config-lifesci-metadata-deploy.md +111 -0
  126. package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-2-starter-config-overview.md +312 -0
  127. package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-2-starter-config-profile-layout-assignments.md +171 -0
  128. package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-2-starter-config-state-tracking.md +64 -0
  129. package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-2-starter-config-trigger-handlers.md +122 -0
  130. package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-4-user-provisioning-overview.md +335 -0
  131. package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-4-user-provisioning-user-provisioning-details.md +140 -0
  132. package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-5-visit-creation-execution-state-and-recovery.md +196 -0
  133. package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-5-visit-creation-metadata-cache-generation.md +155 -0
  134. package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-5-visit-creation-overview.md +307 -0
  135. package/skills/life-sciences-fieldsalesrep-coordinate/references/stage-5-visit-creation-visit-creation-data.md +211 -0
  136. package/skills/life-sciences-fieldsalesrep-coordinate/references/state-machine-and-changes.md +108 -0
  137. package/skills/life-sciences-kam-coordinate/SKILL.md +241 -0
  138. package/skills/life-sciences-kam-coordinate/references/orchestration-flow.md +152 -0
  139. package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-application-flexipage-mapping.md +79 -0
  140. package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-deploy-commands.md +131 -0
  141. package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-kam-config-records.md +85 -0
  142. package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-lifesci-metadata-deploy.md +112 -0
  143. package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-overview.md +202 -0
  144. package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-profile-layout-assignments.md +67 -0
  145. package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-state-tracking.md +65 -0
  146. package/skills/life-sciences-kam-coordinate/references/stage-2-starter-config-trigger-handlers.md +123 -0
  147. package/skills/life-sciences-kam-coordinate/references/stage-4-participant-role-and-sprint.md +89 -0
  148. package/skills/life-sciences-kam-coordinate/references/stage-5-data-and-plan-templates-overview.md +337 -0
  149. package/skills/life-sciences-kam-coordinate/references/stage-5-data-creation-data.md +248 -0
  150. package/skills/life-sciences-kam-coordinate/references/stage-6-ipad-validation-script.md +35 -0
  151. package/skills/life-sciences-kam-coordinate/references/stage-6-metadata-cache-generation.md +155 -0
  152. package/skills/life-sciences-kam-coordinate/references/stage-6-user-provisioning-details.md +146 -0
  153. package/skills/life-sciences-kam-coordinate/references/stage-6-user-provisioning-overview.md +89 -0
  154. package/skills/life-sciences-kam-coordinate/references/state-machine-and-changes.md +114 -0
  155. package/skills/life-sciences-prerequisites-validate/SKILL.md +138 -0
  156. package/skills/life-sciences-prerequisites-validate/references/checks-org-settings.md +190 -0
  157. package/skills/life-sciences-prerequisites-validate/references/checks-user-and-package.md +211 -0
  158. package/skills/life-sciences-territory-configure/SKILL.md +217 -0
  159. package/skills/life-sciences-territory-configure/references/territory-metadata.md +262 -0
  160. package/skills/platform-dsar-policy-manage/SKILL.md +272 -0
  161. package/skills/platform-dsar-policy-manage/references/configure.md +106 -0
  162. package/skills/platform-dsar-policy-manage/references/export-and-history.md +123 -0
  163. package/skills/platform-dsar-policy-manage/references/gap-analysis-guide.md +150 -0
  164. package/skills/platform-dsar-policy-manage/references/gap-scan.md +129 -0
  165. package/skills/platform-dsar-policy-manage/references/headless-sor.md +59 -0
  166. package/skills/platform-dsar-policy-manage/references/report-format.md +59 -0
  167. package/skills/platform-dsar-policy-manage/scripts/tests/__init__.py +0 -0
  168. package/skills/platform-dsar-policy-manage/scripts/tests/test_validate_policy_tree.py +76 -0
  169. package/skills/platform-dsar-policy-manage/scripts/validate-policy-tree.py +130 -0
  170. package/skills/platform-salesforce-connect-adapter-generate/SKILL.md +359 -0
  171. package/skills/platform-salesforce-connect-adapter-generate/references/official-examples.md +69 -0
  172. package/skills/platform-salesforce-connect-adapter-generate/references/scenarios.md +187 -0
  173. package/skills/service-agentforce-channel-configure/SKILL.md +33 -28
  174. package/skills/service-agentforce-human-escalation-configure/SKILL.md +205 -0
  175. package/skills/service-agentforce-human-escalation-configure/assets/escalation-thresholds.instructions.md +37 -0
  176. package/skills/service-agentforce-human-escalation-configure/assets/force-app/main/default/flows/Human_Escalation_Outbound_Flow.flow-meta.xml +173 -0
  177. package/skills/service-agentforce-human-escalation-configure/assets/package.xml +8 -0
  178. package/skills/service-agentforce-human-escalation-configure/assets/sfdx-project.json +5 -0
  179. package/skills/service-agentforce-human-escalation-configure/references/classifier-contracts.md +103 -0
  180. package/skills/service-agentforce-human-escalation-configure/references/escalation-mechanism.md +63 -0
  181. package/skills/service-agentforce-human-escalation-configure/references/failure-policy.md +44 -0
  182. package/skills/service-agentforce-human-escalation-configure/references/nga-escalation.md +57 -0
  183. package/skills/service-agentforce-human-escalation-configure/references/runtime-verification.md +72 -0
  184. package/skills/service-agentforce-human-escalation-configure/scripts/classify-agent-active.mjs +49 -0
  185. package/skills/service-agentforce-human-escalation-configure/scripts/classify-nga-escalation.mjs +166 -0
  186. package/skills/service-agentforce-human-escalation-configure/scripts/extract-outbound-route.mjs +67 -0
  187. package/skills/service-agentforce-human-escalation-configure/scripts/patch-escalation-surfaces.mjs +131 -0
  188. package/skills/service-agentforce-human-escalation-configure/scripts/tests/__init__.py +0 -0
  189. package/skills/service-agentforce-human-escalation-configure/scripts/tests/_bootstrap.py +249 -0
  190. package/skills/service-agentforce-human-escalation-configure/scripts/tests/test_escalation_contracts.py +899 -0
  191. package/skills/service-agentforce-human-escalation-configure/scripts/verify-and-configure.sh +705 -0
  192. package/skills/service-agentforce-human-escalation-configure/scripts/verify-escalation-config.mjs +89 -0
  193. package/skills/service-de-channel-routing-configure/SKILL.md +13 -5
  194. package/skills/service-de-channel-routing-configure/scripts/tests/test_skill_contract.py +25 -0
  195. package/skills/service-itsm-agentic-setup-agentforce-coordinate/SKILL.md +23 -10
  196. package/skills/service-itsm-agentic-setup-agentforce-coordinate/examples/output-templates.md +63 -48
  197. package/skills/service-itsm-agentic-setup-agentforce-coordinate/scripts/verify-child-verdict.mjs +6 -2
  198. package/skills/service-itsm-agentic-setup-cmdb-coordinate/SKILL.md +20 -27
  199. package/skills/service-native-voice-recording-transcription-configure/SKILL.md +47 -27
  200. package/skills/service-native-voice-recording-transcription-configure/references/thunderbird-voice-settings.md +13 -9
  201. package/skills/service-native-voice-recording-transcription-configure/scripts/enable-recording-transcription.sh +104 -45
  202. package/skills/service-omni-agent-users-create/SKILL.md +96 -0
  203. package/skills/service-omni-agent-users-create/assets/create-users.apex.template +80 -0
  204. package/skills/service-omni-agent-users-create/references/apex-patterns.md +135 -0
  205. package/skills/service-omni-agent-users-create/references/apex-template-notes.md +40 -0
  206. package/skills/service-omni-agent-users-create/scripts/detect-and-create.sh +206 -0
  207. package/skills/service-omni-agent-users-create/scripts/detect-existing.sh +122 -0
  208. package/skills/service-omni-agent-users-create/scripts/run-create.sh +298 -0
  209. package/skills/service-omni-agent-users-create/scripts/tests/test_user_create_security.py +171 -0
  210. package/skills/service-omni-agent-work-sharing-configure/SKILL.md +78 -0
  211. package/skills/service-omni-agent-work-sharing-configure/references/api-notes.md +31 -0
  212. package/skills/service-omni-agent-work-sharing-configure/scripts/configure-and-report.sh +186 -0
  213. package/skills/service-omni-agent-work-sharing-configure/scripts/tests/_bootstrap.py +120 -0
  214. package/skills/service-omni-agent-work-sharing-configure/scripts/tests/test_agent_work_sharing_contracts.py +93 -0
  215. package/skills/service-omni-base-settings-configure/SKILL.md +77 -0
  216. package/skills/service-omni-base-settings-configure/assets/force-app/main/default/settings/OmniChannel.settings-meta.xml +8 -0
  217. package/skills/service-omni-base-settings-configure/assets/package.xml +8 -0
  218. package/skills/service-omni-base-settings-configure/assets/sfdx-project.json +12 -0
  219. package/skills/service-omni-base-settings-configure/references/api-notes.md +121 -0
  220. package/skills/service-omni-base-settings-configure/scripts/configure-and-report.sh +164 -0
  221. package/skills/service-omni-base-settings-configure/scripts/detect-existing.sh +69 -0
  222. package/skills/service-omni-channel-setup-coordinate/SKILL.md +168 -0
  223. package/skills/service-omni-channel-setup-coordinate/examples/output-templates.md +161 -0
  224. package/skills/service-omni-channel-setup-coordinate/references/gap-catalog.md +99 -0
  225. package/skills/service-omni-channel-setup-coordinate/scripts/integration-driver.sh +1542 -0
  226. package/skills/service-omni-channel-setup-coordinate/scripts/tests/__init__.py +0 -0
  227. package/skills/service-omni-channel-setup-coordinate/scripts/tests/_bootstrap.py +223 -0
  228. package/skills/service-omni-channel-setup-coordinate/scripts/tests/test_omni_contracts.py +804 -0
  229. package/skills/service-omni-command-center-analyze/SKILL.md +84 -0
  230. package/skills/service-omni-command-center-analyze/references/api-notes.md +54 -0
  231. package/skills/service-omni-command-center-analyze/scripts/analyze.sh +198 -0
  232. package/skills/service-omni-command-center-analyze/scripts/tests/_bootstrap.py +115 -0
  233. package/skills/service-omni-command-center-analyze/scripts/tests/test_command_center_analyze_contracts.py +165 -0
  234. package/skills/service-omni-permission-set-assign/SKILL.md +88 -0
  235. package/skills/service-omni-permission-set-assign/assets/package.xml +8 -0
  236. package/skills/service-omni-permission-set-assign/references/api-notes.md +143 -0
  237. package/skills/service-omni-permission-set-assign/scripts/verify-and-assign.sh +397 -0
  238. package/skills/service-omni-presence-status-deploy/SKILL.md +87 -0
  239. package/skills/service-omni-presence-status-deploy/assets/package.xml +12 -0
  240. package/skills/service-omni-presence-status-deploy/references/api-notes.md +115 -0
  241. package/skills/service-omni-presence-status-deploy/scripts/deploy-and-report.sh +422 -0
  242. package/skills/service-omni-presence-user-config-deploy/SKILL.md +80 -0
  243. package/skills/service-omni-presence-user-config-deploy/references/api-notes.md +60 -0
  244. package/skills/service-omni-presence-user-config-deploy/scripts/deploy-and-report.sh +261 -0
  245. package/skills/service-omni-presence-user-config-deploy/scripts/tests/_bootstrap.py +106 -0
  246. package/skills/service-omni-presence-user-config-deploy/scripts/tests/test_presence_user_config_contracts.py +142 -0
  247. package/skills/service-omni-queue-deploy/SKILL.md +91 -0
  248. package/skills/service-omni-queue-deploy/references/api-notes.md +140 -0
  249. package/skills/service-omni-queue-deploy/scripts/verify-and-align.sh +470 -0
  250. package/skills/service-omni-queue-members-assign/SKILL.md +93 -0
  251. package/skills/service-omni-queue-members-assign/references/api-notes.md +144 -0
  252. package/skills/service-omni-queue-members-assign/scripts/tests/_bootstrap.py +67 -0
  253. package/skills/service-omni-queue-members-assign/scripts/tests/test_queue_members_contracts.py +73 -0
  254. package/skills/service-omni-queue-members-assign/scripts/verify-and-bind.sh +362 -0
  255. package/skills/service-omni-queue-routing-config-deploy/SKILL.md +101 -0
  256. package/skills/service-omni-queue-routing-config-deploy/references/api-notes.md +127 -0
  257. package/skills/service-omni-queue-routing-config-deploy/scripts/tests/_bootstrap.py +90 -0
  258. package/skills/service-omni-queue-routing-config-deploy/scripts/tests/test_queue_routing_config_contracts.py +70 -0
  259. package/skills/service-omni-queue-routing-config-deploy/scripts/upsert-and-report.sh +538 -0
  260. package/skills/service-omni-routing-flow-deploy/SKILL.md +111 -0
  261. package/skills/service-omni-routing-flow-deploy/assets/force-app/main/default/flows/Omni_Route_Case_Trigger.SkillsBased.flow-meta.xml +94 -0
  262. package/skills/service-omni-routing-flow-deploy/assets/force-app/main/default/flows/Omni_Route_Case_Trigger.flow-meta.xml +88 -0
  263. package/skills/service-omni-routing-flow-deploy/assets/force-app/main/default/flows/Omni_Route_Cases.flow-meta.xml +144 -0
  264. package/skills/service-omni-routing-flow-deploy/assets/force-app/main/default/flows/Omni_Route_VoiceCall_Trigger.SkillsBased.flow-meta.xml +94 -0
  265. package/skills/service-omni-routing-flow-deploy/assets/force-app/main/default/flows/Omni_Route_VoiceCall_Trigger.flow-meta.xml +88 -0
  266. package/skills/service-omni-routing-flow-deploy/assets/force-app/main/default/flows/Omni_Route_VoiceCalls.flow-meta.xml +144 -0
  267. package/skills/service-omni-routing-flow-deploy/assets/package.xml +11 -0
  268. package/skills/service-omni-routing-flow-deploy/assets/sfdx-project.json +11 -0
  269. package/skills/service-omni-routing-flow-deploy/references/api-notes.md +265 -0
  270. package/skills/service-omni-routing-flow-deploy/scripts/deploy-and-report.sh +684 -0
  271. package/skills/service-omni-service-channel-configure/SKILL.md +83 -0
  272. package/skills/service-omni-service-channel-configure/assets/force-app/main/default/serviceChannels/Cases.serviceChannel-meta.xml +9 -0
  273. package/skills/service-omni-service-channel-configure/assets/force-app/main/default/serviceChannels/Incidents.serviceChannel-meta.xml +9 -0
  274. package/skills/service-omni-service-channel-configure/assets/force-app/main/default/serviceChannels/MessagingSessions.serviceChannel-meta.xml +9 -0
  275. package/skills/service-omni-service-channel-configure/assets/force-app/main/default/serviceChannels/VoiceCalls.serviceChannel-meta.xml +9 -0
  276. package/skills/service-omni-service-channel-configure/assets/package.xml +11 -0
  277. package/skills/service-omni-service-channel-configure/assets/sfdx-project.json +12 -0
  278. package/skills/service-omni-service-channel-configure/references/api-notes.md +84 -0
  279. package/skills/service-omni-service-channel-configure/scripts/deploy-and-report.sh +383 -0
  280. package/skills/service-omni-sidebar-configure/SKILL.md +77 -0
  281. package/skills/service-omni-sidebar-configure/references/api-notes.md +51 -0
  282. package/skills/service-omni-sidebar-configure/scripts/enable-and-report.sh +315 -0
  283. package/skills/service-omni-sidebar-configure/scripts/tests/_bootstrap.py +142 -0
  284. package/skills/service-omni-sidebar-configure/scripts/tests/test_sidebar_contracts.py +139 -0
  285. package/skills/service-omni-skills-based-routing-configure/SKILL.md +81 -0
  286. package/skills/service-omni-skills-based-routing-configure/references/api-notes.md +50 -0
  287. package/skills/service-omni-skills-based-routing-configure/scripts/configure-and-report.sh +270 -0
  288. package/skills/service-omni-skills-based-routing-configure/scripts/tests/_bootstrap.py +120 -0
  289. package/skills/service-omni-skills-based-routing-configure/scripts/tests/test_sbr_contracts.py +129 -0
  290. package/skills/service-omni-supervisor-config-deploy/SKILL.md +97 -0
  291. package/skills/service-omni-supervisor-config-deploy/assets/force-app/main/default/omniSupervisorConfigs/Omni_Supervisor.omniSupervisorConfig-meta.xml +9 -0
  292. package/skills/service-omni-supervisor-config-deploy/assets/package.xml +8 -0
  293. package/skills/service-omni-supervisor-config-deploy/assets/sfdx-project.json +12 -0
  294. package/skills/service-omni-supervisor-config-deploy/references/api-notes.md +205 -0
  295. package/skills/service-omni-supervisor-config-deploy/scripts/deploy-and-report.sh +586 -0
  296. package/skills/service-omni-supervisor-config-deploy/scripts/tests/_bootstrap.py +153 -0
  297. package/skills/service-omni-supervisor-config-deploy/scripts/tests/test_supervisor_config_contracts.py +116 -0
  298. package/skills/service-omni-supervisor-permset-assign/SKILL.md +88 -0
  299. package/skills/service-omni-supervisor-permset-assign/references/api-notes.md +48 -0
  300. package/skills/service-omni-supervisor-permset-assign/scripts/verify-and-assign.sh +316 -0
  301. package/skills/service-omni-supervisor-surface-deploy/SKILL.md +85 -0
  302. package/skills/service-omni-supervisor-surface-deploy/references/api-notes.md +47 -0
  303. package/skills/service-omni-supervisor-surface-deploy/scripts/deploy-and-report.sh +216 -0
  304. package/skills/service-omni-supervisor-surface-deploy/scripts/tests/_bootstrap.py +95 -0
  305. package/skills/service-omni-supervisor-surface-deploy/scripts/tests/test_supervisor_surface_contracts.py +154 -0
  306. package/skills/service-omni-supervisor-users-create/SKILL.md +92 -0
  307. package/skills/service-omni-supervisor-users-create/assets/create-supervisors.apex.template +72 -0
  308. package/skills/service-omni-supervisor-users-create/references/apex-patterns.md +73 -0
  309. package/skills/service-omni-supervisor-users-create/references/apex-template-notes.md +41 -0
  310. package/skills/service-omni-supervisor-users-create/scripts/detect-and-create.sh +197 -0
  311. package/skills/service-omni-supervisor-users-create/scripts/detect-existing.sh +112 -0
  312. package/skills/service-omni-supervisor-users-create/scripts/run-create.sh +296 -0
  313. package/skills/service-omni-work-skill-routing-configure/SKILL.md +80 -0
  314. package/skills/service-omni-work-skill-routing-configure/references/api-notes.md +67 -0
  315. package/skills/service-omni-work-skill-routing-configure/scripts/configure-and-report.sh +262 -0
  316. package/skills/service-omni-work-skill-routing-configure/scripts/tests/_bootstrap.py +121 -0
  317. package/skills/service-omni-work-skill-routing-configure/scripts/tests/test_work_skill_routing_contracts.py +161 -0
@@ -0,0 +1,89 @@
1
+ # Stage 6 — KAM User Provisioning
2
+
3
+ Creates the KAM end user, assigns the four KAM permission sets, sets a password, assigns both the user and the admin to the Stage-3 level-3 territory, and generates the mobile metadata cache. This is the final stage of `life-sciences-kam-coordinate`; the coordinator invokes it after the KAM data & plan templates (Stage 5) exist.
4
+
5
+ ## Stage Scope
6
+
7
+ - **In scope**: creating one Active user (username contains `kam`) on the `LSC Custom Profile`, assigning 4 permission sets, setting a password, assigning the user + admin to the level-3 territory, and generating + verifying the mobile metadata cache
8
+ - **Out of scope**: everything in Stages 1–5
9
+
10
+ ## Required Inputs
11
+
12
+ - **Target org / admin**: admin alias or username (the metadata-cache generation runs as admin)
13
+ - **KAM user details**: shown to the admin as **defaults for confirmation** before creation — the admin can edit **FirstName / LastName / Email**; the **username is auto-generated** (always containing `kam`) and the rest are fixed defaults (see the details reference)
14
+ - **Stage-3 level-3 territory Id**: from `OrchestrationState.territoryId` — **MUST be the same territory used for `ProductTerritoryAvailability` in Stage 5**, or the KAM user sees no product/account data
15
+
16
+ ## Workflow
17
+
18
+ ### Phase A — Create the user
19
+
20
+ 1. Query the `LSC Custom Profile` Id.
21
+ 2. **Confirm the user details with the admin BEFORE creating.** Present the default/derived details as a table (see "Default User Details & Confirmation" in the details reference). The admin may edit **FirstName / LastName / Email**; the **username is auto-generated** (always containing `kam`) from the name, and the remaining fields are fixed defaults. If the admin edits the name, re-derive the username + alias and re-display. **Do NOT create the user until the admin confirms.**
22
+ 3. Create the user with the confirmed fields (username MUST contain `kam`, `IsActive=true`). Full field table, username rule, and error handling: **`references/stage-6-user-provisioning-details.md`**.
23
+ 4. Set the user's password with anonymous Apex, writing the temp file to a **project-local** relative path (never `/tmp`) and removing it right after — see the password section in the details reference.
24
+ 5. Capture the login URL (`sf org display`) for the credential handoff.
25
+
26
+ ### Phase B — Assign the four permission sets
27
+
28
+ Assign **exactly four** permission sets:
29
+
30
+ | Label | Expected API name |
31
+ |-------|-------------------|
32
+ | Health Cloud Starter | HealthCloudStarter |
33
+ | Life Sciences Key Account Management | LifeSciencesKeyAccountManager |
34
+ | Life Sciences Field Sales Representative | LifeSciencesFieldSalesRepresentative |
35
+ | Life Sciences Core | LifeSciencesCore |
36
+
37
+ Resolve the API names by label first (they may be namespace-prefixed) — see the details reference. Create a `PermissionSetAssignment` for each.
38
+
39
+ > **STOP-GATE (permset count = 4).** After assigning, query the count filtered to non-profile-owned sets:
40
+ > ```bash
41
+ > sf data query --query "SELECT COUNT(Id) c FROM PermissionSetAssignment WHERE AssigneeId = '<userId>' AND PermissionSet.IsOwnedByProfile = false" --target-org <admin> --json
42
+ > ```
43
+ > This MUST return **exactly 4** (`{HealthCloudStarter, LifeSciencesKeyAccountManager, LifeSciencesFieldSalesRepresentative, LifeSciencesCore}`). More or fewer means the wrong sets were assigned — reconcile before proceeding.
44
+
45
+ ### Phase C — Territory assignment (user + admin)
46
+
47
+ Assign **both** the KAM user and the admin to the Stage-3 level-3 territory via `UserTerritory2Association`. Confirm with the admin that this is the same territory used for `ProductTerritoryAvailability` in Stage 5. Field details + verification: the details reference.
48
+
49
+ ```bash
50
+ sf data query --query "SELECT User.Name, User.Username, Territory2.Name FROM UserTerritory2Association WHERE Territory2Id = '<territoryId>'" --target-org <admin> --json
51
+ ```
52
+
53
+ Expect ≥2 rows (KAM user + admin).
54
+
55
+ ### Phase D — Generate the mobile metadata cache
56
+
57
+ Run entirely as the admin. Create the parent + child `LifeSciMobileMetadataRecord` (both `ValidationCompleted`), call the Connect API generate endpoint with `sf api request rest`, and poll until `Status='Active'`. Full commands, request body, and error table: **`references/stage-6-metadata-cache-generation.md`**.
58
+
59
+ ## Verification Gate
60
+
61
+ ```bash
62
+ sf data query --query "SELECT Id, Username, Profile.Name, IsActive FROM User WHERE Username = '<username>'" --target-org <admin> --json
63
+ sf data query --query "SELECT Id, Status FROM LifeSciMobileMetadataRecord ORDER BY LastModifiedDate DESC LIMIT 1" --target-org <admin> --json
64
+ ```
65
+
66
+ Expect the user `IsActive=true` on `LSC Custom Profile`, permset count = 4, ≥2 territory rows, and a metadata record at `Status='Active'`.
67
+
68
+ ## Credential Handoff
69
+
70
+ At the end, present the KAM username, the login URL, and the temporary password in the **single** credential-handoff summary. Do not print the password anywhere else.
71
+
72
+ ## Rules / Constraints
73
+
74
+ | Constraint | Rationale |
75
+ |-----------|-----------|
76
+ | Username MUST contain `kam` | KAM-user identification requirement |
77
+ | Assign exactly 4 permission sets | KAM users get Health Cloud Starter + Life Sciences Key Account Management + Life Sciences Field Sales Representative + Life Sciences Core |
78
+ | Assign the SAME level-3 territory used in Stage 5 | A mismatch hides all product/account data from the KAM user |
79
+ | Assign BOTH the user and the admin to the territory | Admin visibility + user data access |
80
+ | Write temp files (password Apex, mdgen body) project-local | Never `/tmp` or outside the project |
81
+ | Deactivate, never delete, unwanted users | Deletion is unsafe; deactivation cascade-deletes territory associations |
82
+ | Print the password only in the single credential-handoff summary | Credential hygiene |
83
+
84
+ ## Reference File Index
85
+
86
+ | File | When to read |
87
+ |------|-------------|
88
+ | `references/stage-6-user-provisioning-details.md` | Phases A–C — user fields, username rule, permsets, password, territory, verification |
89
+ | `references/stage-6-metadata-cache-generation.md` | Phase D — parent/child record creation + Connect API generate call + polling |
@@ -0,0 +1,114 @@
1
+ # Orchestration State Machine & Change Handling (KAM)
2
+
3
+ Operational reference for `life-sciences-kam-coordinate`: the idempotent stage-transition rules, the mid-flow change-request impact assessment, and the resume/partial-re-run protocol. Read this alongside the workflow in `SKILL.md`.
4
+
5
+ ---
6
+
7
+ ## Idempotent Stage Transitions
8
+
9
+ Stages are **not re-entrant**. If the user says "Proceed" or names a stage that is already running or completed, do NOT re-execute it.
10
+
11
+ ### Behavior Matrix
12
+
13
+ | Current stage status | User says "Proceed" / "Run Stage N" | Response |
14
+ |---|---|---|
15
+ | `running` | Duplicate trigger | "Stage N is already in progress — I'll let you know when it completes." |
16
+ | `passed` | Re-run request | "Stage N already completed successfully. Would you like to re-run it anyway? This is safe (all stages are idempotent) but will take extra time." |
17
+ | `failed` | Retry request | Allow — re-run the stage (this is intentional recovery) |
18
+ | `pending` | Advance request | Allow — normal forward progression |
19
+
20
+ ### Implementation Rules
21
+
22
+ 1. **Before executing any stage**, check its current `status` in `OrchestrationState`.
23
+ 2. **If `running`**: reply with the in-progress message and take no action. Do not queue a second execution.
24
+ 3. **If `passed`**: ask for explicit confirmation before re-running. Only re-run if the user says "yes, re-run it".
25
+ 4. **If `failed`**: treat as a retry — re-run without extra confirmation (the user is explicitly recovering).
26
+ 5. **Accidental double-confirms** (user says "yes" or "proceed" twice in quick succession) must never cause a stage to execute twice. The `status` field is the single source of truth — transition to `running` at the START of execution, not on user input.
27
+
28
+ ---
29
+
30
+ ## Mid-Flow Change Requests (Impact Assessment)
31
+
32
+ If the user requests a change to inputs or decisions made in an earlier stage **while a later stage is in progress or pending**, perform an impact assessment before applying the change.
33
+
34
+ ### When This Applies
35
+
36
+ - User wants to change the target org mid-flow
37
+ - User wants to change territory names after territories were already deployed
38
+ - User wants to change the KAM user's details after the profile/permsets were chosen
39
+ - User wants to switch which layouts or flexipages were selected after deploy
40
+ - User wants to change the ParticipantRole/Sprint, goal, or template names after they were created
41
+
42
+ ### Impact Assessment Protocol
43
+
44
+ 1. **Acknowledge the change request** without applying it immediately.
45
+
46
+ 2. **Identify affected stages** — determine which completed or in-progress stages would be impacted:
47
+
48
+ ```text
49
+ Change Request Impact Assessment
50
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
51
+
52
+ Requested change: <describe the change>
53
+
54
+ Stages affected:
55
+ Stage <N>: <StageName> — <what would need to change/redo>
56
+ Stage <M>: <StageName> — <downstream impact>
57
+
58
+ Stages NOT affected:
59
+ Stage <X>: <StageName> — no impact
60
+
61
+ Estimated rework: <time/effort to re-do affected stages>
62
+ ```
63
+
64
+ 3. **Present options** to the user:
65
+ - **Apply change and re-run affected stages** — will undo/redo the impacted work
66
+ - **Apply change for remaining stages only** — keep what's done, apply change going forward (if possible without inconsistency)
67
+ - **Cancel the change** — continue with original inputs
68
+
69
+ 4. **Wait for user decision** before taking any action.
70
+
71
+ ### Impact Mapping
72
+
73
+ | Change | Affects Stages | Re-run Required | Notes |
74
+ |--------|--------------|-----------------|-------|
75
+ | Target org | All stages | Yes — full restart | Nothing from prior org transfers |
76
+ | Territory names | Stage 3, Stage 5, Stage 6 | Stage 3 re-deploy + Stage 5 re-associate + Stage 6 re-assign | Stage 5 `ProductTerritoryAvailability` and Stage 6 `UserTerritory2Association` both bind the level-3 territory; a new territory means re-doing both |
77
+ | Layout/flexipage selection | Stage 2 only | Re-deploy updated profile + app | Does not affect Stages 3-6 |
78
+ | KAM/Sprint config picklist values | Stage 2 only | Re-deploy config records | Upsert-safe |
79
+ | ParticipantRole / Sprint name | Stage 4 only | Stage 4 only | Both are simple record creates |
80
+ | Product / Account data | Stage 5 (Part A + Part B) | Stage 5 re-create + re-link | Part B `GoalDefinitionProduct` references the Part A `LifeSciMarketableProduct` |
81
+ | Goal / template names | Stage 5 (Part B) only | Stage 5 (Part B) only | Un-publish is not possible — see destructive warnings |
82
+ | User details (name, email, username) | Stage 6 only | Stage 6 only | Username must still contain `kam` |
83
+ | Permission set list | Stage 6 only | Stage 6 only | Can add/remove assignments (target set is exactly 4) |
84
+
85
+ ### Destructive Change Warnings
86
+
87
+ Some changes cannot be fully undone:
88
+
89
+ | Change | Warning |
90
+ |--------|---------|
91
+ | Territory model already activated | "The territory model cannot be deleted once activated. A new model with a different name can be created, but the old one will remain." |
92
+ | ActionPlanTemplate already published (Final) | "A published template version cannot be un-published. A new version (or a new template) can be created, but the Final version remains." |
93
+ | User already created | "The existing user will remain. A new user with different details will be created as a separate record. Deactivate (never delete) any unwanted user; deactivation cascade-deletes its territory associations." |
94
+ | Config records already deployed | "Config records are upsert-safe — re-deploying with changes will update existing records, not create duplicates." |
95
+
96
+ Always surface these warnings as part of the impact assessment so the user makes an informed decision.
97
+
98
+ ---
99
+
100
+ ## Resume / Partial Re-run
101
+
102
+ If the user has already completed some stages (e.g., from a prior session):
103
+
104
+ 1. Ask: "Have you already completed any of these stages?"
105
+ 2. For each claimed-complete stage, **verify** by querying the org:
106
+ - Stage 1: Ask user to confirm prerequisites are met
107
+ - Stage 2: Query for `LSC Custom Profile`
108
+ - Stage 3: Query for active territory model with level-3 territory
109
+ - Stage 4: Query for `ParticipantRole` (DeveloperName `Rep_Execution_Specialist`) + a `Sprint`
110
+ - Stage 5: Query for a `ProductTerritoryAvailability` (and Account) **and** a `Final` `ActionPlanTemplateVersion` + `ActionPlanTemplateAssignment`
111
+ - Stage 6: Query for the user with username containing `kam` on `LSC Custom Profile`
112
+ 3. Skip verified stages and resume from the first incomplete one.
113
+
114
+ (The exact detection queries per stage are in `orchestration-flow.md` → Resume Logic.)
@@ -0,0 +1,138 @@
1
+ ---
2
+ name: life-sciences-prerequisites-validate
3
+ description: "Validate Life Sciences Cloud for Customer Engagement org prerequisites. Use when an admin needs to verify that all required settings, permissions, OWD sharing rules, and feature toggles are correctly configured before deploying Life Sciences Cloud. Checks user profile, permission sets, Life Sciences CE settings, surveys, OWD, inventory, account plans, care plans, Chatter, data protection, multi-currency, state/country picklists, and person accounts. Reports pass/fail for each check with remediation steps. TRIGGER when: user says 'check prerequisites', 'verify org setup for Life Sciences', 'LSC readiness check', 'pre-requisites for Life Sciences Cloud', 'validate org for LSC'. DO NOT TRIGGER when: user wants to automatically enable or configure these settings, or when the user asks for the full end-to-end Life Sciences Cloud setup / orchestration (that is the `life-sciences-fieldsalesrep-coordinate` orchestrator's job — this skill runs only as a standalone prerequisites check)."
4
+ metadata:
5
+ version: "1.0"
6
+ minApiVersion: "65.0"
7
+ domains: ["Life Sciences"]
8
+ relatedSkills:
9
+ - life-sciences-fieldsalesrep-coordinate
10
+ - life-sciences-territory-configure
11
+ cliTools:
12
+ - tool: ["sf"]
13
+ semver: ">=2.0.0"
14
+ ---
15
+
16
+ # Life Sciences Cloud Prerequisites Validation
17
+
18
+ Validates that a Salesforce org meets all prerequisites for Life Sciences Cloud for Customer Engagement. Runs checks via the `sf` CLI against the currently authenticated org and produces a consolidated pass/fail report with remediation steps for any failures.
19
+
20
+ ## Scope
21
+
22
+ - **In scope**: Validating org settings, user permissions, OWD sharing, and feature toggles required for Life Sciences Cloud CE
23
+ - **Out of scope**: Automatically enabling or configuring settings that fail validation
24
+
25
+ ### Off-topic requests
26
+
27
+ If the user asks for something unrelated to this skill (either at the start or mid-execution), do not attempt it. Tell the user you did not understand the request, then show what you *can* help with: validating Life Sciences Cloud org prerequisites (this skill), and — if relevant — point them to `life-sciences-territory-configure` for territory setup or `life-sciences-fieldsalesrep-coordinate` for the full end-to-end setup. Then stop and wait.
28
+
29
+ ---
30
+
31
+ ## Required Inputs
32
+
33
+ Gather before proceeding:
34
+
35
+ - **Target org**: The org alias or username to validate (from `sf config get target-org` or user-specified)
36
+ - **Confirmation**: The logged-in user must be the admin whose profile and permission sets are being validated
37
+
38
+ ---
39
+
40
+ ## Workflow
41
+
42
+ All checks run sequentially. Collect all results before presenting the final report.
43
+
44
+ ### Phase 1 — Validate Environment
45
+
46
+ 1. **Confirm org connection** — run `sf org display --target-org <org>` to verify the org is accessible. If it fails, stop and ask the user to authenticate.
47
+
48
+ 2. **Identify the logged-in user** — extract the username from the org display output.
49
+
50
+ ### Phase 2 — Run All Prerequisite Checks
51
+
52
+ Run each check below. For each, record PASS or FAIL with the remediation steps. The checks use the canonical **Check 1 – Check 12** numbering from the reference files and the final report; the managed-package check is an un-numbered hard-stop gate, not one of the 12 scored categories. Checks 1–3 (and the managed-package gate) are in `references/checks-user-and-package.md`; Checks 4–12 are in `references/checks-org-settings.md`.
53
+
54
+ > **STOP-GATE (report completeness).** Every check MUST produce a row in the final report — a check that errors (e.g. Multi-Currency returns HTTP 400 `INVALID_TYPE`, or an object isn't deployed) is a **FAIL row**, never a skipped/omitted row or a reason to abort the run. The report's row count MUST equal the full scored-check count (**12 categories**, Check 1 – Check 12). The **one** intended early exit is the managed-package gate (the un-numbered `lsc4ce` package check, step 4 below) — that legitimately stops the run with the "BLOCKED" message. In every other case, a query error is the FAIL signal: record it and continue. Do NOT let a single 4xx or unexpected-shape response silently drop a row or halt the sweep — a short report reads as "fewer things to fix" when the truth is "we didn't check."
55
+
56
+ 3. **Check 1 — user profile and permission sets** — read `references/checks-user-and-package.md` section "User Profile and Permission Sets" for the exact queries and validation logic.
57
+
58
+ 4. **Managed-package gate (un-numbered hard stop)** — read `references/checks-user-and-package.md` section "Managed Package Check". If the `lsc4ce` package is not installed, display the failure message and **stop** — do not proceed with remaining checks.
59
+
60
+ 5. **Check 2 — Life Sciences CE settings** — read `references/checks-user-and-package.md` section "Life Sciences Customer Engagement Setup" for the exact queries.
61
+
62
+ 6. **Check 3 — Surveys enabled** — read `references/checks-user-and-package.md` section "Surveys".
63
+
64
+ 7. **Check 4 — OWD sharing settings** — read `references/checks-org-settings.md` section "OWD Sharing" for the exact objects and expected values.
65
+
66
+ 8. **Check 5 — Inventory Count** — read `references/checks-org-settings.md` section "Inventory Count".
67
+
68
+ 9. **Check 6 — Sales Account Plans** — read `references/checks-org-settings.md` section "Sales Account Plans".
69
+
70
+ 10. **Check 7 — Care Plans** — read `references/checks-org-settings.md` section "Care Plans".
71
+
72
+ 11. **Check 8 — Chatter Settings** — read `references/checks-org-settings.md` section "Chatter Settings".
73
+
74
+ 12. **Check 9 — Data Protection and Privacy** — read `references/checks-org-settings.md` section "Data Protection and Privacy".
75
+
76
+ 13. **Check 10 — Multiple Currencies** — read `references/checks-org-settings.md` section "Multiple Currencies".
77
+
78
+ 14. **Check 11 — State and Country/Territory Picklists** — read `references/checks-org-settings.md` section "State and Country/Territory Picklists".
79
+
80
+ 15. **Check 12 — Person Accounts** — read `references/checks-org-settings.md` section "Person Accounts".
81
+
82
+ ### Phase 3 — Report
83
+
84
+ 16. **Generate consolidated report** — present results in a table:
85
+
86
+ ```markdown
87
+ | # | Prerequisite | Status | Remediation (if failed/warning) |
88
+ |---|-------------------------------------------|--------|----------------------------------|
89
+ | 1 | System Administrator + Permission Sets | PASS/FAIL | <steps if failed> |
90
+ | 2 | Life Sciences CE Enabled | PASS/FAIL | <steps if failed> |
91
+ | ... |
92
+ ```
93
+
94
+ Status values are **PASS**, **FAIL**, or **WARNING**. Most checks are PASS/FAIL. The **OWD Sharing** check (Check 4) is WARNING-level: when its values differ from the expected ones, report **WARNING** (with the recommended value in the remediation column), never FAIL — see `references/checks-org-settings.md` for the exact rule.
95
+
96
+ Include a summary line: `X of 12 prerequisites passed. Y require action (Z warnings).`
97
+
98
+ If all pass, confirm the org is ready for Life Sciences Cloud deployment.
99
+
100
+ ---
101
+
102
+ ## Rules / Constraints
103
+
104
+ | Constraint | Rationale |
105
+ |-----------|-----------|
106
+ | Run all checks even if early ones fail | Admin needs the full picture to remediate in one pass |
107
+ | Use `sf` CLI with `--target-org` for every query | Ensures correct org context even with multiple orgs authenticated |
108
+ | Never modify org settings | This skill validates only — it does not enable or configure anything |
109
+ | Report exact Setup navigation paths | Admins need to know where to click in Setup UI |
110
+
111
+ ---
112
+
113
+ ## Gotchas
114
+
115
+ | Issue | Resolution |
116
+ |-------|------------|
117
+ | Some settings are not queryable via Metadata API | Use Tooling API or org settings queries where Metadata API lacks coverage |
118
+ | Person Accounts cannot be disabled once enabled | Only check if enabled; no rollback possible |
119
+ | Multiple Currencies cannot be disabled once activated | Only check if activated; warn that this is irreversible if recommending enablement |
120
+ | State/Country Picklists enabling is irreversible | Include this warning in remediation steps |
121
+
122
+ ---
123
+
124
+ ## Output Expectations
125
+
126
+ Deliverables:
127
+ - A formatted table showing pass/fail status for all 12 prerequisite categories
128
+ - Remediation steps (Setup navigation paths and actions) for each failed check
129
+ - Summary count of passed vs. failed checks
130
+
131
+ ---
132
+
133
+ ## Reference File Index
134
+
135
+ | File | When to read |
136
+ |------|-------------|
137
+ | `references/checks-user-and-package.md` | During Phase 2 (checks 3–6) — exact sf CLI commands, expected values, and remediation for the user profile/permission-set, managed-package, Life Sciences CE feature, and survey checks |
138
+ | `references/checks-org-settings.md` | During Phase 2 (checks 7–15) — exact sf CLI commands, expected values, and remediation for the OWD sharing, inventory, account plans, care plans, chatter, data protection, currencies, picklists, and person-accounts checks |
@@ -0,0 +1,190 @@
1
+ # Prerequisite Checks — Org-Level Sharing and Data Settings
2
+
3
+ Covers the org-wide sharing and data-feature checks: OWD sharing, inventory count, sales account plans, care plans, chatter, data protection, multiple currencies, state/country picklists, and person accounts. For the user-access, managed-package, Life Sciences CE feature, and survey checks, see `checks-user-and-package.md`.
4
+
5
+ Each section contains: the sf CLI command to run, how to interpret the result, and the remediation steps if the check fails.
6
+
7
+ All Tooling API queries use `sf data query --target-org <org> --json --use-tooling-api`. Replace `<org>` with the target org alias.
8
+
9
+ ---
10
+
11
+ ## OWD Sharing
12
+
13
+ ### Check 4 — Organization-Wide Defaults
14
+
15
+ Query OWD via `EntityDefinition` in the Tooling API:
16
+
17
+ ```bash
18
+ sf data query --query "SELECT ExternalSharingModel, InternalSharingModel, QualifiedApiName FROM EntityDefinition WHERE QualifiedApiName IN ('Account','Case')" --target-org <org> --json --use-tooling-api
19
+ ```
20
+
21
+ **Status: this is a WARNING-level check, not a hard FAIL.** OWD values are org-configuration preferences that depend on how Life Sciences Cloud is deployed. When they differ from the expected values below, record the row as **WARNING** (with the recommended value in the remediation column), not FAIL — do not block on it.
22
+
23
+ **Expected values**:
24
+
25
+ | Object | Expected InternalSharingModel | Expected ExternalSharingModel |
26
+ |--------|-------------------------------|-------------------------------|
27
+ | Account | Private | Private |
28
+ | Case | Private | Private |
29
+
30
+ > Note: In the API response, `Private` means "Private" OWD and `ReadWrite` means "Public Read/Write".
31
+
32
+ **Remediation if the values differ (WARNING):**
33
+
34
+ 1. Navigate to **Setup > Security > Sharing Settings**
35
+ 2. Click **Edit** in the Organization-Wide Defaults section
36
+ 3. Recommended values:
37
+ - **Account**: Private
38
+ - **Case**: Private
39
+ 4. Click **Save**
40
+ 5. Confirm the changes when prompted (recalculation may take time)
41
+
42
+ ---
43
+
44
+ ## Inventory Count
45
+
46
+ ### Check 5 — Inventory Count Enabled
47
+
48
+ **Field** (from IndustriesSettings Metadata): `enableVisitInventoryEnabled`
49
+
50
+ **Pass condition**: Value is `true`.
51
+
52
+ **Remediation if failed**:
53
+
54
+ 1. Navigate to **Setup > Feature Settings > Inventory Management > Inventory Count Settings**
55
+ 2. Enable **Inventory Count**
56
+ 3. Click **Save**
57
+
58
+ ---
59
+
60
+ ## Sales Account Plans
61
+
62
+ ### Check 6 — Sales Account Plans Enabled
63
+
64
+ **Field** (from IndustriesSettings Metadata): `enableLSC4CEKeyAccountManagement`
65
+
66
+ **Pass condition**: Value is `true`.
67
+
68
+ **Remediation if failed**:
69
+
70
+ 1. Navigate to **Setup > Feature Settings > Sales > Accounts > Account Plans > Sales Account Plans**
71
+ 2. Toggle **Switch on Sales Account Plans** to enabled
72
+ 3. Click **Save**
73
+
74
+ ---
75
+
76
+ ## Care Plans
77
+
78
+ ### Check 7 — Care Plans Enabled
79
+
80
+ **Field** (from IndustriesSettings Metadata): `enableCarePlansPreference`
81
+
82
+ **Pass condition**: Value is `true`.
83
+
84
+ **Remediation if failed**:
85
+
86
+ 1. Navigate to **Setup > Feature Settings > Program and Case Management > Care Plan Settings**
87
+ 2. Enable **Care Plans**
88
+ 3. Click **Save**
89
+
90
+ ---
91
+
92
+ ## Chatter Settings
93
+
94
+ ### Check 8 — Chatter Enabled
95
+
96
+ ```bash
97
+ sf data query --query "SELECT IsChatterEnabled FROM ChatterSettings" --target-org <org> --json --use-tooling-api
98
+ ```
99
+
100
+ **Pass condition**: `IsChatterEnabled` is `true`.
101
+
102
+ **Remediation if failed**:
103
+
104
+ 1. Navigate to **Setup > Feature Settings > Chatter > Chatter Settings**
105
+ 2. Enable **Chatter Settings**
106
+ 3. Click **Save**
107
+
108
+ ---
109
+
110
+ ## Data Protection and Privacy
111
+
112
+ ### Check 9 — Data Protection and Privacy Enabled
113
+
114
+ ```bash
115
+ sf data query --query "SELECT Metadata FROM PartyDataModelSettings" --target-org <org> --json --use-tooling-api
116
+ ```
117
+
118
+ **Field** (from Metadata): `enableConsentManagement`
119
+
120
+ **Pass condition**: Value is `true`.
121
+
122
+ **Remediation if failed**:
123
+
124
+ 1. Navigate to **Setup > Company Settings > Data Protection and Privacy**
125
+ 2. Enable **Data Protection and Privacy**
126
+ 3. Click **Save**
127
+
128
+ ---
129
+
130
+ ## Multiple Currencies
131
+
132
+ ### Check 10 — Multiple Currencies Activated
133
+
134
+ ```bash
135
+ sf data query --query "SELECT Id FROM CurrencyType LIMIT 1" --target-org <org> --json
136
+ ```
137
+
138
+ **Pass condition**: The query succeeds and returns at least one record. If the `CurrencyType` object is queryable, Multi-Currency is activated.
139
+
140
+ **Alternative check**: If the above fails with `INVALID_TYPE`, Multi-Currency is NOT activated.
141
+
142
+ **Remediation if failed**:
143
+
144
+ 1. Navigate to **Setup > Company Settings > Company Information**
145
+ 2. Click **Edit**
146
+ 3. Check **Activate Multiple Currencies**
147
+ 4. Click **Save**
148
+ 5. Confirm the activation when prompted
149
+
150
+ > **Warning**: Activating Multiple Currencies is irreversible. Include this warning when presenting remediation steps.
151
+
152
+ ---
153
+
154
+ ## State and Country/Territory Picklists
155
+
156
+ ### Check 11 — State and Country/Territory Picklists Enabled
157
+
158
+ ```bash
159
+ sf data query --query "SELECT Metadata FROM AddressSettings" --target-org <org> --json --use-tooling-api
160
+ ```
161
+
162
+ **Pass condition**: The `Metadata` response contains a `countriesAndStates` object with country data populated. If `countriesAndStates` is present and non-null, the feature is enabled.
163
+
164
+ **Remediation if failed**:
165
+
166
+ 1. Navigate to **Setup > Data > State and Country/Territory Picklists**
167
+ 2. Click **Enable** to enable state and country/territory picklists
168
+ 3. Follow the wizard to configure your picklist values
169
+
170
+ > **Warning**: Enabling State and Country/Territory Picklists is irreversible. Include this warning when presenting remediation steps.
171
+
172
+ ---
173
+
174
+ ## Person Accounts
175
+
176
+ ### Check 12 — Person Accounts Enabled
177
+
178
+ ```bash
179
+ sf data query --query "SELECT Id FROM RecordType WHERE SobjectType = 'Account' AND IsPersonType = true LIMIT 1" --target-org <org> --json
180
+ ```
181
+
182
+ **Pass condition**: At least one record returned (a person-type RecordType exists on Account).
183
+
184
+ **Remediation if failed**:
185
+
186
+ 1. Navigate to **Setup > Feature Settings > Sales > Accounts > Person Accounts**
187
+ 2. Follow the steps to enable Person Accounts
188
+ 3. This requires Record Types to be enabled on Account first
189
+
190
+ > **Warning**: Enabling Person Accounts is irreversible. Include this warning when presenting remediation steps.