Debug AI suggestion quality, context issues, and code generation problems in Cursor. Triggers on "debug cursor ai", "cursor suggestions wrong", "bad cursor completion", "cursor ai debug", "cursor hallucination".
85
83%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Diagnose and fix AI suggestion quality issues in Cursor. Covers why AI generates wrong code, how to improve context, and systematic debugging workflows.
When AI suggestions are wrong, the cause is almost always one of these:
┌─ Context Problems (80% of issues) ───────────────────────┐
│ 1. Missing context: AI doesn't have the relevant code │
│ 2. Wrong context: AI has stale or irrelevant files │
│ 3. Too much context: context window overflow │
│ 4. No project rules: AI doesn't know your conventions │
└──────────────────────────────────────────────────────────┘
┌─ Model Problems (15% of issues) ─────────────────────────┐
│ 5. Wrong model for the task │
│ 6. Model hallucinating APIs or patterns │
└──────────────────────────────────────────────────────────┘
┌─ Prompt Problems (5% of issues) ─────────────────────────┐
│ 7. Ambiguous or vague instructions │
│ 8. Conflicting requirements in prompt │
└──────────────────────────────────────────────────────────┘Symptom: Generated code uses React.createClass, old Express syntax, or deprecated patterns.
Root cause: Model training data includes old code. No project rules specifying versions.
Fix:
# .cursor/rules/stack-versions.mdc
---
description: "Tech stack version pinning"
globs: ""
alwaysApply: true
---
# Stack Versions (ALWAYS use these)
- React 19 with Server Components (NOT class components)
- Next.js 15 App Router (NOT Pages Router)
- TypeScript 5.7 strict mode
- Prisma 6 (NOT Sequelize or TypeORM)
- Tailwind CSS 4 (NOT styled-components)
- Node.js 22 (ESM, NOT CommonJS require())Symptom: Generated code uses different naming, structure, or patterns than your codebase.
Root cause: AI does not have your existing code as context.
Fix: Reference your existing patterns explicitly:
@src/api/users/route.ts
Create src/api/products/route.ts following the EXACT same patterns:
same error handling, same response format, same validation approach.Symptom: AI calls functions or uses imports that do not exist in your project or in the library.
Root cause: Model confuses similar libraries or invents plausible-sounding APIs.
Fix:
@Docs context: @Docs Prisma gives the AI real API documentationnpm run build immediately after applying@Files to show the actual module interface: @src/lib/database.tsSymptom: You ask for one thing, AI does something different.
Root cause: Context window overflow -- your instructions get pushed out by file contents.
Fix:
@ references -- each consumes context budget@Files instead of @Codebase to reduce context volumeSymptom: Tab keeps suggesting the same wrong pattern.
Root cause: Tab has limited context compared to Chat/Composer.
Fix:
Esc (trains the model)When AI output is consistently wrong:
Step 1: Check context
- Open Chat, look at context pills at top
- Are the right files included?
- Are stale files adding noise?
Step 2: Check rules
- @Cursor Rules in chat -- what rules are active?
- Do rules conflict with each other?
- Are glob patterns matching the right files?
Step 3: Test with minimal context
- Start new chat
- Add ONLY the most relevant file: @src/the-file.ts
- Ask your question with explicit constraints
- If this works, the issue was context pollution
Step 4: Test with different model
- Switch from Sonnet to Opus or GPT-5
- If better model gives better results, the task needs more reasoning power
Step 5: Check indexing
- Is the codebase indexed? (status bar shows "Indexed")
- Is the relevant file excluded by .cursorignore?
- Run Cmd+Shift+P > "Cursor: Resync Index"Cmd+Shift+P > Developer: Toggle Developer Tools
Check the Console tab for:
Enable verbose output: Cursor Settings > search "log level" > set to "Debug"
Logs location:
~/Library/Application Support/Cursor/logs/~/.config/Cursor/logs/1. Note Cursor version: Help > About
2. Note model used (from Chat/Composer header)
3. Copy the exact prompt that produced wrong output
4. Copy the wrong output
5. List active extensions: Cmd+Shift+P > "Extensions: Show Installed"
6. Note if Privacy Mode is on (affects model behavior)
7. Report at forum.cursor.com or github.com/getcursor/cursor/issues.cursor/rules/ for outdated or conflicting rules70e9fa4
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.