Migrate to Skills

VerifiedSafe

Convert legacy subagents, commands, and rules to the unified Agent Skills format. Use when migrating agent resources.

Sby Skills Guide Bot
DevelopmentIntermediate
7/28/2026
Claude CodeCursorCopilotCodex
#migration#agent-skills#configuration#claude-code#refactoring

Recommended for

Automated summary

Converts legacy subagents, slash commands, and rules into the unified Agent Skills format across multiple AI coding tools.

Strengths

  • Structured six-phase workflow: discovery, classification, approval, conversion, verification
  • Handles multiple source types (subagents, commands, rules) and multiple platforms
  • Requires explicit user approval before applying any changes
  • Provides field mappings and post-conversion verification steps

Limitations

  • Only targets specific legacy locations (mostly .claude, .cursor, and .codex directories)
  • Rule conversion relies on simple classification logic (alwaysApply/globs) that may miss edge cases
  • No dry-run or rollback mechanism is described beyond the approval gate
When to use it

Use when consolidating scattered agent configurations into skills or standardizing them across several tools.

When not to use it

Avoid when there are no legacy subagents, commands, or rules, or for glob-scoped rules that must remain as rules.

Security analysis

Safe
Quality score92/100

The skill instructs standard file discovery and conversion tasks using read/write and bash commands, but always requires user approval before changes. It does not involve destructive operations, network exfiltration, or obfuscation. All commands are transparent and limited to the declared tools.

No concerns found

How this analysis is made

Examples

Convert all agent resources
migrate-to-skills all — convert all my legacy subagents, commands, and rules to the Agent Skills format.
Convert subagents only
migrate-to-skills subagents
Migrate a specific directory
Migrate the legacy agent config under ./services/backend to skills.

name: migrate-to-skills description: | Convert legacy subagents, slash commands, and rules to the unified Agent Skills format. Use when migrating agent resources, consolidating legacy directories, or standardizing across Claude Code, Cursor, Copilot, Codex, and Open Code. disable-model-invocation: true argument-hint: <scope: all|subagents|commands|rules|path> allowed-tools: Read Write Edit Glob Grep Bash

Convert to Skills

Convert legacy agent resources to the unified Agent Skills format.

Workflow

Execute these phases in order. Always get user approval before making changes.

Phase 1: Discovery

Search for legacy resources. Run these searches immediately:

# Subagents
find . -path "*/.claude/agents/*.md" -o -path "*/.cursor/agents/*.md" -o -path "*/.codex/agents/*.md" 2>/dev/null

# Commands  
find . -path "*/.claude/commands/*.md" -o -path "*/.cursor/commands/*.md" -o -path "*/.codex/commands/*.md" 2>/dev/null

# Rules
find . -path "*/.claude/rules/*.md" -o -path "*/.cursor/rules/*.mdc" -o -path "*/.cursor/rules/*.md" 2>/dev/null

# Custom Prompts (Codex)
find . -path "*/.codex/prompts/*.md" 2>/dev/null

# AGENTS.md files
find . -name "AGENTS.md" 2>/dev/null

If $1 specifies a path, only scan that location.

Phase 2: Classification

Read each discovered file and classify it. Present findings as:

## Discovery Results

### Subagents (X found)
| File | Name | Recommended Action |
|------|------|-------------------|
| .claude/agents/reviewer.md | reviewer | Convert to skill |

### Commands (X found)
| File | Name | Recommended Action |
|------|------|-------------------|
| .claude/commands/test.md | test | Convert to skill |

### Rules (X found)
| File | Name | Type | Recommended Action |
|------|------|------|-------------------|
| .cursor/rules/style.mdc | style | always-apply | Import to CLAUDE.md |
| .cursor/rules/react.mdc | react | glob-scoped | Keep as rule |
| .claude/rules/security.md | security | knowledge | Convert to skill |

### Already Skills (No Action)
- .claude/skills/existing/ ✓

### Needs Manual Review
- [file]: [reason]

