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
Use when consolidating scattered agent configurations into skills or standardizing them across several tools.
Avoid when there are no legacy subagents, commands, or rules, or for glob-scoped rules that must remain as rules.
Security analysis
SafeThe 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 madeExamples
migrate-to-skills all — convert all my legacy subagents, commands, and rules to the Agent Skills format.migrate-to-skills subagentsMigrate 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
globspattern → 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,$2usage
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.mdto 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 specificationreferences/field-mappings.md- Complete field conversion tablesreferences/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 filesThis 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.mdFrom 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 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 |
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.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.