salesforce-lightning-app-build
Salesforce Lightning Application Build
Overview
Build complete Lightning Experience applications from natural language by orchestrating multiple metadata types in proper dependency order. This skill acts as a "conductor" that invokes specialized metadata skills when available, or generates metadata directly when no skill exists.
When to Use This Skill
Use when:
- User requests a "complete app", "Lightning app", or "end-to-end solution"
- User says "build an app", "create an application", "build a [type] app" (project management, tracking, etc.)
- Request involves 3+ metadata types working together (objects + fields + pages + security)
- User describes multiple custom objects with relationships between them
- User mentions custom objects AND Lightning Record Pages in the same request
- User mentions custom objects AND permission sets/security in the same request
- Request includes phrases like "allows users to manage/track", "management system", "tracking app"
- Need to ensure proper sequencing (Objects → Fields → UI → Security)
Examples that should trigger this skill:
- "Build a project management app with Tasks, Resources, and Supplies objects"
- "Create an app to track vehicles with Lightning pages and permission sets"
- "I need a Space Station management system with multiple objects and relationships"
- "Build an employee onboarding app with custom Lightning Record Pages"
Do NOT use when:
- Creating a single metadata component (use specific metadata skill instead)
- Troubleshooting or debugging existing metadata
- Building Salesforce Classic apps (not Lightning Experience)
- User asks for just one object, or just one page, or just one permission set (without others)
Metadata Type Registry
This table shows which metadata types are commonly needed for LEX apps and their skill availability.
| Metadata Type | Skill Available? | Skill Name | Usage Rule |
|---|---|---|---|
| Custom Object | ✅ YES | salesforce-custom-object |
MUST use skill |
| Custom Field | ✅ YES | salesforce-custom-field |
MUST use skill |
| Custom Tab | ✅ YES | salesforce-custom-tab |
MUST use skill |
| FlexiPage | ✅ YES | salesforce-flexipage |
MUST use skill |
| Custom Application | ✅ YES | salesforce-custom-application |
MUST use skill |
| List View | ✅ YES | salesforce-list-view |
MUST use skill |
| Validation Rule | ✅ YES | salesforce-validation-rule |
MUST use skill (if requested) |
| Flow | ✅ YES | salesforce-flow |
MUST use skill (if requested) |
| Permission Set | ❌ NO | - | Generate directly using Metadata API knowledge |
Skill Usage Rules
CRITICAL RULE: When a skill exists for a metadata type (✅ YES in table above), you MUST invoke that skill. Do NOT generate the metadata directly.
FALLBACK RULE: When NO skill exists for a metadata type (❌ NO in table above), you MAY generate the metadata directly using your knowledge of Salesforce Metadata API and best practices.
RATIONALE: Specialized skills contain validated patterns, error handling, and field-specific knowledge that prevent deployment failures.
Dependency Graph & Build Order
Phase 1: Data Model (Foundation)
Custom Objects (no dependencies)
↓
Custom Fields (depends on: Objects exist)
↓
Relationships (depends on: Both parent and child objects + fields exist)
Skills to invoke in order:
salesforce-custom-objectfor each objectsalesforce-custom-fieldfor each field (including Master-Detail, Lookup, Roll-up Summary)
Phase 2: Business Logic (Optional - only if requested)
Validation Rules (depends on: Fields exist)
↓
Flows (depends on: Objects, Fields exist)
Skills to invoke (only if user requested):
salesforce-validation-ruleif validation requirements mentionedsalesforce-flowif automation/workflow requirements mentioned
Phase 3: User Interface
List Views (depends on: Objects, Fields exist)
↓
Custom Tabs (depends on: Objects exist)
↓
FlexiPages (depends on: Objects, Tabs exist)
Skills to invoke in order:
salesforce-list-viewfor filtered record views (if requested)salesforce-custom-tabfor each object tabsalesforce-flexipagefor record/home/app pages
Phase 4: Application Assembly
Custom Application (depends on: Tabs exist)
Skills to invoke:
salesforce-custom-applicationto create the Lightning App container
Phase 5: Security & Access
Permission Sets (depends on: Objects, Fields, Tabs, App exist)
Fallback generation (no skill available):
- Generate Permission Set XML directly with access to:
- Objects (Read, Create, Edit, Delete)
- Fields (Read, Edit)
- Tabs (Visible)
- Custom Application (Visible)
Execution Workflow
STEP 1: Requirements Analysis & Planning
Actions:
- Parse user's natural language request
- Extract business entities (become Custom Objects)
- Extract attributes/properties (become Custom Fields)
- Identify relationships (Master-Detail, Lookup)
- Detect validation requirements (become Validation Rules)
- Detect automation requirements (become Flows)
- Identify user personas (inform Permission Sets)
Output: Build Plan
Generate a structured plan listing:
📋 Lightning App Build Plan: [App Name]
DATA MODEL:
- Custom Objects: [list with object names]
- Custom Fields: [list grouped by object]
- Relationships: [list M-D and Lookup relationships]
BUSINESS LOGIC (if applicable):
- Validation Rules: [list with object and rule name]
- Flows: [list with flow name and type]
USER INTERFACE:
- List Views: [list with object and view name]
- Custom Tabs: [list with object]
- FlexiPages: [list with page name and type]
- Custom Application: [app name]
SECURITY:
- Permission Sets: [list with purpose]
METADATA SKILLS TO INVOKE:
- salesforce-custom-object (x N)
- salesforce-custom-field (x N)
- salesforce-validation-rule (x N) - if validation requirements identified
- salesforce-flow (x N) - if automation requirements identified
- salesforce-custom-tab (x N)
- salesforce-flexipage (x N)
- salesforce-custom-application (x 1)
- [fallback] Permission Set XML generation (x N)
DEPENDENCY ORDER:
1. Phase 1: Data Model (Objects → Fields)
2. Phase 2: Business Logic (Validation Rules → Flows)
3. Phase 3: User Interface (List Views → Tabs → Pages)
4. Phase 4: App Assembly (Application)
5. Phase 5: Security (Permission Sets)
STEP 2: Skill Invocation Sequence
Execute in strict dependency order. For each metadata component:
- Check Metadata Type Registry: Does a skill exist?
- If YES (✅): Invoke the specialized skill with required parameters
- If NO (❌): Generate metadata directly using Metadata API knowledge
- Handle Errors: If skill invocation fails, log error and continue (don't block entire app)
Invocation Pattern Example:
- For Custom Object → Invoke
salesforce-custom-object - For Custom Field → Invoke
salesforce-custom-field - For Validation Rule → Invoke
salesforce-validation-rule - For Flow → Invoke
salesforce-flow - For Custom Tab → Invoke
salesforce-custom-tab - For FlexiPage → Invoke
salesforce-flexipage - For Custom Application → Invoke
salesforce-custom-application - For Permission Sets (no skill) → Generate XML directly
Error Handling
Critical Errors (Stop Execution)
Stop and ask user for clarification if:
- User request is too vague to extract any objects or fields
- Conflicting requirements detected (e.g., "make it private" + "everyone should see it")
- Invalid Salesforce naming detected (reserved words like
Order,Group)
Non-Critical Errors (Continue with Warning)
Log warning and continue if:
- Optional component fails (e.g., List View generation fails)
- Skill invocation fails for non-critical metadata
- Validation Rule or Flow has minor issues
Warning Pattern:
⚠️ Warning: [Component Type] generation encountered issue
Component: [Name]
Issue: [Description]
Impact: [What won't work]
Recommendation: [How to fix manually]
Continuing with remaining components...
Best Practices
1. Always Follow Dependency Order
Never invoke skills out of sequence. Fields need objects, pages need tabs, apps need tabs.
2. Use Skills When Available
Don't reinvent the wheel. Specialized skills have field-specific validation that prevents deployment errors.
3. Generate Thoughtful Defaults
When user doesn't specify details:
- Use Text name fields for human entities
- Use AutoNumber for transactions
- Enable Search and Reports for user-facing objects
- Set sharingModel based on relationships
5. Validate Before Building
Check for:
- Reserved words in API names
- Relationship limits (max 2 M-D per object)
- Name length limits
- Duplicate names