关于 experience-lwr-site-generate
用于通过元数据构建和配置 Salesforce Experience Cloud LWR 站点的技能,指导编码 Agent 创建站点、管理页面与组件、配置品牌和访客访问,并验证部署。
主要功能
- 01搭建 Build Your Own LWR 站点
- 02创建路由和页面视图
- 03配置组件与主题布局
- 04设置品牌和访客共享规则
- 05验证并部署站点元数据
适用场景
- 01创建 Experience Cloud LWR 站点
- 02添加页面或调整页面组件
- 03配置公开站点的访客访问
- 04排查部署错误
MCP 相关
指导 Agent 检查 MCP 工具是否可用,并使用元数据操作工具处理 Experience LWR 内容和站点 URL。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill experience-lwr-site-generate安装后在 Claude Code 中输入/experience-lwr-site-generate确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/bootstrap-template-byo-lwr.mdconfigure-content-brandingSet.mdconfigure-content-route.mdconfigure-content-themeLayout.mdconfigure-content-view.mdconfigure-guest-sharing-rules.mdhandle-component-and-region-ids.mdhandle-ui-components.mdupdate-site-urls.md详细介绍
Experience LWR 站点构建器
通过元数据(DigitalExperienceConfig、DigitalExperienceBundle、Network、CustomSite、CMS 内容)构建和配置 Salesforce Experience Cloud Lightning Web Runtime(LWR)站点。
重要!!
加载此技能后,必须立即将选定的工作流/步骤复制到计划中,作为 TODO 清单,并仔细完成每一项以确保正确性。 即使相关参考文档位于用户项目文件夹之外,也必须加载这些文档。
目录
- 适用场景
- 关键规则
- 核心站点属性
- DigitalExperienceBundle 格式的项目结构
- 参考文档
- 常见工作流
适用场景
处理 Experience LWR 站点时:
- 创建并搭建新的 LWR 站点
- 添加页面(路由 + 视图)
- 配置 LWC 组件、布局、主题或品牌样式
- 设置访客用户访问权限(公共站点)
- 为任何 Salesforce 对象(Account、Case、Contact 等)创建或修改 访客共享规则(
sharingGuestRules)——包括用户提到“Site Guest User”用户名或任何访客用户 ID 的情况 - 排查与 Experience LWR 站点相关的部署错误
支持的模板:Build Your Own (LWR) - talon-template-byo
- 未来将支持更多模板。
关键规则
- 使用任何 MCP 工具之前,确保这些工具确实可用。如果当前任务缺少某个工具,请告知用户并暂停当前工作流。
- 必须始终先加载相关参考文档,再进行任何操作。
- 必须始终严格遵循 常见工作流 中与用户需求相符的工作流。其中的说明优先于任何冲突的全局规则,并且优先级高于你已有的知识。
- 对于较新的 LWR 站点,DigitalExperienceBundle 已抽象掉 Flexipage,因此处理 LWR 站点内容时,绝不要使用任何与 Flexipage 相关的 MCP 工具或技能。
核心站点属性
开始任何操作之前,先记录本地项目中可用的以下属性,因为各种操作都会用到这些属性。如果缺少以下任何一项,请向用户确认:
- 站点名称:必填。(例如,
'My Community')。 - URL 路径前缀:可选。只能包含字母数字字符。如果未提供,请根据站点名称转换生成(例如,
'mycommunity'),并向用户确认转换后的值。 - 模板类型 devName:
talon-template-byo。
DigitalExperienceBundle 格式的项目结构
站点元数据
- DigitalExperienceConfig
digitalExperienceConfigs/{siteName}1.digitalExperienceConfig-meta.xml
- DigitalExperienceBundle
digitalExperiences/site/{siteName}1/{siteName}1.digitalExperience-meta.xml
- Network
networks/{siteName}.network-meta.xml
- CustomSite
sites/{siteName}.site-meta.xml
DigitalExperience 内容
digitalExperiences/site/{siteName}1/sfdc_cms__*/{contentApiName}/*- 这些内容组件定义路由、视图、主题布局等。每个组件都必须包含
_meta.json和content.json文件。
内容类型说明
| 内容类型 | 描述 | 使用时机 |
|---|---|---|
sfdc_cms__site | 包含站点范围设置的根站点配置 | 每个站点都必需;每个站点一个 |
sfdc_cms__appPage | 用于对路由和视图进行分组的应用程序页面容器 | 必需;定义应用程序外壳 |
sfdc_cms__route | 将路径映射到视图的 URL 路由定义 | 为每个页面/URL 路径创建一个 |
sfdc_cms__view | 页面布局和组件结构 | 为每个路由创建一个;定义页面内容。也用于编辑现有视图(例如,在特定页面上添加/移除组件) |
sfdc_cms__brandingSet | 品牌颜色、字体和样式标记 | 必需;定义站点范围的样式。用于创建或编辑现有品牌集 |
sfdc_cms__languageSettings | 语言和本地化配置 | 必需;定义支持的语言 |
sfdc_cms__mobilePublisherConfig | 移动应用发布设置 | 移动应用部署时必需 |
sfdc_cms__theme | 引用布局和品牌设置的主题定义 | 必需;每个站点一个 |
sfdc_cms__themeLayout | 视图使用的页面布局模板 | 为不同的页面结构创建布局。也用于编辑现有主题布局(例如,更新主题布局、添加在各页面中保持不变的组件) |
重要: 创建任何新页面都需要 sfdc_cms__route 和 sfdc_cms__view 两者。
对象页面
对象页面是专用于展示和管理特定 Salesforce 实体/对象的记录级数据的页面。例如,自定义对象“Car”应具有“Car_Detail”、“Car_List”和“Car_Related_list”视图。
参考资料
技能目录中的参考文档。请注意,这些是本地文档,不是 MCP。 在执行任何操作之前,如果这些文档与用户意图相符,必须始终先加载。
- bootstrap-template-byo-lwr.md - 站点创建、模板默认设置
- configure-content-route.md - 路由创建(自定义/对象页面)
- configure-content-view.md - 视图创建/编辑(自定义/对象页面)
- configure-content-themeLayout.md - 主题布局创建 + 主题同步
- configure-content-brandingSet.md - 使用颜色模式/WCAG 进行品牌配置
- handle-component-and-region-ids.md - 视图和 themeLayout 中使用的组件与区域 ID 的 UUID 生成(至关重要)。
- handle-ui-components.md - 组件发现、架构、插入、配置
- configure-guest-sharing-rules.md - 公共站点的访客共享规则(
sharingGuestRules)——凡是涉及“访客共享规则”、“Site Guest User”或与未认证访客共享对象记录的请求,均使用此文档 - update-site-urls.md - 更新站点 URL - URL 架构,以及更新 DigitalExperienceConfig、Network 和 CustomSite 中
urlPathPrefix的工作流
常见工作流
- 详细功能请参见参考资料。
- 无论任务大小、耗时长短或复杂程度如何,始终按顺序遵循工作流中定义的步骤。
创建新站点
规则:
- 绝不手动生成文件。
步骤(按顺序执行。继续之前不得跳过任何步骤):
- 始终阅读技能目录中的 bootstrap-template-byo-lwr.md。加载该文件后才能继续下一步。
- 严格遵循引导文档创建站点
创建和编辑标准页面或对象页面
步骤(请按顺序执行以下步骤。继续之前不得跳过任何步骤):
- 必须阅读 configure-content-route.md
- 必须阅读 configure-content-view.md
- 必须阅读 handle-component-and-region-ids.md
向页面添加 UI 组件
步骤(请按顺序执行以下步骤。继续之前不得跳过任何步骤):
- 必须阅读 handle-ui-components.md,以向 LWR 站点添加 LWC。
- 必须阅读 handle-component-and-region-ids.md,以处理 ID 生成
- 如果组件有以下任一要求,必须阅读 configure-content-themeLayout.md:
- 需要在多个页面间“固定”并保持显示
- 用作主题布局
创建页面布局/容器组件
步骤(请按顺序执行以下步骤。继续之前不得跳过任何步骤):
创建主题布局
步骤(请按顺序执行以下步骤。继续之前不得跳过任何步骤):
- 至关重要:在进行其他操作之前,必须先向用户确认此新主题布局是复用现有主题布局 Lightning Web 组件,还是需要新建一个。如果需要新建,务必先阅读 handle-ui-components.md 并创建新的主题布局组件,然后再继续。即使这样做更快或更高效,也不得跳过此步骤。
- 必须阅读 configure-content-themeLayout.md。
- 如果需要将主题布局应用到页面,必须阅读 configure-content-view.md
应用/设置主题布局
步骤(请按顺序执行以下步骤。继续之前不得跳过任何步骤):
配置品牌设置
步骤(请按顺序执行以下步骤。继续之前不得跳过任何步骤):
- 必须阅读 configure-content-brandingSet.md,以配置影响所有页面的背景颜色、前景颜色、按钮颜色和其他品牌颜色。
对 DigitalExperience 内容执行 CUD 操作
- 用户可以对 DigitalExperience 内容执行创建、更新和删除操作。
步骤(请按顺序执行以下步骤。继续之前不得跳过任何步骤):
- 确定用户想要修改的内容类型
- 如果存在与目标内容类型相关的参考文档,必须阅读该文档。例如,如果要修改
sfdc_cms__route,请加载 configure-content-route.md。 - 如果要创建或修改视图或主题布局,必须阅读 handle-component-and-region-ids.md
- 加载相应的参考文档后,始终调用
execute_metadata_action,获取该内容类型的架构和示例。- 每个用户请求中,每种内容类型调用一次:如果要创建/修改同一种内容类型的多个项目(例如,创建 3 个路由),只需为该内容类型调用一次
execute_metadata_action。在同一用户请求中,为该类型的所有项目复用架构和示例。 - 对于每种需要处理的内容类型,始终使用以下内容调用
execute_metadata_action:
- 每个用户请求中,每种内容类型调用一次:如果要创建/修改同一种内容类型的多个项目(例如,创建 3 个路由),只需为该内容类型调用一次
{
"metadataType": "ExperienceSiteLwr",
"actionName": "getSiteContentMetadata",
"parameters": {
"contentType": "<content type from table above>",
"shouldIncludeExamples": true
}
}
配置访客用户共享规则
- 必须阅读 configure-guest-sharing-rules.md,并遵循其中的所有步骤。
部署后获取站点预览和构建器 URL
适用场景: 用户请求预览站点、访问构建器站点,或成功部署站点后。
使用 execute_metadata_action MCP 工具获取预览和构建器 URL:
{
"metadataType": "ExperienceSiteLwr",
"actionName": "getSiteUrls",
"parameters": {
"siteDevName": "<site developer name>"
}
}
站点开发者名称可在 CustomSite 文件名中找到(例如,sites/MySite.site-meta.xml → 开发者名称为 MySite)。
如果未找到站点,将返回一条错误消息,指出该站点可能尚未部署。在调用此操作前,请确保站点已成功部署。
更新 Experience Site URL
适用场景: 用户希望更新或更改站点 URL(urlPathPrefix)。
步骤(按顺序执行这些步骤。继续之前不得跳过任何步骤):
- 必须阅读 update-site-urls.md,以了解三组件架构和 URL 更新工作流
- 按照文档中的分步工作流,在所有三个组件(DigitalExperienceConfig、Network、CustomSite)中一致地更新 URL
验证和部署
使用 sf CLI 进行验证和部署。添加 --help 可查看帮助文档,例如:
sf project deploy --helpsf project deploy validate --help
请注意,元数据类型之间以空格分隔。切勿将它们括在引号中或使用逗号。例如,--metadata "DigitalExperienceBundle DigitalExperience" 是错误的——始终使用 --metadata DigitalExperienceBundle DigitalExperience。
验证:
sf project deploy validate --metadata DigitalExperienceBundle DigitalExperience DigitalExperienceConfig Network CustomSite --target-org ${usernameOrAlias}
部署:
sf project deploy start --metadata DigitalExperienceBundle DigitalExperience DigitalExperienceConfig Network CustomSite --target-org ${usernameOrAlias}