# Cursor Integration Best Practices

## Core Principles
- **Leverage Cursor's AI Capabilities**: Use built-in features for maximum efficiency
- **Optimize Rule Application**: Use appropriate rule types for different contexts
- **File Reference Integration**: Use `@` syntax for including files in context
- **Memory Integration**: Enable and utilize Cursor's memory features
- **Command Integration**: Use Cursor commands for rule generation and management

## Implementation Patterns

### Rule Type Selection Protocol
```python
# ✅ DO: Choose appropriate rule types
def select_rule_type(context: str, scope: str) -> RuleType:
    """Select the most appropriate rule type based on context."""
    
    if scope == "project_wide" and context == "essential":
        return RuleType.ALWAYS_APPLIED
    
    elif scope == "file_specific" and context == "automatic":
        return RuleType.AUTO_ATTACHED
    
    elif scope == "workflow_specific" and context == "intelligent":
        return RuleType.AGENT_REQUESTED
    
    elif scope == "manual" and context == "on_demand":
        return RuleType.MANUAL
    
    return RuleType.AGENT_REQUESTED  # Default fallback
```

### File Reference Integration
```python
# ✅ DO: Use file references effectively
def create_rule_with_references():
    """Example of effective file reference usage."""
    
    # Include implementation examples
    implementation_files = [
        "@src/services/protocols.py",
        "@src/services/transcription_service.py",
        "@tests/test_transcription_service.py"
    ]
    
    # Reference related rules
    related_rules = [
        "[project-structure.mdc](mdc:.cursor/rules/project-structure.mdc)",
        "[audio-processing.mdc](mdc:.cursor/rules/audio-processing.mdc)"
    ]
    
    return Rule(
        content=rule_content,
        file_references=implementation_files,
        rule_references=related_rules
    )
```

### Memory Integration Pattern
```python
# ✅ DO: Integrate with Cursor memories
def integrate_with_memories(context: str) -> EnhancedContext:
    """Integrate rule processing with Cursor memories."""
    
    # Enable memory features
    if memories_enabled:
        # Use memory for context enhancement
        enhanced_context = enhance_with_memories(context)
        
        # Generate rules from memory patterns
        memory_based_rules = generate_rules_from_memories()
        
        # Update context with memory insights
        return EnhancedContext(
            original_context=context,
            memory_insights=enhanced_context,
            generated_rules=memory_based_rules
        )
    
    return context
```

### Anti-Patterns
```python
# ❌ DON'T: Use wrong rule types
def bad_rule_type_selection():
    """Inappropriate rule type selection."""
    # BAD: Using Always Applied for specific file patterns
    # BAD: Using Manual for essential project rules
    # BAD: Using Auto Attached without proper glob patterns
    pass

# ❌ DON'T: Ignore file references
def bad_file_reference_usage():
    """Poor file reference practices."""
    # BAD: Not using @ syntax for file inclusion
    # BAD: Not updating references when files change
    # BAD: Using hypothetical examples instead of real code
    pass

# ❌ DON'T: Ignore Cursor features
def bad_cursor_integration():
    """Not leveraging Cursor's capabilities."""
    # BAD: Not using /Generate Cursor Rules command
    # BAD: Not enabling memories
    # BAD: Not using nested rules for organization
    pass
```

## Cursor-Specific Workflows

### Rule Generation Workflow
1. **Identify Pattern**: Notice repeated prompts or decisions in chat
2. **Use Command**: Execute `/Generate Cursor Rules` command
3. **Review Generated Rule**: Check the generated rule for accuracy
4. **Refine Rule**: Edit the rule to match project standards
5. **Place Appropriately**: Put rule in correct nested directory
6. **Test Rule**: Verify rule applies correctly
7. **Document**: Update rule documentation if needed

### Memory-Enhanced Development
1. **Enable Memories**: Turn on memory features in Cursor settings
2. **Work Naturally**: Continue development as usual
3. **Review Patterns**: Check memory insights for patterns
4. **Generate Rules**: Use memory patterns to create new rules
5. **Apply Insights**: Use memory insights to improve existing rules
6. **Maintain Consistency**: Ensure memory insights align with rules

### Nested Rule Organization
1. **Analyze Project Structure**: Identify logical groupings
2. **Create Nested Directories**: Set up `.cursor/rules` in subdirectories
3. **Scope Rules Appropriately**: Use glob patterns for auto-attachment
4. **Test Rule Application**: Verify rules apply to correct files
5. **Maintain Hierarchy**: Keep rule hierarchy consistent
6. **Update References**: Keep cross-references current

## Quality Assurance Protocols

### Rule Generation Checklist
- [ ] Pattern identified in chat or workflow
- [ ] `/Generate Cursor Rules` command used
- [ ] Generated rule reviewed for accuracy
- [ ] Rule refined to match project standards
- [ ] Rule placed in appropriate directory
- [ ] Rule tested for correct application
- [ ] Documentation updated if needed

### Memory Integration Checklist
- [ ] Memories enabled in Cursor settings
- [ ] Memory insights reviewed regularly
- [ ] Patterns identified from memory data
- [ ] New rules generated from patterns
- [ ] Existing rules updated with insights
- [ ] Consistency maintained across rules

### File Reference Checklist
- [ ] `@` syntax used for file inclusion
- [ ] Real code examples referenced
- [ ] References updated when files change
- [ ] Cross-references to other rules maintained
- [ ] File paths are accurate and current
- [ ] Examples are relevant and helpful

## Performance Guidelines
- **Rule Generation**: Use `/Generate Cursor Rules` for efficiency
- **Memory Integration**: Enable memories for automatic insights
- **File References**: Keep references current and relevant
- **Nested Rules**: Use for better organization and performance
- **Rule Types**: Choose appropriate types for optimal loading
- **Cross-References**: Maintain for consistency and navigation

## File References
- **[cursor_rules.mdc](mdc:.cursor/rules/cursor_rules.mdc)** - Core rule guidelines
- **[agents.mdc](mdc:.cursor/rules/agents.mdc)** - Project context and navigation
- **[context_engineering.mdc](mdc:.cursor/rules/context_engineering.mdc)** - Context engineering protocols
- **[project-structure.mdc](mdc:.cursor/rules/project-structure.mdc)** - File organization patterns

## Error Handling Patterns
```python
# ✅ DO: Handle Cursor integration errors
def handle_cursor_integration_error(error: CursorIntegrationError) -> ErrorResolution:
    """Handle errors in Cursor integration."""
    
    if isinstance(error, RuleGenerationError):
        return resolve_rule_generation_error(error)
    elif isinstance(error, MemoryIntegrationError):
        return resolve_memory_integration_error(error)
    elif isinstance(error, FileReferenceError):
        return resolve_file_reference_error(error)
    elif isinstance(error, NestedRuleError):
        return resolve_nested_rule_error(error)
    else:
        return escalate_cursor_error(error)
```

## Continuous Improvement
- **Pattern Recognition**: Continuously identify patterns for rule generation
- **Memory Analysis**: Regularly analyze memory insights for improvements
- **Rule Optimization**: Optimize rule types and organization
- **Feature Integration**: Stay updated with new Cursor features
- **Workflow Enhancement**: Improve workflows based on Cursor capabilities
- **Documentation Updates**: Keep documentation current with Cursor features
description:
globs:
alwaysApply: true
---
