npx skills add ...
npx skills add forcedotcom/sf-skills --skill platform-lightning-app-coordinate
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 platform-lightning-app-coordinate
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:
platform-custom-application-generate 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 | platform-custom-object-generate | salesforce-api-context | MUST load skill AND call API context |
| Custom Field | platform-custom-field-generate | salesforce-api-context | MUST load skill AND call API context |
| Custom Tab | platform-custom-tab-generate | salesforce-api-context | MUST load skill AND call API context |
| FlexiPage | platform-flexipage-generate | salesforce-api-context | MUST load skill AND call API context |
| Custom Application | platform-custom-application-generate | salesforce-api-context | MUST load skill AND call API context |
| List View | platform-list-view-generate | salesforce-api-context | MUST load skill AND call API context (if requested) |
| Validation Rule | platform-validation-rule-generate | salesforce-api-context | MUST load skill AND call API context (if requested) |
| Flow | automation-flow-generate | metadata-experts pipeline | MUST load skill AND run pipeline. Exempt from salesforce-api-context. |
| Permission Set | platform-permission-set-generate | 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:
platform-custom-object-generate - once, with all objectsplatform-custom-field-generate - once, with all fields (including Master-Detail, Lookup, Roll-up Summary)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 mentionedMetadata 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 pagesMetadata types in this phase:
platform-custom-application-generate - once, to create the Lightning App containerMetadata types in this phase:
platform-permission-set-generate - 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
platform-custom-object-generate SKILL.mdsalesforce-api-context for CustomObjecttype=CustomObject skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>2. Custom Fields
platform-custom-field-generate SKILL.mdsalesforce-api-context for CustomFieldtype=CustomField skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>3. Validation Rules (only if requested)
platform-validation-rule-generate SKILL.mdsalesforce-api-context for ValidationRuletype=ValidationRule skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>4. Flows (only if requested)
automation-flow-generate 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)
platform-list-view-generate SKILL.mdsalesforce-api-context for ListViewtype=ListView skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>6. Custom Tabs
platform-custom-tab-generate SKILL.mdsalesforce-api-context for CustomTabtype=CustomTab skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>7. FlexiPages
platform-flexipage-generate SKILL.mdsalesforce-api-context for FlexiPagetype=FlexiPage skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>8. Custom Application
platform-custom-application-generate SKILL.mdsalesforce-api-context for CustomApplicationtype=CustomApplication skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>9. Permission Sets
platform-permission-set-generate 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: