cms-migration — Claude Code skill: what it does, how to install
Interactive guide for designing Payload CMS collections before migrating from WordPress, Strapi, or Contentful. It shapes schema configs prior to importing data.
npx skills add payloadcms/skills --skill cms-migration -a claude-codeWhat cms-migration does
This skill establishes a config-first workflow for moving content into Payload CMS. Instead of jumping straight into raw imports, you provide sample JSON or CSV data from systems like WordPress or Strapi. The assistant analyzes field types, flags nested structures, and drafts a TypeScript collection config.
Relationship design gets special attention. The skill treats repetitive string values like tags or authors as dynamic records, proposing dedicated collections linked by relationship fields rather than rigid select enums. It will also ensure an upload collection exists before referencing media assets.
Import strategies and seed scripts are discussed only after every collection config is confirmed. You choose whether media files get re-uploaded or kept as external URLs. Passing incomplete data samples is risky because you will have to reshape types manually later.
What it helps with
- turn schema exports from WordPress, Strapi, or Sanity into Payload configs
- generate TypeScript collection definitions from raw JSON or CSV samples
- distinguish static
selectoptions from dynamicrelationshipcollections - plan migration execution order for collections with nested references
Example prompts for the agent
- I have a JSON export of blog posts from WordPress. Help me design the Payload CMS collection for it.
- Here is our Strapi schema for articles and authors. Propose Payload collection configs with proper relationships.
- All collection configs look good. Help me plan the migration order and write an import script.
How to install cms-migration
1Skills CLI (Vercel)
npx skills add payloadcms/skills --skill cms-migration -a claude-code2Manually: put the files in place
~/.claude/skills/cms-migration/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/cms-migration/
1Skills CLI (Vercel)
npx skills add payloadcms/skills --skill cms-migration -a codex2Manually: put the files in place
.agents/skills/cms-migration/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add payloadcms/skills --skill cms-migration -a cursor2Manually: put the files in place
.cursor/skills/cms-migration/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install payloadcms/skills cms-migration2Manually: put the files in place
.github/skills/cms-migration/SKILL.md1Skills CLI (Vercel)
npx skills add payloadcms/skills --skill cms-migration -a gemini-cli2Platform CLI
gemini skills install https://github.com/payloadcms/skills --path skills/cms-migrationManually: put the files in place
.devin/skills/cms-migration/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add payloadcms/skills --skill cms-migration -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about cms-migration
How do I install cms-migration in Claude Code?
Run npx skills add payloadcms/skills --skill cms-migration -a claude-code. The tool adds the skill directly to your Claude Code workspace.
What does cms-migration do?
It guides you through analyzing content structures from external CMS platforms and outputs validated Payload CMS collection configs in TypeScript. It discusses data import scripts only after all schema structures are settled.
How does cms-migration handle categories and author fields?
The skill avoids hardcoding repeated values into select fields. It recommends creating separate collections linked via relationship fields so editors can update values later.