Back to skills

Sanity Schema Manager

Manages schema lifecycle including scaffolding, safe field deprecation, and data migrations. Use when modifying existing schemas.

36 stars
0 votes
0 copies
0 views
Added 12/19/2025
data-aitypescript

Works with

cli

Install via CLI

$openskills install sanity-io/agent-toolkit
Download Zip
Files
SKILL.md
---
name: sanity-schema-manager
description: Manages schema lifecycle including scaffolding, safe field deprecation, and data migrations. Use when modifying existing schemas.
---

# 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."

Comments (0)

No comments yet. Be the first to comment!