Generating Lightning App
Overview
Build a complete, deployable Salesforce Lightning Experience application from a natural language description by defining a Lightning Custom Application and orchestrating its dependent metadata types in correct dependency order. Invoke specialized metadata skills when available; generate metadata directly when no skill exists.
When to Use This Skill
Use when:
- User requests a "Lightning app", or "end-to-end solution"
- User says "build an app", "create an application", "build a [type] app" (project management, tracking, etc.)
- The work produces a custom app (CustomApplication) plus supporting metadata, not a lone object, page, or tab in isolation
Examples that should trigger this skill:
- "Build a project management lightning app with Tasks, Resources, and Supplies objects"
- "Create a LEX 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 lightning 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)
- User only needs to create or configure an app container (grouping existing tabs) without other metadata; use
platform-custom-application-generateinstead
Metadata Type Registry
This table shows which metadata types are commonly needed for Lightning Experience apps, their skill availability, and API context requirement.
Usage Rules
SKILL RULE: When a skill exists for a metadata type, you MUST load that skill. Do NOT generate metadata directly without loading the skill first.
API CONTEXT RULE: For every metadata type (except Flow), you MUST call salesforce-api-context tools before generating. Do NOT generate metadata without calling API context first. The skill provides structure and rules; API context confirms what is valid for the current API version. Both are essential.
FALLBACK RULE: When no skill exists for a metadata type you need, generate the metadata directly using your knowledge of Salesforce Metadata API and best practices. API context is still required.
RATIONALE: Skills contain validated patterns and constraints. API context provides version-specific accuracy. Together they prevent deployment failures.
Dependency Graph & Build Order
Phase 1: Data Model (Foundation)
Metadata types in this phase:
platform-custom-object-generate- once, with all objectsplatform-custom-field-generate- once, with all fields (including Master-Detail, Lookup, Roll-up Summary)
Phase 2: Business Logic (Optional - only if requested)
Metadata types in this phase (only if user requested):
platform-validation-rule-generate- once, if validation requirements mentionedautomation-flow-generate- once, if automation/workflow requirements mentioned
Phase 3: User Interface
Metadata types in this phase:
platform-list-view-generate- once, for filtered record views (if requested)platform-custom-tab-generate- once, with all object tabsplatform-flexipage-generate- once, with all record/home/app pages
Phase 4: Application Assembly
Metadata types in this phase:
platform-custom-application-generate- once, to create the Lightning App container
Phase 5: Security & Access
Metadata types in this phase:
platform-permission-set-generate- once, with all permission sets and 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:
STEP 2: Per-Type Execution
Execute these four steps for each metadata type, one type at a time. Complete all four steps for the current type before moving to the next type. Do NOT skip any step.
Do NOT combine ① and ② into a single action or skip ② after completing ①. They are separate steps that serve different purposes. After loading the skill you may feel ready to generate — stop and do ② first.
If salesforce-api-context is unavailable after a real attempt, record mcp=unavailable and generate using skill knowledge alone. Not attempting ② at all is a bug.
1. Custom Objects
- ① Load skill: Read
platform-custom-object-generateSKILL.md - ② API context: Call
salesforce-api-contextfor CustomObject - ③ Status:
type=CustomObject skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none> - ④ Generate + Checkpoint: Generate all Custom Object files, then proceed to #2
2. Custom Fields
- ① Load skill: Read
platform-custom-field-generateSKILL.md - ② API context: Call
salesforce-api-contextfor CustomField - ③ Status:
type=CustomField skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none> - ④ Generate + Checkpoint: Generate all Custom Field files, then proceed to #3
3. Validation Rules (only if requested)
- ① Load skill: Read
platform-validation-rule-generateSKILL.md - ② API context: Call
salesforce-api-contextfor ValidationRule - ③ Status:
type=ValidationRule skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none> - ④ Generate + Checkpoint: Generate all Validation Rule files, then proceed to #4
4. Flows (only if requested)
- ① Load skill: Read
automation-flow-generateSKILL.md - ② Pipeline: Run
metadata-experts/execute_metadata_action3-step pipeline (exempt fromsalesforce-api-context) - ③ Status:
type=Flow skill=complete pipeline=complete - ④ Generate + Checkpoint: Generate all Flow files via the pipeline, then proceed to #5
5. List Views (only if requested)
- ① Load skill: Read
platform-list-view-generateSKILL.md - ② API context: Call
salesforce-api-contextfor ListView - ③ Status:
type=ListView skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none> - ④ Generate + Checkpoint: Generate all List View files, then proceed to #6
6. Custom Tabs
- ① Load skill: Read
platform-custom-tab-generateSKILL.md - ② API context: Call
salesforce-api-contextfor CustomTab - ③ Status:
type=CustomTab skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none> - ④ Generate + Checkpoint: Generate all Custom Tab files, then proceed to #7
7. FlexiPages
- ① Load skill: Read
platform-flexipage-generateSKILL.md - ② API context: Call
salesforce-api-contextfor FlexiPage - ③ Status:
type=FlexiPage skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none> - ④ Generate + Checkpoint: Generate all FlexiPage files, then proceed to #8
8. Custom Application
- ① Load skill: Read
platform-custom-application-generateSKILL.md - ② API context: Call
salesforce-api-contextfor CustomApplication - ③ Status:
type=CustomApplication skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none> - ④ Generate + Checkpoint: Generate the Custom Application file, then proceed to #9
9. Permission Sets
- ① Load skill: Read
platform-permission-set-generateSKILL.md - ② API context: Call
salesforce-api-contextfor PermissionSet - ③ Status:
type=PermissionSet skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none> - ④ Generate + Checkpoint: Generate all Permission Set files — all types complete
STEP 3: Final Artifact Assembly
After all phases complete, consolidate outputs into deployment-ready structure.
Output
The completed build produces:
-
Salesforce DX Project Directory containing all generated metadata
- Organized by standard SFDX structure:
force-app/main/default/
- Organized by standard SFDX structure:
-
Metadata Files - One file per component, organized by type:
-
Deployment Manifest (
package.xml)- Lists all components with proper API version
- Organized by metadata type in dependency order
- Ready for Salesforce CLI deployment or Metadata API deployment
-
Build Summary Report - A markdown file listing:
- Every component created
- Component type and API name
- File path location
- Dependency relationships
- Any warnings or recommendations
Example Summary Structure:
Validation
Before presenting the completed build to the user, verify cross-component integrity:
- Object-Tab Coverage: Every Custom Object has at least one Custom Tab
- Relationship Integrity: Every Custom Object referenced in a relationship (parent or child) exists in the build
- Field References in Pages: Every field referenced in a FlexiPage exists on the corresponding object
- Tab References in App: Every tab referenced in the Custom Application was successfully created
- Permission Set Completeness: Permission Sets grant access to all generated objects, fields, tabs, and the application
- No Orphaned Components: No tabs without objects, no pages without corresponding tabs, no app without tabs
- Deployment Manifest Completeness:
package.xmlincludes all generated components in proper dependency order
Validation Failure Handling (Category 2):
- If validation fails, include failed checks in the Build Summary Report under a
VALIDATION WARNINGSsection - These are post-generation issues — do NOT block delivery of the build, but clearly communicate what needs manual review or correction
- Provide specific remediation steps for each failed validation check
Note: Individual component validations (reserved words, name lengths, field types, etc.) are handled by specialized metadata skills and do not need to be re-validated here.
Error Handling
Category 1: Stop and Ask User
Stop execution and ask 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)
Category 2: Post-Generation Warnings (Log Warning, Continue)
Log warning and continue if:
- Cross-component validation check fails (e.g., field referenced in FlexiPage doesn't exist on object)
- Optional component generation fails (e.g., List View generation has minor issues)
- Validation Rule or Flow has minor output issues
Warning Pattern:
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
4. Validate Before Building
Check for:
- Reserved words in API names
- Relationship limits (max 2 M-D per object)
- Name length limits
- Duplicate names


