Skip to content

Commit 8d304f7

Browse files
authored
Merge pull request #21 from forcedotcom/gbockus/hsinghbisht/experts-skills
chore: merge first version of experts skills
2 parents 7e2492c + 3689f14 commit 8d304f7

16 files changed

Lines changed: 2796 additions & 0 deletions

File tree

skills/lex-app-solution/SKILL.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
name: lex-app-solution
3+
description: Use this skill to build and orchestrate complete Salesforce Lightning Applications (LEX Apps), custom projects, or end-to-end business solutions from a natural language scenario. Triggers when a user requests a "custom app", a "business solution", or describes any scenario requiring multiple interconnected Salesforce components to be built together into a complete Lightning Experience (LEX) Application. Orchestrates the sequenced creation of Custom Objects, Relationships, Fields, Lightning Record Pages, Custom Tabs, Custom Applications, Permission Sets, and OPTIONALLY Flows and Validation Rules.
4+
---
5+
6+
# Salesforce Lightning Application (LEX App) Builder
7+
8+
## Overview
9+
10+
Build and orchestrate complete Salesforce Lightning Applications (LEX Apps) from natural language scenarios. This skill coordinates the sequenced creation of multiple interconnected Salesforce components—Custom Objects, Fields, Lightning Record Pages, Custom Tabs, Custom Applications, Permission Sets, and optionally Flows and Validation Rules—by invoking specialized metadata expert skills in the correct order.
11+
12+
## When to Use This Skill
13+
14+
Use this skill when you need to:
15+
- Build or enhance a complete Lightning Application (LEX App) from a single user prompt.
16+
- Create end-to-end solutions requiring multiple metadata types working together within the Lightning Experience.
17+
- Ensure proper sequencing of metadata creation (Objects → Fields → Tabs → Pages → Apps → Security).
18+
19+
**Do not use this skill for:**
20+
- Creating individual metadata components (use specific metadata expert skills instead).
21+
- Troubleshooting or fixing deployment errors.
22+
- Building Salesforce Classic applications or off-platform integrations.
23+
24+
## Specification
25+
26+
# Salesforce Lightning Application Development Requirements
27+
28+
You are a highly experienced and certified Salesforce Architect. Your purpose is to autonomously orchestrate the generation of a complete Salesforce Lightning application based on the user's requirements.
29+
30+
## Specialized Skill Invocation Requirement
31+
32+
**CRITICAL:** You **MUST NOT** generate raw metadata or XML directly. You **MUST** invoke the specialized metadata expert skill for each component type.
33+
34+
### MANDATORY Skill Mapping (Always Evaluate & Invoke):
35+
- **Custom Objects**`salesforce-custom-object`
36+
- **Custom Fields**`salesforce-custom-field`
37+
- **Custom Tabs**`salesforce-custom-tab`
38+
- **FlexiPages**`salesforce-flexipage`
39+
- **Custom Applications**`salesforce-custom-application` (Ensure this generates a LEX CustomApplication, not Classic)
40+
- **Permission Sets**`salesforce-permission-set` (Create at least one baseline permission set for app access if specific personas aren't requested)
41+
42+
### OPTIONAL Skill Mapping (Strictly Conditional):
43+
*DO NOT invoke these unless the user's prompt explicitly asks for or clearly describes requirements for them (e.g., "enforce that...", "automate the...").*
44+
- **Validation Rules**`salesforce-validation-rule`
45+
- **Flows**`salesforce-flow`
46+
47+
---
48+
49+
## Autonomous Execution Sequence
50+
51+
Execute the following steps sequentially in a single response. Do not stop and ask the user for permission to proceed unless their initial prompt lacks the basic information needed to start building.
52+
53+
### STEP 1: The Pre-Flight Checklist (Planning)
54+
Before invoking any skills, you must analyze the user's request and output a bulleted "Build Plan".
55+
- Explicitly list every Custom Object, Field, Tab, FlexiPage, LEX Application, and Permission Set you are about to create.
56+
- **Evaluate Optional Metadata:** Actively scan the prompt for automation or validation requirements. If found, add them to the plan. If NOT found, explicitly state: *"No optional Flows or Validation Rules requested. Skipping."*
57+
- Explicitly state which metadata skill you will invoke for each planned item.
58+
59+
### STEP 2: The Build Sequence (Skill Invocations)
60+
Immediately after outputting the Pre-Flight Checklist, begin invoking the specialized skills strictly in this order:
61+
1. **Data Model (Mandatory):** Invoke skills for Custom Objects first, followed immediately by Custom Fields.
62+
2. **Business Logic (Optional):** Invoke skills for Validation Rules and Flows **ONLY IF** they were explicitly included in your Pre-Flight Checklist. Otherwise, skip this step entirely.
63+
3. **User Experience (Mandatory):** Invoke skills for Custom Tabs. Then, invoke skills for FlexiPages (only for objects that received tabs, ensuring you include requested components like Highlights Panels).
64+
4. **App Assembly (Mandatory):** Invoke the skill for the Custom Application to create the Lightning App, adding the newly created tabs.
65+
5. **Security (Mandatory):** Invoke the skill for Permission Sets to grant access to the newly created LEX App, Objects, and Fields.
66+
67+
### STEP 3: Skill Invocation Summary
68+
Once all invocations are complete, output a final summary confirming:
69+
- The complete Lightning application has been orchestrated.
70+
- A list of any errors, warnings, or constraints encountered during the skill invocations.
71+
72+
---
73+
74+
### Error Handling & Constraints
75+
- If a specialized skill invocation fails, note it in your internal sequence, skip that specific component, and attempt to continue building the rest of the application.
76+
- Only pause and ask the user for intervention if a critical failure occurs (e.g., a primary Custom Object fails to generate).
Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
---
2+
name: salesforce-custom-application
3+
description: Use this skill when users need to create or configure Salesforce Custom Applications. Trigger when users mention custom apps, application metadata, app navigation, or organizing tabs into applications. Use when users want to create app containers for tabs and pages. Always use this skill for custom application work.
4+
---
5+
6+
## When to Use This Skill
7+
8+
Use this skill when you need to:
9+
- Create Lightning applications
10+
- Organize tabs and features into focused apps
11+
- Configure application navigation and branding
12+
- Set up custom page layouts for objects
13+
- Troubleshoot deployment errors related to custom applications
14+
15+
# CustomApplication (Lightning App) Metadata Specification
16+
17+
## Overview
18+
19+
Custom applications (Lightning Apps) that group tabs and functionality to provide a focused user experience for specific business processes. Always configured for Lightning Experience.
20+
21+
## 🎯 Purpose
22+
- Organize related functionality into focused applications
23+
- Group tabs and components for specific user roles
24+
- Provide tailored user experiences
25+
- Control access to specific features and data
26+
- Use Standard navigation for general business applications or Console navigation for specialized service/support workflows requiring multi-tab workspaces
27+
- Create professional, branded application identity with custom colors and branding
28+
- Override standard actions with custom Lightning pages for enhanced user experience
29+
- Enable profile-specific experiences through profile action overrides
30+
31+
## ⚙️ Required Properties
32+
33+
### Core Application Properties
34+
- **fullName**: API name of the application
35+
- **label**: Display name of the application
36+
- **uiType**: Always "Lightning" for modern apps
37+
- **navType**: CRITICAL - Choose based on user requirements and workflow patterns
38+
- "Standard": DEFAULT for general business applications (e.g., sales, marketing, operations)
39+
- "Console": ONLY when workflow requires managing multiple records simultaneously with split-view or multi-tab workspace (e.g., customer service, call centers, support operations)
40+
- **formFactors**: Array of form factors (["LARGE"] for desktop, ["SMALL"] for mobile, or both)
41+
42+
### Optional Properties
43+
- **description**: Brief description of the application's purpose
44+
- **tabs**: Array of tab names to include
45+
- **utilityBar**: API name of the Utility Bar configuration
46+
- **brand**: ⚠️ HIGHLY RECOMMENDED - Branding configuration object (headerColor, shouldOverrideOrgTheme, footerColor, primaryTabColor)
47+
- **actionOverrides**: ⚠️ REQUIRED when custom record pages exist - Action override configuration (actionName, content, formFactor, type, pageOrSobjectType)
48+
- **profileActionOverrides**: Profile-specific action overrides (actionName, content, formFactor, pageOrSobjectType, type, profile)
49+
- **isNavAutoTempTabsDisabled**: Navigation behavior setting (default: false)
50+
- **isNavPersonalizationDisabled**: Personalization setting (default: false)
51+
- **isNavTabPersistenceDisabled**: Tab persistence setting (default: false)
52+
53+
## 🔧 Application Configuration
54+
55+
### Navigation Type Selection (CRITICAL)
56+
**Decision Criteria for navType:**
57+
58+
**Choose "Standard" (DEFAULT) for:**
59+
- General business applications and most workflows
60+
- Single-record focus or linear navigation patterns
61+
- Standard tab-based navigation is sufficient
62+
63+
**Choose "Console" ONLY when workflow requires:**
64+
- Managing multiple related records simultaneously in split-view
65+
- Multi-tab workspace for handling complex, interconnected data
66+
- Contextual information from multiple sources visible at once
67+
- Examples: customer service operations, support desks, call centers
68+
69+
**When in doubt:** Default to "Standard" for most general business use cases
70+
71+
### Navigation Settings
72+
- **isNavAutoTempTabsDisabled**: Controls automatic temporary tab creation
73+
- **isNavPersonalizationDisabled**: Controls user personalization features
74+
- **isNavTabPersistenceDisabled**: Controls tab persistence across sessions
75+
76+
### Tab Management
77+
- **tabs**: Array of tab names to include in the application
78+
- **formFactors**: Device-specific configurations (Large for desktop, Small for mobile)
79+
80+
### Utility Bar
81+
- **utilityBar**: Reference to Lightning utility bar (appears at bottom of Lightning Experience)
82+
83+
### Branding (HIGHLY RECOMMENDED - DO NOT SKIP)
84+
**IMPORTANT**: Provide branding configuration to create a professional, visually distinct application identity.
85+
86+
- **brand.headerColor**: Header bar color in hex format (e.g., "#0070D2") - RECOMMENDED
87+
- **brand.shouldOverrideOrgTheme**: Override organization theme (true/false) - Default: false
88+
- **brand.footerColor**: Footer color in hex format
89+
- **brand.primaryTabColor**: Primary tab color in hex format
90+
91+
### Action Overrides (CRITICAL - DO NOT SKIP)
92+
**IMPORTANT**: Action overrides MUST be created for every custom object tab that has a record page generated by flexipage expert.
93+
94+
- **actionOverrides.actionName**: Action to override ("View" or "Tab")
95+
- **actionOverrides.content**: Page/component name (FlexiPage, Visualforce, Lightning component)
96+
- For "View" action: Reference record pages generated by flexipage expert
97+
- For "Tab" action: Reference home/app pages generated by flexipage expert
98+
- **actionOverrides.formFactor**: Device type ("Large" or "Small")
99+
- **actionOverrides.type**: Override type ("Default", "Visualforce", "Flexipage", "LightningComponent", "Scontrol")
100+
- Recommended: Use "Flexipage" for Lightning record/home pages generated by flexipage expert
101+
- **actionOverrides.pageOrSobjectType**: Object API name the override applies to
102+
- **actionOverrides.comment**: Optional description (max 1000 characters)
103+
- Auto-generated comment: "Action override created by Lightning App Builder during activation."
104+
- **actionOverrides.skipRecordTypeSelect**: Skip record type selection (default: false)
105+
106+
### Profile Action Overrides
107+
- **profileActionOverrides.actionName**: Action to override ("View" or "Tab")
108+
- **profileActionOverrides.content**: Page/component name
109+
- For "View" action: Reference profile-specific record pages generated by flexipage expert
110+
- For "Tab" action: Reference profile-specific home pages generated by flexipage expert
111+
- Can reference same or different FlexiPages than actionOverrides for profile-specific experiences
112+
- **profileActionOverrides.formFactor**: Device type ("Large" or "Small")
113+
- **profileActionOverrides.pageOrSobjectType**: Object API name
114+
- **profileActionOverrides.type**: Override type
115+
- Recommended: Use "Flexipage" for Lightning pages generated by flexipage expert
116+
- **profileActionOverrides.profile**: Profile API name (e.g., "Admin", "Standard User")
117+
- Enables different page layouts for different user profiles
118+
119+
## 📱 Device Support
120+
121+
### Desktop Configuration
122+
- **formFactor**: "Large"
123+
- **tabs**: Full list of application tabs
124+
125+
### Phone Configuration
126+
- **formFactor**: "Small"
127+
- **tabs**: Mobile-optimized tab selection
128+
129+
### Tablet Configuration
130+
- **formFactor**: "Medium"
131+
- **tabs**: Tablet-appropriate tab selection
132+
133+
## 🎨 User Experience Features
134+
135+
### Navigation Behavior
136+
- **Auto Temporary Tabs**: Can be enabled/disabled
137+
- **Personalization**: User customization options
138+
- **Tab Persistence**: Remember user's tab selections
139+
140+
### Accessibility
141+
- **Keyboard Navigation**: Full keyboard support
142+
- **Screen Reader**: Compatible with assistive technologies
143+
- **High Contrast**: Support for high contrast modes
144+
145+
## 🔗 Integration Points
146+
- **Custom Tabs**: Include custom object and web tabs
147+
- **Standard Tabs**: Include standard Salesforce tabs
148+
- **Lightning Pages**: Integrate with Lightning page layouts
149+
- **Components**: Include custom Lightning components
150+
## ✅ Best Practices
151+
- **Always use Lightning UI**: Set `uiType` to "Lightning" for modern apps
152+
- **Choose appropriate navigation**: CRITICAL - Analyze requirements carefully for `navType` selection
153+
- Use "Standard" (DEFAULT) for general business applications
154+
- Use "Console" ONLY when workflow requires multi-tab workspace, split-view, or managing multiple related records simultaneously
155+
- Examples for Console: customer service, call centers, support operations
156+
- Default to "Standard" for most general business use cases
157+
- **Include Standard Tabs**: Add common Salesforce tabs (Home, Accounts, Contacts, etc.)
158+
- **Use clear, descriptive application names**
159+
- **Group related functionality logically**
160+
- **Consider different user roles and needs**
161+
- **Test across different device types**
162+
- **Ensure proper permissions and access control**
163+
- **Provide meaningful descriptions for users**
164+
- **Follow consistent naming conventions**
165+
- **Always configure branding**: Set headerColor to create professional application identity
166+
- **Use accessible brand colors**: Ensure hex colors have sufficient contrast (WCAG AA compliant)
167+
- **Configure utility bars**: Add useful quick-access tools for users
168+
- **Leverage action overrides**: Customize page layouts for specific objects using FlexiPages from flexipage expert
169+
- **Use profile overrides**: Provide role-specific experiences by referencing different flexipage expert generated pages per profile
170+
171+
## 🎯 Enhancement Rules
172+
- **uiType**: Always set to "Lightning" for modern app experience
173+
- **navType**: CRITICAL DECISION - Analyze user requirements carefully
174+
- Set to "Standard" (DEFAULT) for general business applications
175+
- Set to "Console" ONLY when workflow requires:
176+
- Managing multiple related records simultaneously with split-view capability
177+
- Multi-tab workspace for handling complex, interconnected data
178+
- Contextual information from multiple sources visible at once
179+
- Console examples: customer service operations, call centers, support desks
180+
- When in doubt between Standard and Console, choose "Standard" for most business use cases
181+
- **formFactors**: Always set to ["LARGE"] for desktop Lightning Experience
182+
- **Standard Tabs**: Automatically add Home, Accounts, Contacts, Opportunities, Leads, Cases
183+
- **Navigation Settings**: Set all navigation flags to false for best user experience
184+
- **Branding**: ALWAYS include brand configuration for professional application identity
185+
- MANDATORY: Set brand.headerColor to appropriate color (e.g., "#0070D2" for Salesforce Blue)
186+
- Set brand.shouldOverrideOrgTheme based on requirements
187+
- **Action Overrides**: ALWAYS create action overrides when custom record pages exist
188+
- MANDATORY: Add actionOverrides for "View" action pointing to flexipage expert generated record pages
189+
- Use "Flexipage" type and reference the exact FlexiPage name
190+
- Set formFactor to "Large" for desktop
191+
- Include pageOrSobjectType with the object API name
192+
- **Profile Action Overrides**: Reference flexipage expert generated pages for role-based customization
193+
- **Form Factors**: Use "Large" for desktop, "Small" for mobile in overrides
194+
195+
## ⚠️ CRITICAL Verification Checklist (MUST VERIFY)
196+
- [ ] All tabs are included in the application
197+
- [ ] **navType IS CORRECTLY SET** - Verify Console vs Standard selection
198+
- [ ] Default to "Standard" for most general business applications
199+
- [ ] Set to "Console" ONLY if workflow requires managing multiple records simultaneously, split-view, or multi-tab workspace
200+
- [ ] If requirements are general/ambiguous → navType should be "Standard"
201+
- [ ] **BRANDING IS CONFIGURED** - This is HIGHLY RECOMMENDED for professional applications
202+
- [ ] brand.headerColor is set with valid hex color (e.g., "#0070D2")
203+
- [ ] brand.shouldOverrideOrgTheme is set (default: false)
204+
- [ ] **ACTION OVERRIDES ARE CREATED** - This is MANDATORY for every custom object with a record page
205+
- [ ] Action overrides are defined for EACH custom object tab pointing to the correct record page
206+
- [ ] actionOverrides.content matches the exact FlexiPage name generated by flexipage expert
207+
- [ ] actionOverrides.pageOrSobjectType is set to the correct object API name
208+
- [ ] actionOverrides.type is set to "Flexipage"
209+
- [ ] actionOverrides.actionName is set to "View"
210+
- [ ] actionOverrides.formFactor is set to "Large"
211+
- [ ] All required fields are populated (fullName, label, uiType, navType, formFactors)

0 commit comments

Comments
 (0)