Ultimate Rule Generator - No more failure to generate and Private Rules!

There have been a few attempts and shared rules that would generate other rules, but they all seems to have a few problems.

After quite a bit of research, tweaking, and figuring out what the optimal format of rules might be (research in the readme linked below), I have created a template with a rule that will:

  • Always save or update a rule (does not fail to write or create a file occasionally
  • Optimize for auto rule selection through optimized front matter descriptions
  • Usage of mermaid diagrams in certain rules if it will aid LLM and reduce need for extra verbosity keeping context smaller
  • Auto Canonical classification
  • Ability to generate both public and private rules
  • Ability to request the LLM learn or never do something again and it will know to create or update a rule
  • A script that will add the rule and a few other nice things to a new or existing repo to quickly add the ability for auto rule generation.
  • If you have existing rules, once this rule is in place, it is great for updating all existing rules into granular well formatted optimized rules following this core rule 000

Here is a Video Demo and Walkthrough of auto rule generation, theory of why this works so well, along with a demo of voice ā†’ rule generation and public vs private rule handling.

Check it out here GitHub - bmadcode/cursor-auto-rules-agile-workflow - the readme has more info, or just take a look at the .cursor/rules rule 000.

17 Likes

wow

1 Like

Thank you so much @bmadcode - this is a huge contribution to us still trying to understand how this stuff works.

1 Like

Iā€™m a coding novice and Iā€™ve been using Cursor quite a bit over the past 18 months.

Consistently, Iā€™ve hit points where my codebase reaches about 5,000 lines of code and Iā€™ve just ground to a halt. This isnā€™t Cursor-specific, as most AI development tools are like this.

A lot of my experience has been directly affected by my own limited abilities - because even though you can delegate tasks to an Agent, you still need to learn about GitHub, linting, unit tests, Docker, monitoring, databasesā€¦

Iā€™ve been looking at the documentation for @bmadcode 's auto-rules generator and agile workflow - I can definitely see the benefit of having a agile structure like this in place. Iā€™m just wondering if there are any testimonials or people who have tried these?

Like many on this forum, the new Rules system have been challenging to say the least.

Realistically, Iā€™m going to have to restart my project anyway, as what I have now is so spectacularly broken on several fronts - but putting all my documentation into the agile tracker is going to take a few days - so any testimonials would be great to hear.

Thanks for the good YouTube video. Just a heads up, in your yt profile, the link to your other channel has incorrect link.

Great points - not wrong on any of them. The workflow does work well building up to applications I would same medium complexity while following good design patterns.

I have used the concepts also in very large brownfield apps for work - quite brownfield - and the concepts work well.

RE rules specifically though, consistent style in code and good linting in place can help a lot - reducing the need for many rules. Use of rules sparingly to correct mistakes seem to be the best course of action - along with not letting composer windows go on for too long - keeping each composer context focused to the specific main goal or task at hand.

Working in the idea of TDD can also help - along with the general advice of commit often when code is working well - its easier to just revert back to a commit than dealing with going back in time through breakpoints.

The changes released today are interesting and will be good to see how well that will work into the workflow. Also some other recent additions such as composer ā†’ composer summarized context sharing will be interesting to work into the concept.

But to really distill it down - having the composer review the overall goal of whats being built, reviewing what it has done so far (memory) and what it is trying to achieve in granular steps is the basic message of the workflow.

With the workflow set up as a rule that always loads - I find it to be reliable to remember I want to work that way - such as dont start coding until i review and approve the plan. Its a bit hands on, but best to scale towards large apps that are organized well across modules or files - unlike many simple examples online that are simple 1 page html apps.

thanks for putting all of this together @bmadcode - looking forward to digging into this!

edit: great youtube video. If that had been on loom I wouldā€™ve :+1: numerous places while watching it.

1 Like

@bmadcode - tried using your templates and unfortunately cursor wonā€™t create or update rules properly. Looks like on your github repo others are experiencing the same issue.

fwiw, Iā€™m using:

Version: 0.45.15
VSCode Version: 1.96.2
Commit: a2826398d8d8197cad72fb0cfdc1f472aa7cf050
Date: 2025-02-19T23:45:10.453Z
Electron: 32.2.6
Chromium: 128.0.6613.186
Node.js: 20.18.1
V8: 12.8.374.38-electron.0
OS: Darwin arm64 24.3.0

@bmadcode Thanks for sharing the results of your experimentation with rules. I would suggest that the agile workflow rules be opt-in.
It would be easier to get started with the core rules 000 and 400.

1 Like

Currently they are opt in and not part of the rules - just left as an example of keeping context in xnotes to be ignored - but I think it might be clearer if I remove it from this repo and add to a new one as its a bit beyond the point of the base rule generator rule.

Thanks Doug - will also check on github and reply, asap. I am surprised others are running into the issue still with files not being properly created. I originally had this issue which lead to the creation of this rule specifically driving proper creation of front matter which seemed to fix the issue.

Your version stack looks the same as mine for the most part - one potential issue is maybe the model? Are you using Claude Sonnet?

Other than than, Ill do some experimenting to see if I can recreate the issue.

I have created an mcp server to handle this improving the concept of the memory bank created by cline maintainers. The best part of it: I can use it with cline, cursor, claude, etc, and all of these tools contribute to the memory base. I have been having huge benefits as I invest time in refining custom instructions on tasks.

This is a great idea - ill will try it out soon! I like the ideas of the rules when they work properly in that they load automatically for the task at hand only as needed - but the implementation seems inconsistent. With the new cursor update it does make it easier to tell when a specific rule is being loaded. But the idea of having something the grows and evolves and works with multiple tools that supports the mcp protocol could be a big improvement.

What I made is just a ā€œforkā€ with a different approach to this: cline_docs/prompting/custom instructions library/cline-memory-bank.md at main Ā· nickbaumann98/cline_docs Ā· GitHub

I like the idea of an improving memory as prompts and agents fail as prompts and instructions are not usually good enough at the beginning. I have been managing to improve the instructions with this technique with nice results. Every time an agent starts doing something wrong in a specific task I iterate with it to improve the memory bank so that the mistakes donā€™t happen again, gradually refining their assertions.

Fixed the issues - latest repo has been corrected to ensure that the only thing at the start of the file is:

---
description: <the description>
globs: <the globs or empty>
---

when anything else is in this pattern - or if its missing, it runs into file conflicts which is what results in rules seemingly not being autogenerated or being blank.

1 Like

Thank you for this. With it I was finally able to get the rules to work consistently. Even being able to start a new session exactly where things were left off. I got there by having a meta conversation with the claude agent where it proposed a rule using 000-cursor-rules.mdc that reduced the false starts and wanderings to almost zero. Here is the rule if anyone is banging their head like I was. I can also open a PR if bmadcode thinks it would help to have in the repo.

thanks a million - i did some research with perplexity deep research asking it to provide suggestions as to how i can get cursor to be as efficient and optimized as cline roo which seems to just work in develop applications but it is cost prohibitive i received the following suggestion perhaps you can assist and make cursor as efficient as cline roo Below is a complete, beginner-friendly stepā€byā€step guide covering all the rules you provided. Each rule is listed exactly as written, with instructions on how to set it up in Cursor. For any rule that requires extra files or steps, those are explained; otherwise, you simply add the rule.


1. Context Retention Rule

Rule: .cursor/rules/context-retention.mdc

# .cursor/rules/context-retention.mdc
- Maintain vector index of all modified files via @contextprotocol/vector-db
- Weight context by:
  - File modification frequency (0.7x)
  - Test coverage density (1.2x)
  - Architectural significance from .cursor/architecture.md
- Preserve session state across restarts using LocalForage snapshots

Purpose:
Ensures that Cursor tracks changes in your files, prioritizes important files based on modification frequency, test coverage, and architectural importance, and remembers your session state even after restarting.

Setup Instructions:

  1. Create the File:
    • In your global rules directory (e.g., ~/.cursor/rules/), create a file named context-retention.mdc.
  2. Paste the Content:
    • Copy the exact content above into the file.
  3. Additional File Required:
    • @architecture-rules.md:
      • Purpose: This file defines your projectā€™s architectural guidelines (key modules, design patterns, etc.).
      • Setup: Create a file named .cursor/architecture.md (or @architecture-rules.md per your convention) in the same folder. Add your architectural guidelines there.
  4. Finish:
    • Restart Cursor to load the new rule.

Global Rules Inheritance

Rule: Global JSON Configuration

{
  "rules.globalRulesPath": "~/.cursor/rules/enterprise-standards",
  "rules.mergeStrategy": "override",
  "rules.autoApplyPatterns": ["**/*.tsx", "**/api/*.ts"]
}

Purpose:
Directs Cursor to use enterprise-wide rules stored in a specific folder, ensures global rules override project-specific ones, and automatically applies these rules to specific file patterns.

Setup Instructions:

  1. Add the Rule:
    • Insert this JSON snippet into your global Cursor configuration file (e.g., settings.json).
  2. Ensure the Folder Exists:
    • Confirm that the folder ~/.cursor/rules/enterprise-standards exists and contains your standard rule templates.
  3. Finish:
    • No additional steps are neededā€”simply add the rule.

2. Debug Workflows and Error Handling

Rule: .cursor/rules/debug-workflows.mdc

# .cursor/rules/debug-workflows.mdc
- Create pre-commit checkpoints via @cline/checkpoint-engine
- Diff current state against last stable checkpoint
- Auto-suggest rollbacks when test coverage drops below 85%

Purpose:
Automates the creation of checkpoints before commits, compares current code with the last known good state, and suggests rollbacks if test coverage falls too low.

Setup Instructions:

  1. Create the File:
    • In ~/.cursor/rules/, create a file named debug-workflows.mdc.
  2. Paste the Content:
    • Copy and paste the rule exactly.
  3. Finish:
    • Add the rule.

Note: This rule appears multiple times in your list; add it once.


Rule: .cursor/rules/error-handler.ts

// .cursor/rules/error-handler.ts
export const recoveryFlow = (error: Error) => {
  if (error.message.includes("Cannot read property")) {
    return {
      action: "INJECT_NULL_CHECK",
      contextFiles: ["@utils/safe-access.ts"]
    };
  }
  // 28 additional error signatures
};

Purpose:
Defines how Cursor automatically handles common errors by suggesting fixesā€”such as injecting null checks when a ā€œCannot read propertyā€ error is encountered.

Setup Instructions:

  1. Create the File:
    • In ~/.cursor/rules/, create a file named error-handler.ts.
  2. Paste the Content:
    • Copy and paste the exact code.
  3. Additional File Required:
    • @utils/safe-access.ts:
      • Purpose: Contains functions to safely access object properties (implementing null checks).
      • Setup: Create this file in your projectā€™s utilities folder and add the necessary code.
  4. Finish:
    • Add the rule along with the extra file.

Note: This error-handler rule is repeated; add it only once.


3. Architectural Guardrails (MCP Server Configuration)

Rule: MCP Server JSON Configuration

{
  "mcp.servers": [
    {
      "name": "ArchGuard",
      "url": "http://localhost:3001",
      "timeout": 150,
      "rules": "@architecture-rules.md"
    }
  ]
}

Purpose:
Sets up an MCP server named ā€œArchGuardā€ that enforces architectural rules defined in an external file.

Setup Instructions:

  1. Add the Rule:
    • Insert this JSON snippet into your global configuration (or dedicated MCP server settings file).
  2. Additional File Required:
    • @architecture-rules.md:
      • Purpose: Contains the architectural guidelines for your project.
      • Setup: As described in Rule 1, create and populate this file in ~/.cursor/rules/.
  3. Run the MCP Server:
    • Ensure an instance of the Architectural Guardrails server is running on port 3001. (Refer to the server documentationā€”e.g., using Docker:
      docker run -p 3001:3001 your-archguard-image
      
      )
  4. Finish:
    • Add the rule and verify that the MCP server is active.

4. Security Rule

Rule: .cursor/rules/security.mdc

# ~/.cursor/rules/security.mdc
- Scan all terminal commands through @security-sentinel
- Risk levels:
  - HIGH: rm -rf, .env modifications
  - MEDIUM: file system writes
  - LOW: read-only operations
- Require manual approval for HIGH-risk actions

Purpose:
Ensures that every terminal command executed via Cursor is checked for security risks and requires manual approval for high-risk actions.

Setup Instructions:

  1. Create the File:
    • In ~/.cursor/rules/, create a file named security.mdc.
  2. Paste the Content:
    • Copy and paste the exact content.
  3. Finish:
    • Add the rule.

5. Update and Validation Script

Rule: update-rules.sh

#!/bin/bash
# update-rules.sh
curl https://rules.cursor.directory/latest.tar.gz | tar xz -C ~/.cursor/rules
npx @cursorlint/cli validate --strict

Purpose:
Automates downloading the latest rule templates and validating your Cursor configuration to ensure all rules are applied correctly.

Setup Instructions:

  1. Create the Script File:
    • Create a file named update-rules.sh in your preferred scripts directory (e.g., in your home directory or /usr/local/bin/).
  2. Paste the Script Content:
    • Copy and paste the above script.
  3. Make It Executable:
    • Run in your terminal:
      chmod +x update-rules.sh
      
  4. Optional ā€“ Schedule via Cron:
    • To automate updates, place the script in /etc/cron.daily/ or create a cron job.
  5. Finish:
    • Add the script.

6. Next.js Specific Rule

Rule: .cursor/rules/nextjs.mdc

# .cursor/rules/nextjs.mdc
- Use App Router for all routing
- Server Components:
  - No useEffect/useState
  - Fetch directly in component
  - Streaming responses
- Client Components:
  - 'use client' directive
  - Hydration-safe patterns
- Cache Config:
  - revalidate: 3600
  - tags: @/data-fetching
- Metadata:
  - generateMetadata for dynamic SEO [1][9]

Purpose:
Optimizes Cursorā€™s handling of Next.js projects by setting best practices for routing, component usage, caching, and SEO.

Setup Instructions:

  1. Create the File:
    • In ~/.cursor/rules/, create a file named nextjs.mdc.
  2. Paste the Content:
    • Copy and paste the rule exactly.
  3. Finish:
    • Add the rule.

7. React Component Governance Rule

Rule: React Governance JSON

{
  "react.rules": {
    "naming": "PascalCase",
    "props": {
      "typeSafety": "TypeScript interfaces",
      "defaults": "Required unless optional",
      "destructuring": "Enforced"
    },
    "hooks": {
      "dependencies": "Exhaustive deps",
      "ordering": "Same-order principle"
    }
  }
}

Purpose:
Enforces best practices in React componentsā€”ensuring proper naming, type safety, and correct hook usage.

Setup Instructions:

  1. Add the Rule:
    • Insert this JSON snippet into your global configuration file (e.g., settings.json) or into your dedicated React rules configuration file.
  2. Finish:
    • Add the rule.

8. Performance Guardrails Rule

Rule: .cursor/rules/performance.yml

# .cursor/rules/performance.yml
react:
  memoization:
    threshold: 3_props_changes
    exclude: ["context_consumers"]
nextjs:
  image_optimization:
    format: webp
    quality: 75
    remote_patterns:
      - hostname: '**.cdn.com'
bundling:
  chunk_strategy: route_based
  preload: critical_assets [6][10]

Purpose:
Sets performance guidelines for React and Next.js projects, including memoization, image optimization, and bundling strategies.

Setup Instructions:

  1. Create the File:
    • In ~/.cursor/rules/, create a file named performance.yml.
  2. Paste the Content:
    • Copy and paste the rule exactly.
  3. Finish:
    • Add the rule.

9. Adaptive Token Allocation (Context Pruning) Rule

Rule: .cursor/rules/context-pruning.mdc

# .cursor/rules/context-pruning.mdc
- Implement vector-aware pruning using @contextprotocol/dynamic-pruner
- Priority tiers:
  - Active development files: 45% token allocation
  - Recently modified utils: 25%
  - Architectural docs: 15%
  - node_modules: 0% (auto-excluded)
- Prune non-essential tokens using CDIT framework thresholds [18][5]

Purpose:
Optimizes the context window by allocating tokens (the unit of context) preferentially to important files while pruning less essential information.

Setup Instructions:

  1. Create the File:
    • In ~/.cursor/rules/, create a file named context-pruning.mdc.
  2. Paste the Content:
    • Copy and paste the rule exactly.
  3. Finish:
    • Add the rule.

10. Hierarchical Indexing Rule

Rule: .cursor/rules/index-layers.yml

# .cursor/rules/index-layers.yml
index_layers:
  - Type: File Relationships
    Weight: 0.7
    Source: import/export statements
  - Type: API Surface
    Weight: 0.9
    Source: OpenAPI specs
  - Type: Data Flow
    Weight: 1.2
    Source: PropTypes/TypeScript interfaces

Purpose:
Builds multiple layers of indexing so that Cursor can better understand relationships within your code, such as how files import/export each other, the structure of your APIs, and the data flow through your application.

Setup Instructions:

  1. Create the File:
    • In ~/.cursor/rules/, create a file named index-layers.yml.
  2. Paste the Content:
    • Copy and paste the rule exactly.
  3. Finish:
    • Add the rule.

11. Multi-Model Routing Protocol Rule

Rule: .cursor/rules/model-router.ts

// .cursor/rules/model-router.ts
export const routeRequest = (task: DevTask) => {
  switch(task.type) {
    case 'REFACTOR':
      return {
        model: 'claude-3-opus',
        temperature: 0.3,
        maxTokens: 4096
      };
    case 'DEBUG':
      return {
        model: 'roo-code-v3',
        temperature: 0.1,
        contextStrategy: 'Temporal'
      };
    case 'GENERATE':
      return {
        model: 'gpt-4-turbo',
        temperature: 0.7,
        streaming: true
      };
  }
};

Purpose:
Routes different types of development tasks (refactoring, debugging, generating new code) to the most suitable AI model.

Setup Instructions:

  1. Create the File:
    • In ~/.cursor/rules/, create a file named model-router.ts.
  2. Paste the Content:
    • Copy and paste the code exactly.
  3. Finish:
    • Add the rule.

12. Cost-Aware Execution Rule

Rule: Cost-Aware Execution JSON

{
  "ai.budgetRules": {
    "maxDailyCost": "$15",
    "fallbackModel": "claude-3-sonnet",
    "alertThresholds": {
      "75%": "WARN",
      "90%": "BLOCK"
    }
  }
}

Purpose:
Manages your daily API spending by setting a maximum cost, specifying a fallback model if needed, and defining alert thresholds.

Setup Instructions:

  1. Add the Rule:
    • Insert this JSON snippet into your global Cursor configuration file (e.g., settings.json).
  2. Finish:
    • Add the rule.

13. Automated Checkpointing Rule

Rule: .cursor/rules/checkpoints.mdc

# .cursor/rules/checkpoints.mdc
- Create pre-commit snapshots via @cline/checkpoint-engine
- Diff analysis parameters:
  - Line similarity: 85%
  - Semantic equivalence: 92%
  - Test coverage delta: Ā±5%
- Auto-rollback triggers:
  - Test pass rate  3
  - Lint warnings increase

Purpose:
Automatically creates snapshots of your code before commits and compares them with the current state to suggest rollbacks if necessary, reducing debugging iterations.

Setup Instructions:

  1. Create the File:
    • In ~/.cursor/rules/, create a file named checkpoints.mdc.
  2. Paste the Content:
    • Copy and paste the rule exactly.
  3. Finish:
    • Add the rule.

14. Security Enforcement (Workflow) Rule

Rule: .cursor/rules/security-gates.yml

# .cursor/rules/security-gates.yml
command_risk:
  HIGH:
    - "rm -rf"
    - ".env modification"
    - "sudo"
  MEDIUM:
    - "fs.write"
    - "process.kill"
  validation:
    - Manual approval for HIGH
    - Code review for MEDIUM+

Purpose:
Ensures that commands with high risk (like deletion or modifying critical files) require manual approval or extra review, helping prevent catastrophic errors.

Setup Instructions:

  1. Create the File:
    • In ~/.cursor/rules/, create a file named security-gates.yml.
  2. Paste the Content:
    • Copy and paste the rule exactly.
  3. Finish:
    • Add the rule.

15. Maintenance Protocol (Benchmark and Optimization Script)

Rule: Maintenance Script

#!/bin/bash
# /etc/cron.hourly/cursor-optimize
find ~/.cursor/rules -name "*.mdc" -exec sed -i 's/temperature: 0.7/temperature: 0.5/g' {} \;
systemctl reload cursor-engine

Purpose:
Automates the tuning of specific parameters (e.g., adjusting temperature values) across all rule files and reloads the Cursor engine, ensuring optimal performance.

Setup Instructions:

  1. Create the Script File:
    • Create a file named cursor-optimize in your cron directory (e.g., /etc/cron.hourly/).
  2. Paste the Content:
    • Copy and paste the script exactly.
  3. Make It Executable:
    • Run:
      chmod +x /etc/cron.hourly/cursor-optimize
      
  4. Finish:
    • Add the script and schedule it via cron.

16. Global Coding Standards for Cursor AI

Rule: Global Rules for Cursor AI

## General Coding Standards
1. Code Quality:
   - Follow SOLID principles
   - Implement DRY (Don't Repeat Yourself)
   - Use clear, semantic naming
   - Include proper error handling
   - Add comprehensive documentation

2. Security Practices:
   - Validate all inputs
   - Sanitize data outputs
   - Use prepared statements for queries
   - Implement proper authentication
   - Follow OWASP guidelines

3. Performance Optimization:
   - Optimize database queries
   - Implement caching where appropriate
   - Use lazy loading for resources
   - Minimize HTTP requests
   - Optimize asset delivery

## Architecture Patterns
1. Backend Development:
   - RESTful API design
   - Microservices architecture
   - Event-driven patterns
   - Repository pattern
   - Service layer abstraction

2. Frontend Development:
   - Component-based architecture
   - State management patterns
   - Progressive enhancement
   - Responsive design
   - Accessibility standards

## Testing Standards
1. Test Coverage:
   - Unit testing
   - Integration testing
   - End-to-end testing
   - Performance testing
   - Security testing

2. Documentation Requirements:
   - API documentation
   - Code comments
   - README files
   - Changelog maintenance
   - Setup instructions

## Development Workflow
1. Version Control:
   - Git flow branching
   - Meaningful commit messages
   - Pull request templates
   - Code review guidelines
   - Branch naming conventions

2. CI/CD Practices:
   - Automated testing
   - Continuous integration
   - Deployment automation
   - Environment management
   - Monitoring and logging

## Code Review Guidelines
1. Review Focus:
   - Code functionality
   - Security implications
   - Performance impact
   - Documentation completeness
   - Test coverage

2. Quality Checks:
   - Linting standards
   - Code formatting
   - Type checking
   - Dependency management
   - Security scanning

Purpose:
These guidelines establish best practices for coding, security, performance, architecture, testing, workflow, and code review. They serve as a foundation for maintaining enterprise-grade standards.

Setup Instructions:

  1. Document the Guidelines:
    • Create a file (e.g., enterprise-standards.md) in your global rules folder (e.g., ~/.cursor/rules/enterprise-standards/).
  2. Paste the Content:
    • Copy and paste the exact content above into that file.
  3. Reference in Global Config:
    • Make sure your global configuration (see Rule 2) points to this folder.
  4. Finish:
    • Add the rule.

Final Summary

For each rule:

  • If a file needs to be created:
    Create the file in the appropriate folder (usually ~/.cursor/rules/) and paste the exact content.
  • If additional files are mentioned:
    Create those as well (e.g., @architecture-rules.md, @utils/safe-access.ts).
  • If the rule is a JSON snippet:
    Add it to your global configuration file (e.g., settings.json).
  • For scripts:
    Create the script file, paste the code, and make it executable.
  • If no extra steps are needed:
    Simply add the rule.

By following this complete guide, you will have set up all the provided Cursor global rules, ensuring your development environment is optimized for enterprise-grade web development.

The main struggle for me is around deployment to my production server (Google Cloud). I am constantly hitting a wall of errors, even with Docker. I can build locally in a manageable way, but as soon as I try to deploy it just implodes. I would love to have a ruleset for how to overcome this.

PRs are welcome of course - its an evolving work in progress and I also like to learn what others figure out also and try different things - I have pushed some improvements today to both the rule generation and also the sample workflow as there were a few errors in there that got mangled at some point inadvertently.

Also with the recent changes to cursor - I think there are some updates in order for the workflow and also the ability to mark a rule as global more clearly.

re the abundance of rules - I do add those in as needed per project with rule generation - but also try to avoid adding a lot of the rules that might seem necessary by allowing the ai to choose most defaults on its own and layering in rules as needed.

I have found that with larger code bases - or as the code base from scratch grows - rules can be removed or are not necessary for some things as it will generally start to follow the style of the codebase in some instances - so still a lot of constant trial and error with adding and removing rules as a project progresses.

1 Like

yeah, I am using claude 3.5 sonnet as well.

I spent a bunch of time on the weekend. It has something to do with the .mdc format and Cursor itself. Few things I noticed:

  1. When the new rule was being created, it was automatically being opened in the editor most of the time.
  2. On #1 - I tried closing all open documents and having it create a rule, and it would then open it (and nothing would be saved).
  3. I modified the instructions at one point to create .md files, doing everything, then mv to being a .mdc file. That worked well for new files, but got weird on existing rule updates.

I just got the 0.46 update, havenā€™t had a chance to test if theyā€™ve fixed anything in this update for their rules.

Also @bmadcode - I was trying to add in some tweaks, such as linting the rule to see if that would helpā€¦ the mix of xml in the file though will cause markdown linting errors.