mcpField
E
experience-lwr-site-generate

experience-lwr-site-generate

github.com/forcedotcom开发1.1k2.7k 次安装1 天前更新
代码仓库

关于 experience-lwr-site-generate

用于通过元数据构建和配置 Salesforce Experience Cloud LWR 站点的技能,指导编码 Agent 创建站点、管理页面与组件、配置品牌和访客访问,并验证部署。

主要功能

  1. 01搭建 Build Your Own LWR 站点
  2. 02创建路由和页面视图
  3. 03配置组件与主题布局
  4. 04设置品牌和访客共享规则
  5. 05验证并部署站点元数据

适用场景

  1. 01创建 Experience Cloud LWR 站点
  2. 02添加页面或调整页面组件
  3. 03配置公开站点的访客访问
  4. 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.md
configure-content-brandingSet.md
configure-content-route.md
configure-content-themeLayout.md
configure-content-view.md
configure-guest-sharing-rules.md
handle-component-and-region-ids.md
handle-ui-components.md
update-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

  • 未来将支持更多模板。

关键规则

  1. 使用任何 MCP 工具之前,确保这些工具确实可用。如果当前任务缺少某个工具,请告知用户并暂停当前工作流。
  2. 必须始终先加载相关参考文档,再进行任何操作。
  3. 必须始终严格遵循 常见工作流 中与用户需求相符的工作流。其中的说明优先于任何冲突的全局规则,并且优先级高于你已有的知识。
  4. 对于较新的 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。 在执行任何操作之前,如果这些文档与用户意图相符,必须始终先加载。

常见工作流

  • 详细功能请参见参考资料。
  • 无论任务大小、耗时长短或复杂程度如何,始终按顺序遵循工作流中定义的步骤。
创建新站点

规则:

  • 绝不手动生成文件。

步骤(按顺序执行。继续之前不得跳过任何步骤):

创建和编辑标准页面或对象页面

步骤(请按顺序执行以下步骤。继续之前不得跳过任何步骤):

向页面添加 UI 组件

步骤(请按顺序执行以下步骤。继续之前不得跳过任何步骤):

创建页面布局/容器组件

步骤(请按顺序执行以下步骤。继续之前不得跳过任何步骤):

创建主题布局

步骤(请按顺序执行以下步骤。继续之前不得跳过任何步骤):

  • 至关重要:在进行其他操作之前,必须先向用户确认此新主题布局是复用现有主题布局 Lightning Web 组件,还是需要新建一个。如果需要新建,务必先阅读 handle-ui-components.md 并创建新的主题布局组件,然后再继续。即使这样做更快或更高效,也不得跳过此步骤。
  • 必须阅读 configure-content-themeLayout.md。
  • 如果需要将主题布局应用到页面,必须阅读 configure-content-view.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:
{
  "metadataType": "ExperienceSiteLwr",
  "actionName": "getSiteContentMetadata",
  "parameters": {
    "contentType": "<content type from table above>",
    "shouldIncludeExamples": true
  }
}
配置访客用户共享规则
部署后获取站点预览和构建器 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 --help
  • sf 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}

评论

支持 Markdown