@salesforce/afv-skills 1.41.0 → 1.43.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 (288) hide show
  1. package/package.json +2 -6
  2. package/skills/automation-sandbox-post-copy-config-generate/SKILL.md +3 -0
  3. package/skills/automation-sandbox-post-copy-configure/SKILL.md +4 -0
  4. package/skills/design-systems-slds-validate/SKILL.md +2 -2
  5. package/skills/dx-app-analytics-query/SKILL.md +1 -3
  6. package/skills/dx-devops-conflict-resolve/SKILL.md +205 -0
  7. package/skills/dx-devops-conflict-resolve/examples/conflict-workflows.md +165 -0
  8. package/skills/dx-devops-conflict-resolve/references/deploy-failure-resolution.md +75 -0
  9. package/skills/dx-devops-conflict-resolve/references/git-conflict-resolution.md +124 -0
  10. package/skills/dx-devops-conflict-resolve/scripts/detect-conflicts.sh +91 -0
  11. package/skills/dx-devops-conflict-resolve/scripts/diagnose-deploy-failure.sh +156 -0
  12. package/skills/dx-devops-request-status/SKILL.md +160 -0
  13. package/skills/dx-devops-request-status/examples/polling-workflows.md +101 -0
  14. package/skills/dx-devops-request-status/references/cli-commands.md +176 -0
  15. package/skills/dx-devops-request-status/scripts/poll-status.sh +134 -0
  16. package/skills/dx-devops-test-failures-analyze/SKILL.md +6 -6
  17. package/skills/dx-devops-test-pipeline-configure/SKILL.md +7 -7
  18. package/skills/dx-devops-test-suite-assignments-configure/SKILL.md +6 -6
  19. package/skills/dx-devops-test-suite-run/SKILL.md +6 -6
  20. package/skills/dx-devops-work-item-manage/SKILL.md +2 -0
  21. package/skills/dx-org-manage/references/creating-scratch-org.md +5 -2
  22. package/skills/dx-org-manage/references/creating-snapshot.md +1 -0
  23. package/skills/dx-org-shape-manage/SKILL.md +152 -0
  24. package/skills/dx-org-shape-manage/examples/create_error_output.json +9 -0
  25. package/skills/dx-org-shape-manage/examples/create_success_output.json +9 -0
  26. package/skills/dx-org-shape-manage/examples/delete_output.json +11 -0
  27. package/skills/dx-org-shape-manage/examples/list_inactive_output.json +32 -0
  28. package/skills/dx-org-shape-manage/examples/list_output.json +24 -0
  29. package/skills/dx-org-shape-manage/references/cli_flags.md +135 -0
  30. package/skills/dx-org-switch/SKILL.md +2 -2
  31. package/skills/dx-org-trial-expiration-check/SKILL.md +2 -0
  32. package/skills/dx-pkg-post-install-configure/SKILL.md +3 -0
  33. package/skills/education-cloud-multi-campus-configure/SKILL.md +211 -0
  34. package/skills/education-cloud-multi-campus-configure/examples/hierarchy_visualization.md +174 -0
  35. package/skills/education-cloud-multi-campus-configure/examples/output_examples.md +54 -0
  36. package/skills/education-cloud-multi-campus-configure/examples/sample_hierarchy_input.csv +29 -0
  37. package/skills/education-cloud-multi-campus-configure/examples/sample_hierarchy_input_edgecases.csv +16 -0
  38. package/skills/education-cloud-multi-campus-configure/references/account_recordtype_prerequisite.md +44 -0
  39. package/skills/education-cloud-multi-campus-configure/references/delta_computation.md +33 -0
  40. package/skills/education-cloud-multi-campus-configure/references/error_handling.md +198 -0
  41. package/skills/education-cloud-multi-campus-configure/references/foundation_prerequisites.md +54 -0
  42. package/skills/education-cloud-multi-campus-configure/references/gotchas.md +16 -0
  43. package/skills/education-cloud-multi-campus-configure/references/hierarchy_parsing_rules.md +133 -0
  44. package/skills/education-cloud-multi-campus-configure/references/mcp-invocation.md +75 -0
  45. package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/SKILL.md +1 -1
  46. package/skills/experience-cms-brand-apply/SKILL.md +4 -1
  47. package/skills/experience-cms-brand-create/SKILL.md +197 -0
  48. package/skills/experience-cms-brand-create/assets/brand-template.json +329 -0
  49. package/skills/experience-cms-brand-create/references/brand-anatomy.md +120 -0
  50. package/skills/experience-cms-brand-create/references/disk-contract.md +84 -0
  51. package/skills/experience-cms-content-generate/SKILL.md +190 -0
  52. package/skills/experience-cms-content-generate/assets/display-formats.md +84 -0
  53. package/skills/experience-cms-content-generate/assets/payloads/create-content-bulk.json +11 -0
  54. package/skills/experience-cms-content-generate/assets/payloads/create-content-single.json +11 -0
  55. package/skills/experience-cms-content-generate/assets/payloads/publish-content.json +4 -0
  56. package/skills/experience-cms-content-generate/assets/payloads/update-content.json +9 -0
  57. package/skills/experience-cms-content-generate/assets/questions.md +241 -0
  58. package/skills/experience-cms-content-generate/examples/create-content-call.md +81 -0
  59. package/skills/experience-cms-content-generate/references/bulk-batching.md +56 -0
  60. package/skills/experience-cms-content-generate/references/content-type-classification.md +88 -0
  61. package/skills/experience-cms-content-generate/references/content-write-tool.md +95 -0
  62. package/skills/experience-cms-content-generate/references/delegation-protocol.md +37 -0
  63. package/skills/experience-cms-content-generate/references/edit-publish-workflow.md +63 -0
  64. package/skills/experience-cms-content-generate/references/error-recovery.md +72 -0
  65. package/skills/experience-cms-content-generate/references/identifier-resolution.md +26 -0
  66. package/skills/experience-cms-content-generate/references/intent-routing.md +45 -0
  67. package/skills/experience-cms-content-generate/references/principles.md +19 -0
  68. package/skills/experience-cms-content-generate/references/ux-rules.md +68 -0
  69. package/skills/experience-cms-content-generate/references/workspace-resolution.md +33 -0
  70. package/skills/experience-cms-content-type-generate/SKILL.md +449 -0
  71. package/skills/experience-cms-content-type-generate/assets/discovery-prompts.md +79 -0
  72. package/skills/experience-cms-content-type-generate/assets/schema-example.json +70 -0
  73. package/skills/experience-cms-content-type-generate/references/agent-checklist.md +50 -0
  74. package/skills/experience-cms-content-type-generate/references/anti-patterns.md +39 -0
  75. package/skills/experience-cms-content-type-generate/references/deployment-errors.md +27 -0
  76. package/skills/experience-cms-content-type-generate/references/discovery-details.md +106 -0
  77. package/skills/experience-cms-content-type-generate/references/discovery-query-rules.md +85 -0
  78. package/skills/experience-cms-content-type-generate/references/edit-fields-loop.md +48 -0
  79. package/skills/experience-cms-content-type-generate/references/pre-deploy-checklist.md +21 -0
  80. package/skills/experience-cms-content-type-generate/references/retrieve-and-reconcile.md +105 -0
  81. package/skills/experience-cms-content-type-generate/references/schema-rules.md +51 -0
  82. package/skills/experience-cms-content-type-generate/references/schema-summary-format.md +60 -0
  83. package/skills/experience-lds-graphql-generate/SKILL.md +4 -0
  84. package/skills/experience-lwc-accessibility-jest-run/SKILL.md +79 -0
  85. package/skills/experience-lwc-accessibility-jest-run/references/running-sa11y-jest-tests.md +205 -0
  86. package/skills/experience-lwc-design-generate/SKILL.md +5 -4
  87. package/skills/experience-lwc-generate/SKILL.md +10 -9
  88. package/skills/experience-ui-bundle-deploy/references/dev-preview.md +21 -0
  89. package/skills/experience-ui-bundle-deploy/references/social-login.md +1 -0
  90. package/skills/experience-ui-bundle-file-upload-generate/SKILL.md +6 -6
  91. package/skills/experience-ui-bundle-localize/SKILL.md +30 -37
  92. package/skills/experience-ui-bundle-localize/references/gotchas.md +23 -7
  93. package/skills/experience-ui-bundle-localize/references/i18n-setup.md +48 -4
  94. package/skills/experience-ui-bundle-localize/references/label-xml.md +22 -8
  95. package/skills/experience-ui-bundle-localize/references/verifying.md +39 -11
  96. package/skills/experience-ui-bundle-localize/scripts/detect-bundle-type.sh +118 -15
  97. package/skills/experience-ui-bundle-localize/scripts/tests/test-detect-bundle-type.sh +187 -0
  98. package/skills/experience-ui-bundle-mfa-configure/SKILL.md +13 -2
  99. package/skills/experience-ui-bundle-mfa-configure/references/social-login.md +1 -0
  100. package/skills/experience-ui-bundle-project-generate/SKILL.md +2 -2
  101. package/skills/integration-connectivity-generate/SKILL.md +11 -10
  102. package/skills/integration-eventing-cdc-configure/SKILL.md +6 -6
  103. package/skills/integration-eventing-subscription-configure/SKILL.md +6 -5
  104. package/skills/mobile-platform-native-capabilities-integrate/SKILL.md +2 -2
  105. package/skills/mobile-platform-offline-validate/scripts/package.json +1 -1
  106. package/skills/platform-agentexchange-partner-offers-configure/SKILL.md +8 -8
  107. package/skills/platform-custom-application-generate/SKILL.md +2 -0
  108. package/skills/platform-custom-field-generate/SKILL.md +8 -6
  109. package/skills/platform-custom-metadata-type-generate/SKILL.md +460 -0
  110. package/skills/platform-custom-metadata-type-generate/references/cmdt-records.md +251 -0
  111. package/skills/platform-custom-metadata-type-generate/scripts/sanitize-developer-name.sh +46 -0
  112. package/skills/platform-custom-setting-generate/SKILL.md +419 -0
  113. package/skills/platform-dataspace-access-configure/SKILL.md +3 -3
  114. package/skills/platform-sharing-owd-configure/SKILL.md +3 -0
  115. package/skills/platform-value-set-generate/SKILL.md +2 -0
  116. package/skills/service-agentforce-channel-configure/SKILL.md +29 -20
  117. package/skills/service-agentforce-channel-configure/assets/BotEmailDefinition.botEmailDefinition-meta.xml +36 -0
  118. package/skills/service-agentforce-channel-configure/assets/email/unfiled$public/AgentforceForServiceEmailTemplate.email +17 -0
  119. package/skills/service-agentforce-channel-configure/assets/email/unfiled$public/AgentforceForServiceEmailTemplate.email-meta.xml +29 -0
  120. package/skills/service-agentforce-channel-configure/assets/mdapi-package.xml +25 -0
  121. package/skills/service-agentforce-channel-configure/assets/settings-mdapi-package.xml +30 -0
  122. package/skills/service-agentforce-channel-configure/references/agent-wiring.md +20 -0
  123. package/skills/service-agentforce-channel-configure/references/botemaildefinition.md +107 -0
  124. package/skills/service-agentforce-channel-configure/references/channel-branch-email.md +203 -50
  125. package/skills/service-agentforce-channel-configure/references/channel-types.md +30 -3
  126. package/skills/service-agentforce-channel-configure/references/queue-resolution.md +17 -8
  127. package/skills/service-agentforce-channel-configure/references/routing-flow.md +14 -3
  128. package/skills/service-agentforce-channel-configure/scripts/validate-botemaildefinition.py +126 -0
  129. package/skills/service-agentforce-channel-configure/scripts/validate-emailtemplate.py +133 -0
  130. package/skills/service-de-channel-activate/SKILL.md +271 -0
  131. package/skills/service-de-channel-activate/references/gotchas.md +31 -0
  132. package/skills/service-de-channel-activate/references/phone-verification.md +96 -0
  133. package/skills/service-de-channel-activate/references/worked-examples.md +14 -0
  134. package/skills/service-de-channel-consent-configure/SKILL.md +230 -0
  135. package/skills/service-de-channel-consent-configure/references/gotchas.md +41 -0
  136. package/skills/service-de-channel-consent-configure/references/language-keywords.md +84 -0
  137. package/skills/service-de-channel-consent-configure/references/worked-examples.md +134 -0
  138. package/skills/service-de-channel-create/SKILL.md +369 -0
  139. package/skills/service-de-channel-create/references/apple.md +59 -0
  140. package/skills/service-de-channel-create/references/connect-insert.md +84 -0
  141. package/skills/service-de-channel-create/references/facebook.md +154 -0
  142. package/skills/service-de-channel-create/references/line.md +66 -0
  143. package/skills/service-de-channel-create/references/sms.md +98 -0
  144. package/skills/service-de-channel-create/references/whatsapp.md +98 -0
  145. package/skills/service-de-channel-create/references/worked-examples.md +70 -0
  146. package/skills/service-de-channel-routing-configure/SKILL.md +345 -0
  147. package/skills/service-de-channel-routing-configure/references/asa-routing.md +90 -0
  148. package/skills/service-de-channel-routing-configure/references/gotchas.md +27 -0
  149. package/skills/service-de-channel-routing-configure/references/queue-creation.md +123 -0
  150. package/skills/service-de-channel-routing-configure/references/target-locate.md +98 -0
  151. package/skills/service-de-channel-routing-configure/references/worked-examples.md +174 -0
  152. package/skills/service-de-headless-channel-configure/SKILL.md +305 -0
  153. package/skills/service-de-headless-channel-configure/references/gotchas.md +27 -0
  154. package/skills/service-de-headless-channel-configure/references/inputs.md +49 -0
  155. package/skills/service-de-headless-channel-configure/references/output-envelopes.md +53 -0
  156. package/skills/service-de-headless-channel-configure/references/partial-success.md +24 -0
  157. package/skills/service-de-headless-channel-configure/references/terms-and-conditions.md +54 -0
  158. package/skills/service-de-headless-channel-configure/references/worked-examples.md +108 -0
  159. package/skills/service-de-waba-integrate/SKILL.md +227 -0
  160. package/skills/service-digital-engagement-channel-configure/scripts/check-api-version.sh +29 -0
  161. package/skills/service-digital-engagement-messaging-site-integrate/SKILL.md +10 -9
  162. package/skills/service-digital-engagement-messaging-site-integrate/references/lwr_patch.md +39 -21
  163. package/skills/service-digital-engagement-messaging-site-integrate/scripts/patch_lwr_bundle.sh +157 -96
  164. package/skills/service-email-to-case-configure/SKILL.md +190 -0
  165. package/skills/service-email-to-case-configure/assets/CaseSettings.settings-meta.xml +45 -0
  166. package/skills/service-email-to-case-configure/examples/CaseSettings-two-addresses.settings-meta.xml +36 -0
  167. package/skills/service-email-to-case-configure/references/apply-mechanics.md +73 -0
  168. package/skills/service-email-to-case-configure/references/routing_address_reference.md +73 -0
  169. package/skills/service-email-to-case-configure/references/troubleshooting.md +25 -0
  170. package/skills/service-email-to-case-configure/scripts/apply-casesettings.py +1315 -0
  171. package/skills/service-email-to-case-configure/scripts/check-agent-email-capability.sh +26 -0
  172. package/skills/service-email-to-case-configure/scripts/tests/__init__.py +0 -0
  173. package/skills/service-email-to-case-configure/scripts/tests/_bootstrap.py +45 -0
  174. package/skills/service-email-to-case-configure/scripts/tests/_fakeorg.py +366 -0
  175. package/skills/service-email-to-case-configure/scripts/tests/_run.py +84 -0
  176. package/skills/service-email-to-case-configure/scripts/tests/test_apply_org_scenarios.py +655 -0
  177. package/skills/service-email-to-case-configure/scripts/tests/test_get_session.py +134 -0
  178. package/skills/service-email-to-case-configure/scripts/tests/test_new_capabilities.py +193 -0
  179. package/skills/service-email-to-case-configure/scripts/tests/test_validate_casesettings.py +170 -0
  180. package/skills/service-email-to-case-configure/scripts/validate-casesettings.py +229 -0
  181. package/skills/service-itsm-agentic-setup-agentforce-coordinate/SKILL.md +33 -15
  182. package/skills/service-itsm-agentic-setup-agentforce-coordinate/examples/output-templates.md +63 -47
  183. package/skills/service-itsm-agentic-setup-agentforce-studio-configure/SKILL.md +17 -12
  184. package/skills/service-itsm-agentic-setup-agentforce-studio-configure/references/cli-invocation.md +5 -3
  185. package/skills/service-itsm-agentic-setup-agentforce-studio-configure/scripts/classify-enable-plan.mjs +11 -3
  186. package/skills/service-itsm-agentic-setup-agentforce-studio-validate/SKILL.md +8 -6
  187. package/skills/service-itsm-agentic-setup-agentforce-studio-validate/references/cli-invocation.md +3 -3
  188. package/skills/service-itsm-agentic-setup-agentforce-studio-validate/scripts/classify-readiness.mjs +11 -3
  189. package/skills/service-itsm-agentic-setup-configure/SKILL.md +5 -5
  190. package/skills/service-itsm-agentic-setup-configure/examples/output-templates.md +5 -5
  191. package/skills/service-itsm-agentic-setup-employee-agent-configure/SKILL.md +2 -2
  192. package/skills/service-itsm-agentic-setup-employee-agent-configure/references/report-format.md +11 -7
  193. package/skills/service-itsm-agentic-setup-employee-agent-configure/scripts/render-report.mjs +20 -7
  194. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/SKILL.md +10 -6
  195. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/action-availability.md +7 -7
  196. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/report-format.md +11 -7
  197. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/build-create-body.mjs +24 -17
  198. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/classify-action-availability.mjs +98 -58
  199. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/render-report.mjs +20 -7
  200. package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/strip-release-management.mjs +176 -0
  201. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/SKILL.md +19 -19
  202. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/cli-invocation.md +3 -4
  203. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/helper-contracts.md +6 -6
  204. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/permset-topology.md +3 -10
  205. package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/scripts/classify-permset-availability.mjs +7 -9
  206. package/skills/service-itsm-incident-mgmt-configure/SKILL.md +2 -0
  207. package/skills/service-itsm-incident-priority-configure/SKILL.md +15 -12
  208. package/skills/service-itsm-incident-priority-configure/examples/matrix-operations.md +27 -1
  209. package/skills/service-itsm-incident-priority-configure/references/sf-cli-invocation.md +37 -6
  210. package/skills/service-native-voice-recording-transcription-configure/SKILL.md +146 -0
  211. package/skills/service-native-voice-recording-transcription-configure/assets/confirmation-output.json +16 -0
  212. package/skills/service-native-voice-recording-transcription-configure/assets/package.xml +22 -0
  213. package/skills/service-native-voice-recording-transcription-configure/references/thunderbird-voice-settings.md +101 -0
  214. package/skills/service-native-voice-recording-transcription-configure/scripts/enable-recording-transcription.sh +181 -0
  215. package/skills/data360-activate/README.md +0 -38
  216. package/skills/data360-activate/SKILL.md +0 -127
  217. package/skills/data360-connect/README.md +0 -57
  218. package/skills/data360-connect/SKILL.md +0 -163
  219. package/skills/data360-connect/examples/connections/heroku-postgres.json +0 -15
  220. package/skills/data360-connect/examples/connections/ingest-api-connection.json +0 -5
  221. package/skills/data360-connect/examples/connections/ingest-api-schema.json +0 -31
  222. package/skills/data360-connect/examples/connections/redshift.json +0 -16
  223. package/skills/data360-connect/examples/connections/sharepoint-unstructured.json +0 -20
  224. package/skills/data360-connect/examples/connections/snowflake-connection.json +0 -42
  225. package/skills/data360-harmonize/README.md +0 -31
  226. package/skills/data360-harmonize/SKILL.md +0 -126
  227. package/skills/data360-orchestrate/README.md +0 -120
  228. package/skills/data360-orchestrate/SKILL.md +0 -263
  229. package/skills/data360-orchestrate/assets/definitions/activation-target.template.json +0 -5
  230. package/skills/data360-orchestrate/assets/definitions/activation.template.json +0 -7
  231. package/skills/data360-orchestrate/assets/definitions/calculated-insight.template.json +0 -7
  232. package/skills/data360-orchestrate/assets/definitions/data-action-target.template.json +0 -5
  233. package/skills/data360-orchestrate/assets/definitions/data-action.template.json +0 -5
  234. package/skills/data360-orchestrate/assets/definitions/data-graph.template.json +0 -21
  235. package/skills/data360-orchestrate/assets/definitions/data-stream.template.json +0 -55
  236. package/skills/data360-orchestrate/assets/definitions/dmo.template.json +0 -17
  237. package/skills/data360-orchestrate/assets/definitions/identity-resolution.template.json +0 -30
  238. package/skills/data360-orchestrate/assets/definitions/mapping.template.json +0 -14
  239. package/skills/data360-orchestrate/assets/definitions/relationship.template.json +0 -12
  240. package/skills/data360-orchestrate/assets/definitions/search-index.template.json +0 -9
  241. package/skills/data360-orchestrate/assets/definitions/segment.template.json +0 -16
  242. package/skills/data360-orchestrate/references/feature-readiness.md +0 -157
  243. package/skills/data360-orchestrate/references/plugin-setup.md +0 -138
  244. package/skills/data360-orchestrate/scripts/bootstrap-plugin.sh +0 -53
  245. package/skills/data360-orchestrate/scripts/diagnose-org.mjs +0 -511
  246. package/skills/data360-orchestrate/scripts/generate-manifest.mjs +0 -68
  247. package/skills/data360-orchestrate/scripts/verify-plugin.sh +0 -58
  248. package/skills/data360-prepare/README.md +0 -50
  249. package/skills/data360-prepare/SKILL.md +0 -203
  250. package/skills/data360-prepare/examples/ingestion-api/.env.example +0 -8
  251. package/skills/data360-prepare/examples/ingestion-api/README.md +0 -48
  252. package/skills/data360-prepare/examples/ingestion-api/send-data.py +0 -144
  253. package/skills/data360-query/README.md +0 -43
  254. package/skills/data360-query/SKILL.md +0 -128
  255. package/skills/data360-query/examples/search-indexes/hybrid-structured.json +0 -44
  256. package/skills/data360-query/examples/search-indexes/vector-knowledge.json +0 -43
  257. package/skills/data360-segment/README.md +0 -35
  258. package/skills/data360-segment/SKILL.md +0 -123
  259. package/skills/service-helpagent-coordinate/references/channel-help-portal.md +0 -22
  260. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-1-1-non-text-content.md +0 -0
  261. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-i-lists.md +0 -0
  262. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-ii-tables.md +0 -0
  263. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-iii-form-labels.md +0 -0
  264. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-iv-regions.md +0 -0
  265. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-v-groups.md +0 -0
  266. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-5-identify-input.md +0 -0
  267. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-4-3-contrast.md +0 -0
  268. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-1-1-keyboard.md +0 -0
  269. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-4-4-link-purpose.md +0 -0
  270. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-4-6-headings-labels.md +0 -0
  271. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-5-1-pointer-gestures.md +0 -0
  272. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-5-2-pointer-cancellation.md +0 -0
  273. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-5-3-label-in-name.md +0 -0
  274. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-5-7-dragging-movement.md +0 -0
  275. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-2-1-on-focus.md +0 -0
  276. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-2-2-on-input.md +0 -0
  277. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-3-1-error-identification.md +0 -0
  278. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-3-2-labels-instructions.md +0 -0
  279. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-3-3-error-suggestion.md +0 -0
  280. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-4-1-2-i-name.md +0 -0
  281. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-4-1-2-ii-role.md +0 -0
  282. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-4-1-2-iii-value.md +0 -0
  283. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-1-1-non-text-content.md +0 -0
  284. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-4-1-use-of-color.md +0 -0
  285. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-4-10-resize-reflow.md +0 -0
  286. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-4-11-non-text-contrast.md +0 -0
  287. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-4-3-contrast.md +0 -0
  288. /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/scripts/contrast-ratio.py +0 -0
