次のような場合に使用: ユーザーがSOQL/SOSL(Salesforce用のデータベース問い合わせ言語)の作成や最適化が必要な時。具体的には、自然言語からの問い合わせコード生成、関連データを組み合わせた問い合わせ、データ集計、問い合わせ計画の分析や実行効率の検査、パフォーマンス向上、セキュリティ改善などが該当します。 **起動条件:** ユーザーが以下の操作を行った時に自動的に起動します: - SOQL/SOSLコードを作成・最適化・デバッグしている - `.soql`ファイルを編集している - 関連データを組み合わせた問い合わせ、データ集計、問い合わせのパフォーマンスについて質問している **起動しない条件:** 以下の場合は起動しないでください: - 大量データの一括操作(platform-data-manage を使用) - Apex DML(データベース操作の処理ロジック)(platform-apex-generate を使用) - レポートやダッシュボードの問い合わせ
Use when the user needs SOQL/SOSL authoring or optimization: natural-language-to-query generation, relationship queries, aggregates, query-plan/selectivity analysis, and performance or safety improvements. TRIGGER when the user writes, optimizes, or debugs SOQL/SOSL, touches .soql files, or asks about relationship queries, aggregates, or query performance. DO NOT TRIGGER for bulk data operations (use platform-data-manage), Apex DML logic (use platform-apex-generate), or report/dashboard queries.
次のような場合に使用: ユーザーがSOQL/SOSL(Salesforce向けのデータベース検索言語)の作成や改善を必要とするとき。自然な文言からの検索文作成、関連データの検索、集計、検索の実行計画分析、Salesforce検索のパフォーマンス・安全性向上。
platform-soql-query を使用するのは以下の作業のとき:
.soql ファイル(Salesforce検索をまとめたファイル)以下のケースは他のスキルに任せる:
以下を確認したり推測する:
方針:
| 目的 | 基本パターン |
|---|---|
| 子から親のデータを取得 | 子テーブルから親テーブルへの参照 |
| 親から子のデータ複数件を取得 | サブクエリ(埋め込み検索) |
| 件数や合計を求める | 集計検索 |
| 関連データがある/ないレコードを取得 | 内部結合・左反結合 |
| 複数のオブジェクトからテキスト検索 | SOSL |
確認項目:
ユーザーが実際に動かして確認したい場合:
SELECT *(すべての項目を取得)のような考え方は使わない。必要なデータ項目だけを指定する最後に以下の順で報告する:
推奨される記述形式 — 正確な書き方は references/soql-syntax-reference.md を参照:
検索の目的: <概要>
検索文: <soql または sosl>
設計方針: <関連データ参照・集計・絞り込みの選択理由>
注記: <効率・制限・セキュリティ・処理制限への対応>
次のステップ: <platform-data-manage で実行するか Apex に組み込むか>
| 必要な作業 | 任せるスキル | 理由 |
|---|---|---|
| 検索を実際に実行する | platform-data-manage | 実行とエクスポート |
| 検索をサービス・セレクタに組み込む | platform-apex-generate | 実装の文脈 |
| ログから遅い検索の原因を分析する | platform-apex-logs-debug | 実行時の証拠 |
| 検索データをUI(画面)につなぐ | experience-lwc-generate | フロントエンド統合 |
| スコア | 意味 |
|---|---|
| 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 コマンドラインツール での検索実行・一括エクスポート・実行計画確認 |
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 ファイルを編集したあと、静的な構文検証と実際の実行計画分析を実行 |
Use this skill when the user needs SOQL/SOSL authoring or optimization: natural-language-to-query generation, relationship queries, aggregates, query-plan analysis, and performance/safety improvements for Salesforce queries.
Use platform-soql-query when the work involves:
.soql filesDelegate elsewhere when the user is:
Ask for or infer:
Prefer:
| Need | Default pattern |
|---|---|
| parent data from child | child-to-parent traversal |
| child rows from parent | subquery |
| counts / rollups | aggregate query |
| records with / without related rows | semi-join / anti-join |
| text search across objects | SOSL |
Check:
If the user wants runtime verification, hand off execution to:
SELECT * style thinking; query only required fieldsWhen finishing, report in this order:
Suggested shape — use references/soql-syntax-reference.md for exact syntax:
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>
| Need | Delegate to | Reason |
|---|---|---|
| run the query against an org | platform-data-manage | execution and export |
| embed the query in services/selectors | platform-apex-generate | implementation context |
| analyze slow-query symptoms from logs | platform-apex-logs-debug | runtime evidence |
| wire query-backed UI | experience-lwc-generate | frontend integration |
| Score | Meaning |
|---|---|
| 90+ | production-optimized query |
| 80–89 | good query with minor improvements possible |
| 70–79 | functional but performance concerns remain |
| < 70 | needs revision before production use |
| File | When to read |
|---|---|
references/soql-syntax-reference.md |
Syntax, operators, date literals, relationship query patterns |
references/query-optimization.md |
Selectivity rules, indexing strategy, governor limits, security patterns |
references/soql-reference.md |
Quick reference — operators, date functions, aggregate functions, WITH clauses |
references/anti-patterns.md |
Common SOQL mistakes and their fixes — read before finalizing any query |
references/selector-patterns.md |
Apex selector layer patterns — read when embedding queries in Apex classes |
references/field-coverage-rules.md |
Field coverage validation — read when generating SOQL used inside Apex code |
references/cli-commands.md |
sf CLI query execution, bulk export, query plan commands |
assets/basic-queries.soql |
Starter query examples for common objects |
assets/relationship-queries.soql |
Parent-to-child and child-to-parent relationship query patterns |
assets/aggregate-queries.soql |
COUNT, SUM, GROUP BY, ROLLUP query patterns |
assets/optimization-patterns.soql |
Selective filter and index-aware query patterns |
assets/bulkified-query-pattern.cls |
Apex Map-based bulk query pattern for trigger contexts |
assets/selector-class.cls |
Full selector class implementation template |
scripts/post-tool-validate.py |
Post-write hook — runs static SOQL validation and live query plan analysis after .soql file edits |
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。