Rule classification logic:

  • alwaysApply: true → Import to CLAUDE.md via @import
  • Has globs pattern → Keep as rule (skills don't support glob activation)
  • General knowledge → Convert to skill

Phase 3: Approval

Ask user:

"Found X resources to convert. Proceed with conversion? [Y/n/customize]"

If "customize": Let user select specific items or modify actions.

Phase 4: Conversion

For each approved conversion, apply the appropriate mapping:

Subagent → Skill:

  • Add context: fork (required for subagent behavior)
  • Simplify model names (see field-mappings.md)
  • Keep allowed-tools
  • Enhance description with trigger keywords

Command → Skill:

  • Add disable-model-invocation: true
  • Keep argument-hint
  • Document $ARGUMENTS, $1, $2 usage

Rule → Skill (knowledge type only):

  • Write description with auto-trigger keywords
  • No disable-model-invocation (allow auto-activation)

Rule → CLAUDE.md (always-apply):

  • Add @import path/to/rule.md to CLAUDE.md

Create skill structure:

.claude/skills/{name}/
├── SKILL.md
├── scripts/      # If original has executables
├── references/   # If original has docs
└── assets/       # If original has templates

Phase 5: Verification

After conversion, run:

# List created skills
ls -la .claude/skills/

# Verify frontmatter
for skill in .claude/skills/*/SKILL.md; do
  echo "=== $skill ===" && head -20 "$skill"
done

Present summary:

## Conversion Complete

### Created Skills
| Skill | Location | Source |
|-------|----------|--------|
| reviewer | .claude/skills/reviewer/ | .claude/agents/reviewer.md |

### Updated Files
- CLAUDE.md: Added 2 @import statements

### Verification
- [x] All skills have valid frontmatter
- [x] Names match directory names
- [x] No duplicate skills

Phase 6: Cleanup (Optional)

Ask user:

"Delete original files? [y/N/archive]"

  • y: Delete originals
  • N: Keep originals (default)
  • archive: Move to .claude/archive/

Quick Reference

Key Conversion Rules

| Source Type | Target | Key Addition | |-------------|--------|--------------| | Subagent | Skill | context: fork | | Command | Skill | disable-model-invocation: true | | Rule (knowledge) | Skill | Trigger keywords in description | | Rule (always-apply) | CLAUDE.md | @import statement | | Rule (glob-scoped) | Keep as rule | No conversion needed |

Model Mapping

| Legacy | Skills | |--------|--------| | claude-opus-4-* | opus | | claude-sonnet-4-* | sonnet | | claude-3-5-haiku-* | haiku | | inherit / omitted | (omit) |

Tool Mapping

| Variations | Standard | |------------|----------| | read, ReadFile, file_read | Read | | write, WriteFile | Write | | bash, Terminal, Shell | Bash | | grep, Search | Grep | | glob, Find, list_files | Glob |

Reference Files

For detailed specifications, read these on-demand:

  • references/spec-reference.md - Full Agent Skills specification
  • references/field-mappings.md - Complete field conversion tables
  • references/examples.md - Before/after conversion examples

Troubleshooting

| Issue | Solution | |-------|----------| | Skill not discovered | Check: name matches directory, valid YAML frontmatter | | Triggers too often | Add disable-model-invocation: true | | Doesn't auto-trigger | Remove disable-model-invocation, add keywords to description | | Subagent behavior changed | Ensure context: fork is present | | Hooks not working | Requires Claude Code 2.1+ |

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/migrate-to-skills-ms47vooo/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/migrate-to-skills-ms47vooo' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/migrate-to-skills-ms47vooo/download' --output '.skill-downloads/migrate-to-skills-ms47vooo/SKILL.md.part' && mv '.skill-downloads/migrate-to-skills-ms47vooo/SKILL.md.part' '.skill-downloads/migrate-to-skills-ms47vooo/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

Original excerpt: Quick Reference

Key Conversion Rules

Source TypeTargetKey Addition
SubagentSkillcontext: fork
CommandSkilldisable-model-invocation: true
Rule (knowledge)SkillTrigger keywords in description
Rule (always-apply)CLAUDE.md@import statement
Rule (glob-scoped)Keep as ruleNo conversion needed

Model Mapping

LegacySkills
claude-opus-4-*opus
claude-sonnet-4-*sonnet
claude-3-5-haiku-*haiku
inherit / omitted(omit)

Tool Mapping

VariationsStandard
read, ReadFile, file_readRead
write, WriteFileWrite
bash, Terminal, ShellBash
grep, SearchGrep
glob, Find, list_filesGlob

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/migrate-to-skills-ms47vooo/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills