platform-lightning-app-coordinate

platform-lightning-app-coordinate

热门

根据自然语言描述构建完整的 Salesforce Lightning Experience 应用程序。当用户请求“完整应用”、“Lightning 应用”、“业务解决方案”、“管理系统”或描述需要多个相互关联的 Salesforce 组件(对象、字段、页面、选项卡、安全性)的场景时,使用此技能。按正确的依赖顺序编排所有必需的元数据类型,以生成可部署的应用程序。

774Star
282Fork
更新于 2026/7/24
SKILL.md
readonly只读
name
platform-lightning-app-coordinate
description

根据自然语言描述构建完整的 Salesforce Lightning Experience 应用程序。当用户请求“完整应用”、“Lightning 应用”、“业务解决方案”、“管理系统”或描述需要多个相互关联的 Salesforce 组件(对象、字段、页面、选项卡、安全性)的场景时,使用此技能。按正确的依赖顺序编排所有必需的元数据类型,以生成可部署的应用程序。

生成 Lightning 应用

概述

通过定义 Lightning 自定义应用程序,并按正确的依赖顺序编排其依赖的元数据类型,从自然语言描述构建一个完整、可部署的 Salesforce Lightning Experience 应用程序。当有专门的元数据技能时调用它们;当没有技能时直接生成元数据。

何时使用此技能

使用场景:

  • 用户请求“Lightning 应用”或“端到端解决方案”
  • 用户说“构建一个应用”、“创建一个应用程序”、“构建一个[类型]应用”(项目管理、跟踪等)
  • 工作产出包括自定义应用(CustomApplication)以及支持的元数据,而不仅仅是单独的对象、页面或选项卡

应触发此技能的示例:

  • “构建一个项目管理 Lightning 应用,包含任务、资源和物资对象”
  • “创建一个 LEX 应用来跟踪车辆,包含 Lightning 页面和权限集”
  • “我需要一个空间站管理系统,包含多个对象和关系”
  • “构建一个员工入职 Lightning 应用,包含自定义 Lightning 记录页面”

不要使用的情况:

  • 创建单个元数据组件(改用特定的元数据技能)
  • 排查或调试现有元数据
  • 构建 Salesforce Classic 应用(非 Lightning Experience)
  • 用户只要求一个对象、一个页面或一个权限集(没有其他)
  • 用户只需要创建或配置应用容器(分组现有选项卡)而不需要其他元数据;改用 platform-custom-application-generate

元数据类型注册表

下表显示了 Lightning Experience 应用通常需要的元数据类型、其技能可用性和 API 上下文要求。

元数据类型 技能名称 API 上下文 使用规则
自定义对象 platform-custom-object-generate salesforce-api-context 必须加载技能并调用 API 上下文
自定义字段 platform-custom-field-generate salesforce-api-context 必须加载技能并调用 API 上下文
自定义选项卡 platform-custom-tab-generate salesforce-api-context 必须加载技能并调用 API 上下文
FlexiPage platform-flexipage-generate salesforce-api-context 必须加载技能并调用 API 上下文
自定义应用程序 platform-custom-application-generate salesforce-api-context 必须加载技能并调用 API 上下文
列表视图 platform-list-view-generate salesforce-api-context 必须加载技能并调用 API 上下文(如果请求)
验证规则 platform-validation-rule-generate salesforce-api-context 必须加载技能并调用 API 上下文(如果请求)
automation-flow-generate metadata-experts 管道 必须加载技能并运行管道。豁免于 salesforce-api-context
权限集 platform-permission-set-generate salesforce-api-context 必须加载技能并调用 API 上下文

使用规则

技能规则:当某个元数据类型存在技能时,您必须加载该技能。不要在没有先加载技能的情况下直接生成元数据。

API 上下文规则:对于每种元数据类型(流除外),您必须在生成之前调用 salesforce-api-context 工具。不要在没有先调用 API 上下文的情况下生成元数据。技能提供结构和规则;API 上下文确认当前 API 版本的有效性。两者都必不可少。

回退规则:当您需要的元数据类型没有技能时,使用您对 Salesforce Metadata API 和最佳实践的知识直接生成元数据。仍然需要 API 上下文。

理由:技能包含经过验证的模式和约束。API 上下文提供版本特定的准确性。两者共同防止部署失败。


依赖图与构建顺序

阶段 1:数据模型(基础)

自定义对象(无依赖)
    ↓
自定义字段(依赖:对象存在)
    ↓
关系(依赖:父对象和子对象以及字段存在)

