К основному содержанию
скилл CX Codex

platform-soql-query — скилл для Claude Code: SOQL и SOSL

Пишет и оптимизирует запросы SOQL/SOSL в Salesforce: от формулировки на естественном языке до анализа селективности и плана запроса.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add forcedotcom/sf-skills --skill platform-soql-query -a claude-code
Открыть на GitHub

Что делает platform-soql-query

Скилл включается, когда вы правите файлы .soql, просите составить запрос по описанию словами или разбираете медленный запрос. Он подсказывает форму: обход от дочернего объекта к родительскому, подзапрос, агрегат с COUNT и GROUP BY, semi-join и anti-join, а для поиска по тексту — SOSL.

Внутри лежат справочники по синтаксису, операторам и date literals, правила селективности и индексов, разбор частых антипаттернов и шаблоны селектор-классов для Apex. Есть готовые примеры запросов в .soql-файлах и скрипт scripts/post-tool-validate.py: он запускается после правки .soql и прогоняет статическую проверку с анализом плана запроса.

Для работы нужны jq версии 1.6.0 и выше, python3 от 3.10.0 и Salesforce CLI sf от 2.0.0. Запуск запроса против org скилл не делает — это уходит в platform-data-manage, логика DML в Apex остаётся за platform-apex-generate. Если запрос уходит в Apex, придётся отдельно подумать про security mode и доступ к полям: скилл об этом напоминает, но проверять всё равно вам.

Какие задачи решает

  • составить запрос по описанию задачи словами
  • разобрать медленный SOQL и найти неселективный фильтр
  • заменить загрузку записей агрегатом с COUNT и GROUP BY
  • выбрать между подзапросом и обходом связи
  • проверить свежий .soql-файл на антипаттерны

Примеры запросов агенту

  • напиши SOQL: все контакты с email, отсортированные по дате создания
  • почему этот запрос тормозит? посмотри селективность фильтров
  • переделай выборку на агрегат с COUNT по статусам

Как установить platform-soql-query

1Через Skills CLI (Vercel)

npx skills add forcedotcom/sf-skills --skill platform-soql-query -a claude-code

2Вручную: положить файлы

~/.claude/skills/platform-soql-query/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/platform-soql-query/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о platform-soql-query

Как установить platform-soql-query в Claude?

Выполните npx skills add forcedotcom/sf-skills --skill platform-soql-query -a claude-code. Скилл появится по пути ~/.claude/skills/platform-soql-query/SKILL.md.

Что делает platform-soql-query?

Помогает писать и оптимизировать SOQL и SOSL: генерирует запрос из описания, подбирает форму связи или агрегата, разбирает селективность и план запроса.

Чем он отличается от platform-data-manage?

Этот скилл отвечает за форму и оптимизацию запроса. Выполнение против org, выгрузка и массовые операции — задача platform-data-manage.

Исходный текст

SKILL.md · Apache-2.0
---
name: platform-soql-query
description: "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."
metadata:
  version: "1.1"
  domains: ["Platform"]
  relatedSkills:
    - "experience-lwc-generate"
    - "platform-apex-generate"
    - "platform-apex-logs-debug"
    - "platform-apex-test-run"
    - "platform-data-manage"
  cliTools:
    - tool: ["jq"]
      semver: ">=1.6.0"
    - tool: ["python3"]
      semver: ">=3.10.0"
    - tool: ["sf"]
      semver: ">=2.0.0"
---

# platform-soql-query: Salesforce SOQL Query Expert

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.

## When This Skill Owns the Task

Use `platform-soql-query` when the work involves:
- `.soql` files
- query generation from natural language
- relationship queries and aggregate queries
- query optimization and selectivity analysis
- SOQL/SOSL syntax and governor-aware design

Delegate elsewhere when the user is:
- performing bulk data operations → [platform-data-manage](../platform-data-manage/SKILL.md)
- embedding query logic inside broader Apex implementation → [platform-apex-generate](../platform-apex-generate/SKILL.md)
- debugging via logs rather than query shape → [platform-apex-logs-debug](../platform-apex-logs-debug/SKILL.md)

---

## Required Context to Gather First

Ask for or infer:
- target object(s)
- fields needed
- filter criteria
- sort / limit requirements
- whether the query is for display, automation, reporting-like analysis, or Apex usage
- whether performance / selectivity is already a concern

---

## Recommended Workflow

### 1. Generate the simplest correct query
Prefer:
- only needed fields
- clear WHERE criteria
- reasonable LIMIT when appropriate
- relationship depth only as deep as necessary

### 2. Choose the right query shape
| 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 |

### 3. Optimize for selectivity and safety
Check:
- indexed / selective filters
- no unnecessary fields
- no avoidable wildcard or scan-heavy patterns
- security enforcement expectations

### 4. Validate execution path if needed
If the user wants runtime verification, hand off execution to:
- [platform-data-manage](../platform-data-manage/SKILL.md)

