🎯

creating-cursor-commands

🎯Skill

from pr-pm/prpm

VibeIndex|
What it does

Creates effective Cursor slash commands with clear, actionable instructions following best practices and schema validation.

creating-cursor-commands

Installation

Install skill:
npx skills add https://github.com/pr-pm/prpm --skill creating-cursor-commands
1
AddedJan 27, 2026

Skill Details

SKILL.md

Expert guidance for creating effective Cursor slash commands with best practices, format requirements, and schema validation

Overview

# Creating Cursor Slash Commands

You are an expert at creating effective Cursor slash commands (.cursor/commands/*.md) that provide clear, actionable instructions for AI assistants.

When to Use This Skill

Use when:

  • User wants to create a new Cursor slash command
  • User asks to improve existing slash commands
  • User needs help understanding Cursor command format
  • User wants to convert prompts to slash commands
  • User asks about Cursor command validation

Don't use for:

  • Cursor rules (.cursor/rules/) - use creating-cursor-rules-skill instead
  • Claude Code slash commands - those use different format with frontmatter
  • Complex multi-step workflows - those should be Cursor rules

Quick Reference

| Aspect | Requirement |

|--------|-------------|

| File Location | .cursor/commands/*.md |

| Format | Plain Markdown (NO frontmatter) |

| Filename | Descriptive kebab-case (e.g., review-code.md, generate-tests.md) |

| Invocation | /command-name in chat |

| Content | Clear, actionable instructions with examples |

Format Requirements

Critical Rules

  1. NO frontmatter allowed - Cursor commands are plain Markdown only
  2. Descriptive filenames - The filename becomes the command name
  3. Clear instructions - Tell AI exactly what to do
  4. Include examples - Show desired output format

File Naming

Good filenames:

  • review-code.md β†’ /review-code
  • generate-tests.md β†’ /generate-tests
  • explain-code.md β†’ /explain-code
  • optimize-performance.md β†’ /optimize-performance

Bad filenames:

  • rc.md - Too cryptic
  • review_code.md - Use hyphens, not underscores
  • ReviewCode.md - Use lowercase
  • review-code-thoroughly-with-security-checks.md - Too verbose

Schema Validation

Schema Location

https://github.com/pr-pm/prpm/blob/main/packages/converters/schemas/cursor-command.schema.json

Schema Structure

```json

{

"$schema": "http://json-schema.org/draft-07/schema#",

"$id": "https://prpm.dev/schemas/cursor-command.schema.json",

"title": "Cursor Command Format",

"description": "JSON Schema for Cursor commands (slash commands) - plain Markdown files in .cursor/commands/",

"type": "object",

"required": ["content"],

"properties": {

"content": {

"type": "string",

"description": "Plain Markdown content describing what the command should do. No frontmatter supported."

}

},

"additionalProperties": false

}

```

Key Validations

  1. Must be plain Markdown - No YAML frontmatter
  2. Content-only structure - Single content field
  3. No metadata - Unlike Cursor rules, commands have no configuration

Common Mistakes

| Mistake | Why It's Wrong | How to Fix |

|---------|---------------|------------|

| Adding frontmatter | Cursor commands don't support frontmatter | Remove --- blocks entirely |

| Using default exports syntax | Commands are not code files | Write plain Markdown instructions |

| Vague instructions | AI needs specific guidance | Add concrete examples and steps |

| Too many tasks | Commands should be focused | Create separate commands or use rules |

| Missing context | AI needs to know what to do | Include expected output format |

Best Practices

1. Be Specific and Actionable

❌ Bad - Vague:

```markdown

# Review Code

Review the code for issues.

```

βœ… Good - Specific:

```markdown

# Review Code

Review the selected code for:

  • Code quality and best practices
  • Potential bugs or edge cases
  • Performance improvements
  • Security vulnerabilities

Provide specific, actionable feedback with code examples where appropriate.

```

2. Include Expected Output Format

❌ Bad - No guidance:

```markdown

# Generate Tests

Generate tests for this code.

```

βœ… Good - Clear format:

```markdown

# Generate Tests

Generate comprehensive unit tests for the selected code.

Include:

  • Happy path test cases
  • Edge cases and error handling
  • Mock external dependencies
  • Follow existing test patterns in the project

Use the testing framework already configured in the project.

```

3. Provide Step-by-Step Instructions

βœ… Good - Structured approach:

```markdown

# Explain Code

Provide a clear explanation of what the selected code does.

Include:

  • High-level purpose and goals
  • Step-by-step breakdown of logic
  • Any non-obvious behavior or edge cases
  • Dependencies and side effects
  • How it fits into the larger codebase

```

4. Reference Project Context

βœ… Good - Context-aware:

```markdown

# Add Component

Create a new React component following our project conventions.

Structure:

  • Functional component with TypeScript
  • Props interface defined separately
  • Export as named export (not default)
  • Co-locate styles if needed
  • Follow existing component patterns in components/ directory

Use the same testing approach as existing components.

```

5. Focus on One Task

Each command should do ONE thing well.

❌ Bad - Too broad:

```markdown

# Full Stack Feature

Create a full-stack feature with:

  • Database migration
  • API endpoint
  • Frontend component
  • Tests for everything
  • Documentation

```

βœ… Good - Focused:

```markdown

# Create API Endpoint

Create a new API endpoint following our conventions.

Include:

  • Input validation with Zod
  • Error handling with try/catch
  • TypeScript types for request/response
  • Follow patterns in existing endpoints

```

Examples

Code Review Command

.cursor/commands/review-code.md:

```markdown

# Review Code

Review the selected code for:

  1. Code Quality

- Clean, readable code

- Proper naming conventions

- DRY principle adherence

  1. Security

- Input validation

- SQL injection risks

- XSS vulnerabilities

- Authentication/authorization checks

  1. Performance

- Inefficient algorithms

- Unnecessary computations

- Memory leaks

- Database query optimization

  1. Best Practices

- Error handling

- Type safety

- Test coverage

- Documentation

Provide specific file and line references for all issues found.

Format findings as a numbered list with severity (Critical/High/Medium/Low).

```

Test Generation Command

.cursor/commands/generate-tests.md:

```markdown

# Generate Tests

Generate comprehensive unit tests for the selected code.

Test Coverage:

  • Happy path scenarios
  • Edge cases
  • Error conditions
  • Boundary values
  • Invalid inputs

Requirements:

  • Use existing test framework (Jest/Vitest/etc.)
  • Follow project testing patterns
  • Mock external dependencies
  • Include test descriptions
  • Aim for 100% code coverage

Format tests in the same style as existing test files in the project.

```

Documentation Generator

.cursor/commands/document-function.md:

```markdown

# Document Function

Generate comprehensive documentation for the selected function.

Include:

Function signature:

  • Parameter types and descriptions
  • Return type and description
  • Generic types if applicable

Description:

  • What the function does (one-line summary)
  • Why it exists (use case)
  • How it works (implementation details if non-obvious)

Examples:

  • Basic usage example
  • Edge case example if relevant

Notes:

  • Any side effects
  • Performance considerations
  • Related functions

Use JSDoc/TSDoc format for TypeScript/JavaScript.

```

Optimization Command

.cursor/commands/optimize-performance.md:

```markdown

# Optimize Performance

Analyze the selected code for performance improvements.

Look for:

Algorithmic Issues:

  • O(nΒ²) or worse time complexity
  • Unnecessary nested loops
  • Inefficient data structures

React-Specific:

  • Unnecessary re-renders
  • Missing useMemo/useCallback
  • Large component trees
  • Props drilling

General:

  • Redundant computations
  • Memory leaks
  • Synchronous blocking operations
  • Large bundle size contributors

Suggest specific optimizations with code examples.

Estimate performance impact of each suggestion.

```

Refactoring Command

.cursor/commands/refactor-clean.md:

```markdown

# Refactor for Clean Code

Refactor the selected code to improve maintainability.

Apply these principles:

Extract Functions:

  • Break down large functions (> 50 lines)
  • Create single-responsibility functions
  • Use descriptive names

Simplify Logic:

  • Reduce nesting (early returns)
  • Eliminate duplication
  • Clarify complex conditionals

Improve Names:

  • Use meaningful variable names
  • Follow project naming conventions
  • Avoid abbreviations

Type Safety:

  • Add proper TypeScript types
  • Eliminate 'any' types
  • Use interfaces/types

Preserve all existing functionality and tests.

```

Bug Fix Command

.cursor/commands/fix-bug.md:

```markdown

# Fix Bug

Analyze and fix the bug in the selected code.

Investigation steps:

  1. Identify the root cause
  2. Explain why the bug occurs
  3. Propose a fix
  4. Consider edge cases
  5. Suggest tests to prevent regression

Fix requirements:

  • Minimal changes to fix the issue
  • Don't break existing functionality
  • Add/update tests
  • Add comments explaining the fix if non-obvious

Explain the fix clearly with before/after code examples.

```

Storage Locations

Commands can be stored in multiple locations (in order of precedence):

  1. Project commands: .cursor/commands/ directory in your project (shared with team)
  2. Global commands: ~/.cursor/commands/ directory (personal, all projects)
  3. Team commands: Created via Cursor Dashboard (enterprise teams)

Best practice: Store team-wide commands in .cursor/commands/ and commit to version control.

Testing Your Commands

After creating a command:

  1. Save to .cursor/commands/command-name.md
  2. Invoke with /command-name in Cursor chat
  3. Verify AI follows instructions correctly
  4. Test edge cases:

- No code selected

- Empty files

- Complex code

- Different languages

  1. Iterate based on results

Commands vs. Cursor Rules

Use Commands When:

  • βœ… Simple, focused task
  • βœ… Explicit user invocation desired
  • βœ… Personal productivity shortcuts
  • βœ… One-time operations

Use Cursor Rules When:

  • βœ… Context-aware automatic activation
  • βœ… File-type specific guidance
  • βœ… Team standardization
  • βœ… Always-on conventions

Example:

  • Command: /generate-tests - Explicitly generate tests when asked
  • Rule: Auto-attach testing conventions to *.test.ts files

Validation Checklist

Before finalizing a command:

  • [ ] Filename is descriptive and kebab-case
  • [ ] NO frontmatter (plain Markdown only)
  • [ ] Instructions are clear and specific
  • [ ] Expected output format is described
  • [ ] Examples are included
  • [ ] Steps are actionable
  • [ ] Command is focused on one task
  • [ ] Edge cases are considered
  • [ ] File is in .cursor/commands/ directory
  • [ ] Command has been tested

Converting from Other Formats

From Claude Code Slash Commands

Claude Code commands use frontmatter - remove it for Cursor:

Claude Code:

```markdown

---

description: Review code

allowed-tools: Read, Grep

---

Review the code...

```

Cursor:

```markdown

# Review Code

Review the code...

```

From Cursor Rules

Rules use frontmatter and are context-aware - simplify to plain Markdown:

Cursor Rule:

```markdown

---

description: Testing conventions

globs: ["*/.test.ts"]

---

# Testing Standards

Always write tests...

```

Cursor Command:

```markdown

# Generate Tests

Generate comprehensive tests...

```

Common Use Cases

Code Quality

  • /review-code - Code review
  • /refactor-clean - Clean code refactoring
  • /fix-lint - Fix linting issues
  • /improve-types - Improve TypeScript types

Testing

  • /generate-tests - Generate unit tests
  • /test-edge-cases - Add edge case tests
  • /test-coverage - Check test coverage

Documentation

  • /document-function - Document function
  • /add-comments - Add code comments
  • /explain-code - Explain complex code

Performance

  • /optimize-performance - Performance optimization
  • /analyze-complexity - Analyze time complexity
  • /reduce-bundle - Reduce bundle size

Security

  • /security-audit - Security vulnerability check
  • /sanitize-input - Add input validation
  • /check-auth - Review authentication

References

  • Schema: https://github.com/pr-pm/prpm/blob/main/packages/converters/schemas/cursor-command.schema.json
  • Docs: /Users/khaliqgant/Projects/prpm/app/packages/converters/docs/cursor.md
  • Official Docs: https://cursor.com/docs/agent/chat/commands

Remember

Golden Rules:

  1. NO frontmatter - plain Markdown only
  2. Descriptive filenames - they become command names
  3. Clear instructions - AI needs specific guidance
  4. Include examples - show desired output
  5. One task per command - keep it focused

Goal: Create commands that make frequent tasks effortless with a simple /command-name invocation.

More from this repository10

🎯
human-writing🎯Skill

Writes content with authentic human voice, avoiding AI-generated patterns and corporate jargon for genuine, conversational communication.

🎯
self-improving🎯Skill

I'll search for relevant PRPM packages to help with Pulumi and Beanstalk infrastructure. Suggested Packages: 1. @prpm/pulumi-beanstalk (Official, 5,000+ downloads) 2. pulumi-aws-extensions (Commun...

🎯
beanstalk-deploy🎯Skill

Deploys and manages AWS Elastic Beanstalk applications with robust infrastructure health checks, error handling, and GitHub Actions integration.

🎯
creating-opencode-agents🎯Skill

Generates OpenCode agent configurations with markdown, YAML frontmatter, and precise tool/permission settings for specialized AI assistants.

🎯
creating-opencode-plugins🎯Skill

Develops event-driven OpenCode plugins to intercept and customize interactions across command, file, LSP, permission, session, and tool events.

🎯
creating-claude-agents🎯Skill

Guides developers in creating and validating Claude Code agents with expert best practices for file structure, persona definition, and tool configuration.

🎯
thoroughness🎯Skill

thoroughness skill from pr-pm/prpm

🎯
creating-continue-packages🎯Skill

Generates Continue rules with required naming, context-aware matching using globs/regex, and markdown formatting for package configurations.

🎯
pulumi-troubleshooting🎯Skill

Troubleshoots Pulumi TypeScript infrastructure deployment errors, providing solutions for type inference, configuration, stack management, and Output handling.

🎯
prpm-development🎯Skill

Develops a universal package manager for AI prompts, enabling seamless discovery, installation, sharing, and management of development artifacts across AI platforms.