@@ -0,0 +1,101 @@
1
+ # ThunderbirdVoiceSettings — Metadata API contract
2
+
3
+ Reference for enabling Native Voice (Thunderbird Voice) recording and transcription
4
+ via the Metadata API, using the sf CLI `Settings`-container retrieve/deploy path.
5
+ Read this when constructing or debugging `scripts/enable-recording-transcription.sh`.
6
+
7
+ ## The metadata type
8
+
9
+ `ThunderbirdVoiceSettings` is a singleton settings type (extends `Metadata`),
10
+ addressed by a fixed `fullName`:
11
+
12
+ - **type (mdApiType)**: `ThunderbirdVoiceSettings`
13
+ - **fullName**: `ThunderbirdVoice`
14
+
15
+ This skill manages exactly two boolean preferences:
16
+
17
+ | Field | Meaning | This skill |
18
+ |-------|---------|------------|
19
+ | `enableCallRecording` | Capture audio of Native Voice calls | **set `true`** (target) |
20
+ | `enableCallTranscription` | Produce transcripts of Native Voice calls | **set `true`** (target) |
21
+
22
+ Recording and transcription are independent — a call can be recorded without being
23
+ transcribed and vice versa — so they are always modeled and reported as two separate
24
+ preferences.
25
+
26
+ The type may expose other booleans (e.g. `enableCallRecRedaction`,
27
+ `enableRealTimeStreamingRecording`, `enableSipRecording`). They are **out of scope** to
28
+ *change*: the skill reads them only to preserve their existing values on the deployed
29
+ file. It does, however, **echo them back unchanged** in a `preserved` block of the
30
+ confirmation JSON — reporting a sibling's retrieved value is not the same as setting it,
31
+ and compliance callers rely on that block for explicit "nothing else moved" assurance.
32
+ No sibling is ever reported as changed.
33
+
34
+ ## Why the sf CLI, not raw SOAP
35
+
36
+ `ThunderbirdVoiceSettings` is not a retrievable top-level type name, so it is easy to
37
+ conclude "raw SOAP `updateMetadata()` is the only path." That is wrong. The generic
38
+ **`Settings`** container type *is* in the sf CLI metadata registry, and its member is
39
+ the mdApiType **without** the trailing `Settings` — i.e. `ThunderbirdVoice`. Retrieving
40
+ and deploying through that container:
41
+
42
+ - authenticates with the org's existing **`sf` login** — no browser session id /
43
+ access token is ever handled (raw SOAP on internal pc-rnd orgs rejects CLI OAuth
44
+ sessions on the SOAP endpoint, which is why a SOAP path there needs a browser sid);
45
+ - lets us **retrieve first** to check the gate and snapshot sibling prefs, then deploy
46
+ a full file that preserves them;
47
+ - gives a built-in **verify** step (round-trip retrieve).
48
+
49
+ ## The manifest
50
+
51
+ `assets/package.xml` is the manifest template (the script generates it into a temp
52
+ SFDX project). Two things matter:
53
+
54
+ ```xml
55
+ <types><members>ThunderbirdVoice</members><name>Settings</name></types>
56
+ <version>68.0</version>
57
+ ```
58
+
59
+ - **member** = `ThunderbirdVoice` (mdApiType minus `Settings`), **name** = `Settings`.
60
+ - **Pin the version to 68.0.** `ThunderbirdVoiceSettings` fields are only exposed at
61
+ API **v68.0 and above**, so anything below 68.0 returns the type empty/absent — the
62
+ fields simply are not in the schema at those versions. But do NOT reach for the CLI's
63
+ newest default either: a retrieve/deploy at a version **above the org's max supported
64
+ API** SILENTLY returns an empty result (no error), indistinguishable from "feature not
65
+ provisioned". 68.0 is the field-exposure floor and works on every org that has the
66
+ feature. (Verified sweep on thb-einstein, org max v68.0: v64/62/60 → "Settings type
67
+ 'ThunderbirdVoice' is unknown"; v65/66/67 → type absent; v68 → fields present, deploy
68
+ round-trips; **v69 → success:true but files:[] — silent empty**.)
69
+
70
+ ## Sequence
71
+
72
+ 1. **Retrieve** `-x package.xml` → `force-app/main/default/settings/ThunderbirdVoice.settings-meta.xml`.
73
+ 2. **Gate check.** If the file is an empty self-closing `<ThunderbirdVoiceSettings/>`
74
+ (no fields), the org-perm gate `ThunderbirdVoice.orgHasNativeVoiceAllowed` is **off**
75
+ — Native Voice is not provisioned. Stop; this is enabled via provisioning/Blacktab,
76
+ not this skill. If the fields are listed, the gate is on — proceed.
77
+ 3. **Flip** `enableCallRecording` and `enableCallTranscription` to `true`; leave every
78
+ sibling field at its retrieved value.
79
+ 4. **Validate** with `deploy --dry-run` (never skip).
80
+ 5. **Deploy**.
81
+ 6. **Verify** by re-retrieving and confirming the org *returns* both `true`.
82
+
83
+ ## Distinguishing the two failure modes
84
+
85
+ | Symptom | Cause | What to do |
86
+ |---------|-------|------------|
87
+ | Retrieve returns fields, deploy round-trips | Working as intended | done |
88
+ | Retrieve returns an **empty** `<ThunderbirdVoiceSettings/>` | Org-perm gate off (feature not provisioned) | provision / Blacktab — not fixable via metadata |
89
+ | Retrieve returns **no** settings file, or `Settings` type "unknown" | **API version too low** (< 68.0) | raise `--api-version` to 68.0+ |
90
+
91
+ > The historical `FIELD_INTEGRITY_EXCEPTION: Property 'enableCallRecording' not valid
92
+ > in version <N>` error was **a version problem, not a feature gate** — it appeared when
93
+ > the request used an API version below 68.0. Bumping to v68.0+ resolves it. Do not
94
+ > mistake it for an unprovisioned feature; distinguish the two with the retrieve gate
95
+ > check above.
96
+
97
+ ## Auth
98
+
99
+ `scripts/enable-recording-transcription.sh --target-org <alias>` uses the sf CLI's
100
+ existing authentication for that alias (confirm with `sf org display -o <alias>`). No
101
+ session id or access token is requested, handled, or printed.
@@ -0,0 +1,181 @@
1
+ #!/usr/bin/env bash
2
+ #
3
+ # Enable Native Voice (Thunderbird Voice) call recording + transcription via the
4
+ # Metadata API, using the sf CLI Settings-container retrieve/deploy path.
5
+ #
6
+ # Scope: this skill enables exactly two preferences — enableCallRecording and
7
+ # enableCallTranscription. Every other ThunderbirdVoiceSettings boolean is read
8
+ # only to be preserved verbatim — none is changed. The siblings ARE reported
9
+ # back (unchanged) in a `preserved` block so compliance callers can confirm
10
+ # nothing else moved; reporting a value is not the same as setting it.
11
+ #
12
+ # Why sf CLI (not raw SOAP): the generic `Settings` metadata type IS in the sf
13
+ # CLI registry (member = the type name without the `Settings` suffix, i.e.
14
+ # `ThunderbirdVoice`). Deploying through it authenticates with the org's existing
15
+ # `sf` login — no browser session id / access token is ever handled. Retrieving
16
+ # first lets us (a) check the org-perm gate and (b) preserve sibling prefs.
17
+ #
18
+ # Sequence: retrieve -> gate check -> flip the two target fields -> validate
19
+ # (dry-run) -> deploy -> verify by round-trip -> print a JSON confirmation.
20
+ #
21
+ # Deps: sf, jq. (No curl, no session id.)
22
+ #
23
+ set -euo pipefail
24
+
25
+ # ThunderbirdVoiceSettings fields are only exposed at API v68.0+; below that the
26
+ # Settings type does not appear in a retrieve at all. Default to exactly 68.0 — the
27
+ # field-exposure floor. A retrieve/deploy at a version ABOVE the org's max supported
28
+ # API SILENTLY returns an empty result (no error), which is indistinguishable from
29
+ # "feature not provisioned". 68.0 works on every org that has the feature; do NOT
30
+ # bump this default to a newer version unless you also cap it to the org's max.
31
+ API_VERSION="68.0"
32
+ TARGET_ORG=""
33
+ DRY_RUN="false"
34
+
35
+ # mdApiType ThunderbirdVoiceSettings -> package.xml member without the "Settings" suffix.
36
+ MEMBER="ThunderbirdVoice"
37
+ SETTINGS_FILE_REL="force-app/main/default/settings/${MEMBER}.settings-meta.xml"
38
+
39
+ usage() {
40
+ cat <<'EOF'
41
+ Enable Native Voice call recording + transcription (sf CLI Settings deploy).
42
+
43
+ Usage:
44
+ enable-recording-transcription.sh --target-org <alias> [--dry-run] [--api-version X.Y]
45
+
46
+ Options:
47
+ --target-org <alias> Org alias/username the sf CLI is authenticated to. Required.
48
+ --api-version <X.Y> Metadata API version (default: 68.0; must be >= 68.0, the
49
+ version at which ThunderbirdVoiceSettings is exposed). Do NOT
50
+ exceed the target org's max supported version — a retrieve
51
+ above it silently returns empty.
52
+ --dry-run Retrieve + validate the change (deploy --dry-run) but do NOT
53
+ persist it. Prints the JSON confirmation with status VALIDATED.
54
+ -h, --help Show this help.
55
+
56
+ On success prints a JSON confirmation object: the two enabled preferences reported
57
+ separately, plus a `preserved` block echoing every sibling boolean (unchanged) so
58
+ callers can confirm nothing else moved.
59
+ Uses the org's sf login; no session id / access token is handled or printed.
60
+ EOF
61
+ }
62
+
63
+ while [ $# -gt 0 ]; do
64
+ case "$1" in
65
+ --target-org) TARGET_ORG="$2"; shift 2 ;;
66
+ --api-version) API_VERSION="$2"; shift 2 ;;
67
+ --dry-run) DRY_RUN="true"; shift ;;
68
+ -h|--help) usage; exit 0 ;;
69
+ *) echo "ERROR: unknown argument: $1" >&2; usage >&2; exit 2 ;;
70
+ esac
71
+ done
72
+
73
+ fail() { echo "ERROR: $*" >&2; exit 1; }
74
+
75
+ command -v sf >/dev/null 2>&1 || fail "sf CLI not found (required)."
76
+ command -v jq >/dev/null 2>&1 || fail "jq not found (required)."
77
+ [ -n "$TARGET_ORG" ] || fail "--target-org is required."
78
+
79
+ # Guard the version floor deterministically. Require a full X.Y form so a bare
80
+ # major like "68" can't end up as <version>68</version> in the manifest.
81
+ printf '%s' "$API_VERSION" | grep -qE '^[0-9]+\.[0-9]+$' \
82
+ || fail "invalid --api-version '$API_VERSION' (expected X.Y, e.g. 68.0)."
83
+ API_MAJOR="${API_VERSION%%.*}"
84
+ [ "$API_MAJOR" -ge 68 ] || fail "--api-version must be >= 68.0 (ThunderbirdVoiceSettings is not exposed below v68.0). Got $API_VERSION."
85
+
86
+ # --- scaffold an isolated SFDX project so the retrieve/deploy is self-contained
87
+ WORKDIR="$(mktemp -d)"
88
+ trap 'rm -rf "$WORKDIR"' EXIT
89
+ sf project generate --name p --output-dir "$WORKDIR" >/dev/null 2>&1 \
90
+ || fail "could not scaffold a temporary SFDX project."
91
+ PROJ="$WORKDIR/p"
92
+
93
+ cat > "$PROJ/package.xml" <<EOF
94
+ <?xml version="1.0" encoding="UTF-8"?>
95
+ <Package xmlns="http://soap.sforce.com/2006/04/metadata">
96
+ <types><members>${MEMBER}</members><name>Settings</name></types>
97
+ <version>${API_VERSION}</version>
98
+ </Package>
99
+ EOF
100
+
101
+ SETTINGS_FILE="$PROJ/$SETTINGS_FILE_REL"
102
+
103
+ # --- step 1: retrieve current settings (gate check + sibling snapshot) --------
104
+ ( cd "$PROJ" && sf project retrieve start -x package.xml -o "$TARGET_ORG" >/dev/null 2>&1 ) \
105
+ || fail "retrieve failed for org '$TARGET_ORG'. Check the alias is connected (sf org display -o $TARGET_ORG)."
106
+
107
+ [ -f "$SETTINGS_FILE" ] || fail "retrieve returned no ${MEMBER}.settings-meta.xml — the Settings type was not returned at v${API_VERSION}. Two causes: (a) v${API_VERSION} is BELOW 68.0 (fields not yet exposed), or (b) v${API_VERSION} is ABOVE the org's max supported API version, which SILENTLY returns empty. Pin --api-version to the org's max (68.0 works on every org that has the feature)."
108
+
109
+ # Gate check: an empty self-closing element means the org-perm gate
110
+ # (orgHasNativeVoiceAllowed) is OFF — the feature is not provisioned. The fields
111
+ # are only present when the gate is on.
112
+ if ! grep -q '<enableCallRecording>' "$SETTINGS_FILE"; then
113
+ fail "Native Voice is not provisioned on '$TARGET_ORG' (ThunderbirdVoiceSettings returned no fields). This is an org-perm gate enabled through provisioning/Blacktab, not something this skill can flip."
114
+ fi
115
+
116
+ # --- step 2: flip only the two target fields, preserve every sibling ----------
117
+ # Version-suffixed sed -i for BSD (macOS) + GNU portability.
118
+ sed -E -i.bak \
119
+ -e 's|<enableCallRecording>[^<]*</enableCallRecording>|<enableCallRecording>true</enableCallRecording>|' \
120
+ -e 's|<enableCallTranscription>[^<]*</enableCallTranscription>|<enableCallTranscription>true</enableCallTranscription>|' \
121
+ "$SETTINGS_FILE"
122
+ rm -f "${SETTINGS_FILE}.bak"
123
+
124
+ grep -q '<enableCallRecording>true</enableCallRecording>' "$SETTINGS_FILE" || fail "could not set enableCallRecording in the retrieved file."
125
+ grep -q '<enableCallTranscription>true</enableCallTranscription>' "$SETTINGS_FILE" || fail "could not set enableCallTranscription in the retrieved file."
126
+
127
+ # --- step 3: validate (dry-run). Never skip. ---------------------------------
128
+ ( cd "$PROJ" && sf project deploy start -x package.xml -o "$TARGET_ORG" --dry-run --ignore-conflicts >/dev/null 2>&1 ) \
129
+ || fail "validation (deploy --dry-run) failed — the org rejected the change. Re-check the gate (step 1)."
130
+
131
+ # Collect every boolean sibling (<tag>true|false</tag>) EXCEPT the two target
132
+ # prefs from the retrieved settings file, as a JSON array [{name, enabled}], so
133
+ # the confirmation can attest each sibling was retrieved and carried through
134
+ # unchanged. `grep -o` isolates each pair; `#`-delimited sed avoids colliding
135
+ # with the `|` alternation; the `|| true` guards keep an empty result (no
136
+ # siblings) from tripping `set -o pipefail`.
137
+ extract_preserved() { # $1 = settings xml file -> JSON array on stdout
138
+ { grep -oE '<[A-Za-z][A-Za-z0-9]*>(true|false)</[A-Za-z][A-Za-z0-9]*>' "$1" || true; } \
139
+ | sed -E 's#<([A-Za-z0-9]+)>([a-z]+)</[A-Za-z0-9]+>#\1 \2#' \
140
+ | { grep -vE '^(enableCallRecording|enableCallTranscription) ' || true; } \
141
+ | jq -R -s 'split("\n") | map(select(length > 0) | split(" ") | { name: .[0], enabled: (.[1] == "true") })'
142
+ }
143
+
144
+ emit_json() { # $1 = status, $2 = preserved siblings JSON array
145
+ jq -n --arg apiVersion "$API_VERSION" --arg status "$1" --argjson preserved "$2" \
146
+ '{
147
+ type: "ThunderbirdVoiceSettings",
148
+ fullName: "ThunderbirdVoice",
149
+ apiVersion: $apiVersion,
150
+ method: "sf project deploy (Settings/ThunderbirdVoice)",
151
+ headless: true,
152
+ preferences: [
153
+ { name: "enableCallRecording", enabled: true },
154
+ { name: "enableCallTranscription", enabled: true }
155
+ ],
156
+ preserved: $preserved,
157
+ status: $status
158
+ }'
159
+ }
160
+
161
+ if [ "$DRY_RUN" = "true" ]; then
162
+ # Siblings are still at their retrieved values in the local file (only the two
163
+ # targets were flipped in step 2); report them as preserved.
164
+ emit_json "VALIDATED" "$(extract_preserved "$SETTINGS_FILE")"
165
+ exit 0
166
+ fi
167
+
168
+ # --- step 4: deploy ----------------------------------------------------------
169
+ ( cd "$PROJ" && sf project deploy start -x package.xml -o "$TARGET_ORG" --ignore-conflicts >/dev/null 2>&1 ) \
170
+ || fail "deploy failed after a successful dry-run."
171
+
172
+ # --- step 5: verify by round-trip (do not trust "Succeeded") -----------------
173
+ rm -f "$SETTINGS_FILE"
174
+ ( cd "$PROJ" && sf project retrieve start -x package.xml -o "$TARGET_ORG" >/dev/null 2>&1 ) \
175
+ || fail "post-deploy retrieve failed; cannot verify."
176
+ grep -q '<enableCallRecording>true</enableCallRecording>' "$SETTINGS_FILE" || fail "verification failed: org did not return enableCallRecording=true."
177
+ grep -q '<enableCallTranscription>true</enableCallTranscription>' "$SETTINGS_FILE" || fail "verification failed: org did not return enableCallTranscription=true."
178
+
179
+ # Report siblings from the post-deploy round-tripped file — their real, current
180
+ # (unchanged) values, proving nothing else moved.
181
+ emit_json "ENABLED" "$(extract_preserved "$SETTINGS_FILE")"
@@ -1,38 +0,0 @@
1
- # data360-activate
2
-
3
- Activation and downstream delivery workflows for Salesforce Data Cloud.
4
-
5
- ## Use this skill for
6
-
7
- - activations
8
- - activation targets
9
- - data actions
10
- - data action targets
11
- - downstream platform inspection before push
12
-
13
- ## Example requests
14
-
15
- ```text
16
- "Activate this segment to the downstream platform"
17
- "Show me what activation targets already exist"
18
- "Create a data action target for this integration"
19
- "Help me inspect why this activation is not ready"
20
- ```
21
-
22
- ## Common commands
23
-
24
- ```bash
25
- sf data360 activation platforms -o myorg 2>/dev/null
26
- sf data360 activation-target list -o myorg 2>/dev/null
27
- sf data360 activation list -o myorg 2>/dev/null
28
- sf data360 data-action-target list -o myorg 2>/dev/null
29
- ```
30
-
31
- ## References
32
-
33
- - [SKILL.md](SKILL.md)
34
- - [../data360-orchestrate/assets/definitions/activation-target.template.json](../data360-orchestrate/assets/definitions/activation-target.template.json)
35
- - [../data360-orchestrate/assets/definitions/activation.template.json](../data360-orchestrate/assets/definitions/activation.template.json)
36
- - [../data360-orchestrate/assets/definitions/data-action-target.template.json](../data360-orchestrate/assets/definitions/data-action-target.template.json)
37
- - [../data360-orchestrate/assets/definitions/data-action.template.json](../data360-orchestrate/assets/definitions/data-action.template.json)
38
- - [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
@@ -1,127 +0,0 @@
1
- ---
2
- name: data360-activate
3
- description: "Salesforce Data Cloud Act phase. Use this skill when the user manages activations, activation targets, data actions, or downstream delivery of Data Cloud audiences and data. TRIGGER when: user manages activations, activation targets, data actions, or downstream delivery of Data Cloud audiences and data. DO NOT TRIGGER when: the task is segment creation (use data360-segment), data retrieval/search work (use data360-query), or STDM/session tracing (use agentforce-observe)."
4
- metadata:
5
- cliTools:
6
- - tool: ["node"]
7
- semver: ">=18.0.0"
8
- - tool: ["sf"]
9
- semver: ">=2.0.0"
10
- relatedSkills:
11
- - "agentforce-observe"
12
- - "data360-connect"
13
- - "data360-orchestrate"
14
- - "data360-prepare"
15
- - "data360-query"
16
- - "data360-segment"
17
- version: "1.0"
18
- domains: ["Data 360"]
19
- ---
20
-
21
- # data360-activate: Data Cloud Act Phase
22
-
23
- Use this skill when the user needs **downstream delivery work**: activations, activation targets, data actions, or pushing Data Cloud outputs into other systems.
24
-
25
- ## When This Skill Owns the Task
26
-
27
- Use `data360-activate` when the work involves:
28
- - `sf data360 activation *`
29
- - `sf data360 activation-target *`
30
- - `sf data360 data-action *`
31
- - `sf data360 data-action-target *`
32
- - verifying downstream delivery setup
33
-
34
- Delegate elsewhere when the user is:
35
- - still building the audience or insight → [data360-segment](../data360-segment/SKILL.md)
36
- - exploring query/search or search indexes → [data360-query](../data360-query/SKILL.md)
37
- - setting up base connections or ingestion → [data360-connect](../data360-connect/SKILL.md), [data360-prepare](../data360-prepare/SKILL.md)
38
-
39
- ---
40
-
41
- ## Required Context to Gather First
42
-
43
- Ask for or infer:
44
- - target org alias
45
- - destination platform or downstream system
46
- - whether the segment already exists and is published
47
- - whether the user needs create, inspect, update, or delete
48
- - whether the task is activation-focused or data-action-focused
49
-
50
- ---
51
-
52
- ## Core Operating Rules
53
-
54
- - Verify the upstream segment or insight is healthy before creating downstream delivery assets.
55
- - Run the shared readiness classifier before mutating activation assets: `node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase act --json`.
56
- - Inspect available platforms and targets before mutating activation setup.
57
- - Keep destination definitions deterministic and reusable where possible.
58
- - Treat downstream credential and platform constraints as separate validation concerns.
59
- - Prefer read-only inspection first when the destination state is unclear.
60
-
61
- ---
62
-
63
- ## Recommended Workflow
64
-
65
- ### 1. Classify readiness for act work
66
- ```bash
67
- node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase act --json
68
- ```
69
-
70
- ### 2. Inspect destinations first
71
- ```bash
72
- sf data360 activation platforms -o <org> 2>/dev/null
73
- sf data360 activation-target list -o <org> 2>/dev/null
74
- sf data360 data-action-target list -o <org> 2>/dev/null
75
- ```
76
-
77
- ### 3. Create the destination before the activation
78
- ```bash
79
- sf data360 activation-target create -o <org> -f target.json 2>/dev/null
80
- sf data360 data-action-target create -o <org> -f target.json 2>/dev/null
81
- ```
82
-
83
- ### 4. Create the activation or data action
84
- ```bash
85
- sf data360 activation create -o <org> -f activation.json 2>/dev/null
86
- sf data360 data-action create -o <org> -f action.json 2>/dev/null
87
- ```
88
-
89
- ### 5. Verify downstream readiness
90
- ```bash
91
- sf data360 activation list -o <org> 2>/dev/null
92
- sf data360 activation data -o <org> --name <activation> 2>/dev/null
93
- ```
94
-
95
- ---
96
-
97
- ## High-Signal Gotchas
98
-
99
- - Activation design depends on a healthy published upstream segment.
100
- - Destination configuration usually comes before activation creation.
101
- - Downstream credential and platform constraints may live outside the Data Cloud CLI alone.
102
- - Read-only inspection is the safest first move when the destination setup is unclear.
103
- - `CdpActivationTarget` or `CdpActivationExternalPlatform` means the activation surface is gated for the current org/user; guide the user toward activation setup, permissions, and destination configuration instead of retrying blindly.
104
-
105
- ---
106
-
107
- ## Output Format
108
-
109
- ```text
110
- Act task: <activation / activation-target / data-action / data-action-target>
111
- Destination: <platform or target>
112
- Target org: <alias>
113
- Artifacts: <definition files / commands>
114
- Verification: <listed / created / blocked>
115
- Next step: <destination validation or downstream testing>
116
- ```
117
-
118
- ---
119
-
120
- ## References
121
-
122
- - [../data360-orchestrate/assets/definitions/activation-target.template.json](../data360-orchestrate/assets/definitions/activation-target.template.json)
123
- - [../data360-orchestrate/assets/definitions/activation.template.json](../data360-orchestrate/assets/definitions/activation.template.json)
124
- - [../data360-orchestrate/assets/definitions/data-action-target.template.json](../data360-orchestrate/assets/definitions/data-action-target.template.json)
125
- - [../data360-orchestrate/assets/definitions/data-action.template.json](../data360-orchestrate/assets/definitions/data-action.template.json)
126
- - [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
127
- - [../data360-orchestrate/references/feature-readiness.md](../data360-orchestrate/references/feature-readiness.md)
@@ -1,57 +0,0 @@
1
- # data360-connect
2
-
3
- Connection and connector workflows for Salesforce Data Cloud.
4
-
5
- ## Use this skill for
6
-
7
- - listing available connector types
8
- - inspecting configured connections
9
- - testing a connection
10
- - browsing source objects, databases, fields, and uploaded schemas
11
- - preparing connector JSON for Snowflake, SharePoint Unstructured, and Ingestion API sources
12
- - preparing for stream creation
13
-
14
- ## Key reminders
15
-
16
- - `connection list` requires `--connector-type`
17
- - `connection test` may need `--connector-type` for non-Salesforce name resolution
18
- - use `connection schema-upsert` after creating an Ingestion API connector
19
- - start with inspection before mutation
20
- - use `2>/dev/null` to suppress linked-plugin warning noise
21
- - some connector types can be created by API while downstream stream creation still requires UI flow
22
-
23
- ## Example requests
24
-
25
- ```text
26
- "Show me which Data Cloud connections already exist in this org"
27
- "Test my Snowflake Data Cloud connection"
28
- "What source objects are available on this Salesforce connector?"
29
- "Help me create an Ingestion API connector and upload its schema"
30
- "Set up a SharePoint Unstructured connection for document ingestion"
31
- ```
32
-
33
- ## Common commands
34
-
35
- ```bash
36
- sf data360 connection connector-list -o myorg 2>/dev/null
37
- sf data360 connection list -o myorg --connector-type SalesforceDotCom 2>/dev/null
38
- sf data360 connection get -o myorg --name SalesforceDotCom_Home 2>/dev/null
39
- sf data360 connection test -o myorg --name Snowflake_Demo --connector-type SNOWFLAKE 2>/dev/null
40
- sf data360 connection schema-get -o myorg --name <connector-id> 2>/dev/null
41
- sf data360 connection create -o myorg -f examples/connections/heroku-postgres.json 2>/dev/null
42
- sf data360 connection schema-upsert -o myorg --name <connector-id> -f examples/connections/ingest-api-schema.json 2>/dev/null
43
- ```
44
-
45
- ## Example payloads
46
-
47
- - [examples/connections/heroku-postgres.json](examples/connections/heroku-postgres.json)
48
- - [examples/connections/redshift.json](examples/connections/redshift.json)
49
- - [examples/connections/sharepoint-unstructured.json](examples/connections/sharepoint-unstructured.json)
50
- - [examples/connections/snowflake-connection.json](examples/connections/snowflake-connection.json)
51
- - [examples/connections/ingest-api-connection.json](examples/connections/ingest-api-connection.json)
52
- - [examples/connections/ingest-api-schema.json](examples/connections/ingest-api-schema.json)
53
-
54
- ## References
55
-
56
- - [SKILL.md](SKILL.md)
57
- - [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
@@ -1,163 +0,0 @@
1
- ---
2
- name: data360-connect
3
- description: "Salesforce Data Cloud Connect phase. Use this skill when the user manages Data Cloud connections, connectors, or sets up a new source system. TRIGGER when: user manages Data Cloud connections, connectors, connector metadata, tests a connection, browses source objects or databases, or sets up a new source system. DO NOT TRIGGER when: the task is about data streams or DLOs (use data360-prepare), DMOs or identity resolution (use data360-harmonize), retrieval/search (use data360-query), or STDM telemetry (use agentforce-observe)."
4
- metadata:
5
- cliTools:
6
- - tool: ["node"]
7
- semver: ">=18.0.0"
8
- - tool: ["sf"]
9
- semver: ">=2.0.0"
10
- relatedSkills:
11
- - "agentforce-observe"
12
- - "data360-harmonize"
13
- - "data360-orchestrate"
14
- - "data360-prepare"
15
- - "data360-query"
16
- version: "1.0"
17
- domains: ["Data 360"]
18
- ---
19
-
20
- # data360-connect: Data Cloud Connect Phase
21
-
22
- Use this skill when the user needs **source connection work**: connector discovery, connection metadata, connection testing, source-object browsing, connector schema inspection, or connector-specific setup payloads for external sources.
23
-
24
- ## When This Skill Owns the Task
25
-
26
- Use `data360-connect` when the work involves:
27
- - `sf data360 connection *`
28
- - connector catalog inspection
29
- - connection creation, update, test, or delete
30
- - browsing source objects, fields, databases, or schemas
31
- - identifying connector types already in use
32
- - preparing connector definitions for Snowflake, SharePoint Unstructured, or Ingestion API sources
33
-
34
- Delegate elsewhere when the user is:
35
- - creating data streams or DLOs → [data360-prepare](../data360-prepare/SKILL.md)
36
- - creating DMOs, mappings, IR rulesets, or data graphs → [data360-harmonize](../data360-harmonize/SKILL.md)
37
- - writing Data Cloud SQL or search-index workflows → [data360-query](../data360-query/SKILL.md)
38
-
39
- ---
40
-
41
- ## Required Context to Gather First
42
-
43
- Ask for or infer:
44
- - target org alias
45
- - connector type or source system
46
- - whether the user wants inspection only or live mutation
47
- - connection name or ID if one already exists
48
- - whether credentials are already configured outside the CLI
49
- - whether the user also expects stream creation right after connection setup
50
- - whether the source is a database, an unstructured document source, or an Ingestion API feed
51
-
52
- ---
53
-
54
- ## Core Operating Rules
55
-
56
- - Verify the plugin runtime first; see [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md).
57
- - Run the shared readiness classifier before mutating connections: `node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase connect --json`.
58
- - Prefer read-only discovery before connection creation.
59
- - Suppress linked-plugin warning noise with `2>/dev/null` for standard usage.
60
- - Remember that `connection list` requires `--connector-type`.
61
- - For `connection test`, pass `--connector-type` when resolving a non-Salesforce connection by name.
62
- - Discover existing connector types from streams first when the org is unfamiliar.
63
- - Use curated example payloads before inventing connector-specific credentials or parameters.
64
- - For connector types outside the curated examples, inspect a known-good UI-created connection via REST before building JSON.
65
- - Do not promise API-based stream creation for every connector type just because connection creation succeeds.
66
-
67
- ---
68
-
69
- ## Recommended Workflow
70
-
71
- ### 1. Classify readiness for connect work
72
- ```bash
73
- node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase connect --json
74
- ```
75
-
76
- ### 2. Discover connector types
77
- ```bash
78
- sf data360 connection connector-list -o <org> 2>/dev/null
79
- sf data360 data-stream list -o <org> 2>/dev/null
80
- ```
81
-
82
- ### 3. Inspect connections by type
83
- ```bash
84
- sf data360 connection list -o <org> --connector-type SalesforceDotCom 2>/dev/null
85
- sf data360 connection list -o <org> --connector-type REDSHIFT 2>/dev/null
86
- sf data360 connection list -o <org> --connector-type SNOWFLAKE 2>/dev/null
87
- ```
88
-
89
- ### 4. Inspect a specific connection or uploaded schema
90
- ```bash
91
- sf data360 connection get -o <org> --name <connection> 2>/dev/null
92
- sf data360 connection objects -o <org> --name <connection> 2>/dev/null
93
- sf data360 connection fields -o <org> --name <connection> 2>/dev/null
94
- sf data360 connection schema-get -o <org> --name <connection-id> 2>/dev/null
95
- ```
96
-
97
- ### 5. Test or create only after discovery
98
- ```bash
99
- sf data360 connection test -o <org> --name <connection> --connector-type <type> 2>/dev/null
100
- sf data360 connection create -o <org> -f connection.json 2>/dev/null
101
- ```
102
-
103
- ### 6. Start from curated example payloads for external connectors
104
- Use the phase-owned examples before inventing a payload from scratch:
105
- - `examples/connections/heroku-postgres.json`
106
- - `examples/connections/redshift.json`
107
- - `examples/connections/sharepoint-unstructured.json`
108
- - `examples/connections/snowflake-connection.json`
109
- - `examples/connections/ingest-api-connection.json`
110
- - `examples/connections/ingest-api-schema.json`
111
-
112
- Typical Ingestion API setup flow:
113
- ```bash
114
- sf data360 connection create -o <org> -f examples/connections/ingest-api-connection.json 2>/dev/null
115
- sf data360 connection schema-upsert -o <org> --name <connector-id> -f examples/connections/ingest-api-schema.json 2>/dev/null
116
- sf data360 connection schema-get -o <org> --name <connector-id> 2>/dev/null
117
- ```
118
-
119
- ### 7. Discover payload fields for unknown connector types
120
- Create one in the UI, then inspect it directly:
121
- ```bash
122
- sf api request rest "/services/data/v66.0/ssot/connections/<id>" -o <org>
123
- ```
124
-
125
- ---
126
-
127
- ## High-Signal Gotchas
128
-
129
- - `connection list` has no true global "list all" mode; query by connector type.
130
- - The connector catalog name and connection connector type are not always the same label.
131
- - `connection test` may need `--connector-type` for name resolution when the source is not a default Salesforce connector.
132
- - An empty connection list usually means "enabled but not configured yet", not "feature disabled".
133
- - Heroku Postgres, Redshift, Snowflake, SharePoint Unstructured, and Ingestion API all use different credential and parameter shapes; reuse the curated examples instead of guessing.
134
- - SharePoint Unstructured uses `clientId`, `clientSecret`, and `tokenEndpoint` in the `credentials` array and does not require a `parameters` array.
135
- - Snowflake uses key-pair auth and can often be created through the API, but downstream stream creation can still remain UI-only.
136
- - Ingestion API connector setup is incomplete until `connection schema-upsert` has uploaded the object schema.
137
- - Some external connector credential setup still depends on UI-side configuration or external-system permissions.
138
-
139
- ---
140
-
141
- ## Output Format
142
-
143
- ```text
144
- Connect task: <inspect / create / test / update>
145
- Connector type: <SalesforceDotCom / REDSHIFT / SNOWFLAKE / SPUnstructuredDocument / IngestApi / ...>
146
- Target org: <alias>
147
- Commands: <key commands run>
148
- Verification: <passed / partial / blocked>
149
- Next step: <prepare phase or connector follow-up>
150
- ```
151
-
152
- ---
153
-
154
- ## References
155
-
156
- - [examples/connections/heroku-postgres.json](examples/connections/heroku-postgres.json)
157
- - [examples/connections/redshift.json](examples/connections/redshift.json)
158
- - [examples/connections/sharepoint-unstructured.json](examples/connections/sharepoint-unstructured.json)
159
- - [examples/connections/snowflake-connection.json](examples/connections/snowflake-connection.json)
160
- - [examples/connections/ingest-api-connection.json](examples/connections/ingest-api-connection.json)
161
- - [examples/connections/ingest-api-schema.json](examples/connections/ingest-api-schema.json)
162
- - [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
163
- - [../data360-orchestrate/references/feature-readiness.md](../data360-orchestrate/references/feature-readiness.md)