dx-devops-project-manage について
Salesforce DevOps Center プロジェクトの一覧表示、作成、更新を行うスキルです。`sf devops project` CLI とスクリプトで名前解決や重複を避けた作成を行い、後続の作業項目やパイプライン向けにプロジェクト ID を返します。
主な機能
- 01DevOps Center プロジェクトの一覧表示
- 02重複を避けたプロジェクト作成
- 03名前、説明、有効状態の更新
- 04プロジェクト名から ID を解決
- 05CLI 出力の JSON 処理
活用シーン
- 01対象組織のプロジェクトと ID の確認
- 02後続のリリース作業用プロジェクトの作成
- 03プロジェクト名から ID への解決
- 04説明または有効状態の変更
MCP 対応
このスキルはプロジェクト一覧に MCP ツールを使いません。一覧、作成、更新は `sf devops project` CLI とスクリプトで行います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill dx-devops-project-manageインストール後、Claude Code で/dx-devops-project-manageを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
examples/common-workflows.mdreferences/cli-commands.mdscripts/create-project.shlist-projects.shupdate-project.sh詳細
DevOps Center プロジェクト管理
既存のプロジェクトの一覧表示から、プロジェクトの作成、設定の更新まで、DevOps Center のプロジェクトライフサイクル全体を管理します。自律型リリースワークフロー向けに、ヘッドレスで CLI 駆動の操作を提供します。
範囲
- 対象範囲:DevOps Center プロジェクトの一覧表示、新しいプロジェクトの作成、プロジェクトのフィールド(名前、説明)の更新、後続のスキルで使用するためのプロジェクト名から ID への解決
- 対象外:作業項目のライフサイクル、パイプラインの作成/設定、昇格/デプロイ、競合の検出(別のスキルで対応)
必要な入力
処理を進める前に、次の情報を収集または推定します。
- 操作の種類:list、create、update
- 対象の組織:
target-orgの設定変数がすでに設定されている場合(sf config get target-org)を除き、すべてのコマンドで--target-org <alias>が必須です - 一覧表示の場合:他に必須の入力はありません(組織内のすべてのプロジェクトを一覧表示します)。任意で名前による絞り込みが可能です
- 作成の場合:プロジェクト名(必須)、説明(任意)
- 更新の場合:プロジェクト ID(必須)、更新するフィールド — 名前、説明、アクティブ状態のいずれか 1 つ以上
指定がない場合のデフォルト:
- 出力形式:ヘッドレスでの利用には
--json - プロジェクト識別子:ユーザーが更新対象のプロジェクト名を指定した場合は、まず
sf devops project list --target-org <alias> --jsonでプロジェクト ID に解決します
ユーザーの依頼が明確な場合(「すべてのプロジェクトを一覧表示」「Release Alpha という名前のプロジェクトを作成」「プロジェクト X の名前を Y に変更」など)は、不要な質問をせずにすぐに処理を進めます。
ワークフロー
すべての操作で、構造化された出力を取得するために --json を指定して sf devops project CLI コマンドを使用します。
フェーズ 1 — 操作の特定
- ユーザーの意図から操作の種類を判断します。
- 「list」「show」「find」「what projects」「get project ID」などのキーワード → 一覧表示操作
- 「create」「new」「set up」「initialize」などのキーワード → 作成操作
- 「update」「change」「rename」「modify」「edit」などのキーワード → 更新操作
フェーズ 2 — 操作の実行
-
認証済みの組織を確認してから、対象となる組織が操作対象と同じであることを確認します。
# When a specific org is requested, check that alias (do NOT rely on the default org): sf org display --target-org <alias> --json # Only when no alias is supplied and a default org is expected: sf org display --json- 指定された組織が認証されていない場合、または認証の有効期限が切れている場合は、次のコマンドを実行するようユーザーに案内します。
sf org login web --alias <alias> - プロジェクトの一覧表示を試みて、認証済みの組織で DevOps Center が有効になっていることを確認します。
target-org設定変数が設定されていない限り、すべてのsf devops projectコマンドで--target-org <alias>が必須です(sf config get target-orgで確認します)。特定の組織を対象とする場合は、すべてのコマンドに--target-org <alias>を追加します。対象を指定した操作で、既定の組織を要求したりリセットしたりしてはなりません。
決定的なプロジェクト一覧の解析、空の一覧の処理、名前から ID への解決、冪等な作成、および更新は、
scripts/内のスクリプトが処理します。各スクリプトは、エラー時に実行可能な対処方法を含むメッセージを出してゼロ以外の終了コードで終了します。target-org設定変数が設定されていない場合は、組織のエイリアスを末尾の引数または--target-org引数として渡します。既定の組織を使用する場合は省略します。スクリプトは、信頼できる.result.projects[]リストのエンベロープを読み取ります。 - 指定された組織が認証されていない場合、または認証の有効期限が切れている場合は、次のコマンドを実行するようユーザーに案内します。
-
プロジェクトの一覧表示 — ユーザーが既存のプロジェクトを確認するか、プロジェクト名を ID に解決したい場合:
sf devops project listCLI(scripts/list-projects.sh経由)を使用します。MCP/メタデータツール(例:list_devops_center_projectsツール)で代用してはなりません。sf devops projectCLI は、サポートされ検証可能な唯一の方法です。他のツールはこのスキルを迂回するため、操作の要件を満たしません。- すべてのプロジェクトを一覧表示するには、
scripts/list-projects.sh [target-org]を実行し、返されたエラーを報告します。出力はタブ区切りのId Name Descriptionで、1 行につき 1 プロジェクトです。NO_PROJECTSの 1 行だけが返された場合、該当するプロジェクトはありません。 - 特定のプロジェクト名を ID に解決するには、
scripts/list-projects.sh --resolve "<project-name>" [target-org]を実行し、返されたエラーを報告します(終了コード 3 は該当するプロジェクトがないことを示します)。
-
プロジェクトの作成 — ユーザーが新しいプロジェクトを作成したい場合:
scripts/create-project.sh "<name>" "<description>" [target-org]を実行し、返されたエラーを報告します。説明引数は省略可能です。- このスクリプトは冪等です。同じ名前のプロジェクトがすでに存在する場合は
EXISTING <id>を出力し、新しいプロジェクトの作成と検証が完了した場合はCREATED <id>を出力します。後続の操作(作業項目、パイプライン)に備えて、返された ID を記録します。
-
プロジェクトの更新 — ユーザーが名前、説明、または有効状態を変更したい場合:
scripts/update-project.sh --project (<id>|name:<name>) [--name "<new-name>"] [--description "<new-desc>"] [--is-active|--no-is-active] [--target-org <alias>]を実行し、返されたエラーを報告します。- 名前で更新するには
--project name:<name>を渡します(スクリプトが ID に解決します)。既知の ID で更新するには--project <id>を渡します。 --name、--description、または--is-active/--no-is-activeのいずれかを指定する必要があります(スクリプトがこれを検証します)。有効にするには--is-active、無効にするには--no-is-activeを使用します。- 成功すると、スクリプトは
UPDATED <id>を出力します。
フェーズ 3 — 結果の報告
- 結果の報告(スクリプトですでに成功を決定的に検証済みです。出力をユーザーに報告します):
- 一覧表示:プロジェクト ID、名前、説明がわかるよう、読みやすい形式でプロジェクトを提示します。
NO_PROJECTSが返された場合は、DevOps Center プロジェクトが見つからなかったことを伝えます。名前から ID への解決の場合は、ID を返します。 - 作成:プロジェクト ID を返し、「プロジェクトが正常に作成されました。作業項目とパイプラインにはこのプロジェクト ID を使用してください:。」と確認します。スクリプトが
EXISTING <id>を返した場合は、プロジェクトがすでに存在していたことを伝え、その ID を返します。 - 更新:変更したフィールドを確認します(例:「プロジェクト名を『Platform Core』に更新しました。」または「プロジェクトを無効にしました。」)。
- 一覧表示:プロジェクト ID、名前、説明がわかるよう、読みやすい形式でプロジェクトを提示します。
ルール/制約
| 制約 | 理由 |
|---|---|
常に sf devops project CLI を使用する | 一覧表示/作成/更新は必ず scripts/ 経由で sf devops project を使用してください。salesforce_dx MCP ツールやメタデータクエリは、このスキルを迂回して操作に失敗するため、使用しないでください |
すべての sf devops コマンドで --json フラグを使用する | ヘッドレス環境での利用には構造化された出力が必要です。人間が読みやすい形式の出力は、解析の信頼性がありません |
config var が設定されていない場合は --target-org が必須 | target-org config var がすでに設定されている場合を除き、すべての sf devops project コマンドで --target-org <alias> が必要です |
| 更新には Project ID が必要 | --project-id(-i)を使用します。ユーザーが名前を指定した場合は、sf devops project list --target-org <alias> --json で名前から ID を解決します |
作成には --name が必須 | 名前なしでプロジェクトを作成することはできません |
| 更新フィールドが少なくとも 1 つ必要 | --name、--description、--is-active のいずれも指定しない場合、更新コマンドは失敗します |
有効化には --is-active/--no-is-active を使用する | --is-active で有効化し、--no-is-active で無効化します。値は渡さないでください |
| 作成操作は冪等にする | 重複を作成する前に、同じ名前のプロジェクトがすでに存在するか確認します |
| 対話型プロンプトは使用しない | スキルはヘッドレス環境で実行されます。すべての入力は CLI フラグで渡す必要があります |
| プロジェクトは作業項目とパイプラインの前提条件 | 後続のスキル(work-item-manage、pipeline-manage)では、このスキルが返すプロジェクト ID が必要です |
注意事項
| 問題 | 解決方法 |
|---|---|
| デフォルトの org が設定されていない | まず sf org display --json を実行します。失敗した場合は、sf org login web --set-default を実行するようユーザーに案内します |
| ユーザーがプロジェクトを ID ではなく名前で指定した(更新時) | scripts/list-projects.sh --resolve "<name>" [target-org] で解決するか、scripts/update-project.sh に --project name:<name> を渡します(内部で解決されます) |
| MCP の一覧表示ツールを使いたくなる | salesforce_dx MCP ツール(例:list_devops_center_projects)が利用可能な場合がありますが、使用するとこのスキルと sf devops project list CLI を迂回します。一覧表示には必ず scripts/list-projects.sh を使用してください |
| DevOps Center が有効になっていない | sf devops project list がエラーになる場合、org に DevOps Center がありません。Setup → DevOps Center でプロビジョニングするようユーザーに案内します |
| プロジェクトが見つからない(更新時) | ユーザーが無効なプロジェクト ID を指定しています。scripts/list-projects.sh [target-org] を実行して、利用可能なプロジェクトを表示します |
| 一覧のエンベロープが異なる | project list はレコードを .result.projects[] の下に返します(Id/Name/Description は大文字始まり)。.result[] ではありません。スクリプトはすでに正しいパスを使用しています |
| プロジェクト名が重複している | 冪等な作成チェックで検出できるはずです。重複を作成せず、既存のプロジェクト ID を返します |
| プロジェクト一覧が空 | まだプロジェクトがありません。作業項目やパイプラインを設定する前に、プロジェクトを作成するようユーザーに案内します |
| 更新フィールドがない | --name、--description、--is-active のいずれも指定しない場合、更新は失敗します。少なくとも 1 つを渡してください |
デフォルトの org がなく、--target-org もない | コマンドは NoOrgFound/target-org がないというエラーで失敗します。--target-org <alias> または sf config set target-org <alias> を設定します |
| 有効化/無効化で値を渡している | --is-active はブール値フラグです。--is-active または --no-is-active を使用し、--is-active true は使用しないでください |
出力に関する想定
成果物は操作によって異なります。
- 一覧表示:
scripts/list-projects.shによる、タブ区切りのId Name Description行(またはNO_PROJECTS) - 作成:
scripts/create-project.shによるEXISTING <id>またはCREATED <id> - 更新:
scripts/update-project.shによるUPDATED <id>
出力は scripts/ ヘルパー経由で sf devops project CLI から取得されます。ヘルパーは信頼できる .result.projects[] の一覧エンベロープを読み取ります。
検証チェックリスト
ユーザーに結果を報告する前に:
共通チェック
-
sf org display --jsonで組織の認証を確認しましたか? - スクリプトに
--target-org <alias>を指定しましたか(またはtarget-org設定変数が設定済みであることを確認しましたか)? - 実行したスクリプトは 0 で終了しましたか?(0 以外の終了コードは操作の失敗を意味します。スクリプトのエラーメッセージを報告してください。)
一覧表示操作のチェック
- プロジェクトの ID、名前、説明が表示されていますか?
- スクリプトが
NO_PROJECTSを返した場合、そのことをユーザーに伝えましたか? - 名前から ID を解決する場合、ID を返しましたか(または終了コード 3 で「見つかりませんでした」と示しましたか)?
作成操作のチェック
- スクリプトは
CREATED <id>またはEXISTING <id>を返し、ID を報告しましたか?
更新操作のチェック
- プロジェクトを
--project <id>または--project name:<name>で指定しましたか? - 更新フィールド(名前、説明、または
--is-active/--no-is-active)を少なくとも 1 つ指定しましたか? - スクリプトは
UPDATED <id>を返しましたか?
スキル間の連携
| 条件 | 委任先 |
|---|---|
| ユーザーがプロジェクト内の作業項目の作成、一覧表示、または更新を希望する場合 | dx-devops-work-item-manage(このスキルが返したプロジェクト ID を渡してください) |
| ユーザーがプロジェクト用のパイプラインの作成または設定を希望する場合 | dx-devops-pipeline-manage |
| ユーザーが変更のプロモーションまたはデプロイを希望する場合 | dx-devops-promote |
このスキルは通常、DevOps Center ワークフローで最初に実行されます。このスキルが返すプロジェクト ID が、作業項目スキルとパイプラインスキルの開始点になります。
参照ファイル一覧
| ファイル | 読み込み/実行するタイミング |
|---|---|
scripts/list-projects.sh | ワークフローのステップ 3 — すべてのプロジェクトの一覧表示、またはプロジェクト名から ID への解決(--resolve)。リストが空の場合にも対応します |
scripts/create-project.sh | ワークフローのステップ 4 — プロジェクトを冪等に作成し、再読み込みによって検証します |
scripts/update-project.sh | ワークフローのステップ 5 — ID または名前で名前、説明、アクティブ状態を更新します |
references/cli-commands.md | CLI フラグの詳細なドキュメント、JSON 出力スキーマ、またはエラー処理パターンが必要な場合 |
examples/common-workflows.md | ユーザーのリクエストが一般的なパターン(名前の解決、冪等な作成、ワークフローの開始点としてのプロジェクト設定)に該当する場合 |