mcpField
P
platform-environment-validate

platform-environment-validate

github.com/forcedotcom開発1.1k2.7k 回インストール1 日前に更新
リポジトリ

platform-environment-validate について

Salesforce 開発の前提条件を確認し、対応可能なセットアップ状況を報告するオンデマンドスキルです。CLI、ランタイム、Git、MCP の設定と接続、ソーストラッキングを確認し、選択した修正を案内します。

主な機能

  1. 01Salesforce CLI と Code Analyzer の確認
  2. 02Node.js、NPM、Git の検証
  3. 03MCP 設定とエンドポイント状態の報告
  4. 04ソーストラッキングの確認
  5. 05承認されたインストールと更新の案内

活用シーン

  1. 01ローカル Salesforce 開発環境の評価
  2. 02不足または古いツールの診断
  3. 03Salesforce MCP の設定と接続の確認
  4. 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.10npm --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 を設定してください。

コメント