Loading...
Loading...
MUST activate when the user wants to build, create, or generate a React application, React app, web application, single-page application (SPA), or frontend application — even if no project files exist yet. MUST also activate when the project contains a uiBundles/*/src/ directory or sfdx-project.json and the prompt says create, build, construct, or generate a new app, site, or page from scratch — even if the prompt also describes visual styling. MUST also activate when the task spans more than one ui-bundle skill. Use this skill when building a complete app end-to-end. Do NOT use for Lightning Experience apps with custom objects (use platform-lightning-app-coordinate). Do NOT use for single-concern edits to an existing page (use experience-ui-bundle-frontend-generate).
npx skill4agent add forcedotcom/sf-skills experience-ui-bundle-app-coordinateexperience-ui-bundle-frontend-generateexperience-ui-bundle-features-generateexperience-ui-bundle-salesforce-data-accessexperience-ui-bundle-deployplatform-lightning-app-coordinateUI Bundle scaffold (sf template generate ui-bundle)
v
Install dependencies (npm install)
v
Bundle metadata (uibundle-meta.xml, ui-bundle.json)
v
CSP Trusted Sites (if external domains needed)Search project code (src/) for existing implementations
v
Install dependencies (npm install)
v
Search, describe, and install features (auth, shadcn, search, navigation, GraphQL)
v
Resolve conflicts (two-pass: --on-conflict error, then --conflict-resolution)
v
Integrate __example__ files into target files, then delete themGround every entity/field against the org (per experience-ui-bundle-salesforce-data-access)
v
Generate queries/mutations FROM the verified names (never from guessed fields)
v
Generate types (npm run graphql:codegen) and wire into components
v
Validate and test (npx eslint, ask user before testing mutations)@salesforce/platform-sdkcreateDataSDK().graphqlexperience-ui-bundle-salesforce-data-accessschema.graphqlLayout, navigation, header, and footer (appLayout.tsx)
v
Pages (routed views)
v
Components (widgets, forms, tables)Agentforce chat widget (if requested)
File upload API (if requested)Org authentication
v
Pre-deploy UI bundle build (npm install + npm run build)
v
Deploy metadata
v
Post-deploy configuration (permissions, profiles, named credentials, connected apps, custom settings, flow activation)
v
Import data (if data plan exists)
v
Fetch GraphQL schema and run codegen
*(Re-fetches schema from the deployed org -- required because the remote schema may differ from the local one used in Phase 3)*
v
Final UI bundle build (rebuilds with the deployed schema)Resolve site properties (siteName, appDevName, etc.)
v
Generate site metadata (Network, CustomSite, DigitalExperience)
v
Deploy site infrastructureResolve app properties (appName, appNamespace, appLabel)
v
Generate CustomApplication metadata (applications/*.app-meta.xml)
v
Add <target>CustomApplication</target> to .uibundle-meta.xml
v
Deploy custom applicationThe plan MUST contain an explicit grounding step before any query authoring. Do not list guessed object/field names as settled facts and defer verification to codegen. The data-access portion of the plan must read: "verify these entities/fields against the org (via), then author queries from the verified names." A plan that authors queries first and codegens later is the failure mode that produces guessed fields and hand-stubbed types — do not emit it.experience-ui-bundle-salesforce-data-access
UI Bundle App Build Plan: [App Name]
SCAFFOLDING:
- App name: [PascalCase name]
- Routing: [SPA rewrites, trailing slash config]
- External domains: [domains needing CSP registration]
FEATURES:
- [list of features to install: auth, shadcn, search, navigation, etc.]
DATA ACCESS:
- Objects: [Salesforce objects to query/mutate]
- Grounding: [verify each object + its fields against the org via experience-ui-bundle-salesforce-data-access BEFORE authoring — list the objects/fields to confirm, not assumed-correct names]
- Queries: [GraphQL queries to author FROM the verified names]
- REST endpoints: [only where GraphQL/uiapi genuinely cannot cover it — not as a fallback for fields that were hard to verify]
UI:
- Layout: [description of app shell/navigation]
- Pages: [list of pages with routes]
- Components: [key components per page]
- Design direction: [aesthetic/style intent]
INTEGRATIONS (if applicable):
- Agentforce chat: [yes/no, agent ID if known]
- File upload: [yes/no, record linking pattern]
DEPLOYMENT:
- Target org: [org alias if known]
- Hosting target: [Experience Site / Custom Application / none]
SKILL LOAD ORDER:
1. experience-ui-bundle-metadata-generate
2. experience-ui-bundle-features-generate (if features needed)
3. experience-ui-bundle-salesforce-data-access (if data access needed)
4. experience-ui-bundle-frontend-generate
5a. experience-ui-bundle-agentforce-client-generate (if chat requested)
5b. experience-ui-bundle-file-upload-generate (if file upload requested)
6. experience-ui-bundle-deploy
7a. experience-ui-bundle-site-generate (if Experience Site requested -- external users)
7b. experience-ui-bundle-custom-app-generate (if Custom Application requested -- internal users)| Step | What to do | Why |
|---|---|---|
| 1. Load skill | Invoke the skill (e.g., via the Skill tool) for this phase | Gives you the current rules, patterns, constraints, and implementation guides |
| 2. Execute | Follow the loaded skill's workflow to generate code/config | The skill defines HOW to do the work correctly |
| 3. Verify | Run lint and build from the UI bundle directory | Catch errors before moving to the next phase |
| 4. Checkpoint | Confirm phase completion before proceeding | Ensures dependencies are satisfied for the next phase |
experience-ui-bundle-metadata-generatesf template generate ui-bundlenpm installexperience-ui-bundle-features-generatenpm run buildexperience-ui-bundle-salesforce-data-accessnpx eslintexperience-ui-bundle-frontend-generateexperience-ui-bundle-agentforce-client-generateexperience-ui-bundle-file-upload-generateexperience-ui-bundle-deployexperience-ui-bundle-site-generateexperience-ui-bundle-custom-app-generateUI Bundle App Build Complete: [App Name]
PHASES COMPLETED:
[x] Phase 1: Scaffolding -- [app name] UI bundle created
[x] Phase 2: Features -- [list of features installed, or "skipped"]
[x] Phase 3: Data Access -- [list of entities wired up]
[x] Phase 4: UI -- [count] pages, [count] components
[x] Phase 5: Integrations -- [list or "none"]
[x] Phase 6: Deployment -- deployed to [org]
[x] Phase 7: Hosting Target -- [Experience Site URL / Custom Application name / "skipped"]
FILES GENERATED:
[list key files and their paths]
NEXT STEPS:
[any manual steps the user should take]node_modules/package.jsonnpm run builddist/npx eslint src/appLayout.tsx@salesforce/platform-sdkcreateDataSDK().graphqlexperience-ui-bundle-frontend-generate