关于 platform-deploy-validate
用于 Salesforce 项目的部署前验证,按目标组织类型选择沙箱干运行或生产验证。生产验证会保存可供 platform-quick-deploy 使用的作业 ID,并提供失败分类指引。
主要功能
- 01按组织类型选择验证流程
- 02沙箱与临时组织干运行
- 03生产环境运行测试验证
- 04保存验证作业 ID 供快速部署
- 05归纳组件和测试失败
适用场景
- 01部署到生产环境前验证元数据
- 02在沙箱中检查部署范围而不修改组织
- 03分析部署验证中的组件或测试错误
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill platform-deploy-validate安装后在 Claude Code 中输入/platform-deploy-validate确认已加载。
详细介绍
验证部署
部署元数据前,请运行服务端验证。验证会显示错误,但不会修改组织;对于生产环境目标,还会生成一个可用于 platform-quick-deploy 的作业 ID,以便快速部署且无需运行测试。
功能解析
始终优先使用 sf project deploy validate(生产环境)或 sf project deploy start --dry-run(沙盒/临时环境),而不是直接调用 Tooling API。
工作流
步骤 1 — 确认目标组织
使用 gate 的分类器对组织进行分类——它是权威事实来源,并以与部署钩子相同的方式解析组织(可处理沙盒/临时环境标记、试用版和 Developer Edition 组织(包括 SDO),并将没有上述信号的 Dev Hub 视为生产环境;返回值为 production|sandbox|scratch|trial|unknown):
"${CLAUDE_PLUGIN_ROOT}/scripts/sf-deploy-gate" bucket <alias>
只有 production 才走生产环境路径(步骤 2b);其他所有结果都走沙盒/临时环境路径(步骤 2a)。unknown 表示无法确认组织类型(通常是组织记录不完整)。请明确说明:部署门仍会允许部署,该组织的保存时自动部署会保持关闭,使用 sf org login web 重新进行身份验证通常可以恢复分类结果。
步骤 2a — 沙盒/临时环境路径(试运行)
sf project deploy start --dry-run --target-org <alias> --json [scope flags]
范围标志(仅使用其中一个,不要全部使用):
--source-dir <path>— 部署一个目录--metadata <Type:Name>— 部署指定组件--manifest manifest/package.xml— 从清单部署
默认测试级别:沙盒环境下省略 --test-level(采用组织默认值)。仅在用户提出要求时添加 --test-level RunLocalTests。
反馈内容:成功/失败、尝试部署的组件,以及任何错误。试运行不会返回作业 ID(这是预期行为)。
步骤 2b — 生产环境路径(验证)
sf project deploy validate --target-org <alias> --json [scope flags] --test-level RunLocalTests
生产环境验证必须指定测试级别。默认使用 RunLocalTests;如果用户明确列出了测试,则改用 RunSpecifiedTests --tests <ClassName>...。
响应会返回一个作业 ID(result.id),有效期为 10 天。请保存该 ID,以供 platform-quick-deploy 使用:
mkdir -p .sfdx
echo '{"jobId":"<id>","createdAt":"<iso8601>","targetOrg":"<alias>","testLevel":"RunLocalTests"}' > .sfdx/last-validation.json
反馈内容:
- 验证结果(通过/失败)
- 作业 ID 和 10 天后的到期日期
- 测试结果摘要(运行数/通过数/失败数)
- 建议的下一步:使用此作业 ID 调用
platform-quick-deploy
步骤 3 — 失败排查
如果验证失败,请解析 result.details.componentFailures 和 result.details.runTestResult.failures,并列出:
- 前 5 个组件错误及完整消息
- 前 5 个测试失败及调用栈
- 建议的修复方案(组件名称 → 可能的原因:缺少依赖项、FLS、语法错误等)
不要提出会更改无关元数据的修复方案。仅处理验证报告中指出的问题。
规则
- 每次调用 CLI 时都必须使用
--json - 面向 Production 时绝不能跳过验证(不要在此技能中对生产环境运行
sf project deploy start) - 验证期间绝不能使用
--ignore-errors或--ignore-warnings;这些标志仅适用于实际部署,不适用于验证 - 如果用户要求“部署到生产环境”,但尚未进行验证,必须先运行验证,然后交由
platform-quick-deploy处理(不要对生产环境启动常规部署) - 将验证作业 ID 保存到
.sfdx/last-validation.json,以便 quick-deploy 技能找到它
输出
始终以以下内容结尾:
- ✅ 验证通过 → 指向下一步
platform-quick-deploy(附作业 ID 和到期时间),或非生产环境的platform-metadata-deploy - ❌ 验证失败 → 分类列出错误并建议下一轮处理方式