This skill enables programmatic reading, updating, and creation of Cursor rules based on patterns extracted from PRs, issues, and user interactions.
When to Use
Use this skill when:
- Updating existing rules with new examples or patterns
- Creating new rules for emerging patterns
- Identifying when rules need updating
- Testing rule effectiveness
- Organizing and maintaining rules
Key Capabilities
1. Read Existing Rules
Read and parse rule files:
- Read
.cursor/rules/*.mdcfiles - Parse frontmatter (description, alwaysApply, references)
- Extract content sections
- Understand rule structure
Example:
# Read a rule file
rule_content = read_file(".cursor/rules/common-mistakes.mdc")
# Parse frontmatter
# Extract sections
# Understand structure
2. Identify When Rules Need Updating
Detect update opportunities:
- New patterns that fit existing rules
- Examples that should be added
- Clarifications needed
- Outdated information
Signals:
- Multiple PRs/issues showing same pattern
- User corrections revealing gaps
- Review feedback indicating missing guidance
- Emerging patterns not covered
3. Update Existing Rules
Process for updating:
- Read the rule file
- Identify where to add new content
- Add examples or sections
- Maintain organization
- Update references if needed
- Write updated rule
Update types:
- Add examples: Add new examples to existing sections
- Enhance sections: Expand existing sections with more detail
- Add sections: Add new sections for new patterns
- Update references: Add links to related rules/PRs/issues
Example update:
### Using Deprecated Functions
**Problem**: Using functions that have been deprecated or removed.
**Examples from PR #3567**:
- ❌ Used `postprocess_conversation()` which was deprecated
- ❌ Assumed functions exist without checking current codebase state
**NEW EXAMPLE from PR #3621**:
- ❌ Used `old_function()` which was removed in PR #3400
4. Create New Rules
Process for creating:
- Identify the pattern category
- Collect 2-3 examples from PRs/issues/interactions
- Determine rule file name and location
- Write rule following format
- Add frontmatter with appropriate metadata
- Link from related rules
Rule structure:
---
description: "Brief description"
alwaysApply: true/false
references:
- related-file.md
---
# Rule Title
## Section 1
Content...
## Section 2
Content...
## Related Rules
- Link to related rules
Example new rule:
---
description: "Guidelines for handling background operations"
alwaysApply: true
---
# Background Operations
Features should work when app is closed/backgrounded.
## Common Mistakes
- Features that only work when app is open (#4355)
- Features that require specific screen to be active
## How to Avoid
- Design features to work in background
- Test with app closed/backgrounded
- Use background services where appropriate
5. Test Rule Effectiveness
Verify updates don't break guidance:
- Check rule syntax is valid
- Verify frontmatter is correct
- Ensure links work
- Test rule readability
Metrics to track:
- How often rule prevents mistakes
- Reduction in related issues after rule creation
- Rule coverage (scenarios covered)
- User feedback on rule usefulness
Rule File Format
Frontmatter
---
description: "Brief description of what the rule covers"
alwaysApply: true # or false
references:
- related-file.md
- docs/doc/example.mdx
globs:
- "backend/**/*.py" # Optional: file patterns
---
Content Structure
# Rule Title
Brief introduction explaining the rule.
## Section 1
Content with examples, code snippets, etc.
## Section 2
More content...
## Related Rules
- `.cursor/rules/related-rule.mdc` - Description
## Related Cursor Resources
### Skills
- `.cursor/skills/related-skill/SKILL.md` - Description
### Commands
- `/related-command` - Description
Update Patterns
Adding Examples
When: New examples of existing patterns emerge
How:
- Find relevant section
- Add example with source (PR/issue number)
- Maintain formatting consistency
- Keep examples organized
Example:
### Common Mistake
**Example from PR #3567**:
- ❌ Description of mistake
**Example from Issue #4394**:
- ❌ Description of mistake
Enhancing Sections
When: Section needs more detail or clarification
How:
- Expand existing content
- Add more specific guidance
- Include more examples
- Add "How to avoid" subsections
Adding Sections
When: New pattern category emerges
How:
- Add new section with appropriate heading
- Follow existing section format
- Include examples
- Add to table of contents if applicable
Rule Organization
Rule Categories
Common categories:
- Common mistakes
- Architecture patterns
- Implementation checklists
- Verification guidelines
- Communication best practices
- Domain-specific patterns (Omi, backend, Flutter, etc.)
Naming Conventions
Rule file names:
- Use kebab-case:
common-mistakes.mdc - Be descriptive:
pre-implementation-checklist.mdc - Group related:
backend-architecture.mdc,backend-api-patterns.mdc
Linking Rules
Cross-references:
- Link related rules in "Related Rules" section
- Reference from other rules when relevant
- Keep links updated when rules are renamed
Best Practices
- Be specific: Include concrete examples, not vague patterns
- Reference sources: Always note which PR/issue/interaction the lesson came from
- Maintain organization: Keep rules well-organized and easy to navigate
- Test updates: Verify rule updates don't break existing guidance
- Prioritize: Focus on patterns that cause the most problems
- Iterate: Rules should improve over time as more data is collected
Example Workflow
Updating a rule with new pattern:
- Identify pattern: "Multiple PRs show missing context issue"
- Read rule: Read
.cursor/rules/context-communication.mdc - Find section: Find "PR Description Requirements" section
- Add example: Add example from recent PR
- Enhance guidance: Expand "What to Include" subsection
- Update references: Add link to new PR if relevant
- Write rule: Save updated rule file
- Verify: Check syntax and links
Creating new rule:
- Identify pattern: "New pattern: Background operation issues"
- Collect examples: Gather 2-3 examples from issues/PRs
- Determine name:
background-operations.mdc - Write rule: Create rule following format
- Add frontmatter: Include description, alwaysApply, references
- Link from related: Add link from
common-mistakes.mdc - Test: Verify rule is valid and readable
Related Cursor Resources
Rules
.cursor/rules/common-mistakes.mdc- Common mistakes rule.cursor/rules/context-communication.mdc- Communication rule.cursor/rules/pre-implementation-checklist.mdc- Checklist rule
Skills
.cursor/skills/self-improvement/SKILL.md- Self-improvement meta-skill
Commands
/learn-from-pr- Analyze PR for lessons/self-improve- Analyze patterns and update rules