platform-deploy-validate について
Salesforce のメタデータをデプロイ前に検証するスキルです。対象組織に応じてドライランまたは本番検証を選び、本番検証のジョブ ID を `platform-quick-deploy` 用に保存します。
主な機能
- 01組織種別に応じた検証方法の選択
- 02Sandbox と Scratch Org のドライラン
- 03テストを伴う本番検証
- 04クイックデプロイ用ジョブ ID の保存
- 05コンポーネントとテスト失敗の整理
活用シーン
- 01本番デプロイ前のメタデータ検証
- 02組織を変更せず Sandbox のデプロイを確認
- 03検証時のコンポーネントやテストエラーの分析
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill platform-deploy-validateインストール後、Claude Code で/platform-deploy-validateを入力して読み込まれたか確認します。
詳細
デプロイの検証
メタデータをデプロイする前に、サーバー側で検証を実行します。検証では組織を変更せずにエラーを検出できます。また、本番環境を対象とする場合は、platform-quick-deploy で高速かつテストなしのデプロイに使用できるジョブ ID が生成されます。
機能の選択
Tooling API を直接使用するよりも、常に sf project deploy validate(本番環境)または sf project deploy start --dry-run(サンドボックス/スクラッチ)を優先してください。
ワークフロー
ステップ 1 — 対象組織の確認
ゲートの分類器を使って組織を分類します。分類器は信頼できる唯一の情報源であり、デプロイフックと同じ方法で組織を判定します(サンドボックス/スクラッチのマーカー、トライアル組織と 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]
スコープフラグ(すべてではなく、1 つだけ使用してください):
--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 日間です。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を使用してください - 本番環境を対象とする場合、検証を省略しないでください(このスキルから本番環境に対して
sf project deploy startを実行しないでください) - 検証時に
--ignore-errorsや--ignore-warningsを使用しないでください。これらのフラグは検証ではなく、実際のデプロイで使用します - ユーザーが事前検証なしで「本番環境にデプロイ」するよう依頼した場合、まず検証を実行し、その後
platform-quick-deployに引き継いでください(本番環境に対して通常のデプロイを開始しないでください) - クイックデプロイスキルが参照できるよう、検証ジョブ ID を
.sfdx/last-validation.jsonに保存してください
出力
必ず以下のいずれかで締めくくってください。
- ✅ 検証成功 → 次の手順として、ジョブ ID と有効期限を含む
platform-quick-deploy、または本番環境以外の場合はplatform-metadata-deployを案内します - ❌ 検証失敗 → エラーを分類して列挙し、次の修正に向けた提案を示します