关于 dx-pkg-post-install-configure
用于自动化 Salesforce 托管软件包安装后配置的技能,面向负责组织设置的管理员和开发者。它解析安装文档,将配置步骤分类为可自动执行或需手动完成,并在用户审核后执行。
主要功能
- 01读取并解析安装后文档
- 02发现 MCP 与 CLI 执行方式
- 03核验组织身份和软件包安装
- 04分类配置步骤并供用户审核
- 05执行获批步骤并报告结果
适用场景
- 01配置软件包权限集和字段权限
- 02通过元数据 API 修改页面布局
- 03识别需在 Setup 界面完成的步骤
- 04在 MCP 执行失败时回退到 CLI
MCP 相关
优先使用组织原生 MCP 或 Claude Code MCP 执行 Salesforce 查询和记录操作,并在 MCP 不可用或失败时回退到 sf CLI。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill dx-pkg-post-install-configure安装后在 Claude Code 中输入/dx-pkg-post-install-configure确认已加载。
详细介绍
何时使用此技能
在为任何 Salesforce 托管软件包自动执行安装后配置时使用。此技能会读取软件包的安装后文档,发现可用的执行方法,并自动执行配置步骤,包括权限集、对象/字段权限、页面布局、Visualforce 页面访问权限和选项卡设置。
输入
- **必填:**软件包名称(例如,
LMA、FMA、work.com) - **可选:**安装后文档路径(PDF、Markdown、URL)
如果未提供文档,请让用户提供。
工作流
按顺序执行各阶段。每个阶段都必须通过后才能继续。
阶段 1:发现可用的执行方法
优先级顺序:
- Org 原生平台 MCP 服务(最高优先级——通过 Headless 360 直接访问 org)
- Claude Code 外部 MCP 服务(sf-sobject-all、sf-sobject-all-sb 等)
- sf CLI 备用方案(经过身份验证后始终可用)
步骤 1A:解析 org API 版本
动态发现 org 当前的 API 版本——切勿将版本号硬编码:
sf org display --target-org <alias> --json
从 JSON 响应中读取 result.apiVersion(例如,"67.0")。保存此值,并在所有后续 REST 路径中将其用作 v<apiVersion>。如果命令失败,则回退到此技能元数据中声明的 minApiVersion(67.0)。
步骤 1B:检查 Org 原生平台 MCP 服务
查询 Tooling API,以检查 MCP 服务是否可用:
sf api request rest "/services/data/v<apiVersion>/tooling/query?q=SELECT+Id,DeveloperName,MasterLabel+FROM+McpServerAccess" --target-org <alias>
步骤 1C:确定执行方法
检查有哪些 Claude Code MCP 工具可用且已完成身份验证。
按 org 类型划分的 MCP 工具前缀:
| Org 类型 | 工具前缀 |
|---|---|
| 生产环境 | mcp__sf-sobject-all__ |
| 沙盒 | mcp__sf-sobject-all-sb__ |
| Falcon Test (pc-rnd) | mcp__sf-sobject-all-falcon__ |
如果 MCP 需要身份验证,请调用身份验证工具。如果身份验证失败,则回退到 sf CLI。
阶段 2:验证身份验证状态和 org 身份
- 运行轻量级测试查询(
SELECT Id, Name, IsSandbox FROM Organization) - 如果 MCP 身份验证失败,则自动回退到 sf CLI
- 显示 org 信息,并在继续之前请用户确认
阶段 3:验证软件包是否已安装
- 确定软件包命名空间(如果未知,请询问用户)
- 通过 Tooling API(
InstalledSubscriberPackage)进行检查——切勿使用PackageLicense - 如果找不到软件包,则停止并告知用户
阶段 4:读取并解析安装后文档
阅读用户提供的文档,并提取独立的配置步骤。
**支持的格式:**PDF、Markdown、URL(通过 WebFetch)、粘贴的文本。
解析方法:
- 提取文档中的每个编号或项目符号步骤
- 在继续之前,将提取的步骤展示给用户验证
阶段 5:对步骤分类并交互式审核计划
将从文档中提取的每个步骤分类为自动化或手动。
自动化能力参考
通过 MCP(sobject-all)或 sf CLI CRUD:
- 对任何标准或自定义对象执行记录 CRUD 操作(PermissionSet、ObjectPermissions、 FieldPermissions、SetupEntityAccess、PermissionSetTabSetting、PermissionSetAssignment 等)
通过 Metadata API 检索/部署(sf CLI):
- 页面布局修改(添加相关列表、字段、分区)
- 配置文件设置
- 自定义元数据类型记录
通过 sf CLI Tooling API:
- Tooling 查询(InstalledSubscriberPackage、ApexPage、ApexClass 等)
- 任何可通过 REST 访问的 Tooling 操作
手动(无 API 路径——需要使用 Setup UI):
- REST 未公开的系统权限
- 已连接应用的 OAuth 配置
- Environment Hub 关联
交互式审批
展示分类后的计划,并让用户选择:
- “全部批准”——按计划执行所有步骤
- “由我选择”——选择要批准或跳过的步骤
- “我有问题”——在决定之前讨论具体步骤
阶段 6:执行已批准的步骤
对每个已批准的步骤,使用已确定的执行方法。
执行方式参考
| 操作 | 通过 MCP | 通过 sf CLI |
|---|---|---|
| SOQL 查询 | soqlQuery 工具 | sf data query --query "<SOQL>" --target-org <alias> --json |
| 创建记录 | createSobjectRecord 工具 | sf data create record --sobject <Object> --values "..." --target-org <alias> --json |
| 更新记录 | updateSobjectRecord 工具 | sf data update record --sobject <Object> --record-id <id> --values "..." --target-org <alias> --json |
| 描述对象 | getObjectSchema 工具 | sf api request rest "/services/data/v<apiVersion>/sobjects/<Object>/describe" --target-org <alias> |
| 页面布局 | 不适用 | Metadata API 检索/部署 |
通过 Metadata API 修改页面布局
使用 sf project retrieve start → 编辑布局 XML → sf project deploy start。
执行规则
- 幂等性: 创建任何记录前,先查询以检查记录是否已存在。如果已存在,则跳过。
- 每步后报告: 显示成功数量、跳过的项目及原因。
- 自动回退: 如果 MCP 在执行过程中失败,则通过 sf CLI 重试。
- 失败时: 报告错误,并询问用户是重试、跳过还是停止。
第 7 阶段:指导手动步骤(如有)
如果有任何步骤无法自动完成,请逐一提供对应的 Setup 导航说明。 等待用户确认后再继续下一步。
第 8 阶段:总结
显示最终总结,包括逐步状态、使用的方法以及所有跳过的项目。
错误处理
- 执行过程中认证失败: 停止执行,要求用户重新认证,并提供恢复执行的选项
- 记录重复错误: 视为“已配置”,跳过并继续
- 权限错误: 报告缺少的权限,并建议解决方法
- 未知步骤类型: 请用户说明情况,并提供将其标记为手动步骤的选项
备注
- 优先级:组织原生 MCP > Claude Code MCP > sf CLI > 手动
- 对于所有 CRUD 和 Tooling API 操作,sf CLI 始终是有效的回退方式
- 通过 Metadata API 检索/部署自动修改页面布局
- 修改前始终验证组织身份
- 所有操作均遵循已认证用户的权限