此阶段的元数据类型:

  1. platform-custom-object-generate - 一次,包含所有对象
  2. platform-custom-field-generate - 一次,包含所有字段(包括主从关系、查找关系、汇总字段)

阶段 2:业务逻辑(可选 - 仅在请求时)

验证规则(依赖:字段存在)
    ↓
流(依赖:对象、字段存在)

此阶段的元数据类型(仅在用户请求时):

  1. platform-validation-rule-generate - 一次,如果提到验证要求
  2. automation-flow-generate - 一次,如果提到自动化/工作流要求

阶段 3:用户界面

列表视图(依赖:对象、字段存在)
    ↓
自定义选项卡(依赖:对象存在)
    ↓
FlexiPages(依赖:对象、选项卡存在)

此阶段的元数据类型:

  1. platform-list-view-generate - 一次,用于筛选的记录视图(如果请求)
  2. platform-custom-tab-generate - 一次,包含所有对象选项卡
  3. platform-flexipage-generate - 一次,包含所有记录/主页/应用程序页面

阶段 4:应用程序组装

自定义应用程序(依赖:选项卡存在)

此阶段的元数据类型:

  1. platform-custom-application-generate - 一次,创建 Lightning 应用容器

阶段 5:安全与访问

权限集(依赖:对象、字段、选项卡、应用存在)

此阶段的元数据类型:

  1. platform-permission-set-generate - 一次,包含所有权限集以及以下访问权限:
    • 对象(读取、创建、编辑、删除)
    • 字段(读取、编辑)
    • 选项卡(可见)
    • 自定义应用程序(可见)

执行工作流

步骤 1:需求分析与规划

操作:

  1. 解析用户的自然语言请求
  2. 提取业务实体(成为自定义对象)
  3. 提取属性/特性(成为自定义字段)
  4. 识别关系(主从关系、查找关系)
  5. 检测验证要求(成为验证规则)
  6. 检测自动化要求(成为流)
  7. 识别用户角色(为权限集提供信息)

输出:构建计划

生成一个结构化计划,列出:

Lightning 应用构建计划:[应用名称]

数据模型:
- 自定义对象:[列出对象名称]
- 自定义字段:[按对象分组列出]
- 关系:[列出主从关系和查找关系]

业务逻辑(如果适用):
- 验证规则:[列出对象和规则名称]
- 流:[列出流名称和类型]

用户界面:
- 列表视图(如果请求):[列出对象和视图名称]
- 自定义选项卡:[列出对象]
- FlexiPages:[列出页面名称和类型]
- 自定义应用程序:[应用名称]

安全:
- 权限集:[列出用途]

按类型执行(每种类型使用技能 + API 上下文):
- CustomObject:加载 platform-custom-object-generate + 调用 salesforce-api-context
- CustomField:加载 platform-custom-field-generate + 调用 salesforce-api-context
- ValidationRule:加载 platform-validation-rule-generate + 调用 salesforce-api-context(如果请求)
- Flow:加载 automation-flow-generate + 运行 metadata-experts 管道(如果请求)
- ListView:加载 platform-list-view-generate + 调用 salesforce-api-context(如果请求)
- CustomTab:加载 platform-custom-tab-generate + 调用 salesforce-api-context
- FlexiPage:加载 platform-flexipage-generate + 调用 salesforce-api-context
- CustomApplication:加载 platform-custom-application-generate + 调用 salesforce-api-context
- PermissionSet:加载 platform-permission-set-generate + 调用 salesforce-api-context

在写入文件之前要发出的状态行:
- `type=<Type> skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>`
- 流例外:`type=Flow skill=complete pipeline=complete`

依赖顺序:
1. 阶段 1:数据模型(对象 -> 字段)
2. 阶段 2:业务逻辑(验证规则 -> 流)
3. 阶段 3:用户界面(列表视图 -> 选项卡 -> 页面)
4. 阶段 4:应用组装(应用程序)
5. 阶段 5:安全(权限集)

步骤 2:按类型执行

对每种元数据类型执行以下四个步骤,一次处理一种类型。完成当前类型的所有四个步骤后再进入下一种类型。不要跳过任何步骤。

步骤 做什么 为什么
① 加载技能 搜索并阅读每种类型的 SKILL.md 提供 XML 结构、必需元素、命名规则和验证约束
② 调用 API 上下文 使用以下一个或多个工具调用 salesforce-api-context 工具:get_metadata_type_sectionsget_metadata_type_contextget_metadata_type_fieldsget_metadata_type_fields_propertiessearch_metadata_types 提供当前有效值——允许的枚举值、必填与可选字段、此 API 版本的子类型。技能提供结构;API 上下文提供版本特定的准确性。
③ 记录状态 发出:type=<Type> skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none> 确认在写入任何文件之前已尝试两个步骤,并记录使用了哪些 API 上下文工具
④ 生成文件 为此类型生成所有文件,然后检查点 仅在 ①②③ 完成后。验证,然后进入下一种类型。

