npx skills add ...
npx skills add forcedotcom/sf-skills --skill experience-lwr-site-generate
Creates, modifies, or manages Salesforce Experience Cloud LWR sites via DigitalExperience metadata. Always trigger when the tasks involve LWR sites configurations, e.g. creating/modifying pages/routes/views/theme layouts/branding sets, previewing sites, or creating/modifying guest sharing rule (metadata type sharingGuestRules)/guest user access/sharing records to guest users, or when user provides a guest user ID (15 or 18 characters starting with 005). NEVER trigger for React or any other ui bundle framework. LWR sites ONLY.
npx skills add forcedotcom/sf-skills --skill experience-lwr-site-generate
Build and configure Salesforce Experience Cloud Lightning Web Runtime (LWR) sites via metadata (DigitalExperienceConfig, DigitalExperienceBundle, Network, CustomSite, CMS contents).
Right after loading this skill, you MUST copy the selected workflows/steps to your plan as a TODO checklist and work on each of the item carefully to ensure correctness. You MUST load the relevant reference docs even though they may live outside of user's project folder.
When working with Experience LWR sites:
sharingGuestRules) for any Salesforce object (Account, Case, Contact, etc.) — including when the user refers to a "Site Guest User" username or any guest user by IDSupported Template: Build Your Own (LWR) - talon-template-byo
Before doing anything else, note down the following properties from the local project if available as they will be used for various operations. Check with the user if any of the following is missing:
'My Community').'mycommunity') and verify with the user for the converted value.talon-template-byo.digitalExperienceConfigs/{siteName}1.digitalExperienceConfig-meta.xmldigitalExperiences/site/{siteName}1/{siteName}1.digitalExperience-meta.xmlnetworks/{siteName}.network-meta.xmlsites/{siteName}.site-meta.xmldigitalExperiences/site/{siteName}1/sfdc_cms__*/{contentApiName}/*_meta.json and content.json file.| Content Type | Description | When to Use |
|---|---|---|
sfdc_cms__site | Root site configuration containing site-wide settings | Required for every site; one per site |
sfdc_cms__appPage | Application page container that groups routes and views | Required; defines the app shell |
sfdc_cms__route | URL routing definition mapping paths to views | Create one for each page/URL path |
sfdc_cms__view | Page layout and component structure | Create one for each route; defines page content. Also use to edit existing views (e.g., adding/removing components on a specific page) |
sfdc_cms__brandingSet | Brand colors, fonts, and styling tokens | Required; defines site-wide styling. Use to create or edit existing branding sets |
sfdc_cms__languageSettings | Language and localization configuration | Required; defines supported languages |
sfdc_cms__mobilePublisherConfig | Mobile app publishing settings | Required for mobile app deployment |
sfdc_cms__theme | Theme definition referencing layouts and branding | Required; one per site |
sfdc_cms__themeLayout | Page layout templates used by views | Create layouts for different page structures. Also use to edit existing theme layouts (e.g., updating theme layout, add a component that's persistent across pages) |
Important: Creating any new pages require BOTH sfdc_cms__route AND sfdc_cms__view.
Object Pages are dedicated pages used to display and manage record-level data for a specific Salesforce entity/object. For example, an custom object "Car" should have "Car_Detail", "Car_List", and "Car_Related_list" views.
Reference docs within the skill directory. Note that these are local and not MCP. Before doing anything, you MUST ALWAYS load them first if they match user intent.
sharingGuestRules) for public sites — use for any request involving "guest sharing rule", "Site Guest User", or sharing object records with unauthenticated visitorsurlPathPrefix in DigitalExperienceConfig, Network, and CustomSiteRules:
Steps (Follow the steps sequentially. Do not skip any step before proceeding):
Steps (Follow the steps sequentially. Do not skip any step before proceeding):
Steps (Follow the steps sequentially. Do not skip any step before proceeding):
Steps (Follow the steps sequentially. Do not skip any step before proceeding):
Steps (Follow the steps sequentially. Do not skip any step before proceeding):
Steps (Follow the steps sequentially. Do not skip any step before proceeding):
Steps (Follow the steps sequentially. Do not skip any step before proceeding):
Steps (Follow the steps sequentially. Do not skip any step before proceeding):
sfdc_cms__route, load configure-content-route.md.execute_metadata_action to get the schema and examples for that content type after loading the corresponding reference docs.
execute_metadata_action ONCE for that content type. Reuse the schema and examples for all items of that type within the same user request.execute_metadata_action using the following:Use when user requests to preview a site, access a builder site, or after successfully deploying a site.
Use the execute_metadata_action MCP tool to get the preview and builder URLs:
The site developer name can be found in the CustomSite filename (e.g., sites/MySite.site-meta.xml → developer name is MySite).
If the site is not found, an error message will be returned indicating that the site may not be deployed. Ensure the site has been successfully deployed before calling this action.
Use when user wants to update or change site URLs (urlPathPrefix).
Steps (Follow the steps sequentially. Do not skip any step before proceeding):
Use sf CLI to validate and deploy. Access help docs by attaching --help, e.g.:
sf project deploy --helpsf project deploy validate --helpNote that metadata types are space-delimited. Never wrap them in quotes or use commas. For example, --metadata "DigitalExperienceBundle DigitalExperience" is incorrect — always use --metadata DigitalExperienceBundle DigitalExperience.
Validate:
Deploy: