CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

sanity-singletons

Configure singleton documents in a Sanity Studio using the document.singletons registry. Use when a developer wants a fixed-id document (settings, navigation, footer) edited in place, hidden from the default content list, with no "create new" or "duplicate" affordances — or when migrating a userland singleton implementation or a third-party singleton plugin (e.g. sanity-plugin-singleton-management) to the first-class API.

Quality

90%

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

82%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 strong, information-dense body: executable code throughout, trap callouts (documentTypeListItems dropping singletons, .singletons() forbidding .items()), and two complete migration workflows. The main gaps are mild verbosity in the validation/rationale passages and the absence of an explicit post-migration verification step.

Suggestions

Add a final verification step to both migration workflows (e.g., "start the Studio and confirm the singleton appears in the content list and its schema type is gone from the create-new menu") to close the workflow_clarity gap.

Tighten the config-resolution validation bullets and the 'dangling singletons' rationale into shorter rule statements — the parenthetical-heavy prose is the main conciseness cost.

Consider moving the sanity-plugin-singleton-management migration table and steps into a reference file linked from a short summary section, keeping SKILL.md focused on the first-class API.

DimensionReasoningScore

Conciseness

The body is dense with non-obvious API detail ("Filters the `duplicate` document action, after all user resolvers run", config-resolution validation rules, template-tagging semantics) and does not explain concepts Claude already knows. Some passages — the four long validation bullets and the "dangling singletons" rationale ("Any heuristic short of eager resolution would misfire, because manual `S.document().documentId(...).schemaType(...)` wiring is supported") — are wordier than strictly necessary and could be tightened, matching anchor 4 rather than anchor 5.

4 / 5

Actionability

All code is executable and copy-paste ready: the full `defineConfig` registration with string shorthand and `defineSingleton`, structure-builder chains at three levels, the escape-hatch template, the `context.singleton` action filter, and the one-to-one plugin-migration table. Specific worked cases (shared schema types, explicit plugin ids, default vs. explicit document ids) cover the common situations, matching anchor 5.

5 / 5

Workflow Clarity

Both migration paths give numbered, decision-aware steps ("If the plugin call passed an explicit `id`, carry it over as the definition's `documentId"; the shared-schema-type branch in step 4) plus an upfront version check ("Check the installed version in the lockfile before using this API"). The operations are not destructive/batch so no hard cap applies, but there is no explicit post-change verification step (e.g., restart Studio and confirm the type is gone from create menus), leaving it at anchor 4 rather than 5.

4 / 5

Progressive Disclosure

No bundle files exist and the ~195-line body is organized into clear, well-labeled sections with one-level-deep references (GitHub source links, the `sanity-best-practices` skill). The two plugin-migration sections (a table plus ~10 steps each) are specialized enough that they could live in reference files — a minor organization gap — so anchor 4 fits better than anchor 5's ideal split, while the content is far from anchor 3's "content that should be separate is inline".

4 / 5

Total

17

/

20

Passed

Description

95%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.

An excellent description: explicit what and when, natural trigger terms including plugin synonyms, and a clearly distinct niche. The only room for improvement is that the 'what' rests on a single configure action whose breadth is conveyed through the 'when' clause rather than an explicit list of capabilities.

DimensionReasoningScore

Specificity

"Configure singleton documents in a Sanity Studio using the document.singletons registry" names a concrete action and API, and the description adds a second concrete capability ("migrating a userland singleton implementation or a third-party singleton plugin ... to the first-class API") plus specific behavioral effects ("hidden from the default content list, with no 'create new' or 'duplicate' affordances"). It sits between anchor 3 (1-2 concrete actions) and anchor 4 (several specific actions, minor gaps) — several specific behaviors are covered, but the core action is a single configure operation rather than a list of distinct operations, so it does not reach anchor 5's comprehensiveness.

4 / 5

Completeness

The first sentence explicitly states what the skill does ("Configure singleton documents in a Sanity Studio using the document.singletons registry") and the description contains an explicit "Use when ..." clause with concrete trigger phrases ("a fixed-id document (settings, navigation, footer) edited in place", "migrating a userland singleton implementation or a third-party singleton plugin"). This matches anchor 5 exactly; anchor 4 would require a weaker or less specific 'when', which is not the case.

5 / 5

Trigger Term Quality

"singleton", "settings", "navigation", "footer", "fixed-id document", "Sanity Studio", "userland singleton", and the plugin name "sanity-plugin-singleton-management" comprehensively cover the natural phrases a developer would actually say, including synonyms and the third-party plugin name. This matches the anchor-5 pattern (natural terms including synonyms); a lower anchor would require missing common variations, and none are missing.

5 / 5

Distinctiveness Conflict Risk

A clear niche is staked out: Sanity Studio singleton configuration via the specific "document.singletons" registry, with named plugins ("sanity-plugin-singleton-management") further narrowing it. Trigger terms are distinct to this niche with minimal overlap risk against other Sanity skills, matching anchor 5.

5 / 5

Total

19

/

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.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

sanity-io/agent-toolkit

Path

skills/sanity-singletons/SKILL.md

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.