@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.
- package/package.json +2 -6
- package/skills/automation-sandbox-post-copy-config-generate/SKILL.md +3 -0
- package/skills/automation-sandbox-post-copy-configure/SKILL.md +4 -0
- package/skills/design-systems-slds-validate/SKILL.md +2 -2
- package/skills/dx-app-analytics-query/SKILL.md +1 -3
- package/skills/dx-devops-conflict-resolve/SKILL.md +205 -0
- package/skills/dx-devops-conflict-resolve/examples/conflict-workflows.md +165 -0
- package/skills/dx-devops-conflict-resolve/references/deploy-failure-resolution.md +75 -0
- package/skills/dx-devops-conflict-resolve/references/git-conflict-resolution.md +124 -0
- package/skills/dx-devops-conflict-resolve/scripts/detect-conflicts.sh +91 -0
- package/skills/dx-devops-conflict-resolve/scripts/diagnose-deploy-failure.sh +156 -0
- package/skills/dx-devops-request-status/SKILL.md +160 -0
- package/skills/dx-devops-request-status/examples/polling-workflows.md +101 -0
- package/skills/dx-devops-request-status/references/cli-commands.md +176 -0
- package/skills/dx-devops-request-status/scripts/poll-status.sh +134 -0
- package/skills/dx-devops-test-failures-analyze/SKILL.md +6 -6
- package/skills/dx-devops-test-pipeline-configure/SKILL.md +7 -7
- package/skills/dx-devops-test-suite-assignments-configure/SKILL.md +6 -6
- package/skills/dx-devops-test-suite-run/SKILL.md +6 -6
- package/skills/dx-devops-work-item-manage/SKILL.md +2 -0
- package/skills/dx-org-manage/references/creating-scratch-org.md +5 -2
- package/skills/dx-org-manage/references/creating-snapshot.md +1 -0
- package/skills/dx-org-shape-manage/SKILL.md +152 -0
- package/skills/dx-org-shape-manage/examples/create_error_output.json +9 -0
- package/skills/dx-org-shape-manage/examples/create_success_output.json +9 -0
- package/skills/dx-org-shape-manage/examples/delete_output.json +11 -0
- package/skills/dx-org-shape-manage/examples/list_inactive_output.json +32 -0
- package/skills/dx-org-shape-manage/examples/list_output.json +24 -0
- package/skills/dx-org-shape-manage/references/cli_flags.md +135 -0
- package/skills/dx-org-switch/SKILL.md +2 -2
- package/skills/dx-org-trial-expiration-check/SKILL.md +2 -0
- package/skills/dx-pkg-post-install-configure/SKILL.md +3 -0
- package/skills/education-cloud-multi-campus-configure/SKILL.md +211 -0
- package/skills/education-cloud-multi-campus-configure/examples/hierarchy_visualization.md +174 -0
- package/skills/education-cloud-multi-campus-configure/examples/output_examples.md +54 -0
- package/skills/education-cloud-multi-campus-configure/examples/sample_hierarchy_input.csv +29 -0
- package/skills/education-cloud-multi-campus-configure/examples/sample_hierarchy_input_edgecases.csv +16 -0
- package/skills/education-cloud-multi-campus-configure/references/account_recordtype_prerequisite.md +44 -0
- package/skills/education-cloud-multi-campus-configure/references/delta_computation.md +33 -0
- package/skills/education-cloud-multi-campus-configure/references/error_handling.md +198 -0
- package/skills/education-cloud-multi-campus-configure/references/foundation_prerequisites.md +54 -0
- package/skills/education-cloud-multi-campus-configure/references/gotchas.md +16 -0
- package/skills/education-cloud-multi-campus-configure/references/hierarchy_parsing_rules.md +133 -0
- package/skills/education-cloud-multi-campus-configure/references/mcp-invocation.md +75 -0
- package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/SKILL.md +1 -1
- package/skills/experience-cms-brand-apply/SKILL.md +4 -1
- package/skills/experience-cms-brand-create/SKILL.md +197 -0
- package/skills/experience-cms-brand-create/assets/brand-template.json +329 -0
- package/skills/experience-cms-brand-create/references/brand-anatomy.md +120 -0
- package/skills/experience-cms-brand-create/references/disk-contract.md +84 -0
- package/skills/experience-cms-content-generate/SKILL.md +190 -0
- package/skills/experience-cms-content-generate/assets/display-formats.md +84 -0
- package/skills/experience-cms-content-generate/assets/payloads/create-content-bulk.json +11 -0
- package/skills/experience-cms-content-generate/assets/payloads/create-content-single.json +11 -0
- package/skills/experience-cms-content-generate/assets/payloads/publish-content.json +4 -0
- package/skills/experience-cms-content-generate/assets/payloads/update-content.json +9 -0
- package/skills/experience-cms-content-generate/assets/questions.md +241 -0
- package/skills/experience-cms-content-generate/examples/create-content-call.md +81 -0
- package/skills/experience-cms-content-generate/references/bulk-batching.md +56 -0
- package/skills/experience-cms-content-generate/references/content-type-classification.md +88 -0
- package/skills/experience-cms-content-generate/references/content-write-tool.md +95 -0
- package/skills/experience-cms-content-generate/references/delegation-protocol.md +37 -0
- package/skills/experience-cms-content-generate/references/edit-publish-workflow.md +63 -0
- package/skills/experience-cms-content-generate/references/error-recovery.md +72 -0
- package/skills/experience-cms-content-generate/references/identifier-resolution.md +26 -0
- package/skills/experience-cms-content-generate/references/intent-routing.md +45 -0
- package/skills/experience-cms-content-generate/references/principles.md +19 -0
- package/skills/experience-cms-content-generate/references/ux-rules.md +68 -0
- package/skills/experience-cms-content-generate/references/workspace-resolution.md +33 -0
- package/skills/experience-cms-content-type-generate/SKILL.md +449 -0
- package/skills/experience-cms-content-type-generate/assets/discovery-prompts.md +79 -0
- package/skills/experience-cms-content-type-generate/assets/schema-example.json +70 -0
- package/skills/experience-cms-content-type-generate/references/agent-checklist.md +50 -0
- package/skills/experience-cms-content-type-generate/references/anti-patterns.md +39 -0
- package/skills/experience-cms-content-type-generate/references/deployment-errors.md +27 -0
- package/skills/experience-cms-content-type-generate/references/discovery-details.md +106 -0
- package/skills/experience-cms-content-type-generate/references/discovery-query-rules.md +85 -0
- package/skills/experience-cms-content-type-generate/references/edit-fields-loop.md +48 -0
- package/skills/experience-cms-content-type-generate/references/pre-deploy-checklist.md +21 -0
- package/skills/experience-cms-content-type-generate/references/retrieve-and-reconcile.md +105 -0
- package/skills/experience-cms-content-type-generate/references/schema-rules.md +51 -0
- package/skills/experience-cms-content-type-generate/references/schema-summary-format.md +60 -0
- package/skills/experience-lds-graphql-generate/SKILL.md +4 -0
- package/skills/experience-lwc-accessibility-jest-run/SKILL.md +79 -0
- package/skills/experience-lwc-accessibility-jest-run/references/running-sa11y-jest-tests.md +205 -0
- package/skills/experience-lwc-design-generate/SKILL.md +5 -4
- package/skills/experience-lwc-generate/SKILL.md +10 -9
- package/skills/experience-ui-bundle-deploy/references/dev-preview.md +21 -0
- package/skills/experience-ui-bundle-deploy/references/social-login.md +1 -0
- package/skills/experience-ui-bundle-file-upload-generate/SKILL.md +6 -6
- package/skills/experience-ui-bundle-localize/SKILL.md +30 -37
- package/skills/experience-ui-bundle-localize/references/gotchas.md +23 -7
- package/skills/experience-ui-bundle-localize/references/i18n-setup.md +48 -4
- package/skills/experience-ui-bundle-localize/references/label-xml.md +22 -8
- package/skills/experience-ui-bundle-localize/references/verifying.md +39 -11
- package/skills/experience-ui-bundle-localize/scripts/detect-bundle-type.sh +118 -15
- package/skills/experience-ui-bundle-localize/scripts/tests/test-detect-bundle-type.sh +187 -0
- package/skills/experience-ui-bundle-mfa-configure/SKILL.md +13 -2
- package/skills/experience-ui-bundle-mfa-configure/references/social-login.md +1 -0
- package/skills/experience-ui-bundle-project-generate/SKILL.md +2 -2
- package/skills/integration-connectivity-generate/SKILL.md +11 -10
- package/skills/integration-eventing-cdc-configure/SKILL.md +6 -6
- package/skills/integration-eventing-subscription-configure/SKILL.md +6 -5
- package/skills/mobile-platform-native-capabilities-integrate/SKILL.md +2 -2
- package/skills/mobile-platform-offline-validate/scripts/package.json +1 -1
- package/skills/platform-agentexchange-partner-offers-configure/SKILL.md +8 -8
- package/skills/platform-custom-application-generate/SKILL.md +2 -0
- package/skills/platform-custom-field-generate/SKILL.md +8 -6
- package/skills/platform-custom-metadata-type-generate/SKILL.md +460 -0
- package/skills/platform-custom-metadata-type-generate/references/cmdt-records.md +251 -0
- package/skills/platform-custom-metadata-type-generate/scripts/sanitize-developer-name.sh +46 -0
- package/skills/platform-custom-setting-generate/SKILL.md +419 -0
- package/skills/platform-dataspace-access-configure/SKILL.md +3 -3
- package/skills/platform-sharing-owd-configure/SKILL.md +3 -0
- package/skills/platform-value-set-generate/SKILL.md +2 -0
- package/skills/service-agentforce-channel-configure/SKILL.md +29 -20
- package/skills/service-agentforce-channel-configure/assets/BotEmailDefinition.botEmailDefinition-meta.xml +36 -0
- package/skills/service-agentforce-channel-configure/assets/email/unfiled$public/AgentforceForServiceEmailTemplate.email +17 -0
- package/skills/service-agentforce-channel-configure/assets/email/unfiled$public/AgentforceForServiceEmailTemplate.email-meta.xml +29 -0
- package/skills/service-agentforce-channel-configure/assets/mdapi-package.xml +25 -0
- package/skills/service-agentforce-channel-configure/assets/settings-mdapi-package.xml +30 -0
- package/skills/service-agentforce-channel-configure/references/agent-wiring.md +20 -0
- package/skills/service-agentforce-channel-configure/references/botemaildefinition.md +107 -0
- package/skills/service-agentforce-channel-configure/references/channel-branch-email.md +203 -50
- package/skills/service-agentforce-channel-configure/references/channel-types.md +30 -3
- package/skills/service-agentforce-channel-configure/references/queue-resolution.md +17 -8
- package/skills/service-agentforce-channel-configure/references/routing-flow.md +14 -3
- package/skills/service-agentforce-channel-configure/scripts/validate-botemaildefinition.py +126 -0
- package/skills/service-agentforce-channel-configure/scripts/validate-emailtemplate.py +133 -0
- package/skills/service-de-channel-activate/SKILL.md +271 -0
- package/skills/service-de-channel-activate/references/gotchas.md +31 -0
- package/skills/service-de-channel-activate/references/phone-verification.md +96 -0
- package/skills/service-de-channel-activate/references/worked-examples.md +14 -0
- package/skills/service-de-channel-consent-configure/SKILL.md +230 -0
- package/skills/service-de-channel-consent-configure/references/gotchas.md +41 -0
- package/skills/service-de-channel-consent-configure/references/language-keywords.md +84 -0
- package/skills/service-de-channel-consent-configure/references/worked-examples.md +134 -0
- package/skills/service-de-channel-create/SKILL.md +369 -0
- package/skills/service-de-channel-create/references/apple.md +59 -0
- package/skills/service-de-channel-create/references/connect-insert.md +84 -0
- package/skills/service-de-channel-create/references/facebook.md +154 -0
- package/skills/service-de-channel-create/references/line.md +66 -0
- package/skills/service-de-channel-create/references/sms.md +98 -0
- package/skills/service-de-channel-create/references/whatsapp.md +98 -0
- package/skills/service-de-channel-create/references/worked-examples.md +70 -0
- package/skills/service-de-channel-routing-configure/SKILL.md +345 -0
- package/skills/service-de-channel-routing-configure/references/asa-routing.md +90 -0
- package/skills/service-de-channel-routing-configure/references/gotchas.md +27 -0
- package/skills/service-de-channel-routing-configure/references/queue-creation.md +123 -0
- package/skills/service-de-channel-routing-configure/references/target-locate.md +98 -0
- package/skills/service-de-channel-routing-configure/references/worked-examples.md +174 -0
- package/skills/service-de-headless-channel-configure/SKILL.md +305 -0
- package/skills/service-de-headless-channel-configure/references/gotchas.md +27 -0
- package/skills/service-de-headless-channel-configure/references/inputs.md +49 -0
- package/skills/service-de-headless-channel-configure/references/output-envelopes.md +53 -0
- package/skills/service-de-headless-channel-configure/references/partial-success.md +24 -0
- package/skills/service-de-headless-channel-configure/references/terms-and-conditions.md +54 -0
- package/skills/service-de-headless-channel-configure/references/worked-examples.md +108 -0
- package/skills/service-de-waba-integrate/SKILL.md +227 -0
- package/skills/service-digital-engagement-channel-configure/scripts/check-api-version.sh +29 -0
- package/skills/service-digital-engagement-messaging-site-integrate/SKILL.md +10 -9
- package/skills/service-digital-engagement-messaging-site-integrate/references/lwr_patch.md +39 -21
- package/skills/service-digital-engagement-messaging-site-integrate/scripts/patch_lwr_bundle.sh +157 -96
- package/skills/service-email-to-case-configure/SKILL.md +190 -0
- package/skills/service-email-to-case-configure/assets/CaseSettings.settings-meta.xml +45 -0
- package/skills/service-email-to-case-configure/examples/CaseSettings-two-addresses.settings-meta.xml +36 -0
- package/skills/service-email-to-case-configure/references/apply-mechanics.md +73 -0
- package/skills/service-email-to-case-configure/references/routing_address_reference.md +73 -0
- package/skills/service-email-to-case-configure/references/troubleshooting.md +25 -0
- package/skills/service-email-to-case-configure/scripts/apply-casesettings.py +1315 -0
- package/skills/service-email-to-case-configure/scripts/check-agent-email-capability.sh +26 -0
- package/skills/service-email-to-case-configure/scripts/tests/__init__.py +0 -0
- package/skills/service-email-to-case-configure/scripts/tests/_bootstrap.py +45 -0
- package/skills/service-email-to-case-configure/scripts/tests/_fakeorg.py +366 -0
- package/skills/service-email-to-case-configure/scripts/tests/_run.py +84 -0
- package/skills/service-email-to-case-configure/scripts/tests/test_apply_org_scenarios.py +655 -0
- package/skills/service-email-to-case-configure/scripts/tests/test_get_session.py +134 -0
- package/skills/service-email-to-case-configure/scripts/tests/test_new_capabilities.py +193 -0
- package/skills/service-email-to-case-configure/scripts/tests/test_validate_casesettings.py +170 -0
- package/skills/service-email-to-case-configure/scripts/validate-casesettings.py +229 -0
- package/skills/service-itsm-agentic-setup-agentforce-coordinate/SKILL.md +33 -15
- package/skills/service-itsm-agentic-setup-agentforce-coordinate/examples/output-templates.md +63 -47
- package/skills/service-itsm-agentic-setup-agentforce-studio-configure/SKILL.md +17 -12
- package/skills/service-itsm-agentic-setup-agentforce-studio-configure/references/cli-invocation.md +5 -3
- package/skills/service-itsm-agentic-setup-agentforce-studio-configure/scripts/classify-enable-plan.mjs +11 -3
- package/skills/service-itsm-agentic-setup-agentforce-studio-validate/SKILL.md +8 -6
- package/skills/service-itsm-agentic-setup-agentforce-studio-validate/references/cli-invocation.md +3 -3
- package/skills/service-itsm-agentic-setup-agentforce-studio-validate/scripts/classify-readiness.mjs +11 -3
- package/skills/service-itsm-agentic-setup-configure/SKILL.md +5 -5
- package/skills/service-itsm-agentic-setup-configure/examples/output-templates.md +5 -5
- package/skills/service-itsm-agentic-setup-employee-agent-configure/SKILL.md +2 -2
- package/skills/service-itsm-agentic-setup-employee-agent-configure/references/report-format.md +11 -7
- package/skills/service-itsm-agentic-setup-employee-agent-configure/scripts/render-report.mjs +20 -7
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/SKILL.md +10 -6
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/action-availability.md +7 -7
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/references/report-format.md +11 -7
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/build-create-body.mjs +24 -17
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/classify-action-availability.mjs +98 -58
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/render-report.mjs +20 -7
- package/skills/service-itsm-agentic-setup-fulfiller-agent-configure/scripts/strip-release-management.mjs +176 -0
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/SKILL.md +19 -19
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/cli-invocation.md +3 -4
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/helper-contracts.md +6 -6
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/references/permset-topology.md +3 -10
- package/skills/service-itsm-agentic-setup-itsm-agentforce-permset-assign/scripts/classify-permset-availability.mjs +7 -9
- package/skills/service-itsm-incident-mgmt-configure/SKILL.md +2 -0
- package/skills/service-itsm-incident-priority-configure/SKILL.md +15 -12
- package/skills/service-itsm-incident-priority-configure/examples/matrix-operations.md +27 -1
- package/skills/service-itsm-incident-priority-configure/references/sf-cli-invocation.md +37 -6
- package/skills/service-native-voice-recording-transcription-configure/SKILL.md +146 -0
- package/skills/service-native-voice-recording-transcription-configure/assets/confirmation-output.json +16 -0
- package/skills/service-native-voice-recording-transcription-configure/assets/package.xml +22 -0
- package/skills/service-native-voice-recording-transcription-configure/references/thunderbird-voice-settings.md +101 -0
- package/skills/service-native-voice-recording-transcription-configure/scripts/enable-recording-transcription.sh +181 -0
- package/skills/data360-activate/README.md +0 -38
- package/skills/data360-activate/SKILL.md +0 -127
- package/skills/data360-connect/README.md +0 -57
- package/skills/data360-connect/SKILL.md +0 -163
- package/skills/data360-connect/examples/connections/heroku-postgres.json +0 -15
- package/skills/data360-connect/examples/connections/ingest-api-connection.json +0 -5
- package/skills/data360-connect/examples/connections/ingest-api-schema.json +0 -31
- package/skills/data360-connect/examples/connections/redshift.json +0 -16
- package/skills/data360-connect/examples/connections/sharepoint-unstructured.json +0 -20
- package/skills/data360-connect/examples/connections/snowflake-connection.json +0 -42
- package/skills/data360-harmonize/README.md +0 -31
- package/skills/data360-harmonize/SKILL.md +0 -126
- package/skills/data360-orchestrate/README.md +0 -120
- package/skills/data360-orchestrate/SKILL.md +0 -263
- package/skills/data360-orchestrate/assets/definitions/activation-target.template.json +0 -5
- package/skills/data360-orchestrate/assets/definitions/activation.template.json +0 -7
- package/skills/data360-orchestrate/assets/definitions/calculated-insight.template.json +0 -7
- package/skills/data360-orchestrate/assets/definitions/data-action-target.template.json +0 -5
- package/skills/data360-orchestrate/assets/definitions/data-action.template.json +0 -5
- package/skills/data360-orchestrate/assets/definitions/data-graph.template.json +0 -21
- package/skills/data360-orchestrate/assets/definitions/data-stream.template.json +0 -55
- package/skills/data360-orchestrate/assets/definitions/dmo.template.json +0 -17
- package/skills/data360-orchestrate/assets/definitions/identity-resolution.template.json +0 -30
- package/skills/data360-orchestrate/assets/definitions/mapping.template.json +0 -14
- package/skills/data360-orchestrate/assets/definitions/relationship.template.json +0 -12
- package/skills/data360-orchestrate/assets/definitions/search-index.template.json +0 -9
- package/skills/data360-orchestrate/assets/definitions/segment.template.json +0 -16
- package/skills/data360-orchestrate/references/feature-readiness.md +0 -157
- package/skills/data360-orchestrate/references/plugin-setup.md +0 -138
- package/skills/data360-orchestrate/scripts/bootstrap-plugin.sh +0 -53
- package/skills/data360-orchestrate/scripts/diagnose-org.mjs +0 -511
- package/skills/data360-orchestrate/scripts/generate-manifest.mjs +0 -68
- package/skills/data360-orchestrate/scripts/verify-plugin.sh +0 -58
- package/skills/data360-prepare/README.md +0 -50
- package/skills/data360-prepare/SKILL.md +0 -203
- package/skills/data360-prepare/examples/ingestion-api/.env.example +0 -8
- package/skills/data360-prepare/examples/ingestion-api/README.md +0 -48
- package/skills/data360-prepare/examples/ingestion-api/send-data.py +0 -144
- package/skills/data360-query/README.md +0 -43
- package/skills/data360-query/SKILL.md +0 -128
- package/skills/data360-query/examples/search-indexes/hybrid-structured.json +0 -44
- package/skills/data360-query/examples/search-indexes/vector-knowledge.json +0 -43
- package/skills/data360-segment/README.md +0 -35
- package/skills/data360-segment/SKILL.md +0 -123
- package/skills/service-helpagent-coordinate/references/channel-help-portal.md +0 -22
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-1-1-non-text-content.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-i-lists.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-ii-tables.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-iii-form-labels.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-iv-regions.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-1-v-groups.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-3-5-identify-input.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-1-4-3-contrast.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-1-1-keyboard.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-4-4-link-purpose.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-4-6-headings-labels.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-5-1-pointer-gestures.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-5-2-pointer-cancellation.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-5-3-label-in-name.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-2-5-7-dragging-movement.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-2-1-on-focus.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-2-2-on-input.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-3-1-error-identification.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-3-2-labels-instructions.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-3-3-3-error-suggestion.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-4-1-2-i-name.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-4-1-2-ii-role.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/reviewers/sc-4-1-2-iii-value.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-1-1-non-text-content.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-4-1-use-of-color.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-4-10-resize-reflow.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-4-11-non-text-contrast.md +0 -0
- /package/skills/{experience-lwc-accessibility-validate → experience-accessibility-validate}/references/vision/sc-1-4-3-contrast.md +0 -0
- /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)
|