sanity-migration

Планирует, выполняет и проверяет миграции из других CMS и систем управления контентом в Sanity. Используйте при миграции или переходе на Sanity из AEM, Adobe Experience Manager, Contentful, Strapi, Webflow, WordPress, Payload, Drupal, файлов Markdown/MDX/frontmatter, экспортов WXR/XML, API CMS, дампов баз данных, статического HTML, а также при проектировании процессов извлечения, трансформации, преобразования в Portable Text, миграции ресурсов, редиректов, валидации и переключения.

npx skills add https://github.com/sanity-io/agent-toolkit --skill sanity-migration

Sanity Migration

Use this skill for CMS-to-Sanity migration work. Treat migration as a content strategy and ETL project, not a blind lift-and-shift.

Required Workflow

  1. Read references/general.md first.
  2. If the source platform is known, also read its guide:
    • AEM / Adobe Experience Manager: references/aem.md
    • Contentful: references/contentful.md
    • Strapi: references/strapi.md
    • Webflow: references/webflow.md
    • WordPress / WXR / Elementor: references/wordpress.md
    • Payload: references/payload.md
    • Drupal: references/drupal.md
    • Markdown / MDX / frontmatter files: references/markdown.md
  3. Before writing code, produce a short migration plan covering source access, content scope, schema decisions, extraction, transformation, import, validation, redirects, and cutover.
  4. Prefer deterministic, repeatable scripts for real migrations. Write and review migration scripts, mappings, and validation checks; do not rely on one-off content operations for large content volumes.

Deliverables to Produce

For implementation or planning tasks, produce these artifacts or explain why they are not needed:

  • Content inventory: source types, counts, locales, status/draft scope, assets, and relationship types.
  • Source-to-Sanity mapping: document types, object types, references, Portable Text fields, asset fields, IDs, and skipped content.
  • Extraction approach: credentials/access needed, API/export commands, raw snapshot location, and known blind spots.
  • Transform/import plan: deterministic IDs, write order, asset handling, rich text conversion, validation, and rerun strategy.
  • Cutover plan: delta sync/content freeze, redirects, broken-link checks, SEO metadata, and manual cleanup.

Defaults

  • Use stable document IDs derived from source IDs, slugs, paths, or hashes.
  • Use createOrReplace, createIfNotExists, or sanity datasets import --replace so reruns converge.
  • Snapshot extracted source data to disk before transforming it.
  • Import or create referenced documents before documents that reference them.
  • Convert rich text to Portable Text instead of storing raw HTML or Markdown strings.
  • Upload assets to Sanity or the Media Library; do not leave production content dependent on legacy CDN URLs.
  • Track per-document quality issues and produce a validation summary before cutover.
  • Preserve legacy URLs and source IDs for redirects, QA, and future debugging.

Sanity Guardrails

  • Model what content is, not how the old site rendered it.
  • Use documents for reusable or independently managed entities; use objects for content owned by one document.
  • Use defineType, defineField, and defineArrayMember if authoring Sanity schemas.
  • Use image/file fields with uploaded Sanity assets or Media Library assets, not legacy CDN URLs.
  • Use Portable Text arrays for rich text and custom blocks; do not store raw HTML as the canonical body.
  • Run schema extraction and TypeGen after schema or GROQ query changes when the project uses TypeScript.
  • Deploy or apply schema changes before using MCP/content tools against the target dataset.

For deeper Sanity implementation guidance, use sanity-best-practices if it is already available. If it is not installed, tell the user they can add it with:

npx skills add sanity-io/agent-toolkit --skill sanity-best-practices

Stop and Ask

Stop before coding when any of these are unclear:

  • Source access path, credentials, export file, or database connection.
  • Target Sanity project/dataset or whether a scratch dataset should be used.
  • Draft, archived, scheduled, locale, or version history scope.
  • Whether media files should be migrated and whether asset URLs/files are accessible.
  • Whether the destination schema exists or should be designed as part of the migration.

Do Not Do This

  • Do not create random IDs for source-backed documents.
  • Do not fetch-then-create referenced documents; use deterministic IDs and createIfNotExists/createOrReplace.
  • Do not run bulk migrations through MCP content tools when NDJSON or scripts are appropriate.
  • Do not flatten locale fallback values into translations unless requested.
  • Do not leave TODOs for required media, authors, references, or rich text conversion.
  • Do not declare a migration done without count checks, sample checks, reference checks, and route/redirect checks.

