Loading...
Loading...
Expert guidance for creating effective Cursor slash commands with best practices, format requirements, and schema validation
npx skill4agent add pr-pm/prpm creating-cursor-commands.cursor/commands/*.md.cursor/rules/creating-cursor-rules-skill| Aspect | Requirement |
|---|---|
| File Location | |
| Format | Plain Markdown (NO frontmatter) |
| Filename | Descriptive kebab-case (e.g., |
| Invocation | |
| Content | Clear, actionable instructions with examples |
review-code.md/review-codegenerate-tests.md/generate-testsexplain-code.md/explain-codeoptimize-performance.md/optimize-performancerc.mdreview_code.mdReviewCode.mdreview-code-thoroughly-with-security-checks.mdhttps://github.com/pr-pm/prpm/blob/main/packages/converters/schemas/cursor-command.schema.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
}content| Mistake | Why It's Wrong | How to Fix |
|---|---|---|
| Adding frontmatter | Cursor commands don't support frontmatter | Remove |
| 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 |
# Review Code
Review the code for issues.# 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.# Generate Tests
Generate tests for this code.# 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.# 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# 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.# Full Stack Feature
Create a full-stack feature with:
- Database migration
- API endpoint
- Frontend component
- Tests for everything
- Documentation# 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.cursor/commands/review-code.md# Review Code
Review the selected code for:
1. **Code Quality**
- Clean, readable code
- Proper naming conventions
- DRY principle adherence
2. **Security**
- Input validation
- SQL injection risks
- XSS vulnerabilities
- Authentication/authorization checks
3. **Performance**
- Inefficient algorithms
- Unnecessary computations
- Memory leaks
- Database query optimization
4. **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)..cursor/commands/generate-tests.md# 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..cursor/commands/document-function.md# 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..cursor/commands/optimize-performance.md# 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..cursor/commands/refactor-clean.md# 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..cursor/commands/fix-bug.md# 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..cursor/commands/~/.cursor/commands/.cursor/commands/.cursor/commands/command-name.md/command-name/generate-tests*.test.ts.cursor/commands/---
description: Review code
allowed-tools: Read, Grep
---
Review the code...# Review Code
Review the code...---
description: Testing conventions
globs: ["**/*.test.ts"]
---
# Testing Standards
Always write tests...# Generate Tests
Generate comprehensive tests.../review-code/refactor-clean/fix-lint/improve-types/generate-tests/test-edge-cases/test-coverage/document-function/add-comments/explain-code/optimize-performance/analyze-complexity/reduce-bundle/security-audit/sanitize-input/check-authhttps://github.com/pr-pm/prpm/blob/main/packages/converters/schemas/cursor-command.schema.json/Users/khaliqgant/Projects/prpm/app/packages/converters/docs/cursor.md/command-name