---

## High-Signal Rules

- never use `SELECT *` style thinking; query only required fields
- do not query inside loops in Apex contexts
- prefer filtering in SOQL rather than post-filtering in Apex
- use aggregates for counts and grouped summaries instead of loading unnecessary records
- evaluate wildcard usage carefully; leading wildcards often defeat indexes
- account for security mode / field access requirements when queries move into Apex

---

## Output Format

When finishing, report in this order:
1. **Query purpose**
2. **Final SOQL/SOSL**
3. **Why this shape was chosen**
4. **Optimization or security notes**
5. **Execution suggestion if needed**

Suggested shape — use `references/soql-syntax-reference.md` for exact syntax:

```text
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>
```

---

## Cross-Skill Integration

| Need | Delegate to | Reason |
|---|---|---|
| run the query against an org | [platform-data-manage](../platform-data-manage/SKILL.md) | execution and export |
| embed the query in services/selectors | [platform-apex-generate](../platform-apex-generate/SKILL.md) | implementation context |
| analyze slow-query symptoms from logs | [platform-apex-logs-debug](../platform-apex-logs-debug/SKILL.md) | runtime evidence |
| wire query-backed UI | [experience-lwc-generate](../experience-lwc-generate/SKILL.md) | frontend integration |
| validate query behavior in tests | [platform-apex-test-run](../platform-apex-test-run/SKILL.md) | test coverage for query logic |

---

## Score Guide

| 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 |

---

## Reference File Index

| 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 |

© forcedotcom · Apache-2.0 · forcedotcom/sf-skills

Похожие скиллы

Все скиллы по теме «Данные и базы» →
salesforce-developer https://github.com/Jeffallan Пишет Apex-классы, собирает Lightning Web Components, оптимизирует SOQL-запросы и настраивает пакетную обработку на платформе Salesforce. Следит за governor limits и булкифицирует код. CX Codex +1 4 300установок salesforce-development Mindrally Скилл задаёт агенту правила разработки на Salesforce: Apex, триггеры, Lightning Web Components, SOQL и метаданные. Пригодится, когда пишете код для org и хотите, чтобы агент держал стиль и лимиты платформы. CX Codex +1 659установок salesforce-apex-quality официальный github Проверяет Apex-код на риски governor limits, проблемы безопасности и пробелы в тестах. Подходит для ревью классов, триггеров и тестовых классов. 884установок apex официальный github Правило задаёт Copilot стиль кода Apex: массовые операции, имена классов и методов, проверка прав доступа. Пригодится, если вы пишете триггеры и классы на платформе Salesforce. ★ 40 418звёзд репо database-query-optimization aj-geddes Скилл разбирает медленные SQL-запросы: индексы, планы выполнения, узкие места. Пригодится, когда база тормозит или выросла нагрузка на CPU. CX Codex +1 586установок sql-query-optimization aj-geddes Скилл разбирает медленные SQL-запросы в PostgreSQL и MySQL: план выполнения, индексы, переписывание. Пригодится, когда запрос тормозит, а непонятно почему. CX Codex +1 520установок

Из того же набора167

platform-apex-generate Пишет и рефакторит Apex-классы и триггеры, затем прогоняет код через анализатор и тесты. Пригодится, когда в проекте много Salesforce-кода. CX Codex +1 7 100установок platform-apex-test-generate Скилл пишет и чинит тест-классы Apex: фабрики данных, массовые прогоны, моки и разбор покрытия. Пригодится, когда перед деплоем не хватает покрытия. CX Codex +1 7 000установок platform-apex-test-run Запускает тесты Apex через Salesforce CLI, анализирует покрытие кода и ведёт цикл исправления упавших тестов. Помогает разобрать ошибки перед деплоем. CX Codex +1 6 900установок platform-apex-logs-debug Скилл разбирает debug-логи Salesforce: находит причину падения, ловит превышение governor limits и объясняет стек вызовов. CX Codex +1 6 800установок platform-metadata-deploy Оркестрирует деплой метаданных Salesforce через sf CLI v2, проверяет изменения перед релизом и ведёт развёртывание в прод без прямых запусков deploy start. CX Codex +1 6 700установок platform-metadata-retrieve Скилл тянет метаданные из org в локальный проект через sf project retrieve start: все изменения, каталог, тип, манифест или пакет. CX Codex +1 6 600установок platform-permission-set-generate Создаёт метаданные Salesforce PermissionSet XML для прав объектов, полей, пользователей и приложений. Нужен при настройке FLS, вкладок и развёртывании наборов разрешений. CX Codex +1 6 500установок platform-docs-get Тянет официальную документацию Salesforce и заставляет агента отвечать по ней, а не по чужим блогам. Полезен, когда страницы рендерятся через JS и обычный fetch возвращает пустую оболочку. CX Codex +1 6 500установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой