platform-soql-query について
Salesforce の SOQL/SOSL クエリを作成、確認、最適化するスキルです。クエリ構成や選択性、安全性、Apex での利用を考慮した設計を支援します。
主な機能
- 01自然言語からのクエリ生成
- 02リレーション・集計クエリ
- 03選択性とクエリプランの分析
- 04SOQL/SOSL 構文のガイダンス
- 05性能とセキュリティの確認
活用シーン
- 01データ要件からのクエリ作成
- 02親子リレーションのクエリ選択
- 03クエリ選択性の改善
- 04Apex 内クエリの安全性確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill platform-soql-queryインストール後、Claude Code で/platform-soql-queryを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdassets/aggregate-queries.soqlbasic-queries.soqlbulkified-query-pattern.clsoptimization-patterns.soqlrelationship-queries.soqlselector-class.clsreferences/anti-patterns.mdcli-commands.mdfield-coverage-rules.mdquery-optimization.mdselector-patterns.mdsoql-reference.mdsoql-syntax-reference.mdscripts/post-tool-validate.py詳細
platform-soql-query:Salesforce SOQL クエリのエキスパート
ユーザーが SOQL/SOSL の作成または最適化 を必要としている場合に、このスキルを使用します。対象には、自然言語からのクエリ生成、リレーションクエリ、集計、クエリプランの分析、Salesforce クエリのパフォーマンスや安全性の改善が含まれます。
このスキルが担当するタスク
次の作業には platform-soql-query を使用します。
.soqlファイル- 自然言語からのクエリ生成
- リレーションクエリおよび集計クエリ
- クエリの最適化と選択性の分析
- SOQL/SOSL の構文とガバナ制限を考慮した設計
次の場合は、別のスキルに委任します。
- 一括データ操作を行う → platform-data-manage
- より広範な Apex 実装にクエリロジックを組み込む → platform-apex-generate
- クエリの形状ではなくログを使ってデバッグする → platform-apex-logs-debug
最初に収集する必須コンテキスト
次の情報を確認するか、推測します。
- 対象オブジェクト
- 必要な項目
- 絞り込み条件
- 並べ替え/上限の要件
- クエリが表示、自動化、レポートに類似した分析、Apex のどの用途に使われるか
- パフォーマンス/選択性がすでに懸念事項かどうか
推奨ワークフロー
1. 最もシンプルで正確なクエリを生成する
次を優先します。
- 必要な項目のみを指定する
- 明確な WHERE 条件を指定する
- 適切な場合は妥当な LIMIT を設定する
- 必要な範囲にとどめたリレーションの深さにする
2. 適切なクエリの形を選ぶ
| 必要なもの | デフォルトのパターン |
|---|---|
| 子から親のデータ | 子から親へのたどり |
| 親から子のレコード | サブクエリ |
| 件数/集計値 | 集計クエリ |
| 関連レコードがある/ないレコード | セミジョイン/アンチジョイン |
| オブジェクトをまたぐテキスト検索 | SOSL |
3. 選択性と安全性を最適化する
次を確認します。
- インデックス付き/選択性の高い絞り込み条件
- 不要な項目がないこと
- 回避可能なワイルドカードやスキャン負荷の高いパターンがないこと
- セキュリティ適用要件
4. 必要に応じて実行パスを検証する
ユーザーが実行時の検証を希望する場合は、実行を次に引き継ぎます。
重要度の高いルール
SELECT *のような考え方は決して使わず、必要な項目のみをクエリする- Apex のコンテキストではループ内でクエリを実行しない
- Apex で後から絞り込むのではなく、SOQL での絞り込みを優先する
- 不要なレコードを読み込む代わりに、件数やグループ化した集計には集計クエリを使う
- ワイルドカードの使用を慎重に評価する。先頭のワイルドカードはインデックスの効果を損なうことがよくあります
- クエリを Apex に組み込む場合は、セキュリティモード/項目アクセス要件を考慮する
出力形式
完了時には、次の順序で報告します。
- クエリの目的
- 最終的な SOQL/SOSL
- この形を選んだ理由
- 最適化またはセキュリティに関する注意点
- 必要に応じた実行の提案
推奨形式 — 正確な構文には references/soql-syntax-reference.md を使用します。
Query goal: <summary>
Query: <soql or sosl>
Design: <relationship / aggregate / filter choices>
Notes: <selectivity, limits, security, governor awareness>
Next step: <run in platform-data-manage or embed in Apex>
スキル間の連携
| 必要なもの | 委任先 | 理由 |
|---|---|---|
| 組織に対してクエリを実行する | platform-data-manage | 実行とエクスポート |
| サービス/セレクターにクエリを組み込む | platform-apex-generate | 実装のコンテキスト |
| ログから遅いクエリの兆候を分析する | platform-apex-logs-debug | 実行時の証拠 |
| クエリを利用する UI を接続する | experience-lwc-generate | フロントエンドとの連携 |
| テストでクエリの動作を検証する | platform-apex-test-run | クエリロジックのテストカバレッジ |
スコアガイド
| スコア | 意味 |
|---|---|
| 90+ | 本番環境向けに最適化されたクエリ |
| 80–89 | 良好なクエリ。軽微な改善の余地あり |
| 70–79 | 機能するものの、パフォーマンス上の懸念が残る |
| < 70 | 本番環境で使用する前に修正が必要 |
参考ファイル一覧
| ファイル | 読むタイミング |
|---|---|
references/soql-syntax-reference.md | 構文、演算子、日付リテラル、リレーションクエリのパターン |
references/query-optimization.md | 選択性のルール、インデックス戦略、ガバナ制限、セキュリティパターン |
references/soql-reference.md | クイックリファレンス — 演算子、日付関数、集計関数、WITH 句 |
references/anti-patterns.md | よくある SOQL の間違いと修正方法 — クエリを確定する前に必ず読んでください |
references/selector-patterns.md | Apex セレクターレイヤーのパターン — Apex クラスにクエリを埋め込む場合に読んでください |
references/field-coverage-rules.md | フィールドカバレッジの検証 — Apex コード内で使用する SOQL を生成する場合に読んでください |
references/cli-commands.md | sf CLI によるクエリ実行、一括エクスポート、クエリプランのコマンド |
assets/basic-queries.soql | よく使用されるオブジェクト向けの基本的なクエリ例 |
assets/relationship-queries.soql | 親から子および子から親へのリレーションクエリのパターン |
assets/aggregate-queries.soql | COUNT、SUM、GROUP BY、ROLLUP クエリのパターン |
assets/optimization-patterns.soql | 選択的なフィルターとインデックスを考慮したクエリのパターン |
assets/bulkified-query-pattern.cls | トリガーコンテキスト向けの Apex Map ベースの一括クエリパターン |
assets/selector-class.cls | セレクタークラスの完全な実装テンプレート |
scripts/post-tool-validate.py | 書き込み後のフック — .soql ファイルの編集後に静的 SOQL 検証とライブクエリプラン分析を実行します |
コメント
Markdown 対応