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