| name | sanity-groq |
| description | Expert assistance for writing, optimizing, and debugging GROQ queries. Use when writing queries or debugging performance. |
GROQ Query Assistant
This skill helps users write GROQ queries that are efficient, correct, and compatible with Sanity TypeGen.
Procedure
Analyze Request
- Is the user asking for a new query?
- Is the user debugging an existing query?
- Is the user asking about performance?
Drafting Queries
- Rule: Always wrap in
defineQuery(orgroqtag). - Rule: Always use the
/* groq */comment for syntax highlighting. - Rule: Always use Projections
{ ... }. Never return*(naked projection). - Example:
const QUERY = defineQuery(/* groq */ `*[_type == "post" && slug.current == $slug][0]{ title, body }`);
- Rule: Always wrap in
Optimization Checks
- Scan: Look for
*[_type == "..."]without{}. -> Warn: "Fetch only what you need." - Scan: Look for string interpolation (
slug == "${slug}"). -> Warn: "Use parameters ($slug)." - Scan: Look for deep expansion (
...). -> Warn: "Be explicit to reduce payload size."
- Scan: Look for
TypeGen Integration
- After writing the query, remind the user to run
npm run typegen(or equivalent). - Show how to import the generated type:
import { type QUERYResult } from './sanity.types'.
- After writing the query, remind the user to run