npx skills add ...
npx skills add forcedotcom/sf-skills --skill generating-lightning-app
Build complete Salesforce Lightning Experience applications from natural language descriptions. Use this skill when a user requests a \"complete app\", \"Lightning app\", \"business solution\", \"management system\", or describes a scenario requiring multiple interconnected Salesforce components (objects, fields, pages, tabs, security). Orchestrates all required metadata types in proper dependency order to produce a deployable application.
npx skills add forcedotcom/sf-skills --skill generating-lightning-app
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.
Use when:
Examples that should trigger this skill:
Do NOT use when:
generating-custom-application insteadThis table shows which metadata types are commonly needed for Lightning Experience apps, their skill availability, and API context requirement.
| Metadata Type | Skill Name | API Context | Usage Rule |
|---|---|---|---|
| Custom Object | generating-custom-object | salesforce-api-context | MUST load skill AND call API context |
| Custom Field | generating-custom-field | salesforce-api-context | MUST load skill AND call API context |
| Custom Tab | generating-custom-tab | salesforce-api-context | MUST load skill AND call API context |
| FlexiPage | generating-flexipage | salesforce-api-context | MUST load skill AND call API context |
| Custom Application | generating-custom-application | salesforce-api-context | MUST load skill AND call API context |
| List View | generating-list-view | salesforce-api-context | MUST load skill AND call API context (if requested) |
| Validation Rule | generating-validation-rule | salesforce-api-context | MUST load skill AND call API context (if requested) |
| Flow | generating-flow | metadata-experts pipeline | MUST load skill AND run pipeline. Exempt from salesforce-api-context. |
| Permission Set | generating-permission-set | salesforce-api-context | MUST load skill AND call API context |
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.
Metadata types in this phase:
generating-custom-object - once, with all objectsgenerating-custom-field - once, with all fields (including Master-Detail, Lookup, Roll-up Summary)Metadata types in this phase (only if user requested):
generating-validation-rule - once, if validation requirements mentionedgenerating-flow - once, if automation/workflow requirements mentionedMetadata types in this phase:
generating-list-view - once, for filtered record views (if requested)generating-custom-tab - once, with all object tabsgenerating-flexipage - once, with all record/home/app pagesMetadata types in this phase:
generating-custom-application - once, to create the Lightning App containerMetadata types in this phase:
generating-permission-set - once, with all permission sets and access to:
Actions:
Output: Build Plan
Generate a structured plan listing:
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.
| Step | What to do | Why |
|---|---|---|
| ① Load skill | Search for and read the per-type SKILL.md | Gives you the XML structure, required elements, naming rules, and validation constraints |
| ② Call API context | Call salesforce-api-context tools for this metadata type using one or more of: get_metadata_type_sections, get_metadata_type_context, get_metadata_type_fields, get_metadata_type_fields_properties, search_metadata_types | Gives you the current valid values — allowed enum values, required vs. optional fields, child types for this API version. The skill provides structure; API context provides version-specific accuracy. |
| ③ Record status | Emit: type=<Type> skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none> | Confirms both steps were attempted before any files are written and records which API context tools were used |
| ④ Generate files | Generate all files for this type, then checkpoint | Only after ①②③ are done. Verify, then move to the next type. |
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
generating-custom-object SKILL.mdsalesforce-api-context for CustomObjecttype=CustomObject skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>2. Custom Fields
generating-custom-field SKILL.mdsalesforce-api-context for CustomFieldtype=CustomField skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>3. Validation Rules (only if requested)
generating-validation-rule SKILL.mdsalesforce-api-context for ValidationRuletype=ValidationRule skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>4. Flows (only if requested)
generating-flow SKILL.mdmetadata-experts/execute_metadata_action 3-step pipeline (exempt from salesforce-api-context)type=Flow skill=complete pipeline=complete5. List Views (only if requested)
generating-list-view SKILL.mdsalesforce-api-context for ListViewtype=ListView skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>6. Custom Tabs
generating-custom-tab SKILL.mdsalesforce-api-context for CustomTabtype=CustomTab skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>7. FlexiPages
generating-flexipage SKILL.mdsalesforce-api-context for FlexiPagetype=FlexiPage skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>8. Custom Application
generating-custom-application SKILL.mdsalesforce-api-context for CustomApplicationtype=CustomApplication skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>9. Permission Sets
generating-permission-set SKILL.mdsalesforce-api-context for PermissionSettype=PermissionSet skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>After all phases complete, consolidate outputs into deployment-ready structure.
The completed build produces:
Salesforce DX Project Directory containing all generated metadata
force-app/main/default/Metadata Files - One file per component, organized by type:
Deployment Manifest (package.xml)
Build Summary Report - A markdown file listing:
Example Summary Structure:
Before presenting the completed build to the user, verify cross-component integrity:
package.xml includes all generated components in proper dependency orderValidation Failure Handling (Category 2):
VALIDATION WARNINGS sectionNote: 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.
Stop execution and ask for clarification if:
Order, Group)Log warning and continue if:
Warning Pattern:
Never invoke skills out of sequence. Fields need objects, pages need tabs, apps need tabs.
Don't reinvent the wheel. Specialized skills have field-specific validation that prevents deployment errors.
When user doesn't specify details:
Check for: