I rewrote my Cursor linter into a full diagnostic tool (and added auto-fix)

cursor-lint started as a thing I built because my own .mdc rules kept silently breaking. Missing frontmatter, bad YAML, alwaysApply not set. Cursor doesn’t tell you when a rule fails to load. It just… doesn’t load it. No error, no warning, nothing.

That tool ended up getting ~1,800 downloads, which was cool, but I kept running into problems it couldn’t solve. Like, I had two rules that contradicted each other (“use semicolons” in one file, “avoid semicolons” in another) and the linter had no way to catch that. Or I’d have rules with 80% identical content because I’d copy-pasted and forgotten to clean up. The linter could tell me if individual rules were well-formed, but it couldn’t tell me if my setup was healthy.

So I rebuilt it.

cursor-doctor

npx cursor-doctor scan

The free scan gives you a health grade (A through F) based on 8 checks: whether rules exist, legacy .cursorrules conflicts, 20+ lint checks, token budget, file type coverage, file sizes, alwaysApply usage, and whether you have agent skills set up.

It looks like this:

  Cursor Health: C  (62%)
  ──────────────────────────────────

  ✓ Rules exist
  ✗ No legacy .cursorrules
  ! Token budget: ~4,200 tokens — getting heavy
  ✓ Coverage: Rules cover your project file types

Zero dependencies, runs straight from npx.

The stuff that was actually hard to build

Conflict detection. This was the main thing I wanted. The tool extracts directives from your rule bodies (“use X”, “prefer X”, “never X”, “avoid X”) and compares them across files. If one rule says “always use trailing commas” and another says “remove trailing commas,” it flags it. It’s not just 9 hardcoded regex patterns anymore. It understands the intent of the instruction.

Redundancy detection. Compares line overlap between rules. If two files share more than 60% of their content, that’s wasted context window. Every redundant token is a token not being used for your actual code.

Stack detection. Reads your package.json, requirements.txt, pyproject.toml, Cargo.toml, etc. and figures out what you’re using. Knows about 12+ frameworks (React, Next.js, Django, Express, Vue, Svelte, and more) and 6 languages. If you’re running a Next.js project with no Next.js-specific rules, it tells you.

Pro ($9, one-time)

The free scan shows you what’s wrong. Pro fixes it.

cursor-doctor audit gives you the full diagnostic: conflicts, redundancy analysis, token budget breakdown (always-loaded vs conditional), stack-specific gap analysis, and concrete fix instructions. audit --md exports it as markdown you can share with your team or drop in a PR.

cursor-doctor fix actually repairs things. It auto-merges redundant rules, fixes broken YAML frontmatter, splits oversized files, and generates starter rules for your detected stack. There are templates for React, Next.js, Python, Django, Go, Rust, Vue, Svelte, Tailwind, Express, and testing. fix --dry-run previews everything before writing.

# Activate after purchase
cursor-doctor activate 

Get a Pro key

If you’ve been using cursor-lint, cursor-doctor includes everything it did plus all the diagnostic and repair stuff. Different package name though, so npx cursor-doctor is what you want now.

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post

Jack Dorsey just halved the size of Block’s employee base — and he says your company is next

Next Post

App Localization with Python and Argos Translate

Related Posts