Reference Map

Use references/general.md for shared migration principles and the platform references for source-specific extraction routes, modeling traps, and validation checks.

For source systems not explicitly covered, apply references/general.md and adapt the closest platform pattern:

  • API-first CMSes: start from Contentful, Strapi, or Payload.
  • Monolithic/page-builder systems: start from WordPress, Drupal, Webflow, or AEM.
  • HTML-heavy exports: start from the WordPress and Webflow rich-text guidance.
  • Markdown-first sources: start from references/markdown.md.

Больше skills от sanity-io

tdd
sanity-io
Разработка через тестирование с циклом «красный-зелёный-рефакторинг». Используется, когда пользователь хочет создавать функции или исправлять ошибки с помощью TDD, упоминает «красный-зелёный-рефакторинг», хочет…
performance-optimization
sanity-io
Оптимизирует производительность приложений. Используйте, когда есть требования к производительности, при подозрении на регрессию производительности, а также при проблемах с Core Web Vitals или временем загрузки…
content-experimentation-best-practices
sanity-io
Структурированное руководство по проектированию, проведению и анализу контент-экспериментов для повышения конверсии и вовлеченности. Охватывает фреймворки гипотез, выбор метрик, расчет размера выборки и проверку статистической значимости в A/B и многофакторных экспериментах. Включает подробные материалы по p-значениям, доверительным интервалам, анализу мощности и байесовским методам интерпретации результатов. Предоставляет шаблоны интеграции с CMS для управления вариантами на уровне полей и подключения внешних...
content-modeling-best-practices
sanity-io
Структурированное руководство по моделированию контента для проектирования схем, повторного использования и многоканальной доставки. Охватывает основные принципы: работа с контентом как с данными, а не страницами, поддержание единых источников истины, проектирование для будущих каналов и оптимизация рабочих процессов редакторов. Включает структуры принятия решений для ссылок и встроенных объектов, разделение ответственности и шаблоны повторного использования контента. Предоставляет рекомендации по таксономии и классификации для плоских, иерархических и фасетных подходов. Применяется к...
portable-text-conversion
sanity-io
Преобразует HTML и Markdown в блоки Portable Text для Sanity. Используется при миграции контента из устаревших CMS, импорте HTML или Markdown в Sanity,…
portable-text-serialization
sanity-io
Рендеринг и сериализация Portable Text в React, Svelte, Vue, Astro, HTML, Markdown и обычный текст. Используйте при реализации рендеринга Portable Text в любом фронтенде…
sanity-best-practices
sanity-io
We need to translate the given English text into Russian, preserving the name "sanity-best-practices" only if it appears in the source text. The source text does not include the name; it's just the description. So we translate the description. We must not add any extra commentary, labels, etc. Just the translation. The text: "Comprehensive best practices and integration guides for Sanity CMS development across frameworks and topics. Covers 10+ framework integrations including Next.js, Nuxt, Astro, Remix, SvelteKit, and Angular with framework-specific patterns and setup guidance Includes topic guides for schema design, GROQ query optimization, Visual Editing, Portable Text, images, TypeGen, localization, and content migrations Provides quick-reference structure for loading only relevant guides based on task type,..." We need to translate accurately, preserving product names (Sanity CMS, Next.js, Nuxt, Astro, Remix, SvelteKit, Angular, GROQ, Visual Editing, Portable Text, TypeGen) and technical terms. Also numbers (10+
seo-aeo-best-practices
sanity-io
Комплексное руководство по оптимизации SEO и AEO, охватывающее метаданные, структурированные данные, EEAT и готовность к ИИ. Охватывает как традиционную поисковую оптимизацию (SEO), так и оптимизацию для ИИ-поисковых систем (AEO) на платформах Google, ChatGPT, Perplexity и аналогичных. Включает основы технического SEO: метаданные, теги Open Graph, карты сайта, robots.txt, hreflang и настройку международного SEO. Предоставляет шаблоны структурированных данных JSON-LD для схем Article, FAQ, Breadcrumb и Product. Реализует...