不要将 ① 和 ② 合并为单个操作,或在完成 ① 后跳过 ②。 它们是服务于不同目的的独立步骤。加载技能后您可能觉得可以生成——停下来先做 ②。

如果 salesforce-api-context 在真实尝试后不可用,记录 mcp=unavailable 并仅使用技能知识生成。完全不尝试 ② 是一个错误。


1. 自定义对象

  • ① 加载技能:阅读 platform-custom-object-generate SKILL.md
  • ② API 上下文:为 CustomObject 调用 salesforce-api-context
  • ③ 状态:type=CustomObject skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>
  • ④ 生成 + 检查点:生成所有自定义对象文件,然后继续 #2

2. 自定义字段

  • ① 加载技能:阅读 platform-custom-field-generate SKILL.md
  • ② API 上下文:为 CustomField 调用 salesforce-api-context
  • ③ 状态:type=CustomField skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>
  • ④ 生成 + 检查点:生成所有自定义字段文件,然后继续 #3

3. 验证规则(仅在请求时)

  • ① 加载技能:阅读 platform-validation-rule-generate SKILL.md
  • ② API 上下文:为 ValidationRule 调用 salesforce-api-context
  • ③ 状态:type=ValidationRule skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>
  • ④ 生成 + 检查点:生成所有验证规则文件,然后继续 #4

