.cursor/skills-cursor/migrate-to-skills/SKILL.md
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.
npx skillsauth add brujack/dotfiles migrate-to-skillsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
| Level | Source | Destination |
|-------|--------|-------------|
| Project | {workspaceFolder}/**/.cursor/rules/*.mdc, {workspaceFolder}/.cursor/commands/*.md |
| User | ~/.cursor/commands/*.md |
Notes:
Rules: Migrate if rule has a description but NO globs and NO alwaysApply: true.
Commands: Migrate all - they're plain markdown without frontmatter.
# 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.
# 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.
name must be lowercase with hyphens onlydescription is critical for skill discoverydescription from the frontmatter--- of the frontmatter).cursor/skills/{skill-name}/ (skill name = filename without .mdc)SKILL.md with new frontmatter (name and description) + the EXACT original body content (preserve all whitespace, formatting, code blocks verbatim)# prefix).cursor/skills/{skill-name}/ (skill name = filename without .md)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)CRITICAL: Copy the body content character-for-character. Do not reformat, fix typos, or "improve" anything.
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.
.cursor/skills/ for project, ~/.cursor/skills/ for user){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.If you don't have the Task tool available:
.cursor/skills/ for project, ~/.cursor/skills/ for user).cursor/) and user (~/.cursor/) directoriesdescription, no globs, no alwaysApply: true). Commands are always migrated. DO NOT use the terminal to read files. Use the read tool.development
Modify Cursor/VSCode user settings in settings.json. Use when you want to change editor settings, preferences, configuration, themes, font size, tab size, format on save, auto save, keybindings, or any settings.json values.
tools
View and modify Cursor CLI configuration settings in ~/.cursor/cli-config.json. Use when the user wants to change CLI settings, configure permissions, switch approval mode, enable vim mode, toggle display options, configure sandbox, or manage any CLI preferences.
tools
Configure a custom status line in the CLI. Use when the user mentions status line, statusline, statusLine, CLI status bar, prompt footer customization, or wants to add session context above the prompt.
testing
Runs the rest of a /shell request as a literal shell command. Use only when the user explicitly invokes /shell and wants the following text executed directly in the terminal.