platform-environment-validate について
Salesforce 開発の前提条件を確認し、対応可能なセットアップ状況を報告するオンデマンドスキルです。CLI、ランタイム、Git、MCP の設定と接続、ソーストラッキングを確認し、選択した修正を案内します。
主な機能
- 01Salesforce CLI と Code Analyzer の確認
- 02Node.js、NPM、Git の検証
- 03MCP 設定とエンドポイント状態の報告
- 04ソーストラッキングの確認
- 05承認されたインストールと更新の案内
活用シーン
- 01ローカル Salesforce 開発環境の評価
- 02不足または古いツールの診断
- 03Salesforce MCP の設定と接続の確認
- 04開発前に環境修正項目を選択
MCP 対応
Salesforce MCP の設定とエンドポイント接続を別々に確認し、プロセスの稼働状態は `/mcp` または `/doctor` で確認するよう案内します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill platform-environment-validateインストール後、Claude Code で/platform-environment-validateを入力して読み込まれたか確認します。
詳細
検証:Salesforce 開発環境
必須の前提条件をすべて検証し、明確で実行可能なステータスレポートを表示します。このスキルはオンデマンドで実行され、セッション開始時に自動実行されることはありません。ローカル環境の確認や修復を行うには、明示的に実行してください。
フェーズ 1:前提条件のスキャン
ツールチェックを実行します。
${CLAUDE_PLUGIN_ROOT}/scripts/sf-context check-tools
出力は、tools 配列を含む JSON オブジェクトです(重大な失敗がある場合は diagnostic ブロックも含まれます)。
バナーは自動的に表示されます。再現しないでください。 check-tools の実行時、プラグインは表示チャネルに枠付きの 「Salesforce の開発を始める準備はできていますか?」 バナーを決定論的に表示します。各ツールのステータス行、フッターの判定、案内フッターが含まれ、SessionStart バナーとまったく同じ形式です。これはTier-1 サーフェスです。JSON は内容を把握するために読み取りますが、バナーを再現、描画、または再レンダリングしてはいけません。結果がユーザーにとって何を意味するのかを短く説明してから、フェーズ 2 に進んでください。
表示されるバナーは次のようになります(例示です。各行のバージョン/メッセージテキストは JSON からそのまま取得されます。🟢 の場合は version、🟡/🔴 の場合は message と修正のヒント、ℹ️ の場合は注記です。以下の値はスタイルを示すもので、固定文字列ではありません)。
──────────────────────────────────────────────────────────────
Ready to build on Salesforce? checking your toolchain…
──────────────────────────────────────────────────────────────
🟢 Salesforce CLI v2.144.6
🟢 Code Analyzer v5.14.0 · JIT, auto-installs on first use
🟢 Node.js v22.11.0 LTS
🟢 NPM v10.9.0
🟢 Git v2.50.1
🟢 Salesforce MCP (config) .mcp.json + proxy present
🟢 Salesforce MCP (endpoint) org instance reachable
ℹ️ Salesforce MCP (process) confirm with /mcp or /doctor
🟢 Source Tracking enabled
──────────────────────────────────────────────────────────────
✓ toolchain ready (skill: platform-environment-validate)
各行のステータスドットは状態を示します。🔴 critical(未導入または最小要件未満。Salesforce 開発を続行できません)、🟡 warn(導入済みですが古い、非 LTS、または設定に問題があります)、🟢 ok、ℹ️ info(MCP プロセスの状態など、自動検証できない補足情報)です。枠付きフッターには判定と、最も関連性の高い次の手順が 1 つ表示されます。結果の短い説明を書く際は、各ツールの正しい状態を示す情報源である JSON の status フィールドを使用してください。
バナーが表示されなかった場合(古い Claude Code ビルド、または描画のフォールバック時)は、JSON から手作業でバナーを描画してはいけません。代わりに、次の決定論的レンダラーで表示してください。
${CLAUDE_PLUGIN_ROOT}/scripts/sf-context readiness-banner
これは check-tools が記録した同じスキャン結果を読み取り、同一の枠付きバナーを表示します。行の順序、フッターの判定、「ここではコマンドを暗記する必要はありません」という案内フッターと次の手順を含み、順序、余白、件数、次の手順の選択はスクリプトが一度だけ決定します。手作業で再導出する必要はありません。check-tools の JSON は、引き続き信頼できる機械可読な結果です。
決定論的な結果を変更しないでください。失敗を覆してはいけません。 JSON レポートは、信頼できる機械可読な結果です。ツールが 🔴/🟡 と報告した場合は、そのまま報告してください。別の方法(PowerShell、シェルでの直接確認、別のコマンド)でツールを再実行し、🟢 だったと報告してはいけません。フォールバックでツールが見つかったとしても、決定論的なチェックに合格したことにはなりません。同じ check-tools チェックに合格するまで、失敗は失敗のままです。レポートに diagnostic ブロックが含まれる場合(重大な失敗があると付加されます)は、その内容をユーザーに伝えてください。これには、プラットフォーム、アクティブなシェル、作業ディレクトリ、プラグインのルート、解決された実行可能ファイルのパスが含まれ、ツールが解決されなかった理由(例:Windows の sf.cmd が PATH にない)をすばやく把握できます。診断情報には設計上、秘密情報は含まれません。トークンや組織認証情報を追加してはいけません。
MCP は互いに独立した 3 つの行で報告されます。相互に推測してはいけません。
Salesforce MCP (config)(.mcp.json と sf-mcp-proxy.bundled.js が存在するか)、
Salesforce MCP (endpoint)(プラットフォームのエンドポイントに到達できるか)、
Salesforce MCP (process)(MCP プロセスが実際に正常か)です。プロセスの行は、警告ではなく ℹ️ 情報として報告されます。このスクリプトからは Claude Code が管理する MCP サブプロセスを確認できないため、設定/エンドポイントが緑でも、MCP が動作していると報告してはいけません。/mcp または /doctor でプロセスの状態を確認してください。エンドポイントの行では、プラットフォームの MCP エンドポイント自体ではなく、接続性の確認用として組織のインスタンス URLをプローブします。
チェック対象のツール
| ツール | 最低要件 | 確認方法 |
|---|---|---|
| Salesforce CLI | インストール済みで、最新リリースであること | sf --version(更新がある場合は 🟡) |
| Code Analyzer プラグイン | インストール済み または JIT 登録済み | sf plugins inspect @salesforce/plugin-code-analyzer。失敗した場合は、CLI の oclif.jitPlugins レジストリを確認 |
| Node.js | >= 18(偶数バージョン/LTS) | node --version |
| NPM | >= 3.10 | npm --version |
| Git | インストール済みであること | git --version |
| Salesforce MCP(設定) | .mcp.json が設定済みで、プロキシバンドルが存在すること | プラグインのルートにある .mcp.json を確認し、sf-mcp-proxy.bundled.js の存在を確認 |
| Salesforce MCP(エンドポイント) | 組織のインスタンス URL に到達できること(接続プロキシ) | 組織のインスタンス URL に HTTP プローブを実行 |
| Salesforce MCP(プロセス) | ℹ️ 情報提供のみ — ここでは検証できません | /mcp または /doctor で確認 |
| ソーストラッキング | 接続先の組織で有効であること | sf project deploy preview |
すべての外部ツール(sf、npm、node、git)は、単一のクロスプラットフォームリゾルバーを介して起動されます。shutil.which(PATHEXT 対応)でツールを検出し、Windows の .cmd/.bat シム(sf.cmd、npm.cmd)は COMSPEC でラップした argv 配列を介して呼び出します。シェル文字列は使用しません。そのため、このスキャンと /salesforce-development:org は、Windows、macOS、Linux で sf/npm/デフォルトの組織を正しく検出できます。
Code Analyzer は JIT プラグインです — 登録済み ≠ インストール済みです。 Salesforce CLI は @salesforce/plugin-code-analyzer を「ジャストインタイム」(JIT)プラグインとして宣言しています。これは、sf code-analyzer コマンドを初めて実行したときにのみ、実際にインストールされます。そのため、それまではユーザーが完全に利用できる状態であっても、sf plugins inspect は失敗します。このチェックでは、JIT 登録済みの場合も成功として扱います。inspect でバージョンが返されない場合、CLI 独自の oclif.jitPlugins レジストリ(sf plugins --json のルートエントリーから読み取ります)を確認し、固定バージョンと初回使用時に自動インストールされる旨を示して 🟢 と報告します。インストールも JIT 登録もされていないプラグインのみが、🔴 の重大項目です。
フェーズ 2:インストール/更新
すべて緑の場合: セットアップが完了したことを確認します。ユーザーは開発を始められる状態です。
警告または重大項目がある場合: ユーザーに選択肢を提示します。
Some tools need attention. What would you like to do?
[1] Fix all items
[2] Choose which items to fix
[3] Skip for now
ユーザーが修正を希望する各ツールについて、使用している OS に適したインストール/更新コマンドを提示します。インストールコマンドを自動実行してはいけません。コマンドを表示し、実行前にユーザーの確認を求めてください。
ツール別のインストール/更新コマンド
Salesforce CLI — 未インストール:
# macOS/Linux (npm)
npm install --global @salesforce/cli
# macOS (Homebrew)
brew install sf
Salesforce CLI — 更新:
sf update
Code Analyzer プラグイン — 未インストール:
sf plugins install @salesforce/plugin-code-analyzer
Code Analyzer プラグイン — 更新:
sf plugins update @salesforce/plugin-code-analyzer
Node.js — 未インストールまたは最低バージョン未満:
# macOS (nvm — recommended, installs LTS)
nvm install --lts && nvm use --lts
# macOS (Homebrew)
brew install node
# Windows — download from https://nodejs.org (LTS version)
NPM — 更新:
npm install --global npm@latest
Git — 未インストール:
# macOS (Xcode CLT)
xcode-select --install
# macOS (Homebrew)
brew install git
# Windows — download from https://git-scm.com
ソーストラッキング — 無効:
sf org enable tracking --target-org <alias>
Salesforce MCP — 設定に問題あり: .mcp.json が存在しないか空の場合は、プラグインを再読み込みします。
/reload-plugins
重要な注意事項
- PATH を変更するツール(Node.js、SF CLI)をインストールした後、変更を反映するために、ユーザーは Claude Code を終了して再起動する必要がある場合があります。
- Source Tracking には接続済みの org が必要です。org が設定されていない場合は、まず
/salesforce-development:loginを実行するよう促してください。 - org の認証に関する問題(セッションの有効期限切れ、org の誤り、INVALID_SESSION_ID)には、このスキルではなく
/salesforce-development:loginを実行してください。 - SF CLI が古い場合は、readiness scan で 🟡 と表示されます: readiness が示すのは 最新の状態 です。CLI のキャッシュされた更新チェックで新しいリリースが報告されると、
check-toolsは Salesforce CLI を 🟢 ではなく 🟡(インストール済みだが古い)として報告し、正しい更新コマンドを表示します。以下のセッション開始時の通知とは異なり、この警告ではバージョンごとの通知抑制ゲートは無視されます。明示的な readiness scan では事実に基づく状態が常に報告されます。ただし、ハードオプトアウトのSFDX_SKIP_CLI_UPDATE_CHECK=1は引き続き適用されます。 - セッション開始時の SF CLI 更新通知: CLI が利用可能な更新を報告すると、
sf-context detectの SessionStart フックがその旨を一度通知し、エージェントに更新を提案するよう求めます(sf update、または npm グローバルインストールの場合はnpm install --global @salesforce/cli@latest)。更新を辞退した場合、または更新に失敗した場合は、バージョンごとの通知抑制ゲート(.sf/sf-cli-update-state.json)が記録され、同じバージョンについて再度通知されることはありません。ただし、新しいリリースがある場合は再度確認を求められます。チェックを完全に無効にするには、SFDX_SKIP_CLI_UPDATE_CHECK=1を設定してください。