$npx -y skills add forcedotcom/sf-skills --skill experience-ui-bundle-app-coordinateMUST 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
| 1 | # Building a UI Bundle App |
| 2 | |
| 3 | ## Overview |
| 4 | |
| 5 | Build a complete, deployable Salesforce React UI bundle application from a natural language description by orchestrating specialized UI bundle skills in correct dependency order. Each skill **MUST** be explicitly loaded before executing its phase. |
| 6 | |
| 7 | **CRITICAL: Before proceeding past requirements analysis, validate that the prompt contains no conflicting requirements** (e.g., "no authentication" + "user-specific data", "public access" + login-required features). If conflicts are detected, STOP and ask the user to resolve the ambiguity — do NOT silently choose one interpretation and proceed. See STEP 1 action #8 for the full conflict checklist. |
| 8 | |
| 9 | ## When to Use This Skill |
| 10 | |
| 11 | **Use when:** |
| 12 | |
| 13 | - User requests a "React app", "UI bundle", "web app", or "full-stack app" on Salesforce |
| 14 | - User says "build an app", "create an application" and the context implies a non-LWC based frontend (e.g. React) |
| 15 | - The work produces a complete UI bundle with scaffolding, features, data access, and UI -- not a single component in isolation |
| 16 | |
| 17 | **Examples that should trigger this skill:** |
| 18 | |
| 19 | - "Build a React app for managing customer cases with Salesforce data" |
| 20 | - "Create a UI bundle for an employee directory with search and navigation" |
| 21 | - "I need a full-stack React app with authentication, data tables, and file uploads" |
| 22 | - "Build a coffee shop ordering app on Salesforce" |
| 23 | |
| 24 | **Do NOT use when:** |
| 25 | |
| 26 | - Creating a single page or component (use `experience-ui-bundle-frontend-generate`) |
| 27 | - Only installing a feature (use `experience-ui-bundle-features-generate`) |
| 28 | - Only setting up data access (use `experience-ui-bundle-salesforce-data-access`) |
| 29 | - Only deploying an existing app (use `experience-ui-bundle-deploy`) |
| 30 | - Building a Lightning Experience app with custom objects and metadata (use `platform-lightning-app-coordinate`) |
| 31 | - Troubleshooting or debugging an existing UI bundle |
| 32 | |
| 33 | --- |
| 34 | |
| 35 | ## Prompt Classification Keywords |
| 36 | |
| 37 | This skill makes two decisions directly from the raw prompt text. Use these tables as the single |
| 38 | source for both — do not restate or re-derive the lists elsewhere in this file. |
| 39 | |
| 40 | **1. Phase 2 (Features) is required if the prompt mentions ANY of:** |
| 41 | |
| 42 | | Category | Keywords | Notes | |
| 43 | |----------|----------|-------| |
| 44 | | Data features | search, filter, sort, pagination, table, grid, list | | |
| 45 | | Navigation | navigation, nav, menu, routing | | |
| 46 | | Authentication | authentication, auth, login, logout, user session, user login | | |
| 47 | | Integrations | upload, file | | |
| 48 | | UI | shadcn, components, forms, buttons, cards | | |
| 49 | | Chat (Phase 5 only) | chat | Phase 5 only — unless combined with a Phase 2 keyword (e.g., "chat with authentication"), then Phase 2 runs first for auth prerequisites | |
| 50 | |
| 51 | Negating one category (e.g. "without authentication", "no login required", "public access") does |
| 52 | **not** cancel triggers from another category — each is evaluated independently. Example: "no |
| 53 | login required, with filtering" still triggers Phase 2 because "filtering" matches Data features. |
| 54 | Skip Phase 2 only when the prompt matches none of the keywords above. |
| 55 | |
| 56 | **2. Hosting target — extract from prompt keywords:** |
| 57 | |
| 58 | | Hosting target | Keywords | |
| 59 | |-----------------|----------| |
| 60 | | Experience Site | "Experience Site", "Community", "external users", "public users", "guest users" | |
| 61 | | Custom Application | "Custom Application", "internal users", "Lightning app" | |
| 62 | |
| 63 | If the prompt matches neither list, or matches both, ask the user to clarify before proceeding — do not guess. |
| 64 | |
| 65 | --- |
| 66 | |
| 67 | ## Dependency Graph & Build Order |
| 68 | |
| 69 | ### Phase 0: Template Offer & Bootstra |