Expert assistance for writing, optimizing, and debugging GROQ queries. Use when writing queries or debugging performance.
View on GitHubsanity-io/agent-toolkit
sanity-plugin
January 14, 2026
Select agents to install to:
npx add-skill https://github.com/sanity-io/agent-toolkit/blob/main/sanity-plugin/skills/sanity-groq/SKILL.md -a claude-code --skill sanity-groqInstallation paths:
.claude/skills/sanity-groq/# GROQ Query Assistant
This skill helps users write GROQ queries that are efficient, correct, and compatible with Sanity TypeGen.
## Procedure
1. **Analyze Request**
* Is the user asking for a new query?
* Is the user debugging an existing query?
* Is the user asking about performance?
2. **Drafting Queries**
* **Rule:** Always wrap in `defineQuery` (or `groq` tag).
* **Rule:** Always use the `/* groq */` comment for syntax highlighting.
* **Rule:** Always use Projections `{ ... }`. Never return `*` (naked projection).
* **Example:**
```typescript
const QUERY = defineQuery(/* groq */ `*[_type == "post" && slug.current == $slug][0]{ title, body }`);
```
3. **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."
4. **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'`.