CtrlK
BlogDocsLog inGet started
Tessl Logo

sanity-best-practices

Sanity development best practices for schema design, GROQ queries, TypeGen, Visual Editing, images, Portable Text, Studio structure, localization, migrations, Sanity Functions, webhooks, Blueprints, and framework integrations such as Next.js, Nuxt, Astro, Remix, SvelteKit, Angular, Hydrogen, and the App SDK. Use this skill whenever working with Sanity schemas, defineType or defineField, GROQ or defineQuery, content modeling, Presentation or preview setups, Sanity-powered frontend integrations, event-driven content automation, documentEventHandler, defineDocumentFunction, defineMediaLibraryAssetFunction, @sanity/functions, @sanity/blueprints, sanity.blueprint.ts, event-driven content automation, or when reviewing and fixing a Sanity codebase.

72

Quality

89%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

78%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-architected index/router skill: the SKILL.md body stays concise, points to 24 real one-level-deep reference files with clear navigation, and includes a few concrete actionable rules (Global Rules, Video). Its main weaknesses are mild redundancy between the "When to Apply" and "Quick Reference" lists and the absence of inline executable code in the body itself.

Suggestions

Collapse the "When to Apply" bullet list or merge it with the Quick Reference to remove the topic-coverage triplication between the description, When to Apply, and Quick Reference.

Add one or two short inline code snippets (e.g. a minimal defineType schema or a GROQ defineQuery) in the body so the skill is actionable without immediately opening a reference file.

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence (no basic-concept explanations), but the "When to Apply" list and "Quick Reference" largely restate the description's topic coverage, so not quite every token earns its place.

4 / 5

Actionability

It gives concrete, specific guidance with real API names and packages (defineVideoField() from sanity/media-library, @mux/mux-player-react, "install sanity-plugin-mux-input") and crisp Global Rules, but the body is a router with no inline executable code blocks — those live in the references.

4 / 5

Workflow Clarity

"How to Use" gives a clear selection instruction ("Start with the single framework or topic guide that best matches the request, then read additional references only when the task crosses concerns"), but it is a single routing step with no checkpoints; no validation is needed for this non-destructive router.

4 / 5

Progressive Disclosure

Exemplary one-level-deep structure: a concise overview with a Quick Reference index of all 24 topic/integration guides, each mapped to a real file in references/ (verified — get-started, nextjs, groq, schema, etc. all exist), plus a How to Use navigation section.

5 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, comprehensive description that concretely states capabilities, supplies abundant natural and API-level trigger terms, and explicitly pairs a "what" with a "Use this skill whenever" "when" clause. The only flaw is minor verbosity: the phrase "event-driven content automation" is duplicated, and the trigger list is long enough to feel slightly padded.

DimensionReasoningScore

Specificity

The description lists multiple specific concrete capabilities — "schema design, GROQ queries, TypeGen, Visual Editing, images, Portable Text, Studio structure, localization, migrations, Sanity Functions, webhooks, Blueprints" — giving comprehensive coverage rather than vague language.

5 / 5

Completeness

It explicitly answers both "what" (Sanity development best practices for the listed domains) and "when" via a clear "Use this skill whenever working with... or when reviewing and fixing a Sanity codebase" clause with concrete trigger phrases.

5 / 5

Trigger Term Quality

It covers natural terms ("Sanity schemas", "GROQ", "content modeling", "Visual Editing") plus concrete API/package identifiers (defineType, defineField, defineQuery, documentEventHandler, @sanity/functions, @sanity/blueprints, sanity.blueprint.ts), giving comprehensive keyword coverage including synonyms.

5 / 5

Distinctiveness Conflict Risk

It carves a clear Sanity-specific niche with distinct triggers (proprietary API names, named frameworks, Blueprint/Function tooling), making conflict with other skills unlikely.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
sanity-io/agent-toolkit
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.