PluginBench
Skill
Pass
Audit score 90

querying-soql

forcedotcom/sf-skills

SOQL query generation, optimization, and analysis with 100-point scoring for Salesforce.

What is querying-soql?

This skill generates, optimizes, and analyzes SOQL/SOSL queries for Salesforce. Use it when you need natural-language-to-query conversion, relationship or aggregate queries, query-plan analysis, or performance improvements. It covers selectivity, indexing, governor limits, and security patterns.

  • Generate SOQL/SOSL queries from natural language and requirements
  • Optimize queries for selectivity, indexing, and performance
  • Analyze query shape and relationship patterns (parent-to-child, child-to-parent, aggregates)
  • Validate queries against anti-patterns and security best practices
  • Score queries on a 0–100 scale for production readiness
  • Provide execution suggestions and delegate to handling-sf-data or generating-apex as needed

How to install querying-soql

npx skills add https://github.com/forcedotcom/sf-skills --skill querying-soql
Claude Code
Cursor
Windsurf
Cline

How to use querying-soql

  1. 1.Gather context: target objects, required fields, filter criteria, sort/limit needs, and use case (display, automation, Apex)
  2. 2.Describe your query need in natural language or provide an existing query to optimize
  3. 3.Receive a generated or optimized SOQL/SOSL with explanation of the shape chosen (relationship, aggregate, filter pattern)
  4. 4.Review optimization notes on selectivity, indexes, security, and governor awareness
  5. 5.Use the provided query directly or delegate execution to handling-sf-data or Apex embedding to generating-apex

Use cases

Good for
  • Convert a user requirement into an optimized SOQL query with proper filtering and field selection
  • Refactor a slow query by analyzing indexes, selectivity, and relationship traversal
  • Build aggregate queries with GROUP BY and ROLLUP for reporting-like analysis
  • Design relationship queries to fetch parent data from child records or child rows from a parent
  • Validate a query for security, governor limits, and common anti-patterns before embedding in Apex
Who it's for
  • Salesforce developers writing or optimizing SOQL queries
  • Apex developers embedding queries in services or selector classes
  • Anyone debugging query performance or selectivity issues
  • Teams building query-backed automation or reporting logic

querying-soql FAQ

When should I use this skill vs. handling-sf-data?

Use querying-soql to author and optimize the query itself. Use handling-sf-data to execute the query against an org, export results, or perform bulk operations.

When should I use this skill vs. generating-apex?

Use querying-soql to design the query shape and logic. Use generating-apex when embedding the query into a selector class, service, or broader Apex implementation.

What does the 100-point score mean?

Scores 90+ indicate production-ready queries; 80–89 are good with minor improvements; 70–79 are functional but have performance concerns; <70 need revision before production use.

Can this skill handle SOSL (Salesforce Object Search Language)?

Yes, this skill covers both SOQL and SOSL. Use SOSL when you need text search across multiple objects.

What if my query involves bulk data operations?

Use handling-sf-data for bulk inserts, updates, deletes, or large-scale data export. This skill focuses on query design and optimization.

Full instructions (SKILL.md)

Source of truth, from forcedotcom/sf-skills.


name: querying-soql description: "SOQL query generation, optimization, and analysis with 100-point scoring. 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 or safety improvements for Salesforce queries. TRIGGER when: user writes, optimizes, or debugs SOQL/SOSL queries, touches .soql files, or asks about relationship queries, aggregates, or query performance. DO NOT TRIGGER when: bulk data operations (use handling-sf-data), Apex DML logic (use generating-apex), or report/dashboard queries." metadata: version: "1.1"

querying-soql: 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 querying-soql 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 → handling-sf-data
  • embedding query logic inside broader Apex implementation → generating-apex
  • debugging via logs rather than query shape → debugging-apex-logs

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

NeedDefault pattern
parent data from childchild-to-parent traversal
child rows from parentsubquery
counts / rollupsaggregate query
records with / without related rowssemi-join / anti-join
text search across objectsSOSL

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:

  • handling-sf-data

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:

Query goal: <summary>
Query: <soql or sosl>
Design: <relationship / aggregate / filter choices>
Notes: <selectivity, limits, security, governor awareness>
Next step: <run in handling-sf-data or embed in Apex>

Cross-Skill Integration

NeedDelegate toReason
run the query against an orghandling-sf-dataexecution and export
embed the query in services/selectorsgenerating-apeximplementation context
analyze slow-query symptoms from logsdebugging-apex-logsruntime evidence
wire query-backed UIgenerating-lwc-componentsfrontend integration

Score Guide

ScoreMeaning
90+production-optimized query
80–89good query with minor improvements possible
70–79functional but performance concerns remain
< 70needs revision before production use

Reference File Index

FileWhen to read
references/soql-syntax-reference.mdSyntax, operators, date literals, relationship query patterns
references/query-optimization.mdSelectivity rules, indexing strategy, governor limits, security patterns
references/soql-reference.mdQuick reference — operators, date functions, aggregate functions, WITH clauses
references/anti-patterns.mdCommon SOQL mistakes and their fixes — read before finalizing any query
references/selector-patterns.mdApex selector layer patterns — read when embedding queries in Apex classes
references/field-coverage-rules.mdField coverage validation — read when generating SOQL used inside Apex code
references/cli-commands.mdsf CLI query execution, bulk export, query plan commands
assets/basic-queries.soqlStarter query examples for common objects
assets/relationship-queries.soqlParent-to-child and child-to-parent relationship query patterns
assets/aggregate-queries.soqlCOUNT, SUM, GROUP BY, ROLLUP query patterns
assets/optimization-patterns.soqlSelective filter and index-aware query patterns
assets/bulkified-query-pattern.clsApex Map-based bulk query pattern for trigger contexts
assets/selector-class.clsFull selector class implementation template
scripts/post-tool-validate.pyPost-write hook — runs static SOQL validation and live query plan analysis after .soql file edits