@salesforce/afv-skills 1.29.0 → 1.31.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/README.md +2 -0
- package/package.json +1 -1
- package/skills/agentforce-architecture-analyze/README.md +2 -8
- package/skills/agentforce-architecture-analyze/SKILL.md +2 -2
- package/skills/agentforce-architecture-analyze/references/contract.json +4 -4
- package/skills/agentforce-architecture-analyze/references/soql_fields.md +1 -1
- package/skills/data360-activate/README.md +0 -1
- package/skills/data360-activate/SKILL.md +0 -2
- package/skills/data360-code-extension-generate/SKILL.md +15 -2
- package/skills/data360-connect/README.md +0 -2
- package/skills/data360-connect/SKILL.md +0 -2
- package/skills/data360-harmonize/SKILL.md +0 -1
- package/skills/data360-orchestrate/README.md +0 -7
- package/skills/data360-orchestrate/SKILL.md +0 -2
- package/skills/data360-prepare/README.md +0 -1
- package/skills/data360-prepare/SKILL.md +0 -1
- package/skills/data360-query/README.md +0 -1
- package/skills/data360-query/SKILL.md +0 -1
- package/skills/data360-segment/README.md +0 -1
- package/skills/data360-segment/SKILL.md +0 -2
- package/skills/dx-pkg-post-install-configure/SKILL.md +184 -0
- package/skills/experience-cms-brand-apply/SKILL.md +47 -16
- package/skills/experience-lwc-generate/README.md +3 -2
- package/skills/experience-lwc-generate/references/async-notification-patterns.md +1 -1
- package/skills/experience-lwc-generate/references/component-patterns.md +3 -3
- package/skills/experience-lwc-generate/references/flow-integration-guide.md +1 -1
- package/skills/experience-lwc-generate/references/lwc-best-practices.md +4 -4
- package/skills/experience-lwc-generate/references/scoring-and-testing.md +1 -1
- package/skills/experience-lwc-generate/references/state-management.md +2 -2
- package/skills/experience-lwc-generate/references/triangle-pattern.md +3 -3
- package/skills/experience-lwc-generate/scripts/post-tool-validate.py +2 -2
- package/skills/experience-lwc-generate/scripts/template_validator.py +1 -1
- package/skills/experience-ui-bundle-app-coordinate/SKILL.md +198 -34
- package/skills/experience-ui-bundle-app-coordinate/scripts/check-hosting-target.sh +26 -0
- package/skills/experience-ui-bundle-app-coordinate/scripts/check-sfdx-project.sh +15 -0
- package/skills/experience-ui-bundle-metadata-generate/SKILL.md +19 -8
- package/skills/experience-ui-bundle-metadata-generate/references/csp-metadata-format.md +2 -2
- package/skills/experience-ui-bundle-metadata-generate/scripts/check-api-version.sh +30 -0
- package/skills/external-diagram-mermaid-generate/README.md +2 -2
- package/skills/external-diagram-mermaid-generate/SKILL.md +1 -3
- package/skills/external-diagram-mermaid-generate/assets/agentforce/agent-flow.md +4 -4
- package/skills/external-diagram-mermaid-generate/assets/architecture/system-landscape.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/datamodel/b2b-commerce-erd.md +3 -3
- package/skills/external-diagram-mermaid-generate/assets/datamodel/campaigns-erd.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/datamodel/consent-erd.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/datamodel/files-erd.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/datamodel/forecasting-erd.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/datamodel/fsl-erd.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/datamodel/party-model-erd.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/datamodel/quote-order-erd.md +3 -3
- package/skills/external-diagram-mermaid-generate/assets/datamodel/revenue-cloud-erd.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/datamodel/sales-cloud-erd.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/datamodel/salesforce-erd.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/datamodel/scheduler-erd.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/datamodel/service-cloud-erd.md +3 -3
- package/skills/external-diagram-mermaid-generate/assets/datamodel/territory-management-erd.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/integration/api-sequence.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/oauth/authorization-code-pkce.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/oauth/authorization-code.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/oauth/client-credentials.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/oauth/device-authorization.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/oauth/jwt-bearer.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/oauth/refresh-token.md +1 -1
- package/skills/external-diagram-mermaid-generate/assets/oauth/user-agent-social-sign-on.md +2 -2
- package/skills/external-diagram-mermaid-generate/assets/role-hierarchy/user-hierarchy.md +1 -1
- package/skills/external-diagram-mermaid-generate/references/color-palette.md +13 -13
- package/skills/external-diagram-mermaid-generate/references/diagram-conventions.md +5 -5
- package/skills/external-diagram-mermaid-generate/references/erd-conventions.md +1 -1
- package/skills/external-diagram-mermaid-generate/references/mermaid-styling.md +2 -2
- package/skills/external-diagram-mermaid-generate/references/preview-guide.md +1 -1
- package/skills/external-diagram-mermaid-generate/references/usage-examples.md +9 -9
- package/skills/external-diagram-mermaid-generate/scripts/README.md +1 -1
- package/skills/integration-connectivity-connected-app-configure/README.md +4 -5
- package/skills/integration-connectivity-connected-app-configure/SKILL.md +2 -2
- package/skills/integration-connectivity-connected-app-configure/references/example-usage.md +7 -7
- package/skills/integration-connectivity-connected-app-configure/references/migration-guide.md +1 -1
- package/skills/integration-connectivity-connected-app-configure/references/oauth-flows-reference.md +1 -1
- package/skills/integration-connectivity-connected-app-configure/references/testing-validation-guide.md +3 -3
- package/skills/integration-connectivity-generate/README.md +1 -1
- package/skills/integration-connectivity-generate/SKILL.md +6 -0
- package/skills/integration-connectivity-generate/assets/callouts/rest-queueable-callout.cls +1 -1
- package/skills/integration-connectivity-generate/assets/external-services/external-service-operations.md +1 -1
- package/skills/integration-connectivity-generate/assets/soap/wsdl2apex-guide.md +1 -1
- package/skills/integration-connectivity-generate/references/callout-patterns.md +4 -0
- package/skills/integration-connectivity-generate/references/cdc-guide.md +2 -2
- package/skills/integration-connectivity-generate/references/event-driven-architecture-guide.md +5 -5
- package/skills/integration-connectivity-generate/references/event-patterns.md +3 -2
- package/skills/integration-connectivity-generate/references/external-services-guide.md +4 -1
- package/skills/integration-connectivity-generate/references/messaging-api-v2.md +2 -2
- package/skills/integration-connectivity-generate/references/named-credentials-automation.md +1 -1
- package/skills/integration-connectivity-generate/references/named-credentials-guide.md +12 -2
- package/skills/integration-connectivity-generate/references/platform-events-guide.md +3 -3
- package/skills/integration-connectivity-generate/references/rest-callout-patterns.md +1 -1
- package/skills/integration-connectivity-generate/references/scoring-rubric.md +1 -1
- package/skills/integration-connectivity-generate/references/security-best-practices.md +5 -2
- package/skills/integration-connectivity-generate/scripts/configure-named-credential.sh +16 -5
- package/skills/integration-connectivity-generate/scripts/set-api-credential.sh +11 -2
- package/skills/integration-connectivity-generate/scripts/suggest_credential_setup.py +4 -3
- package/skills/integration-connectivity-generate/scripts/validate_integration.py +1 -1
- package/skills/omnistudio-callable-apex-generate/README.md +1 -5
- package/skills/omnistudio-callable-apex-generate/SKILL.md +14 -4
- package/skills/omnistudio-callable-apex-generate/assets/pattern_callable_vanilla.cls +8 -1
- package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterface2Conversion/TRANSCRIPT.md +1 -1
- package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterfaceConversion/TRANSCRIPT.md +1 -1
- package/skills/omnistudio-datamapper-generate/SKILL.md +1 -1
- package/skills/omnistudio-datamapper-generate/assets/completion-summary-template.md +2 -2
- package/skills/omnistudio-datamapper-generate/references/best-practices.md +9 -9
- package/skills/omnistudio-datamapper-generate/references/naming-conventions.md +6 -6
- package/skills/omnistudio-datapacks-deploy/README.md +1 -1
- package/skills/omnistudio-datapacks-deploy/examples/business-internet-plus-bundle/deploy-business-internet-plus-bundle.yaml +1 -1
- package/skills/omnistudio-dependencies-analyze/SKILL.md +12 -5
- package/skills/omnistudio-dependencies-analyze/references/dependency-patterns.md +9 -9
- package/skills/omnistudio-dependencies-analyze/references/namespace-guide.md +1 -1
- package/skills/omnistudio-epc-catalog-generate/README.md +1 -1
- package/skills/omnistudio-flexcard-generate/SKILL.md +11 -4
- package/skills/omnistudio-flexcard-generate/references/best-practices.md +6 -6
- package/skills/omnistudio-flexcard-generate/references/data-binding-guide.md +9 -9
- package/skills/omnistudio-integration-procedure-generate/SKILL.md +9 -1
- package/skills/omnistudio-integration-procedure-generate/references/element-types.md +3 -3
- package/skills/omnistudio-omniscript-generate/SKILL.md +2 -2
- package/skills/omnistudio-omniscript-generate/references/best-practices.md +1 -1
- package/skills/omnistudio-omniscript-generate/scripts/check-duplicate-omniscript.sh +8 -0
- package/skills/omnistudio-omniscript-generate/scripts/deploy-omniscript.sh +8 -0
- package/skills/platform-apex-logs-debug/README.md +2 -2
- package/skills/platform-apex-logs-debug/references/cli-commands.md +2 -2
- package/skills/platform-apex-logs-debug/references/debug-log-reference.md +16 -16
- package/skills/platform-apex-logs-debug/references/log-analysis-tools.md +2 -2
- package/skills/platform-apex-test-run/README.md +1 -1
- package/skills/platform-apex-test-run/references/test-fix-loop.md +2 -2
- package/skills/platform-apex-test-run/references/testing-best-practices.md +3 -3
- package/skills/platform-custom-field-generate/SKILL.md +12 -11
- package/skills/platform-custom-field-generate/references/advanced-picklists.md +17 -17
- package/skills/platform-custom-report-type-generate/SKILL.md +259 -0
- package/skills/platform-custom-report-type-generate/examples/AccountProjectsWithTasks.reportType-meta.xml +51 -0
- package/skills/platform-custom-report-type-generate/examples/AccountsWithIndustry.reportType-meta.xml +27 -0
- package/skills/platform-custom-report-type-generate/examples/AccountsWithProjects.reportType-meta.xml +44 -0
- package/skills/platform-custom-report-type-generate/references/category-values.md +32 -0
- package/skills/platform-custom-report-type-generate/references/errors-and-troubleshooting.md +24 -0
- package/skills/platform-data-manage/README.md +4 -4
- package/skills/platform-data-manage/references/bulk-testing-example.md +1 -1
- package/skills/platform-data-manage/references/crud-workflow-example.md +2 -2
- package/skills/platform-data-manage/references/orchestration.md +6 -6
- package/skills/platform-dataspace-access-configure/SKILL.md +318 -0
- package/skills/platform-docs-get/SKILL.md +4 -0
- package/skills/platform-docs-get/scripts/extract_salesforce_doc.py +78 -13
- package/skills/platform-encryption-configure/SKILL.md +122 -0
- package/skills/platform-encryption-configure/assets/EncryptionKey.settings-meta.xml +17 -0
- package/skills/platform-encryption-configure/assets/PlatformEncryption.settings-meta.xml +15 -0
- package/skills/platform-encryption-configure/assets/encrypted-field.field-meta.xml +22 -0
- package/skills/platform-encryption-configure/examples/cache-only-keys.settings-meta.xml +11 -0
- package/skills/platform-encryption-configure/references/encryption-schemes.md +34 -0
- package/skills/platform-encryption-configure/references/key-models.md +34 -0
- package/skills/platform-encryption-configure/references/tenant-secret-lifecycle.md +23 -0
- package/skills/platform-encryption-configure/scripts/validate-encryption-metadata.sh +54 -0
- package/skills/platform-flexipage-generate/SKILL.md +281 -346
- package/skills/platform-flexipage-generate/references/cli_commands.md +39 -0
- package/skills/platform-flexipage-generate/references/flexipage_fieldSection.md +162 -0
- package/skills/platform-flexipage-generate/references/flexipage_richText.md +84 -0
- package/skills/platform-flexipage-generate/references/identifiers_and_regions.md +167 -0
- package/skills/platform-flexipage-generate/references/mcp_action_examples.md +104 -0
- package/skills/platform-flexipage-generate/references/record_flexipage_dynamicHighlights.md +119 -0
- package/skills/platform-flexipage-generate/references/xml_rules.md +335 -0
- package/skills/platform-flexipage-generate/scripts/resolve-component-instructions.sh +42 -0
- package/skills/platform-flexipage-generate/scripts/scan-lwc-components.sh +113 -0
- package/skills/platform-metadata-api-context-get/SKILL.md +13 -10
- package/skills/platform-metadata-deploy/README.md +2 -2
- package/skills/platform-metadata-deploy/references/agent-deployment-guide.md +2 -2
- package/skills/platform-metadata-deploy/references/deployment-workflows.md +16 -16
- package/skills/platform-metadata-deploy/references/orchestration.md +3 -3
- package/skills/platform-metadata-deploy/references/trigger-deployment-safety.md +2 -2
- package/skills/platform-models-api-configure/SKILL.md +140 -0
- package/skills/platform-models-api-configure/scripts/get-orgjwt.sh +48 -0
- package/skills/platform-policy-rule-generate/SKILL.md +260 -0
- package/skills/platform-policy-rule-generate/references/deploy-errors.md +54 -0
- package/skills/platform-policy-rule-generate/references/fixtures-index.md +29 -0
- package/skills/platform-policy-rule-generate/references/policy-schema-full.md +250 -0
- package/skills/platform-policy-rule-generate/references/templates-access.md +132 -0
- package/skills/platform-policy-rule-generate/references/templates-advanced.md +58 -0
- package/skills/platform-policy-rule-generate/references/templates-record.md +75 -0
- package/skills/platform-policy-rule-generate/references/templates-transform.md +70 -0
- package/skills/platform-policy-rule-generate/references/templates.md +10 -0
- package/skills/platform-policy-rule-generate/references/ui-compatibility.md +142 -0
- package/skills/platform-soql-query/README.md +1 -1
- package/skills/platform-soql-query/SKILL.md +1 -1
- package/skills/platform-soql-query/references/anti-patterns.md +1 -1
- package/skills/platform-soql-query/references/field-coverage-rules.md +1 -1
- package/skills/platform-soql-query/references/query-optimization.md +1 -1
- package/skills/platform-soql-query/scripts/post-tool-validate.py +3 -3
- package/skills/data360-activate/CREDITS.md +0 -5
- package/skills/data360-connect/CREDITS.md +0 -5
- package/skills/data360-harmonize/CREDITS.md +0 -3
- package/skills/data360-orchestrate/CREDITS.md +0 -15
- package/skills/data360-orchestrate/UPSTREAM.md +0 -45
- package/skills/data360-prepare/CREDITS.md +0 -7
- package/skills/data360-query/CREDITS.md +0 -7
- package/skills/data360-segment/CREDITS.md +0 -3
- package/skills/experience-lwc-generate/CREDITS.md +0 -5
- package/skills/external-diagram-mermaid-generate/CREDITS.md +0 -46
- package/skills/external-diagram-visual-generate/CREDITS.md +0 -80
- package/skills/external-diagram-visual-generate/README.md +0 -83
- package/skills/external-diagram-visual-generate/SKILL.md +0 -207
- package/skills/external-diagram-visual-generate/assets/architecture/integration-flow.md +0 -55
- package/skills/external-diagram-visual-generate/assets/erd/core-objects.md +0 -131
- package/skills/external-diagram-visual-generate/assets/erd/custom-objects.md +0 -60
- package/skills/external-diagram-visual-generate/assets/lwc/dashboard-card.md +0 -45
- package/skills/external-diagram-visual-generate/assets/lwc/data-table.md +0 -57
- package/skills/external-diagram-visual-generate/assets/lwc/record-form.md +0 -60
- package/skills/external-diagram-visual-generate/assets/review/apex-review.md +0 -57
- package/skills/external-diagram-visual-generate/assets/review/lwc-review.md +0 -48
- package/skills/external-diagram-visual-generate/references/architect-aesthetic-guide.md +0 -257
- package/skills/external-diagram-visual-generate/references/examples-index.md +0 -35
- package/skills/external-diagram-visual-generate/references/gemini-cli-setup.md +0 -65
- package/skills/external-diagram-visual-generate/references/interview-questions.md +0 -529
- package/skills/external-diagram-visual-generate/references/iteration-workflow.md +0 -173
- package/skills/external-diagram-visual-generate/scripts/check-prerequisites.sh +0 -101
- package/skills/external-diagram-visual-generate/scripts/generate_image.py +0 -243
- package/skills/integration-connectivity-connected-app-configure/CREDITS.md +0 -3
- package/skills/integration-connectivity-generate/CREDITS.md +0 -5
- package/skills/omnistudio-callable-apex-generate/CREDITS.md +0 -9
- package/skills/omnistudio-datamapper-generate/CREDITS.md +0 -5
- package/skills/omnistudio-datapacks-deploy/CREDITS.md +0 -5
- package/skills/omnistudio-dependencies-analyze/CREDITS.md +0 -5
- package/skills/omnistudio-epc-catalog-generate/CREDITS.md +0 -14
- package/skills/omnistudio-flexcard-generate/CREDITS.md +0 -5
- package/skills/omnistudio-integration-procedure-generate/CREDITS.md +0 -5
- package/skills/omnistudio-omniscript-generate/CREDITS.md +0 -5
- package/skills/platform-apex-generate/CREDITS.md +0 -5
- package/skills/platform-apex-logs-debug/CREDITS.md +0 -22
- package/skills/platform-apex-test-generate/CREDITS.md +0 -5
- package/skills/platform-apex-test-run/CREDITS.md +0 -22
- package/skills/platform-data-manage/CREDITS.md +0 -5
- package/skills/platform-metadata-deploy/CREDITS.md +0 -25
- package/skills/platform-soql-query/CREDITS.md +0 -21
- /package/skills/omnistudio-callable-apex-generate/examples/Test_VlocityOpenInterfaceConversion/{MyCustomVlocityOpenInterface2.cls → MyCustomClass.cls} +0 -0
package/README.md
CHANGED
|
@@ -4,6 +4,8 @@ This repository provides a curated collection of Salesforce agent skills for bui
|
|
|
4
4
|
|
|
5
5
|
The skills are contributed by Salesforce and the broader community. It’s optimized for Agentforce Vibes and can be used with any AI tool that supports skills.
|
|
6
6
|
|
|
7
|
+
> ⚠️ **Expect frequent changes.** The Salesforce skills library is evolving rapidly as we refine patterns and incorporate feedback. Skills may be renamed, restructured, or removed between releases — they do not follow the same stability guarantees as GA platform APIs. If you’ve forked or synced the repository, be prepared for upstream changes that may conflict with local modifications. This repository is always the source of truth.
|
|
8
|
+
|
|
7
9
|
## 🗂️ Structure
|
|
8
10
|
|
|
9
11
|
```
|
package/package.json
CHANGED
|
@@ -44,7 +44,7 @@ See `SKILL.md` for the full flag table and sample prompts.
|
|
|
44
44
|
|
|
45
45
|
## Directory layout
|
|
46
46
|
|
|
47
|
-
```
|
|
47
|
+
```text
|
|
48
48
|
agentforce-architecture-analyze/
|
|
49
49
|
├── SKILL.md Skill contract (inputs, outputs, pipeline, invariants)
|
|
50
50
|
├── README.md This file
|
|
@@ -86,7 +86,7 @@ agentforce-architecture-analyze/
|
|
|
86
86
|
|
|
87
87
|
### Channel strategy — SOQL-first
|
|
88
88
|
|
|
89
|
-
```
|
|
89
|
+
```text
|
|
90
90
|
Seed query: planner_definition_by_agent_chain (chain-LIKE lookup → planner id)
|
|
91
91
|
|
|
92
92
|
6 parallel Tooling SOQL channels (keyed on the resolved planner id):
|
|
@@ -147,9 +147,3 @@ Per-branch ancestor-path cycle detection is the primary termination primitive: t
|
|
|
147
147
|
| `INVALID_FIELD` from a SOQL asset | Salesforce renamed / removed the field in a quarterly release. Run with `--reprobe` to refresh the 7-day channel cache and pick up the new schema |
|
|
148
148
|
| `STATUS=PROBE_FAILED` on first run | Channel probe saw a mandatory field missing. Check `channels.json` under the probe cache dir for which sObject / field — may require org-side feature enablement |
|
|
149
149
|
| Tree for classic ReAct agent shows `_unresolved` entries for NGA plugins | Expected — the NGA external-plugin retrieve is skipped when the planner shape is classic. Those entries can be ignored |
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
## Author
|
|
154
|
-
|
|
155
|
-
Raghul Jayagopal (RJ), Salesforce ANZ FDE.
|
|
@@ -157,14 +157,14 @@ exit "$_rc"
|
|
|
157
157
|
|
|
158
158
|
All artifacts under `~/.vibe/data/agentforce-architecture-analyze/<org_id15>/<agent_api_name>__<agent_version>/` (default; override with `--data-dir <path>`):
|
|
159
159
|
|
|
160
|
-
```
|
|
160
|
+
```xml
|
|
161
161
|
<agent>_<ver>_metadata_tree.json primary artifact — normalized planner/topic/action/flow/apex/prompt/plugin tree
|
|
162
162
|
<agent>_<ver>_architecture.md human-readable section-by-section rendering (H1 + 7 numbered sections, plus a conditional Dependency graph appendix). Mermaid diagrams are embedded inside the relevant sections (Action tree, Data flow, and Dependency graph)
|
|
163
163
|
```
|
|
164
164
|
|
|
165
165
|
## Pipeline — inline, no subagent
|
|
166
166
|
|
|
167
|
-
```
|
|
167
|
+
```text
|
|
168
168
|
resolve_bot.py → BotDefinition + BotVersion + planner name lookup
|
|
169
169
|
retrieve_planner.py → Metadata API zip retrieve for GenAiPlannerBundle (+ NGA plugins if present)
|
|
170
170
|
parallel_retrieve.py → 6 parallel Tooling SOQL channels fan out from the planner id
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_doc": "retired-name references replaced with plugin-scoped layout. Machine-readable I/O contract for
|
|
2
|
+
"_doc": "retired-name references replaced with plugin-scoped layout. Machine-readable I/O contract for agentforce-architecture-analyze. Orchestrator code reads this file (not SKILL.md prose) to discover the input schema, output keys, STATUS enum, and error-contract rules. The architecture skill runs inline (no subagent).",
|
|
3
3
|
"_schema_version": "3.1",
|
|
4
4
|
"_schema_notes": "3.1 (2026-05-05) canonicalizes `invocation_type` on STANDARD_ACTION / UNKNOWN nodes in the metadata tree. Prior versions split this across `raw_invocation_type` (bundle-sourced nodes) and `raw_action_type` (flow-actionCall-sourced nodes). Both legacy keys are still tolerated by readers for one release.",
|
|
5
5
|
"input": {
|
|
@@ -35,15 +35,15 @@
|
|
|
35
35
|
},
|
|
36
36
|
"work_dir": {
|
|
37
37
|
"type": "absolute_path",
|
|
38
|
-
"description": "Ephemeral scratch. Default: /tmp/
|
|
38
|
+
"description": "Ephemeral scratch. Default: /tmp/agentforce-architecture-analyze-<epoch>-<rand>."
|
|
39
39
|
},
|
|
40
40
|
"cache_root": {
|
|
41
41
|
"type": "absolute_path",
|
|
42
|
-
"description": "Internal rebuildable cache root. Default: ~/.vibe/cache/
|
|
42
|
+
"description": "Internal rebuildable cache root. Default: ~/.vibe/cache/agentforce-architecture-analyze. Override with --cache-dir <path>."
|
|
43
43
|
},
|
|
44
44
|
"data_root": {
|
|
45
45
|
"type": "absolute_path",
|
|
46
|
-
"description": "Durable user-facing output root. Default: ~/.vibe/data/
|
|
46
|
+
"description": "Durable user-facing output root. Default: ~/.vibe/data/agentforce-architecture-analyze. Override with --data-dir <path>."
|
|
47
47
|
},
|
|
48
48
|
"force_refresh": {
|
|
49
49
|
"type": "boolean",
|
|
@@ -64,7 +64,7 @@ Every edge is strictly **forward** from the entry query
|
|
|
64
64
|
(`GenAiPlannerDefinition WHERE DeveloperName = :planner_name`). No
|
|
65
65
|
backward lookups.
|
|
66
66
|
|
|
67
|
-
```
|
|
67
|
+
```text
|
|
68
68
|
BotDefinition (Data API, PK Id, matched by DeveloperName)
|
|
69
69
|
└── BotVersion (Data API, FK BotDefinitionId)
|
|
70
70
|
│ [resolved to planner name via Bot metadata retrieve]
|
|
@@ -36,4 +36,3 @@ sf data360 data-action-target list -o myorg 2>/dev/null
|
|
|
36
36
|
- [../data360-orchestrate/assets/definitions/data-action-target.template.json](../data360-orchestrate/assets/definitions/data-action-target.template.json)
|
|
37
37
|
- [../data360-orchestrate/assets/definitions/data-action.template.json](../data360-orchestrate/assets/definitions/data-action.template.json)
|
|
38
38
|
- [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
|
|
39
|
-
- [CREDITS.md](CREDITS.md)
|
|
@@ -107,11 +107,9 @@ Next step: <destination validation or downstream testing>
|
|
|
107
107
|
|
|
108
108
|
## References
|
|
109
109
|
|
|
110
|
-
- [README.md](README.md)
|
|
111
110
|
- [../data360-orchestrate/assets/definitions/activation-target.template.json](../data360-orchestrate/assets/definitions/activation-target.template.json)
|
|
112
111
|
- [../data360-orchestrate/assets/definitions/activation.template.json](../data360-orchestrate/assets/definitions/activation.template.json)
|
|
113
112
|
- [../data360-orchestrate/assets/definitions/data-action-target.template.json](../data360-orchestrate/assets/definitions/data-action-target.template.json)
|
|
114
113
|
- [../data360-orchestrate/assets/definitions/data-action.template.json](../data360-orchestrate/assets/definitions/data-action.template.json)
|
|
115
|
-
- [../data360-orchestrate/UPSTREAM.md](../data360-orchestrate/UPSTREAM.md)
|
|
116
114
|
- [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
|
|
117
115
|
- [../data360-orchestrate/references/feature-readiness.md](../data360-orchestrate/references/feature-readiness.md)
|
|
@@ -3,6 +3,19 @@ name: data360-code-extension-generate
|
|
|
3
3
|
description: "Develop and deploy Data Cloud Code Extensions using SF CLI plugin. Use this skill when creating custom Python transformations for Data Cloud, deploying code extensions, or testing data transformations. Supports init, run, scan, and deploy operations."
|
|
4
4
|
metadata:
|
|
5
5
|
version: "1.0"
|
|
6
|
+
relatedSkills:
|
|
7
|
+
- "data360-schema-get"
|
|
8
|
+
cliTools:
|
|
9
|
+
- tool: ["sf"]
|
|
10
|
+
semver: ">=2.0.0"
|
|
11
|
+
- tool: ["pip"]
|
|
12
|
+
semver: ">=21.0.0"
|
|
13
|
+
- tool: ["python3"]
|
|
14
|
+
semver: ">=3.11.0"
|
|
15
|
+
- tool: ["docker"]
|
|
16
|
+
semver: ">=20.0.0"
|
|
17
|
+
- tool: ["git"]
|
|
18
|
+
semver: ">=2.0.0"
|
|
6
19
|
---
|
|
7
20
|
|
|
8
21
|
# data360-code-extension-generate Skill
|
|
@@ -30,7 +43,7 @@ Before executing any code extension commands, verify prerequisites:
|
|
|
30
43
|
```
|
|
31
44
|
If not installed:
|
|
32
45
|
```bash
|
|
33
|
-
sf plugins install @salesforce/plugin-data-
|
|
46
|
+
sf plugins install @salesforce/plugin-data-code-extension
|
|
34
47
|
```
|
|
35
48
|
|
|
36
49
|
2. **Python 3.11**
|
|
@@ -254,7 +267,7 @@ sf data-code-extension script deploy --target-org <org_alias> --name <name> --pa
|
|
|
254
267
|
|
|
255
268
|
| Error | Solution |
|
|
256
269
|
|-------|----------|
|
|
257
|
-
| `command data-code-extension not found` | `sf plugins install @salesforce/plugin-data-
|
|
270
|
+
| `command data-code-extension not found` | `sf plugins install @salesforce/plugin-data-code-extension` |
|
|
258
271
|
| `datacustomcode CLI not found` | `pip install salesforce-data-customcode` |
|
|
259
272
|
| `Python version mismatch` | Use pyenv: `pyenv install 3.11.0 && pyenv local 3.11.0` |
|
|
260
273
|
| `Cannot connect to Docker daemon` | Start Docker Desktop |
|
|
@@ -55,5 +55,3 @@ sf data360 connection schema-upsert -o myorg --name <connector-id> -f examples/c
|
|
|
55
55
|
|
|
56
56
|
- [SKILL.md](SKILL.md)
|
|
57
57
|
- [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
|
|
58
|
-
- [../data360-orchestrate/UPSTREAM.md](../data360-orchestrate/UPSTREAM.md)
|
|
59
|
-
- [CREDITS.md](CREDITS.md)
|
|
@@ -142,7 +142,6 @@ Next step: <prepare phase or connector follow-up>
|
|
|
142
142
|
|
|
143
143
|
## References
|
|
144
144
|
|
|
145
|
-
- [README.md](README.md)
|
|
146
145
|
- [examples/connections/heroku-postgres.json](examples/connections/heroku-postgres.json)
|
|
147
146
|
- [examples/connections/redshift.json](examples/connections/redshift.json)
|
|
148
147
|
- [examples/connections/sharepoint-unstructured.json](examples/connections/sharepoint-unstructured.json)
|
|
@@ -151,4 +150,3 @@ Next step: <prepare phase or connector follow-up>
|
|
|
151
150
|
- [examples/connections/ingest-api-schema.json](examples/connections/ingest-api-schema.json)
|
|
152
151
|
- [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
|
|
153
152
|
- [../data360-orchestrate/references/feature-readiness.md](../data360-orchestrate/references/feature-readiness.md)
|
|
154
|
-
- [../data360-orchestrate/UPSTREAM.md](../data360-orchestrate/UPSTREAM.md)
|
|
@@ -107,7 +107,6 @@ Next step: <segment / retrieve / follow-up>
|
|
|
107
107
|
|
|
108
108
|
## References
|
|
109
109
|
|
|
110
|
-
- [README.md](README.md)
|
|
111
110
|
- [../data360-orchestrate/assets/definitions/dmo.template.json](../data360-orchestrate/assets/definitions/dmo.template.json)
|
|
112
111
|
- [../data360-orchestrate/assets/definitions/mapping.template.json](../data360-orchestrate/assets/definitions/mapping.template.json)
|
|
113
112
|
- [../data360-orchestrate/assets/definitions/relationship.template.json](../data360-orchestrate/assets/definitions/relationship.template.json)
|
|
@@ -47,7 +47,6 @@ See [references/plugin-setup.md](references/plugin-setup.md).
|
|
|
47
47
|
| [scripts/diagnose-org.mjs](scripts/diagnose-org.mjs) | Classify org readiness by phase before mutating Data Cloud assets |
|
|
48
48
|
| [references/feature-readiness.md](references/feature-readiness.md) | Map high-signal errors and feature gates to concrete next steps |
|
|
49
49
|
| [assets/definitions/](assets/definitions/) | Generic JSON templates for repeatable Data Cloud definition files |
|
|
50
|
-
| [UPSTREAM.md](UPSTREAM.md) | Upstream mapping for future distillation and maintenance |
|
|
51
50
|
|
|
52
51
|
## Generic templates
|
|
53
52
|
|
|
@@ -119,9 +118,3 @@ sf data360 activation platforms -o myorg 2>/dev/null
|
|
|
119
118
|
- [SKILL.md](SKILL.md) - Orchestrator guidance
|
|
120
119
|
- [references/plugin-setup.md](references/plugin-setup.md) - Plugin install and verification
|
|
121
120
|
- [references/feature-readiness.md](references/feature-readiness.md) - Readiness classification and setup guidance
|
|
122
|
-
- [UPSTREAM.md](UPSTREAM.md) - Upstream tracking and distillation policy
|
|
123
|
-
- [CREDITS.md](CREDITS.md) - Contributor and source attribution
|
|
124
|
-
|
|
125
|
-
## Primary contributor
|
|
126
|
-
|
|
127
|
-
**Gnanasekaran Thoppae** — primary contributor for the data360-orchestrate family.
|
|
@@ -215,10 +215,8 @@ Next step: <next phase, setup guidance, or cross-skill handoff>
|
|
|
215
215
|
## Reference Map
|
|
216
216
|
|
|
217
217
|
### Start here
|
|
218
|
-
- [README.md](README.md)
|
|
219
218
|
- [references/plugin-setup.md](references/plugin-setup.md)
|
|
220
219
|
- [references/feature-readiness.md](references/feature-readiness.md)
|
|
221
|
-
- [UPSTREAM.md](UPSTREAM.md)
|
|
222
220
|
|
|
223
221
|
### Phase skills
|
|
224
222
|
- [data360-connect](../data360-connect/SKILL.md)
|
|
@@ -48,4 +48,3 @@ sf data360 connection run-existing -o myorg --name <connection-id> 2>/dev/null
|
|
|
48
48
|
- [SKILL.md](SKILL.md)
|
|
49
49
|
- [examples/ingestion-api/README.md](examples/ingestion-api/README.md)
|
|
50
50
|
- [../data360-orchestrate/assets/definitions/data-stream.template.json](../data360-orchestrate/assets/definitions/data-stream.template.json)
|
|
51
|
-
- [CREDITS.md](CREDITS.md)
|
|
@@ -183,7 +183,6 @@ Next step: <harmonize or retrieve>
|
|
|
183
183
|
|
|
184
184
|
## References
|
|
185
185
|
|
|
186
|
-
- [README.md](README.md)
|
|
187
186
|
- [examples/ingestion-api/README.md](examples/ingestion-api/README.md)
|
|
188
187
|
- [../data360-orchestrate/assets/definitions/data-stream.template.json](../data360-orchestrate/assets/definitions/data-stream.template.json)
|
|
189
188
|
- [../data360-orchestrate/references/plugin-setup.md](../data360-orchestrate/references/plugin-setup.md)
|
|
@@ -41,4 +41,3 @@ sf data360 query hybrid -o myorg --index Knowledge_Index --query "reset password
|
|
|
41
41
|
|
|
42
42
|
- [SKILL.md](SKILL.md)
|
|
43
43
|
- [../data360-orchestrate/assets/definitions/search-index.template.json](../data360-orchestrate/assets/definitions/search-index.template.json)
|
|
44
|
-
- [CREDITS.md](CREDITS.md)
|
|
@@ -111,7 +111,6 @@ Next step: <segment / harmonize / follow-up>
|
|
|
111
111
|
|
|
112
112
|
## References
|
|
113
113
|
|
|
114
|
-
- [README.md](README.md)
|
|
115
114
|
- [examples/search-indexes/vector-knowledge.json](examples/search-indexes/vector-knowledge.json)
|
|
116
115
|
- [examples/search-indexes/hybrid-structured.json](examples/search-indexes/hybrid-structured.json)
|
|
117
116
|
- [../data360-orchestrate/assets/definitions/search-index.template.json](../data360-orchestrate/assets/definitions/search-index.template.json)
|
|
@@ -33,4 +33,3 @@ sf data360 calculated-insight list -o myorg 2>/dev/null
|
|
|
33
33
|
- [SKILL.md](SKILL.md)
|
|
34
34
|
- [../data360-orchestrate/assets/definitions/calculated-insight.template.json](../data360-orchestrate/assets/definitions/calculated-insight.template.json)
|
|
35
35
|
- [../data360-orchestrate/assets/definitions/segment.template.json](../data360-orchestrate/assets/definitions/segment.template.json)
|
|
36
|
-
- [CREDITS.md](CREDITS.md)
|
|
@@ -107,8 +107,6 @@ Next step: <act / retrieve / follow-up>
|
|
|
107
107
|
|
|
108
108
|
## References
|
|
109
109
|
|
|
110
|
-
- [README.md](README.md)
|
|
111
110
|
- [../data360-orchestrate/assets/definitions/calculated-insight.template.json](../data360-orchestrate/assets/definitions/calculated-insight.template.json)
|
|
112
111
|
- [../data360-orchestrate/assets/definitions/segment.template.json](../data360-orchestrate/assets/definitions/segment.template.json)
|
|
113
112
|
- [../data360-orchestrate/references/feature-readiness.md](../data360-orchestrate/references/feature-readiness.md)
|
|
114
|
-
- [../data360-orchestrate/UPSTREAM.md](../data360-orchestrate/UPSTREAM.md)
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dx-pkg-post-install-configure
|
|
3
|
+
description: "Use this skill to automate managed package post-install configuration. Package-agnostic — works with any managed package (LMA, FMA, work.com, Certinia, etc.). TRIGGER when: user installs a managed package and needs post-install configuration, mentions LMA/FMA/work.com post-install setup, asks to configure permission sets/FLS/page layouts for an installed package, says 'post-install', 'package setup', 'configure LMA', 'set up FMA', 'post-install steps'. DO NOT TRIGGER for: standalone permission set assignment (use dx-org-permission-set-assign), generating permission set metadata XML (use platform-permission-set-generate), package installation, or org switching."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "2.2"
|
|
6
|
+
minApiVersion: "67.0"
|
|
7
|
+
cliTools:
|
|
8
|
+
- tool: ["sf"]
|
|
9
|
+
semver: ">=2.0.0"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## When to Use This Skill
|
|
13
|
+
|
|
14
|
+
Use when automating post-install configuration for any Salesforce managed package. This skill reads the package's post-install documentation, discovers available execution methods, and automates the configuration steps — including permission sets, object/field permissions, page layouts, Visualforce page access, and tab settings.
|
|
15
|
+
|
|
16
|
+
## Input
|
|
17
|
+
|
|
18
|
+
- **Required:** Package name (e.g., `LMA`, `FMA`, `work.com`)
|
|
19
|
+
- **Optional:** Path to post-install doc (PDF, markdown, URL)
|
|
20
|
+
|
|
21
|
+
If no doc is provided, ask the user to supply it.
|
|
22
|
+
|
|
23
|
+
## Workflow
|
|
24
|
+
|
|
25
|
+
Execute phases in order. Each phase must pass before proceeding.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
### Phase 1: Discover Available Execution Methods
|
|
30
|
+
|
|
31
|
+
**Priority order:**
|
|
32
|
+
1. Org-native platform MCP servers (highest — direct org access via Headless 360)
|
|
33
|
+
2. Claude Code external MCP servers (sf-sobject-all, sf-sobject-all-sb, etc.)
|
|
34
|
+
3. sf CLI fallback (always available if authenticated)
|
|
35
|
+
|
|
36
|
+
#### Step 1A: Resolve org API version
|
|
37
|
+
|
|
38
|
+
Discover the org's current API version dynamically — never hardcode a version number:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
sf org display --target-org <alias> --json
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
From the JSON response, read `result.apiVersion` (e.g., `"67.0"`). Store this value and use it as `v<apiVersion>` in all subsequent REST paths. If the command fails, fall back to the `minApiVersion` declared in this skill's metadata (`67.0`).
|
|
45
|
+
|
|
46
|
+
#### Step 1B: Check for org-native platform MCP servers
|
|
47
|
+
|
|
48
|
+
Query the Tooling API for MCP server availability:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
sf api request rest "/services/data/v<apiVersion>/tooling/query?q=SELECT+Id,DeveloperName,MasterLabel+FROM+McpServerAccess" --target-org <alias>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
#### Step 1C: Determine execution method
|
|
55
|
+
|
|
56
|
+
Check which Claude Code MCP tools are available and authenticated.
|
|
57
|
+
|
|
58
|
+
**MCP tool prefixes by org type:**
|
|
59
|
+
|
|
60
|
+
| Org Type | Tool Prefix |
|
|
61
|
+
|---|---|
|
|
62
|
+
| Production | `mcp__sf-sobject-all__` |
|
|
63
|
+
| Sandbox | `mcp__sf-sobject-all-sb__` |
|
|
64
|
+
| Falcon Test (pc-rnd) | `mcp__sf-sobject-all-falcon__` |
|
|
65
|
+
|
|
66
|
+
If MCP needs auth, call the authenticate tool. If auth fails, fall back to sf CLI.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### Phase 2: Verify Authentication & Org Identity
|
|
71
|
+
|
|
72
|
+
1. Run a lightweight test query (`SELECT Id, Name, IsSandbox FROM Organization`)
|
|
73
|
+
2. If MCP auth fails, automatically fall back to sf CLI
|
|
74
|
+
3. Display org info and ask user to confirm before proceeding
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### Phase 3: Verify Package Installation
|
|
79
|
+
|
|
80
|
+
1. Determine the package namespace (ask user if unknown)
|
|
81
|
+
2. Check via Tooling API (`InstalledSubscriberPackage`) — do NOT use `PackageLicense`
|
|
82
|
+
3. If package not found, stop and inform user
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### Phase 4: Read and Parse Post-Install Document
|
|
87
|
+
|
|
88
|
+
Read the provided document and extract discrete configuration steps.
|
|
89
|
+
|
|
90
|
+
**Supported formats:** PDF, markdown, URL (via WebFetch), pasted text.
|
|
91
|
+
|
|
92
|
+
**Parsing approach:**
|
|
93
|
+
1. Extract each numbered/bulleted step from the document
|
|
94
|
+
2. Present the extracted steps to the user for validation before proceeding
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### Phase 5: Classify Steps & Interactive Plan Review
|
|
99
|
+
|
|
100
|
+
For each step extracted from the doc, classify as Automated or Manual.
|
|
101
|
+
|
|
102
|
+
#### Automation capabilities reference
|
|
103
|
+
|
|
104
|
+
**Via MCP (sobject-all) or sf CLI CRUD:**
|
|
105
|
+
- Record CRUD on any standard or custom object (PermissionSet, ObjectPermissions,
|
|
106
|
+
FieldPermissions, SetupEntityAccess, PermissionSetTabSetting, PermissionSetAssignment, etc.)
|
|
107
|
+
|
|
108
|
+
**Via Metadata API retrieve/deploy (sf CLI):**
|
|
109
|
+
- Page layout modifications (add related lists, fields, sections)
|
|
110
|
+
- Profile settings
|
|
111
|
+
- Custom metadata type records
|
|
112
|
+
|
|
113
|
+
**Via sf CLI Tooling API:**
|
|
114
|
+
- Tooling queries (InstalledSubscriberPackage, ApexPage, ApexClass, etc.)
|
|
115
|
+
- Any REST-accessible Tooling operation
|
|
116
|
+
|
|
117
|
+
**Manual (no API path — requires Setup UI):**
|
|
118
|
+
- System permissions not exposed via REST
|
|
119
|
+
- Connected app OAuth configuration
|
|
120
|
+
- Environment Hub linkage
|
|
121
|
+
|
|
122
|
+
#### Interactive approval
|
|
123
|
+
|
|
124
|
+
Present the classified plan and let the user choose:
|
|
125
|
+
- **"Approve all"** — Execute all steps as planned
|
|
126
|
+
- **"Let me choose"** — Select which steps to approve/skip
|
|
127
|
+
- **"I have questions"** — Discuss specific steps before deciding
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
### Phase 6: Execute Approved Steps
|
|
132
|
+
|
|
133
|
+
For each approved step, use the resolved execution method.
|
|
134
|
+
|
|
135
|
+
#### Execution method reference
|
|
136
|
+
|
|
137
|
+
| Operation | Via MCP | Via sf CLI |
|
|
138
|
+
|---|---|---|
|
|
139
|
+
| SOQL query | `soqlQuery` tool | `sf data query --query "<SOQL>" --target-org <alias> --json` |
|
|
140
|
+
| Create record | `createSobjectRecord` tool | `sf data create record --sobject <Object> --values "..." --target-org <alias> --json` |
|
|
141
|
+
| Update record | `updateSobjectRecord` tool | `sf data update record --sobject <Object> --record-id <id> --values "..." --target-org <alias> --json` |
|
|
142
|
+
| Describe object | `getObjectSchema` tool | `sf api request rest "/services/data/v<apiVersion>/sobjects/<Object>/describe" --target-org <alias>` |
|
|
143
|
+
| Page layout | N/A | Metadata API retrieve/deploy |
|
|
144
|
+
|
|
145
|
+
#### Page layout modifications via Metadata API
|
|
146
|
+
|
|
147
|
+
Use `sf project retrieve start` → edit the layout XML → `sf project deploy start`.
|
|
148
|
+
|
|
149
|
+
#### Execution rules
|
|
150
|
+
|
|
151
|
+
- **Idempotency:** Before creating any record, query to check if it already exists. Skip if so.
|
|
152
|
+
- **Report after each step:** Show success count, skipped items, and reasons.
|
|
153
|
+
- **Automatic fallback:** If MCP fails mid-execution, retry via sf CLI.
|
|
154
|
+
- **On failure:** Report error, ask user to retry/skip/stop.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
### Phase 7: Guide Manual Steps (if any)
|
|
159
|
+
|
|
160
|
+
If any steps could not be automated, present each with Setup navigation instructions.
|
|
161
|
+
Wait for user confirmation before proceeding to the next.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
### Phase 8: Summary
|
|
166
|
+
|
|
167
|
+
Display final summary with step-by-step status, method used, and any skipped items.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Error Handling
|
|
172
|
+
|
|
173
|
+
- **Auth failure mid-execution:** Stop, ask user to re-auth, offer to resume
|
|
174
|
+
- **Duplicate record errors:** Treat as "already configured", skip and continue
|
|
175
|
+
- **Permission errors:** Report which permission is missing, suggest resolution
|
|
176
|
+
- **Unknown step type:** Ask user to clarify, offer to mark as manual
|
|
177
|
+
|
|
178
|
+
## Notes
|
|
179
|
+
|
|
180
|
+
- **Priority: org-native MCP > Claude Code MCP > sf CLI > manual**
|
|
181
|
+
- sf CLI is always a valid fallback for all CRUD and Tooling API operations
|
|
182
|
+
- Page layout modifications are automated via Metadata API retrieve/deploy
|
|
183
|
+
- Always verify org identity before making changes
|
|
184
|
+
- All actions respect the authenticated user's permissions
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: experience-cms-brand-apply
|
|
3
3
|
description: "Extracts, retrieves, and applies CMS brand guidelines (voice, tone, style, colors, typography) to generated content. Use this skill ANY TIME a user request involves branding, brand voice, brand tone, brand guidelines, brand identity, brand styling, or applying a brand to content. Triggers for requests like \"apply my brand\", \"use our brand voice\", \"match our brand guidelines\", \"find my brand\", \"search for brand\", \"get brand instructions\", \"apply brand tone\". Handles the full workflow: searching for brands in Salesforce CMS, extracting brand instructions, and applying brand voice/tone/guidelines to generated content. Does not apply to media/image search (use experience-content-media-search skill), logo search, or creating new brand definitions."
|
|
4
|
-
compatibility: "Requires get_brand_instructions and/or
|
|
4
|
+
compatibility: "Requires get_brand_instructions and/or search_media_cms_channels MCP tools"
|
|
5
5
|
metadata:
|
|
6
6
|
version: "1.0"
|
|
7
7
|
---
|
|
@@ -44,7 +44,7 @@ When a user requests branded content:
|
|
|
44
44
|
|
|
45
45
|
Copy this checklist and track your progress:
|
|
46
46
|
|
|
47
|
-
```
|
|
47
|
+
```text
|
|
48
48
|
CMS Branding Progress:
|
|
49
49
|
- [ ] Step 1: Determine if brand is already identified or needs search
|
|
50
50
|
- [ ] Step 2: Search for brands (if needed) and present options to user
|
|
@@ -63,35 +63,63 @@ Check if the user has already specified which brand to use:
|
|
|
63
63
|
|
|
64
64
|
## Step 2: Search for Brands
|
|
65
65
|
|
|
66
|
-
**Tool:** `
|
|
66
|
+
**Tool:** `search_media_cms_channels`
|
|
67
|
+
|
|
68
|
+
Brands are stored as CMS content of type `sfdc_cms__brand`. Search for them by
|
|
69
|
+
querying the CMS channels with the brand content type.
|
|
70
|
+
|
|
71
|
+
> **Note:** Brand content search (`contentTypeFqn=sfdc_cms__brand`) is explicitly
|
|
72
|
+
> excluded from the `experience-content-media-search` skill's scope. Calling
|
|
73
|
+
> `search_media_cms_channels` directly here is correct and intentional — do not
|
|
74
|
+
> route brand search through `experience-content-media-search`.
|
|
67
75
|
|
|
68
76
|
**Process:**
|
|
69
77
|
|
|
70
|
-
1. **Determine search query** — Use the user's
|
|
71
|
-
|
|
78
|
+
1. **Determine search query** — Use the user's keyword. Brand search matches on
|
|
79
|
+
brand title and description.
|
|
80
|
+
2. **Build the request** with the fixed brand-search input contract:
|
|
72
81
|
|
|
73
82
|
```json
|
|
74
83
|
{
|
|
75
84
|
"inputs": [{
|
|
76
|
-
"
|
|
85
|
+
"searchKeyword": "keyword",
|
|
86
|
+
"searchLanguage": "<detected_language>",
|
|
87
|
+
"channelType": "PublicUnauthenticated",
|
|
88
|
+
"contentTypeFqn": "sfdc_cms__brand",
|
|
89
|
+
"pageOffset": 0,
|
|
90
|
+
"searchLimit": 25
|
|
77
91
|
}]
|
|
78
92
|
}
|
|
79
93
|
```
|
|
80
94
|
|
|
81
|
-
|
|
82
|
-
|
|
95
|
+
Field rules:
|
|
96
|
+
- `searchKeyword` — the user's keyword input
|
|
97
|
+
- `searchLanguage` — auto-detect from the user's input; if unsure, use `en_US`
|
|
98
|
+
- `channelType` — always `PublicUnauthenticated` (brand content is delivered
|
|
99
|
+
via the public CMS channel; authenticated-channel brand search is not
|
|
100
|
+
supported by this tool)
|
|
101
|
+
- `contentTypeFqn` — always `sfdc_cms__brand`
|
|
102
|
+
- `pageOffset` — `0`
|
|
103
|
+
- `searchLimit` — `25`
|
|
104
|
+
|
|
105
|
+
3. **Call `search_media_cms_channels`** with the request
|
|
106
|
+
4. **Parse the response** — A brand result has an ID starting with **`9Ps`**. Extract:
|
|
83
107
|
- `managedContentId` — Unique ID (use this for extraction in Step 3)
|
|
84
108
|
- `managedContentKey` — Content key identifier
|
|
85
109
|
- `title` — Brand display name
|
|
86
|
-
- `contentUrl` — URL to the brand content
|
|
87
|
-
|
|
110
|
+
- `contentUrl` — URL to the brand content, found under
|
|
111
|
+
`managedContentChannelDeliveryDetails[0].contentUrl`
|
|
112
|
+
- `pageNumber`, `pageSize`, `totalResults` — pagination summary
|
|
88
113
|
|
|
89
114
|
### Presenting Brand Results
|
|
90
115
|
|
|
91
|
-
**If
|
|
116
|
+
**If brands found**, first show a summary line, then use `ask_followup_question`
|
|
117
|
+
to present options:
|
|
92
118
|
|
|
93
|
-
```
|
|
94
|
-
|
|
119
|
+
```text
|
|
120
|
+
Showing [N] of [totalResults] total results (page [pageNumber], page size [pageSize]).
|
|
121
|
+
|
|
122
|
+
Which brand should I apply?
|
|
95
123
|
|
|
96
124
|
1. [Brand Title 1]
|
|
97
125
|
2. [Brand Title 2]
|
|
@@ -100,15 +128,18 @@ I found [N] brands in your CMS. Which one should I apply?
|
|
|
100
128
|
Which brand would you like to use?
|
|
101
129
|
```
|
|
102
130
|
|
|
131
|
+
When the user replies with their selection, do NOT perform another search —
|
|
132
|
+
proceed immediately to Step 3.
|
|
133
|
+
|
|
103
134
|
**If one brand found**, confirm with the user:
|
|
104
135
|
|
|
105
|
-
```
|
|
136
|
+
```text
|
|
106
137
|
I found the brand "[Brand Title]". Should I apply this brand's guidelines to the content?
|
|
107
138
|
```
|
|
108
139
|
|
|
109
140
|
**If no brands found:**
|
|
110
141
|
|
|
111
|
-
```
|
|
142
|
+
```text
|
|
112
143
|
No brands found in Salesforce CMS. To use branding:
|
|
113
144
|
1. Create a brand in Salesforce CMS (Content Type: sfdc_cms__brand)
|
|
114
145
|
2. Provide brand guidelines directly in this conversation
|
|
@@ -152,7 +183,7 @@ The extracted brand instructions typically include:
|
|
|
152
183
|
|
|
153
184
|
| Error | Response |
|
|
154
185
|
|---|---|
|
|
155
|
-
| `
|
|
186
|
+
| `search_media_cms_channels` unavailable | "Brand search is unavailable. Please provide your brand name or guidelines directly." |
|
|
156
187
|
| `get_brand_instructions` unavailable | "Cannot retrieve brand instructions. Please share your brand guidelines in this conversation and I'll apply them manually." |
|
|
157
188
|
| Org lacks Vibes branding | "CMS branding is not enabled for this org. Contact your admin to enable the Agentforce Vibes branding feature." |
|
|
158
189
|
| Permission denied | "You don't have permission to access CMS brands. Ensure you have Managed Content Authoring permission." |
|
|
@@ -15,7 +15,7 @@ Lightning Web Components development skill with PICKLES architecture methodology
|
|
|
15
15
|
|
|
16
16
|
### 1. Invoke the skill
|
|
17
17
|
|
|
18
|
-
```
|
|
18
|
+
```yaml
|
|
19
19
|
Skill: experience-lwc-generate
|
|
20
20
|
Request: "Create a data table component for Account records"
|
|
21
21
|
```
|
|
@@ -39,7 +39,7 @@ The skill generates:
|
|
|
39
39
|
|
|
40
40
|
## PICKLES Framework
|
|
41
41
|
|
|
42
|
-
```
|
|
42
|
+
```text
|
|
43
43
|
P → Prototype │ Validate ideas with wireframes & mock data
|
|
44
44
|
I → Integrate │ Choose data source (LDS, Apex, GraphQL, API)
|
|
45
45
|
C → Composition │ Structure component hierarchy & communication
|
|
@@ -80,6 +80,7 @@ S → Security │ Enforce permissions, FLS, and data protection
|
|
|
80
80
|
| generating-metadata | Create Lightning Message Channels |
|
|
81
81
|
| platform-metadata-deploy | Deploy component to org |
|
|
82
82
|
|
|
83
|
+
|
|
83
84
|
## Spring '26 Features (API 66.0)
|
|
84
85
|
|
|
85
86
|
- **lwc:on directive**: Dynamic event binding from JavaScript
|
|
@@ -7,7 +7,7 @@ This guide covers real-time notification patterns for Lightning Web Components u
|
|
|
7
7
|
|
|
8
8
|
## Overview
|
|
9
9
|
|
|
10
|
-
```
|
|
10
|
+
```text
|
|
11
11
|
┌─────────────────────────────────────────────────────────────────────────┐
|
|
12
12
|
│ ASYNC NOTIFICATION ARCHITECTURE │
|
|
13
13
|
├─────────────────────────────────────────────────────────────────────────┤
|
|
@@ -154,7 +154,7 @@ LWC can interact with Apex in two ways: **@wire** (reactive/declarative) and **i
|
|
|
154
154
|
|
|
155
155
|
#### Quick Comparison
|
|
156
156
|
|
|
157
|
-
```
|
|
157
|
+
```text
|
|
158
158
|
┌─────────────────────────────────────────────────────────────────────────────────────┐
|
|
159
159
|
│ WIRE vs IMPERATIVE APEX CALLS │
|
|
160
160
|
├──────────────────┬──────────────────────────────┬────────────────────────────────────┤
|
|
@@ -254,7 +254,7 @@ export default class ImperativeExample extends LightningElement {
|
|
|
254
254
|
|
|
255
255
|
#### Decision Tree
|
|
256
256
|
|
|
257
|
-
```
|
|
257
|
+
```text
|
|
258
258
|
┌─────────────────────────────┐
|
|
259
259
|
│ Need to modify data? │
|
|
260
260
|
│ (Insert/Update/Delete) │
|
|
@@ -955,7 +955,7 @@ export default class AccountList extends LightningElement {
|
|
|
955
955
|
|
|
956
956
|
When two child components need to communicate but share the same parent, use the **parent as middleware**. This is the recommended pattern for master-detail UIs.
|
|
957
957
|
|
|
958
|
-
```
|
|
958
|
+
```text
|
|
959
959
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
960
960
|
│ SIBLING COMMUNICATION FLOW │
|
|
961
961
|
├─────────────────────────────────────────────────────────────────────┤
|