4. 流(仅在请求时)

  • ① 加载技能:阅读 automation-flow-generate SKILL.md
  • ② 管道:运行 metadata-experts/execute_metadata_action 3 步管道(豁免于 salesforce-api-context
  • ③ 状态:type=Flow skill=complete pipeline=complete
  • ④ 生成 + 检查点:通过管道生成所有流文件,然后继续 #5

5. 列表视图(仅在请求时)

  • ① 加载技能:阅读 platform-list-view-generate SKILL.md
  • ② API 上下文:为 ListView 调用 salesforce-api-context
  • ③ 状态:type=ListView skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>
  • ④ 生成 + 检查点:生成所有列表视图文件,然后继续 #6

6. 自定义选项卡

  • ① 加载技能:阅读 platform-custom-tab-generate SKILL.md
  • ② API 上下文:为 CustomTab 调用 salesforce-api-context
  • ③ 状态:type=CustomTab skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>
  • ④ 生成 + 检查点:生成所有自定义选项卡文件,然后继续 #7

7. FlexiPages

  • ① 加载技能:阅读 platform-flexipage-generate SKILL.md
  • ② API 上下文:为 FlexiPage 调用 salesforce-api-context
  • ③ 状态:type=FlexiPage skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>
  • ④ 生成 + 检查点:生成所有 FlexiPage 文件,然后继续 #8

8. 自定义应用程序

  • ① 加载技能:阅读 platform-custom-application-generate SKILL.md
  • ② API 上下文:为 CustomApplication 调用 salesforce-api-context
  • ③ 状态:type=CustomApplication skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>
  • ④ 生成 + 检查点:生成自定义应用程序文件,然后继续 #9

9. 权限集

  • ① 加载技能:阅读 platform-permission-set-generate SKILL.md
  • ② API 上下文:为 PermissionSet 调用 salesforce-api-context
  • ③ 状态:type=PermissionSet skill=complete mcp=complete|unavailable mcp_tools=<tool-list|none>
  • ④ 生成 + 检查点:生成所有权限集文件——所有类型完成

步骤 3:最终工件组装

所有阶段完成后,将输出整合为可部署的结构。


输出

完成的构建产生:

  1. Salesforce DX 项目目录,包含所有生成的元数据

    • 按标准 SFDX 结构组织:force-app/main/default/
  2. 元数据文件 - 每个组件一个文件,按类型组织:

    force-app/main/default/
    ├── objects/              # 自定义对象 (.object-meta.xml)
    ├── fields/               # 自定义字段 (.field-meta.xml)
    ├── tabs/                 # 自定义选项卡 (.tab-meta.xml)
    ├── flexipages/           # Lightning 页面 (.flexipage-meta.xml)
    ├── applications/         # 自定义应用程序 (.app-meta.xml)
    ├── permissionsets/       # 权限集 (.permissionset-meta.xml)
    ├── flows/                # 流 (.flow-meta.xml) - 如果适用
    └── objects/.../validationRules/  # 验证规则 (.validationRule-meta.xml) - 如果适用
    
  3. 部署清单 (package.xml)

    • 列出所有组件,包含正确的 API 版本
    • 按依赖顺序按元数据类型组织
    • 可用于 Salesforce CLI 部署或 Metadata API 部署
  4. 构建摘要报告 - 一个 markdown 文件,列出:

    • 创建的每个组件
    • 组件类型和 API 名称
    • 文件路径位置
    • 依赖关系
    • 任何警告或建议

示例摘要结构:

Lightning 应用构建完成:项目管理应用

生成的元数据:
1 自定义对象
   - Project__c -> force-app/main/default/objects/Project__c/Project__c.object-meta.xml
   - Task__c -> force-app/main/default/objects/Task__c/Task__c.object-meta.xml
   - Resource__c -> force-app/main/default/objects/Resource__c/Resource__c.object-meta.xml

2 自定义字段
   - Project__c.Name -> force-app/main/default/objects/Project__c/fields/Name.field-meta.xml
   - Project__c.Status__c -> force-app/main/default/objects/Project__c/fields/Status__c.field-meta.xml
   [... 等等 ...]

3 自定义选项卡
   - Project__c -> force-app/main/default/tabs/Project__c.tab-meta.xml
   [... 等等 ...]

4 Lightning 记录页面
   - Project_Record_Page -> force-app/main/default/flexipages/Project_Record_Page.flexipage-meta.xml
   [... 等等 ...]

5 自定义应用程序
   - Project_Management -> force-app/main/default/applications/Project_Management.app-meta.xml

6 权限集
   - Project_Manager -> force-app/main/default/permissionsets/Project_Manager.permissionset-meta.xml
   - Project_User -> force-app/main/default/permissionsets/Project_User.permissionset-meta.xml

警告:无

验证

在向用户呈现完成的构建之前,验证跨组件完整性:

  • [ ] 对象-选项卡覆盖:每个自定义对象至少有一个自定义选项卡
  • [ ] 关系完整性:关系中引用的每个自定义对象(父或子)都存在于构建中
  • [ ] 页面中的字段引用:FlexiPage 中引用的每个字段都存在于相应的对象上
  • [ ] 应用中的选项卡引用:自定义应用程序中引用的每个选项卡都已成功创建
  • [ ] 权限集完整性:权限集授予对所有生成的对象、字段、选项卡和应用程序的访问权限
  • [ ] 无孤立组件:没有无对象的选项卡,没有无相应选项卡的页面,没有无选项卡的应用
  • [ ] 部署清单完整性package.xml 包含所有生成的组件,并按正确的依赖顺序排列

验证失败处理(类别 2):

  • 如果验证失败,在构建摘要报告的 VALIDATION WARNINGS 部分包含失败的检查
  • 这些是生成后的问题——不要阻止交付构建,但明确传达需要手动审查或更正的内容
  • 为每个失败的验证检查提供具体的补救步骤

注意:单个组件验证(保留字、名称长度、字段类型等)由专门的元数据技能处理,此处无需重新验证。


错误处理

类别 1:停止并询问用户

在以下情况下停止执行并请求澄清:

  • 用户请求过于模糊,无法提取任何对象或字段
  • 检测到冲突的要求(例如,“设为私有”+“每个人都应该看到”)
  • 检测到无效的 Salesforce 命名(保留字如 OrderGroup

类别 2:生成后警告(记录警告,继续)

在以下情况下记录警告并继续:

  • 跨组件验证检查失败(例如,FlexiPage 中引用的字段在对象上不存在)
  • 可选组件生成失败(例如,列表视图生成有轻微问题)
  • 验证规则或流有轻微输出问题

警告模式:

警告:[组件类型] 生成遇到问题
    组件:[名称]
    问题:[描述]
    影响:[什么将不起作用]
    建议:[如何手动修复]
    继续处理剩余组件...

最佳实践

1. 始终遵循依赖顺序

切勿按顺序调用技能。字段需要对象,页面需要选项卡,应用需要选项卡。

2. 在可用时使用技能

不要重新发明轮子。专门的技能具有字段特定的验证,可防止部署错误。

3. 生成合理的默认值

当用户未指定细节时:

  • 对人工实体使用文本名称字段
  • 对交易使用自动编号
  • 为用户面向的对象启用搜索和报告
  • 根据关系设置共享模型

4. 在构建前验证

检查:

  • API 名称中的保留字
  • 关系限制(每个对象最多 2 个主从关系)
  • 名称长度限制
  • 重复名称