mcpField
D
deploying-metadata

deploying-metadata

github.com/forcedotcom云与 DevOps1.1k3.0k 次安装1 天前更新
代码仓库

关于 deploying-metadata

deploying-metadata 是面向 Salesforce 团队的 DevOps 技能,用于规划和管理元数据部署,涵盖先验证再发布、范围控制、依赖排序、故障排查及基于 sf CLI v2 的 CI/CD 指导。

主要功能

  1. 01Dry-run 验证流程
  2. 02按范围或清单部署
  3. 03元数据依赖排序
  4. 04部署故障排查
  5. 05CI/CD 与测试级别指导
  6. 06部署后验证

适用场景

  1. 01发布前验证元数据变更
  2. 02规划有依赖关系的元数据部署
  3. 03调查部署错误
  4. 04设计 Salesforce CI/CD 发布门禁

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/forcedotcom/sf-skills --skill deploying-metadata

安装后在 Claude Code 中输入/deploying-metadata确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CREDITS.md
README.md
assets/
destructiveChanges.xml
package.xml
references/
agent-deployment-guide.md
deploy.sh
deployment-report-template.md
deployment-workflows.md
orchestration.md
trigger-deployment-safety.md

详细介绍

deploying-metadata:全面的 Salesforce DevOps 自动化

当用户需要部署编排时使用此技能:包括试运行验证、定向部署或基于清单的部署、CI/CD 工作流建议、临时组织管理、失败排查,或 Salesforce 元数据的安全发布顺序。

此技能适用的任务

以下工作请使用 deploying-metadata:

  • sf project deploy start、quick、report 或检索工作流
  • 跨对象、权限集、Apex 和 Flow 的发布排序
  • CI/CD 门禁、测试级别选择或部署报告
  • 排查部署失败和依赖项顺序问题

以下情况请委派给其他技能:


关键操作规则

  • 仅使用 sf CLI v2。
  • 对于不支持源跟踪的组织,部署/检索命令必须明确指定范围,例如 --source-dir、--metadata 或 --manifest。
  • 执行实际部署前,优先先使用 --dry-run。
  • 对于 Flow,应安全部署,并在验证后再激活。
  • 元数据通过验证或部署后,有关创建测试数据的指导应委派给 handling-sf-data。
默认部署顺序
阶段元数据
1自定义对象/字段
2权限集
3Apex
4Flow(草稿状态)
5Flow 激活/部署后验证

此顺序可以避免许多依赖项和 FLS 失败。


首先收集必要信息

询问或推断:

  • 目标组织别名和环境类型
  • 部署范围:source-dir、元数据列表或清单
  • 此次操作是仅验证、部署、快速部署、检索,还是提供 CI/CD 指导
  • 所需测试级别和回滚预期
  • 是否涉及特殊元数据类型(Flow、权限集、Agent、包)

部署前检查:

sf --version
sf org list
sf org display --target-org <alias> --json
test -f sfdx-project.json

建议工作流

1. 部署前检查

确认身份验证、代码库结构、包目录和目标范围。

2. 先验证
sf project deploy start --dry-run --source-dir force-app --target-org <alias> --wait 30 --json

变更集范围明确时,使用限定清单或元数据范围的验证方式。

3. 验证成功后,提供下一步安全工作流

验证成功后,引导用户执行正确的下一步操作:

  1. 立即部署
  2. 分配权限集
  3. 通过 handling-sf-data 创建测试数据
  4. 运行测试/冒烟检查
  5. 按顺序编排多个部署后步骤
4. 部署正确且最小的范围
# source-dir deploy
sf project deploy start --source-dir force-app --target-org <alias> --wait 30 --json

# manifest deploy
sf project deploy start --manifest manifest/package.xml --target-org <alias> --test-level RunLocalTests --wait 30 --json

# manifest deploy with Spring '26 relevant-test selection
sf project deploy start --manifest manifest/package.xml --target-org <alias> --test-level RunRelevantTests --wait 30 --json

# quick deploy after successful validation
sf project deploy quick --job-id <validation-job-id> --target-org <alias> --json
5. 验证
sf project deploy report --job-id <job-id> --target-org <alias> --json

然后验证测试结果、Flow 状态、权限分配和冒烟测试行为。

6. 清晰报告

总结已部署的内容、失败的内容、跳过的内容,以及下一步安全操作。

输出模板:references/deployment-report-template.md


高信号故障模式

错误 / 症状可能原因默认修复方向
FIELD_CUSTOM_VALIDATION_EXCEPTION验证规则或测试数据不正确调整数据或规则执行时机
INVALID_CROSS_REFERENCE_KEY缺少依赖项先包含被引用的元数据
CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY触发器 / Flow / 验证规则产生副作用检查自动化堆栈和出错逻辑
部署期间测试失败代码有问题或测试脆弱运行针对性测试,修复根本原因并重新验证
权限集未找到字段 / 对象顺序错误在权限集之前部署对象 / 字段
Flow 无效 / 版本冲突依赖项或激活问题以草稿状态部署,验证后再激活

完整工作流:references/orchestration.md、references/trigger-deployment-safety.md


CI/CD 指南

默认流水线结构:

  1. 身份验证
  2. 验证仓库 / 组织状态
  3. 静态分析
  4. 试运行部署
  5. 测试 + 覆盖率门槛
  6. 部署
  7. 验证 + 通知
  • 在组织策略和发布风险允许时,可考虑在以 Apex 为主的部署中使用 --test-level RunRelevantTests。
  • 同时使用现代 Apex 测试注解,例如 @IsTest(testFor=...) 和 @IsTest(isCritical=true) — 编写指南请参阅 generating-apex。

静态分析现使用 Code Analyzer v5(sf code-analyzer),而非已停用的 sf scanner。

深入参考:references/deployment-workflows.md


Agentforce 部署说明

使用此技能协调 Agent 周边的部署 / 发布顺序,但编写方面的决策请使用 Agent 专属技能:

有关完整的 Agent DevOps 详情,包括 Agent: 伪元数据、发布 / 激活以及组织间同步,请参阅:


跨技能集成

需求委派给原因
创建自定义对象generating-custom-object在部署前定义对象
创建自定义字段generating-custom-field在部署前定义字段
Apex 编写 / 修复generating-apex编写和修复代码
创建 / 修复 Flowgenerating-flowFlow 编写和激活指南
测试数据或种子记录handling-sf-data先描述再设置数据,并进行清理
Agent 编写和发布就绪检查developing-agentforce确保 Agent 专属内容正确

参考索引

从这里开始
专项部署安全
资源模板

评分指南

分数含义
90+部署计划和执行指南完善
75–89部署指南良好,仅有少量待审核事项
60–74部分覆盖部署风险
< 60信心不足;推广前应完善计划

完成格式

Deployment goal: <validate / deploy / retrieve / pipeline>
Target org: <alias>
Scope: <source-dir / metadata / manifest>
Result: <passed / failed / partial>
Key findings: <errors, ordering, tests, skipped items>
Next step: <safe follow-up action>

评论

支持 Markdown