@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
@@ -1,203 +0,0 @@
1
- ---
2
- name: data360-prepare
3
- description: "Salesforce Data Cloud Prepare phase. Use this skill when the user creates or manages Data Cloud data streams, DLOs, transforms, or Document AI configurations. TRIGGER when: user creates or manages Data Cloud data streams, DLOs, transforms, or Document AI configurations, or asks about ingestion into Data Cloud. DO NOT TRIGGER when: the task is connection setup only (use data360-connect), DMOs and identity resolution (use data360-harmonize), or query/search work (use data360-query)."
4
- metadata:
5
- cliTools:
6
- - tool: ["node"]
7
- semver: ">=18.0.0"
8
- - tool: ["pip"]
9
- semver: ">=21.0"
10
- - tool: ["python3"]
11
- semver: ">=3.10.0"
12
- - tool: ["sf"]
13
- semver: ">=2.0.0"
14
- relatedSkills:
15
- - "data360-connect"
16
- - "data360-harmonize"
17
- - "data360-orchestrate"
18
- - "data360-query"
19
- version: "1.0"
20
- domains: ["Data 360"]
21
- ---
22
-
23
- # data360-prepare: Data Cloud Prepare Phase
24
-
25
- Use this skill when the user needs **ingestion and lake preparation work**: data streams, Data Lake Objects (DLOs), transforms, Document AI, unstructured ingestion, or the handoff from connector setup into a live stream.
26
-
27
- ## When This Skill Owns the Task
28
-
29
- Use `data360-prepare` when the work involves:
30
- - `sf data360 data-stream *`
31
- - `sf data360 dlo *`
32
- - `sf data360 transform *`
33
- - `sf data360 docai *`
34
- - choosing how data should enter Data Cloud
35
- - rerunning or rescanning ingestion after a source update
36
- - preparing Ingestion API-backed streams after connector setup is complete
37
-
38
- Delegate elsewhere when the user is:
39
- - still creating/testing source connections → [data360-connect](../data360-connect/SKILL.md)
40
- - mapping to DMOs or designing IR/data graphs → [data360-harmonize](../data360-harmonize/SKILL.md)
41
- - querying ingested data → [data360-query](../data360-query/SKILL.md)
42
-
43
- ---
44
-
45
- ## Required Context to Gather First
46
-
47
- Ask for or infer:
48
- - target org alias
49
- - source connection name
50
- - source object / dataset / document source
51
- - desired stream type
52
- - DLO naming expectations
53
- - whether the user is creating, updating, running, or deleting a stream
54
- - whether the source is CRM, a database connector, an unstructured file source, or an Ingestion API feed
55
-
56
- ---
57
-
58
- ## Core Operating Rules
59
-
60
- - Verify the external plugin runtime before running Data Cloud commands.
61
- - Run the shared readiness classifier before mutating ingestion assets: `node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase prepare --json`.
62
- - Prefer inspecting existing streams and DLOs before creating new ingestion assets.
63
- - Suppress linked-plugin warning noise with `2>/dev/null` for normal usage.
64
- - Treat DLO naming and field naming as Data Cloud-specific, not CRM-native.
65
- - Confirm whether each dataset should be treated as `Profile`, `Engagement`, or `Other` before creating the stream.
66
- - Distinguish stream-level refresh from connection-level reruns when working with unstructured sources.
67
- - Use UI setup intentionally when initial stream or unstructured asset creation is platform-gated.
68
- - Hand off to Harmonize only after ingestion assets are clearly healthy.
69
-
70
- ---
71
-
72
- ## Recommended Workflow
73
-
74
- ### 1. Classify readiness for prepare work
75
- ```bash
76
- node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase prepare --json
77
- ```
78
-
79
- ### 2. Inspect existing ingestion assets
80
- ```bash
81
- sf data360 data-stream list -o <org> 2>/dev/null
82
- sf data360 dlo list -o <org> 2>/dev/null
83
- ```
84
-
85
- ### 3. Confirm the stream category before creation
86
- Use these rules when suggesting categories:
87
-
88
- | Category | Use for | Typical requirement |
89
- |---|---|---|
90
- | `Profile` | person/entity records | primary key |
91
- | `Engagement` | time-based events or interactions | primary key + event time field |
92
- | `Other` | reference/configuration/supporting datasets | primary key |
93
-
94
- When the source is ambiguous, ask the user explicitly whether the dataset should be treated as `Profile`, `Engagement`, or `Other`.
95
-
96
- ### 4. Create or inspect streams intentionally
97
- ```bash
98
- sf data360 data-stream get -o <org> --name <stream> 2>/dev/null
99
- sf data360 data-stream create-from-object -o <org> --object Contact --connection SalesforceDotCom_Home 2>/dev/null
100
- sf data360 data-stream create -o <org> -f stream.json 2>/dev/null
101
- sf data360 data-stream run -o <org> --name <stream> 2>/dev/null
102
- ```
103
-
104
- ### 5. Check DLO shape
105
- ```bash
106
- sf data360 dlo get -o <org> --name Contact_Home__dll 2>/dev/null
107
- ```
108
-
109
- ### 6. Choose the right refresh mechanism
110
- Use the smaller refresh scope that matches the user goal:
111
-
112
- ```bash
113
- sf data360 data-stream run -o <org> --name <stream> 2>/dev/null
114
- sf data360 connection run-existing -o <org> --name <connection-id> 2>/dev/null
115
- ```
116
-
117
- - `data-stream run` is the closest match to a stream-level refresh or re-scan.
118
- - `connection run-existing` runs at the connection level and can be useful for some connector workflows, but it is not a reliable replacement for stream refresh on unstructured sources.
119
- - For unstructured document connectors, prefer `data-stream run` when the goal is to re-scan newly added or changed files.
120
-
121
- ### 7. Handle unstructured sources deliberately
122
- For SharePoint-style document ingestion, a minimal unstructured DLO payload can look like:
123
-
124
- ```json
125
- {
126
- "name": "my_udlo",
127
- "label": "My UDLO",
128
- "category": "Directory_Table",
129
- "dataSource": {
130
- "sourceType": "SF_DRIVE",
131
- "directoryAndFilesDetails": [
132
- {
133
- "dirName": "SPUnstructuredDocument/<CONNECTION_ID>/<SITE_ID>",
134
- "fileName": "*"
135
- }
136
- ],
137
- "sourceConfig": {
138
- "reservedPrefix": "$dcf_content$"
139
- }
140
- }
141
- }
142
- ```
143
-
144
- Use the UI for the first-time unstructured setup when the user needs the richer end-to-end pipeline. The UI path can seed additional document metadata fields and downstream assets that a bare CLI DLO create flow may not provision automatically.
145
-
146
- ### 8. Use the local Ingestion API example for send-data workflows
147
- For external systems pushing records into Data Cloud:
148
-
149
- 1. create the connector in [data360-connect](../data360-connect/SKILL.md)
150
- 2. upload the schema with `sf data360 connection schema-upsert`
151
- 3. create the stream in the UI when required
152
- 4. send records with the local example in `examples/ingestion-api/`
153
-
154
- ```bash
155
- cd examples/ingestion-api
156
- cp .env.example .env
157
- python3 send-data.py
158
- ```
159
-
160
- Key details:
161
- - auth is a staged flow: JWT → Salesforce token → Data Cloud token
162
- - the ingestion endpoint uses the tenant URL, not the Salesforce instance URL
163
- - `202` means the payload was accepted for processing, not that records are queryable immediately
164
- - validation failures often surface in the Problem Records DLO family
165
-
166
- ### 9. Only then move into harmonization
167
- Once the stream and DLO are healthy, hand off to [data360-harmonize](../data360-harmonize/SKILL.md).
168
-
169
- ---
170
-
171
- ## High-Signal Gotchas
172
-
173
- - CRM-backed stream behavior is not the same as fully custom connector-framework ingestion.
174
- - `sf data360 data-stream run` and `sf data360 connection run-existing` are not interchangeable; prefer stream-level refresh for unstructured rescans.
175
- - `SFDC` streams sync on a platform-managed schedule; `data-stream run` is not the general control path for CRM connector refresh.
176
- - Some external database connectors can be created via API while stream creation still requires UI flow or org-specific browser automation. Do not promise a pure CLI stream-creation path for every connector type.
177
- - Initial SharePoint-style unstructured setup can be richer in the UI than in a minimal CLI DLO create flow.
178
- - Stream deletion can also delete the associated DLO unless the delete mode says otherwise.
179
- - DLO field naming differs from CRM field naming, including `__c` → `_c` transformations.
180
- - Query DLO record counts with Data Cloud SQL instead of assuming list output is sufficient.
181
- - `CdpDataStreams` means the stream module is gated for the current org/user; guide the user to provisioning/permissions review instead of retrying blindly.
182
-
183
- ---
184
-
185
- ## Output Format
186
-
187
- ```text
188
- Prepare task: <stream / dlo / transform / docai>
189
- Source: <connection + object>
190
- Target org: <alias>
191
- Artifacts: <stream names / dlo names / json definitions>
192
- Verification: <passed / partial / blocked>
193
- Next step: <harmonize or retrieve>
194
- ```
195
-
196
- ---
197
-
198
- ## References
199
-
200
- - [examples/ingestion-api/README.md](examples/ingestion-api/README.md)
201
- - [../data360-orchestrate/assets/definitions/data-stream.template.json](../data360-orchestrate/assets/definitions/data-stream.template.json)
202
- - [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
203
- - [../data360-orchestrate/references/feature-readiness.md](../data360-orchestrate/references/feature-readiness.md)
@@ -1,8 +0,0 @@
1
- CONSUMER_KEY=<your consumer key from External Client App>
2
- CONSUMER_SECRET=<your consumer secret>
3
- SF_USERNAME=<your salesforce username>
4
- SF_LOGIN_URL=https://login.salesforce.com
5
- TENANT_URL=https://<tenant-id>.c360a.salesforce.com
6
- PRIVATE_KEY_FILE=/path/to/server.key
7
- CONNECTOR_NAME=Badge_Scanner
8
- OBJECT_NAME=Badge_Scan
@@ -1,48 +0,0 @@
1
- # Ingestion API example
2
-
3
- This folder contains a minimal, public-safe example for sending records into Salesforce Data Cloud through the Ingestion API.
4
-
5
- ## What this example assumes
6
-
7
- Before running `send-data.py`, complete the connect/prepare setup steps:
8
-
9
- 1. create an Ingestion API connector
10
- 2. upload the schema with `sf data360 connection schema-upsert`
11
- 3. create the corresponding data stream in the UI if your org requires that step
12
-
13
- Related connector definitions live in:
14
- - [../../../data360-connect/examples/connections/ingest-api-connection.json](../../../data360-connect/examples/connections/ingest-api-connection.json)
15
- - [../../../data360-connect/examples/connections/ingest-api-schema.json](../../../data360-connect/examples/connections/ingest-api-schema.json)
16
-
17
- ## Prerequisites
18
-
19
- ```bash
20
- pip install PyJWT cryptography requests
21
- ```
22
-
23
- ## Setup
24
-
25
- ```bash
26
- cd skills/data360-prepare/examples/ingestion-api
27
- cp .env.example .env
28
- # edit .env with your values
29
- python3 send-data.py
30
- ```
31
-
32
- ## Environment variables
33
-
34
- - `CONSUMER_KEY` — external client app consumer key
35
- - `CONSUMER_SECRET` — external client app consumer secret if your auth flow needs it
36
- - `SF_USERNAME` — Salesforce username used for JWT auth
37
- - `SF_LOGIN_URL` — login host such as `https://login.salesforce.com`
38
- - `TENANT_URL` — Data Cloud tenant URL such as `https://<tenant>.c360a.salesforce.com`
39
- - `PRIVATE_KEY_FILE` — path to the JWT private key
40
- - `CONNECTOR_NAME` — Ingestion API connector name
41
- - `OBJECT_NAME` — uploaded schema object name
42
-
43
- ## Notes
44
-
45
- - auth is a staged flow: JWT → Salesforce token → Data Cloud token
46
- - the ingestion endpoint uses the Data Cloud tenant URL, not the Salesforce instance URL
47
- - `202` means the payload was accepted for processing
48
- - validation failures often appear in the Problem Records DLO family
@@ -1,144 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- Send data to Data Cloud through the Ingestion API.
4
-
5
- Prerequisites:
6
- pip install PyJWT cryptography requests
7
-
8
- Usage:
9
- 1. Copy .env.example to .env and fill in your values
10
- 2. python3 send-data.py
11
-
12
- See README.md in this folder for setup notes.
13
- """
14
-
15
- from __future__ import annotations
16
-
17
- import os
18
- import time
19
- import uuid
20
- from datetime import datetime, timezone
21
- from pathlib import Path
22
-
23
- import jwt
24
- import requests
25
-
26
-
27
- def load_env_file() -> None:
28
- env_file = Path(__file__).parent / ".env"
29
- if not env_file.exists():
30
- return
31
-
32
- for line in env_file.read_text().splitlines():
33
- if "=" in line and not line.startswith("#"):
34
- key, val = line.split("=", 1)
35
- os.environ.setdefault(key.strip(), val.strip())
36
-
37
-
38
- load_env_file()
39
-
40
- CONSUMER_KEY = os.environ["CONSUMER_KEY"]
41
- SF_USERNAME = os.environ["SF_USERNAME"]
42
- SF_LOGIN_URL = os.environ.get("SF_LOGIN_URL", "https://login.salesforce.com")
43
- TENANT_URL = os.environ["TENANT_URL"]
44
- PRIVATE_KEY_FILE = os.environ["PRIVATE_KEY_FILE"]
45
- CONNECTOR_NAME = os.environ["CONNECTOR_NAME"]
46
- OBJECT_NAME = os.environ["OBJECT_NAME"]
47
-
48
-
49
- def get_cdp_token() -> str:
50
- """Authenticate: JWT -> Salesforce access token -> Data Cloud token."""
51
- private_key = Path(PRIVATE_KEY_FILE).read_text()
52
-
53
- claim = {
54
- "iss": CONSUMER_KEY,
55
- "sub": SF_USERNAME,
56
- "aud": SF_LOGIN_URL,
57
- "exp": int(time.time()) + 300,
58
- }
59
- assertion = jwt.encode(claim, private_key, algorithm="RS256")
60
-
61
- token_data = requests.post(
62
- f"{SF_LOGIN_URL}/services/oauth2/token",
63
- data={
64
- "grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer",
65
- "assertion": assertion,
66
- },
67
- timeout=60,
68
- ).json()
69
-
70
- if "access_token" not in token_data:
71
- raise RuntimeError(f"Salesforce auth failed: {token_data}")
72
-
73
- cdp_data = requests.post(
74
- f"{token_data['instance_url']}/services/a360/token",
75
- headers={"Content-Type": "application/x-www-form-urlencoded"},
76
- data={
77
- "grant_type": "urn:salesforce:grant-type:external:cdp",
78
- "subject_token": token_data["access_token"],
79
- "subject_token_type": "urn:ietf:params:oauth:token-type:access_token",
80
- },
81
- timeout=60,
82
- ).json()
83
-
84
- if "access_token" not in cdp_data:
85
- raise RuntimeError(f"Data Cloud token exchange failed: {cdp_data}")
86
-
87
- return cdp_data["access_token"]
88
-
89
-
90
- def send_records(cdp_token: str, records: list[dict[str, str]]) -> tuple[int, str]:
91
- """Send records to the Ingestion API."""
92
- url = f"{TENANT_URL}/api/v1/ingest/sources/{CONNECTOR_NAME}/{OBJECT_NAME}"
93
- response = requests.post(
94
- url,
95
- headers={
96
- "Authorization": f"Bearer {cdp_token}",
97
- "Content-Type": "application/json",
98
- },
99
- json={"data": records},
100
- timeout=60,
101
- )
102
- return response.status_code, response.text
103
-
104
-
105
- if __name__ == "__main__":
106
- print("Authenticating...")
107
- token = get_cdp_token()
108
- print("Data Cloud token acquired")
109
-
110
- records = [
111
- {
112
- "ScanId": str(uuid.uuid4()),
113
- "EventId": "EVT-001",
114
- "AttendeeId": "ATT-001",
115
- "Scantime": datetime.now(timezone.utc).isoformat(),
116
- "Room": "Main Hall",
117
- },
118
- {
119
- "ScanId": str(uuid.uuid4()),
120
- "EventId": "EVT-001",
121
- "AttendeeId": "ATT-002",
122
- "Scantime": datetime.now(timezone.utc).isoformat(),
123
- "Room": "Workshop A",
124
- },
125
- {
126
- "ScanId": str(uuid.uuid4()),
127
- "EventId": "EVT-001",
128
- "AttendeeId": "ATT-003",
129
- "Scantime": datetime.now(timezone.utc).isoformat(),
130
- "Room": "Workshop B",
131
- },
132
- ]
133
-
134
- print(f"Sending {len(records)} records to {CONNECTOR_NAME}/{OBJECT_NAME}...")
135
- status, body = send_records(token, records)
136
- print(f"Response: {status} {body}")
137
-
138
- if status == 202:
139
- print("\nData accepted. Records typically appear in Data Cloud within a few minutes.")
140
- print(
141
- "Query with: sf data360 query sql -o <org> --sql 'SELECT * FROM \"<DLO_NAME>__dll\" LIMIT 10'"
142
- )
143
- else:
144
- print("\nIngestion failed. Check the response above for details.")
@@ -1,43 +0,0 @@
1
- # data360-query
2
-
3
- Query and search workflows for Salesforce Data Cloud.
4
-
5
- ## Use this skill for
6
-
7
- - quick SQL counts
8
- - paginated SQL (`sqlv2`)
9
- - async query lifecycles
10
- - table describe
11
- - vector search
12
- - hybrid search with optional prefilter
13
- - search index inspection and lifecycle work
14
-
15
- ## Example requests
16
-
17
- ```text
18
- "Run a Data Cloud SQL query against unified profiles"
19
- "Describe this Data Cloud table before I write SQL"
20
- "Help me troubleshoot vector search in Data Cloud"
21
- "Run a hybrid search with a prefilter in Data Cloud"
22
- "Create and inspect a search index"
23
- ```
24
-
25
- ## Common commands
26
-
27
- ```bash
28
- sf data360 query sql -o myorg --sql 'SELECT COUNT(*) FROM "ssot__Individual__dlm"' 2>/dev/null
29
- sf data360 query describe -o myorg --table ssot__Individual__dlm 2>/dev/null
30
- sf data360 search-index list -o myorg 2>/dev/null
31
- sf data360 query vector -o myorg --index Knowledge_Index --query "reset password" --limit 5 2>/dev/null
32
- sf data360 query hybrid -o myorg --index Knowledge_Index --query "reset password" --limit 5 2>/dev/null
33
- ```
34
-
35
- ## Example payloads
36
-
37
- - [examples/search-indexes/vector-knowledge.json](examples/search-indexes/vector-knowledge.json)
38
- - [examples/search-indexes/hybrid-structured.json](examples/search-indexes/hybrid-structured.json)
39
-
40
- ## References
41
-
42
- - [SKILL.md](SKILL.md)
43
- - [../data360-orchestrate/assets/definitions/search-index.template.json](../data360-orchestrate/assets/definitions/search-index.template.json)
@@ -1,128 +0,0 @@
1
- ---
2
- name: data360-query
3
- description: "Salesforce Data Cloud Retrieve phase. Use this skill when the user runs Data Cloud SQL, async queries, vector search, search-index workflows, or metadata introspection for Data Cloud objects. TRIGGER when: user runs Data Cloud SQL, describe, async queries, vector search, search-index workflows, or metadata introspection for Data Cloud objects. DO NOT TRIGGER when: the task is standard CRM SOQL (use platform-soql-query), segment creation or calculated insight design (use data360-segment), or STDM/session tracing/parquet analysis (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-orchestrate"
13
- - "data360-segment"
14
- - "platform-soql-query"
15
- version: "1.0"
16
- domains: ["Data 360"]
17
- ---
18
-
19
- # data360-query: Data Cloud Retrieve Phase
20
-
21
- Use this skill when the user needs **query, search, and metadata introspection** for Data Cloud: sync SQL, paginated SQL, async query workflows, table describe, vector search, hybrid search, or search index operations.
22
-
23
- ## When This Skill Owns the Task
24
-
25
- Use `data360-query` when the work involves:
26
- - `sf data360 query *`
27
- - `sf data360 search-index *`
28
- - `sf data360 metadata *`
29
- - `sf data360 profile *` or `sf data360 insight *` inspection
30
- - understanding Data Cloud SQL results or query shape
31
-
32
- Delegate elsewhere when the user is:
33
- - writing standard CRM SOQL only → [platform-soql-query](../platform-soql-query/SKILL.md)
34
- - designing segment or calculated insight assets → [data360-segment](../data360-segment/SKILL.md)
35
- - analyzing STDM/session tracing/parquet telemetry → [agentforce-observe](../agentforce-observe/SKILL.md)
36
-
37
- ---
38
-
39
- ## Required Context to Gather First
40
-
41
- Ask for or infer:
42
- - target org alias
43
- - whether the user needs quick count, medium result set, large export, schema inspection, or semantic search
44
- - table/index name if known
45
- - whether the task is read-only SQL or search-index lifecycle management
46
-
47
- ---
48
-
49
- ## Core Operating Rules
50
-
51
- - Treat Data Cloud SQL as its own query language, not SOQL.
52
- - Run the shared readiness classifier before relying on query/search surfaces: `node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase retrieve --json`.
53
- - Use describe before guessing columns.
54
- - Prefer `sqlv2` or async query flows for larger result sets.
55
- - Use vector search or hybrid search only when the search index lifecycle is healthy.
56
- - Keep STDM/parquet/session-tracing workflows out of this skill family.
57
-
58
- ---
59
-
60
- ## Recommended Workflow
61
-
62
- ### 1. Classify readiness for retrieve work
63
- ```bash
64
- node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase retrieve --json
65
- # optional query-plane probe, only with a real table name
66
- node ../data360-orchestrate/scripts/diagnose-org.mjs -o <org> --phase retrieve --describe-table MyDMO__dlm --json
67
- ```
68
-
69
- ### 2. Choose the smallest correct query shape
70
- ```bash
71
- sf data360 query sql -o <org> --sql 'SELECT COUNT(*) FROM "ssot__Individual__dlm"' 2>/dev/null
72
- sf data360 query sqlv2 -o <org> --sql 'SELECT * FROM "ssot__Individual__dlm"' 2>/dev/null
73
- sf data360 query async-create -o <org> --sql 'SELECT * FROM "ssot__Individual__dlm"' 2>/dev/null
74
- ```
75
-
76
- ### 3. Use describe before guessing fields
77
- ```bash
78
- sf data360 query describe -o <org> --table ssot__Individual__dlm 2>/dev/null
79
- ```
80
-
81
- ### 4. Use vector or hybrid search only when an index exists
82
- ```bash
83
- sf data360 search-index list -o <org> 2>/dev/null
84
- sf data360 query vector -o <org> --index Knowledge_Index --query "reset password" --limit 5 2>/dev/null
85
- sf data360 query hybrid -o <org> --index Knowledge_Index --query "reset password" --limit 5 2>/dev/null
86
- sf data360 query hybrid -o <org> --index Insurance_Index --query "weather damage coverage" --prefilter "Type_of_Insurance__c='Home'" --limit 10 2>/dev/null
87
- ```
88
-
89
- ### 5. Reuse curated search-index examples when creating indexes
90
- Use the phase-owned examples instead of inventing JSON from scratch:
91
- - `examples/search-indexes/vector-knowledge.json`
92
- - `examples/search-indexes/hybrid-structured.json`
93
-
94
- ---
95
-
96
- ## High-Signal Gotchas
97
-
98
- - Data Cloud SQL is not SOQL.
99
- - Table names should be double-quoted in SQL.
100
- - `sqlv2` is better than ad hoc OFFSET paging for medium result sets.
101
- - async query is preferable for large results.
102
- - search-index operations and vector/hybrid queries depend on the index lifecycle being healthy.
103
- - Hybrid search can use `--prefilter`, but only on fields configured as prefilter-capable when the search index was created.
104
- - HNSW index parameters are typically read-only on create; leave `userValues: []` unless the platform explicitly documents otherwise.
105
- - `query describe` is not a universal tenant probe; only run it with a known DMO or DLO table after broader readiness has been confirmed.
106
-
107
- ---
108
-
109
- ## Output Format
110
-
111
- ```text
112
- Retrieve task: <sql / sqlv2 / async / describe / vector / search-index>
113
- Target org: <alias>
114
- Target object: <table or index>
115
- Commands: <key commands run>
116
- Verification: <query rows / schema / status>
117
- Next step: <segment / harmonize / follow-up>
118
- ```
119
-
120
- ---
121
-
122
- ## References
123
-
124
- - [examples/search-indexes/vector-knowledge.json](examples/search-indexes/vector-knowledge.json)
125
- - [examples/search-indexes/hybrid-structured.json](examples/search-indexes/hybrid-structured.json)
126
- - [../data360-orchestrate/assets/definitions/search-index.template.json](../data360-orchestrate/assets/definitions/search-index.template.json)
127
- - [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
128
- - [../data360-orchestrate/references/feature-readiness.md](../data360-orchestrate/references/feature-readiness.md)
@@ -1,44 +0,0 @@
1
- {
2
- "label": "<INDEX_NAME>",
3
- "developerName": "<INDEX_NAME>",
4
- "description": "Hybrid search index on a structured Data Cloud DMO",
5
- "sourceDmoDeveloperName": "<SOURCE_DMO>__dlm",
6
- "chunkDmoName": "<INDEX_NAME> chunk",
7
- "chunkDmoDeveloperName": "<INDEX_NAME>_chunk",
8
- "vectorDmoName": "<INDEX_NAME> index",
9
- "vectorDmoDeveloperName": "<INDEX_NAME>_index",
10
- "searchType": "HYBRID",
11
- "vectorEmbedding": {
12
- "vectorEmbeddingRelatedFields": []
13
- },
14
- "rankingConfigurations": [],
15
- "chunkingConfiguration": {
16
- "fieldLevelConfigurations": [
17
- {
18
- "sourceDmoDeveloperName": "<SOURCE_DMO>__dlm",
19
- "sourceDmoFieldDeveloperName": "<TEXT_FIELD>__c",
20
- "config": {
21
- "id": "passage_extraction",
22
- "userValues": [
23
- { "id": "max_tokens", "value": "512" },
24
- { "id": "strip_html", "value": "true" }
25
- ]
26
- }
27
- }
28
- ]
29
- },
30
- "vectorEmbeddingConfiguration": {
31
- "embeddingModel": {
32
- "id": "e5_large_v2",
33
- "userValues": [
34
- { "id": "dimension", "value": "1024" },
35
- { "id": "max_token_limit", "value": "512" }
36
- ]
37
- },
38
- "index": {
39
- "id": "HNSW",
40
- "userValues": []
41
- },
42
- "similarityMetric": "COSINE"
43
- }
44
- }
@@ -1,43 +0,0 @@
1
- {
2
- "label": "My_kav",
3
- "developerName": "My_kav",
4
- "sourceDmoDeveloperName": "ssot__KnowledgeArticleVersion__dlm",
5
- "chunkDmoName": "My_kav chunk",
6
- "chunkDmoDeveloperName": "My_kav_chunk",
7
- "vectorDmoName": "My_kav index",
8
- "vectorDmoDeveloperName": "My_kav_index",
9
- "searchType": "VECTOR",
10
- "vectorEmbedding": {
11
- "vectorEmbeddingRelatedFields": []
12
- },
13
- "chunkingConfiguration": {
14
- "fieldLevelConfigurations": [
15
- {
16
- "sourceDmoDeveloperName": "ssot__KnowledgeArticleVersion__dlm",
17
- "sourceDmoFieldDeveloperName": "ssot__Name__c",
18
- "config": {
19
- "id": "passage_extraction",
20
- "userValues": [
21
- { "id": "strip_html", "value": "true" },
22
- { "id": "max_tokens", "value": "512" }
23
- ]
24
- }
25
- }
26
- ]
27
- },
28
- "vectorEmbeddingConfiguration": {
29
- "embeddingModel": {
30
- "id": "e5_large_v2",
31
- "userValues": [
32
- { "id": "dimension", "value": "1024" },
33
- { "id": "max_token_limit", "value": "512" }
34
- ]
35
- },
36
- "index": {
37
- "id": "HNSW",
38
- "userValues": []
39
- },
40
- "similarityMetric": "COSINE"
41
- },
42
- "rankingConfigurations": []
43
- }