platform-soql-query
forcedotcom/sf-skills
Generate, optimize, and debug Salesforce SOQL/SOSL queries with relationship, aggregate, and performance analysis.
What is platform-soql-query?
This skill helps you author and optimize SOQL/SOSL queries for Salesforce. Use it when writing natural-language-to-query generation, handling relationship queries, aggregates, query-plan analysis, and performance tuning. It covers syntax, selectivity, governor limits, and security patterns.
- Generate SOQL/SOSL from natural language descriptions
- Optimize queries for selectivity and index usage
- Analyze relationship queries (parent-to-child, child-to-parent, subqueries)
- Build aggregate queries with COUNT, SUM, GROUP BY, and ROLLUP
- Validate query syntax and identify anti-patterns
- Provide query-plan analysis and performance recommendations
How to install platform-soql-query
npx skills add https://github.com/forcedotcom/sf-skills --skill platform-soql-query- sf CLI (v2.0.0 or later)
- Python 3.10 or later
- jq 1.6 or later
How to use platform-soql-query
- 1.Describe your query goal: target object(s), fields needed, filters, and sort/limit requirements
- 2.Provide context: whether the query is for display, automation, reporting, or Apex usage
- 3.Receive a generated SOQL/SOSL query with design rationale and optimization notes
- 4.Review selectivity, security, and governor-limit considerations
- 5.Execute the query via platform-data-manage or embed in Apex via platform-apex-generate
Use cases
- Convert a user requirement into an optimized SOQL query for a custom report
- Debug a slow query by analyzing its selectivity and suggesting indexed filters
- Build a subquery to fetch related child records alongside parent data
- Create an aggregate query to count records grouped by a custom field
- Validate a SOQL query before embedding it in Apex code for governor compliance
- Salesforce developers writing data queries
- Apex engineers optimizing query performance
- Platform architects designing selector layers
- Developers debugging slow or inefficient queries
platform-soql-query FAQ
Use platform-soql-query to author and optimize the query shape. Use platform-data-manage to execute it against an org and export results.
This skill generates and validates SOQL. For embedding in Apex services or selector classes, delegate to platform-apex-generate with the finalized query.
This skill analyzes selectivity, indexing, and query shape. If you have runtime logs showing slowness, use platform-apex-logs-debug to correlate symptoms with the query plan.
No. For bulk inserts, updates, deletes, or large-scale data migration, use platform-data-manage instead.
This skill scores queries on a 90+ scale and flags anti-patterns. A score of 80+ indicates good production readiness with only minor improvements possible.
Full instructions (SKILL.md)
Source of truth, from forcedotcom/sf-skills.
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:
.soqlfiles- 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
- embedding query logic inside broader Apex implementation → platform-apex-generate
- debugging via logs rather than query shape → platform-apex-logs-debug
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
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:
- Query purpose
- Final SOQL/SOSL
- Why this shape was chosen
- Optimization or security notes
- Execution suggestion if needed
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>
Cross-Skill Integration
| 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 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 |
Related skills
More from forcedotcom/sf-skills and the wider catalog.

platform-tracing-agentforce-configure
Generate AgentforcePlatformTracingSettings metadata to enable or disable Agentforce agent execution trace spans to Data Cloud.

platform-tracing-configure
Generate EventSettings metadata to enable or disable Platform Tracing (TraceSpanEvent publishing) in Event Monitoring.

platform-trial-org-create
Create Salesforce trial, developer, or Trialforce orgs from an authenticated host org.

platform-trust-archive-manage
Manage Salesforce Archive: search, restore, analyze, mask, and erase archived records via Connect API.

platform-validation-rule-generate
Generate and validate Salesforce validation rules with formula enforcement and error messaging.

platform-value-set-generate
Create and customize Salesforce reusable picklists (GlobalValueSet and StandardValueSet metadata).