Manages schema lifecycle including scaffolding, safe field deprecation, and data migrations. Use when modifying existing schemas.
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-schema-manager/SKILL.md -a claude-code --skill sanity-schema-managerInstallation paths:
.claude/skills/sanity-schema-manager/# Schema Manager
This skill handles the lifecycle of Sanity Schema types.
## Procedure
1. **Scaffold (Create)**
* Use templates to create `document`, `object`, or `singleton` types.
* **Constraint:** Ensure `defineType` and `defineField` are used.
* **Constraint:** Ensure an icon is imported from `@sanity/icons`.
2. **Deprecate (Update)**
* Ask: "Which field do you want to deprecate?"
* **Action:** Apply the "ReadOnly -> Hidden -> Deprecated" pattern to the field definition.
* **Output:**
```typescript
defineField({
name: 'oldField',
deprecated: { reason: 'Use newField instead' },
readOnly: true,
hidden: ({value}) => value === undefined,
initialValue: undefined
})
```
3. **Migrate (Data)**
* Generate a migration script using `@sanity/migrate` or standard client patches.
* **Template:** Iterate over documents -> `patch(doc.id).set({ newField: doc.oldField }).unset(['oldField'])`.
4. **Clean (Delete)**
* Only allow deleting a field definition if the user confirms "I have migrated the data and the field is undefined in all documents."