How to install deploying-ui-bundle
npx skills add https://github.com/forcedotcom/sf-skills --skill deploying-ui-bundleFull instructions (SKILL.md)
Source of truth, from forcedotcom/sf-skills.
name: deploying-ui-bundle description: "MUST activate when the project contains a uiBundles/*/src/ directory or sfdx-project.json and the task involves deploying, pushing to an org, or post-deploy setup. Use this skill when deploying a UI bundle app to a Salesforce org. Covers the full deployment sequence: org authentication, pre-deploy build, metadata deployment, permission set assignment, data import, GraphQL schema fetch, and codegen. Activate when files like *.uibundle-meta.xml or sfdx-project.json exist and the user mentions deploying, pushing, org setup, or post-deploy tasks." metadata: version: "1.0"
Deploying a UI Bundle
The order of operations is critical when deploying to a Salesforce org. This sequence reflects the canonical flow.
Step 1: Org Authentication
Check if the org is connected. If not, authenticate. All subsequent steps require an authenticated org.
Step 2: Pre-deploy UI Bundle Build
Install dependencies and build the UI bundle to produce dist/. Required before deploying UI bundle entities.
Run when: deploying UI bundles and dist/ is missing or source has changed.
Step 3: Deploy Metadata
Check for a manifest (manifest/package.xml or package.xml) first. If present, deploy using the manifest. If not, deploy all metadata from the project.
Deploys objects, layouts, permission sets, Apex classes, UI bundles, and all other metadata. Must complete before schema fetch — the schema reflects org state.
Step 4: Post-deploy Configuration
Deploying does not mean assigning. After deployment:
- Permission sets / groups — assign to users so they have access to custom objects and fields. Required for GraphQL introspection to return the correct schema.
- Profiles — ensure users have the correct profile.
- Other config — named credentials, connected apps, custom settings, flow activation.
Proactive behavior: after a successful deploy, discover permission sets in force-app/main/default/permissionsets/ and assign each one (or ask the user).
Step 5: Data Import (optional)
Only if data/data-plan.json exists. Delete runs in reverse plan order (children before parents). Import uses Anonymous Apex with duplicate rule save enabled.
Always ask the user before importing or cleaning data.
Step 6: GraphQL Schema and Codegen
- Set default org
- Fetch schema (GraphQL introspection) — writes
schema.graphqlat project root - Generate types (codegen reads schema locally)
Run when: schema missing, or metadata/permissions changed since last fetch.
Step 7: Final UI Bundle Build
Build the UI bundle if not already done in Step 2.
Summary: Interaction Order
- Check/authenticate org
- Build UI bundle (if deploying UI bundles)
- Deploy metadata
- Assign permissions and configure
- Import data (if data plan exists, with user confirmation)
- Fetch GraphQL schema and run codegen
- Build UI bundle (if needed)
Critical Rules
- Deploy metadata before fetching schema — custom objects/fields appear only after deployment
- Assign permissions before schema fetch — the user may lack FLS for custom fields
- Re-run schema fetch and codegen after every metadata deployment that changes objects, fields, or permissions
- Never skip permission set assignment or data import silently — either run them or ask the user
Post-deploy Checklist
After every successful metadata deploy:
- Discover and assign permission sets (or ask the user)
- If
data/data-plan.jsonexists, ask the user about data import - Re-run schema fetch and codegen from the UI bundle directory
Related skills
More from forcedotcom/sf-skills and the wider catalog.
generating-apex
Primary Apex authoring skill for class generation, refactoring, and review. ALWAYS ACTIVATE when the user mentions Apex, .cls, triggers, or asks to create/refactor a class (service, selector, domain, batch, queueable, schedulable, invocable, DTO, utility, interface, abstract, exception, REST resource). Use this skill for requests involving SObject CRUD, mapping collections, fetching related records, scheduled jobs, batch jobs, trigger design, @AuraEnabled controllers, @RestResource endpoints, custom REST APIs, or code review of existing Apex.
generating-apex-test
Generate and validate Apex test classes with TestDataFactory patterns, bulk testing (251+ records), mocking strategies, assertion best practices, and disciplined test-fix loops. Use this skill when creating new Apex test classes, improving test coverage, debugging and fixing failing Apex tests, running test execution and coverage analysis, or implementing testing patterns for triggers, services, controllers, batch jobs, queueables, and integrations. Triggers on *Test.cls, *_Test.cls files, sf apex run test workflows, coverage reports, test-fix loops. Do NOT trigger for production Apex code (use generating-apex) or Jest/LWC tests.
generating-lwc-components
Lightning Web Components with PICKLES methodology and 165-point scoring. Use this skill when the user creates or edits LWC components, builds wire service patterns, or writes Jest tests for LWC. TRIGGER when: user creates/edits LWC components, touches lwc/**/*.js, .html, .css, .js-meta.xml files, or asks about wire service, SLDS, or Jest LWC tests. DO NOT TRIGGER when: Apex classes (use generating-apex), Aura components, or Visualforce.
generating-flow
Generate Salesforce Flows using the MCP tool execute_metadata_action. Use when the user asks to create, build, or generate a flow — including Screen, Autolaunched, Record-Triggered (before/after-save), Scheduled. Also trigger for flow-like requests such as \"when a record is created\", \"trigger daily at\", \"send an email when\", \"update the field when\", \"automate\", \"workflow\", or \"flow XML/metadata\". This is the only skill for Salesforce Flow generation.
querying-soql
SOQL query generation, optimization, and analysis with 100-point scoring. Use this skill when the user needs SOQL/SOSL authoring or optimization: natural-language-to-query generation, relationship queries, aggregates, query-plan analysis, and performance or safety improvements for Salesforce queries. TRIGGER when: user writes, optimizes, or debugs SOQL/SOSL queries, touches .soql files, or asks about relationship queries, aggregates, or query performance. DO NOT TRIGGER when: bulk data operations (use handling-sf-data), Apex DML logic (use generating-apex), or report/dashboard queries.
generating-custom-object
Use this skill when users need to create, generate, or validate Salesforce Custom Object metadata. Trigger when users mention custom objects, creating objects, object metadata, .object files, sharing models, name fields, or validation rules on objects. Also use when users say things like \"create a custom object\", \"generate object metadata\", \"set up an object for...\", or when they're troubleshooting object deployment errors especially around sharing models and Master-Detail relationships. Always use this skill for any custom object metadata work.