agentleFS
ArangoGutierrezArangoGutierrez/claude-toolkit/.cursor/skills-cursor/migrate-to-skills/SKILL.md

migrate-to-skills

Skill4 starsChanged 3 months agoMITView on GitHub

Convert 'Applied intelligently' Cursor rules (.cursor/rules/*.mdc) and slash commands (.cursor/commands/*.md) to Agent Skills format (.cursor/skills/). Use when you want to migrate rules or commands to skills, convert .mdc rules to SKILL.md format, or consolidate commands into the skills directory.

We split this skill into the rules it gives an agent

11 rules. 7 are common, 0 are distinctive, and 4 are very specific to this project.

  • 7

    Common

    Most of the 4 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Common:

    Read the rule file

    line 92
  2. Very specific:

    Create the skill directory: .cursor/skills/{skill-name}/ (skill name = filename without .mdc)

    line 95
  3. Very specific:

    Write SKILL.md with new frontmatter (name and description) + the EXACT original body content (preserve all whitespace, formatting, code …

    line 96
  4. Common:

    Delete the original rule file

    line 97
  5. Common:

    Read the command file

    line 101
  6. Very specific:

    Create the skill directory: .cursor/skills/{skill-name}/ (skill name = filename without .md)

    line 103
  7. Very specific:

    Write SKILL.md with new frontmatter (name, description, and disable-model-invocation: true) + blank line + the EXACT original file content …

    line 104
  8. Common:

    Delete the original command file

    line 105
  9. Common:

    If you have the Task tool available: DO NOT start to read all of the files yourself.

    line 111
  10. Common:

    DO NOT start to read all of the files yourself.

    line 112
  11. Common:

    If you don't have the Task tool available:

    line 126

“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Migrate Rules and Slash Commands to Skills

Convert Cursor rules ("Applied intelligently") and slash commands to Agent Skills format.

CRITICAL: Preserve the exact body content. Do not modify, reformat, or "improve" it - copy verbatim.

Locations

LevelSourceDestination
Project{workspaceFolder}/**/.cursor/rules/*.mdc, {workspaceFolder}/.cursor/commands/*.md
User~/.cursor/commands/*.md

Notes:

  • Cursor rules inside the project can live in nested directories. Be thorough in your search and use glob patterns to find them.
  • Ignore anything in ~/.cursor/worktrees
  • Ignore anything in ~/.cursor/skills-cursor. This is reserved for Cursor's internal built-in skills and is managed automatically by the system.

Finding Files to Migrate

Rules: Migrate if rule has a description but NO globs and NO alwaysApply: true.

Commands: Migrate all - they're plain markdown without frontmatter.

Conversion Format

Rules: .mdc → SKILL.md

# Before: .cursor/rules/my-rule.mdc
---
description: What this rule does
globs:
alwaysApply: false
---
# Title
Body content...
# After: .cursor/skills/my-rule/SKILL.md
---
name: my-rule
description: What this rule does
---
# Title
Body content...

Changes: Add name field, remove globs/alwaysApply, keep body exactly.

Commands: .md → SKILL.md

# Before: .cursor/commands/commit.md
# Commit current work
Instructions here...
# After: .cursor/skills/commit/SKILL.md
---
name: commit
description: Commit current work with standardized message format
disable-model-invocation: true
---
# Commit current work
Instructions here...

Changes: Add frontmatter with name (from filename), description (infer from content), and disable-model-invocation: true, keep body exactly.

Note: The disable-model-invocation: true field prevents the model from automatically invoking this skill. Slash commands are designed to be explicitly triggered by the user via the / menu, not automatically suggested by the model.

Notes

  • name must be lowercase with hyphens only
  • description is critical for skill discovery
  • Optionally delete originals after verifying migration works

Migrate a Rule (.mdc → SKILL.md)

  1. Read the rule file
  2. Extract the description from the frontmatter
  3. Extract the body content (everything after the closing --- of the frontmatter)
  4. Create the skill directory: .cursor/skills/{skill-name}/ (skill name = filename without .mdc)
  5. Write SKILL.md with new frontmatter (name and description) + the EXACT original body content (preserve all whitespace, formatting, code blocks verbatim)
  6. Delete the original rule file

Migrate a Command (.md → SKILL.md)

  1. Read the command file
  2. Extract description from the first heading (remove # prefix)
  3. Create the skill directory: .cursor/skills/{skill-name}/ (skill name = filename without .md)
  4. Write SKILL.md with new frontmatter (name, description, and disable-model-invocation: true) + blank line + the EXACT original file content (preserve all whitespace, formatting, code blocks verbatim)
  5. Delete the original command file

CRITICAL: Copy the body content character-for-character. Do not reformat, fix typos, or "improve" anything.

Workflow

If you have the Task tool available: DO NOT start to read all of the files yourself. That function should be delegated to the subagents. Your job is to dispatch the subagents for each category of files and wait for the results.

  1. Create the skills directories if they don't exist (.cursor/skills/ for project, ~/.cursor/skills/ for user)
  2. Dispatch three fast general purpose subagents (NOT explore) in parallel to do the following steps for project rules (pattern: {workspaceFolder}/**/.cursor/rules/*.mdc), user commands (pattern: ~/.cursor/commands/*.md), and project commands (pattern: {workspaceFolder}/**/.cursor/commands/*.md): I. [ ] Find files to migrate in the given pattern II. [ ] For rules, check if it's an "applied intelligently" rule (has description, no globs, no alwaysApply: true). Commands are always migrated. DO NOT use the terminal to read files. Use the read tool. III. [ ] Make a list of files to migrate. If empty, done. IV. [ ] For each file, read it, then write the new skill file preserving the body content EXACTLY. DO NOT use the terminal to write these files. Use the edit tool. V. [ ] Delete the original file. DO NOT use the terminal to delete these files. Use the delete tool. VI. [ ] Return a list of all the skill files that were migrated along with the original file paths.
  3. Wait for all subagents to complete and summarize the results to the user. IMPORTANT: Make sure to let them know if they want to undo the migration, to ask you to.
  4. If the user asks you to undo the migration, do the opposite of the above steps to restore the original files.

If you don't have the Task tool available:

  1. Create the skills directories if they don't exist (.cursor/skills/ for project, ~/.cursor/skills/ for user)
  2. Find files to migrate in both project (.cursor/) and user (~/.cursor/) directories
  3. For rules, check if it's an "applied intelligently" rule (has description, no globs, no alwaysApply: true). Commands are always migrated. DO NOT use the terminal to read files. Use the read tool.
  4. Make a list of files to migrate. If empty, done.
  5. For each file, read it, then write the new skill file preserving the body content EXACTLY. DO NOT use the terminal to write these files. Use the edit tool.
  6. Delete the original file. DO NOT use the terminal to delete these files. Use the delete tool.
  7. Summarize the results to the user. IMPORTANT: Make sure to let them know if they want to undo the migration, to ask you to.
  8. If the user asks you to undo the migration, do the opposite of the above steps to restore the original files.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.