---
name: "cursor-known-pitfalls"
description: |
  Avoid common Cursor IDE pitfalls: AI feature mistakes, security gotchas, configuration errors, and
  team workflow issues. Triggers on "cursor pitfalls", "cursor mistakes", "cursor gotchas", "cursor issues",
  "cursor problems", "cursor tips".
allowed-tools: "Read, Write, Edit, Bash(cmd:*)"
version: 1.0.0
license: MIT
author: "Jeremy Longshore <jeremy@intentsolutions.io>"
compatible-with: claude-code, codex, openclaw
tags: [saas, cursor, cursor-known]
---
# Cursor Known Pitfalls

Common Cursor IDE pitfalls and their solutions. Organized by category: AI behavior, security, configuration, performance, and team collaboration.

## AI Feature Pitfalls

### Pitfall 1: Blindly Applying Composer Changes

**Problem:** Clicking "Apply All" without reviewing diffs. Composer can generate code with wrong imports, hallucinated APIs, or logic errors.

**Solution:**
```
1. Click each file in the Changes panel to review its diff
2. Check imports: are they real packages in your project?
3. Check function calls: do the methods actually exist?
4. Run build after applying: npm run build
5. Run tests: npm test
6. Commit BEFORE running Composer (easy rollback with git checkout .)
```

### Pitfall 2: Context Window Overflow

**Problem:** Adding too many `@Files`, `@Folders`, and `@Codebase` references. The model silently drops information, leading to:
- Ignoring your instructions
- Repeating itself
- Generating generic instead of project-specific code

**Solution:**
```
- Use @Files (specific) over @Folders (broad) over @Codebase (broadest)
- Limit to 3-5 file references per prompt
- Start new chats for new topics
- Remove stale context pills by clicking X
```

### Pitfall 3: Continuing Stale Conversations

**Problem:** Reusing a 20+ turn conversation for a new task. The conversation history fills context, leaving no room for your new request.

**Solution:** `Cmd+N` to start a new chat for each distinct task.

### Pitfall 4: AI Generates Deprecated Patterns

**Problem:** AI uses old APIs (React class components, Express 4 syntax, CommonJS require).

**Solution:** Pin versions in project rules:
```yaml
# .cursor/rules/stack.mdc
---
description: "Tech stack versions"
globs: ""
alwaysApply: true
---
ALWAYS use these versions:
- React 19 with Server Components (NOT class components)
- Next.js 15 App Router (NOT Pages Router)
- TypeScript 5.7 strict (NOT any casts)
- ESM imports (NOT CommonJS require)
```

### Pitfall 5: Tab Completion Fighting Manual Input

**Problem:** Tab suggests text you do not want, and you accidentally accept it while pressing Tab for indentation.

**Solution:**
- Use `Esc` to dismiss before pressing Tab for indentation
- Remap Tab acceptance: `Cmd+K Cmd+S` > search `acceptCursorTabSuggestion` > assign different key
- Or temporarily disable Tab completion for specific tasks

## Security Pitfalls

### Pitfall 6: Pasting Secrets into Chat

**Problem:** Copying an error message that includes an API key, database URL, or token and pasting it into Chat.

**Solution:**
```
NEVER paste:
- .env file contents
- Error logs containing credentials
- Database connection strings
- API response headers with auth tokens

INSTEAD:
- Redact secrets before pasting: "API key sk-...XXXX returned 401"
- Describe the error without the sensitive values
- Use @Files to reference the code, not copy-paste
```

### Pitfall 7: No .cursorignore

**Problem:** Without `.cursorignore`, sensitive files (.env, credentials, PII) may be included in AI context via `@Codebase` search or automatic context.

**Solution:** Create `.cursorignore` in every project:
```gitignore
.env*
**/secrets/
**/credentials/
**/*.pem
**/*.key
```

### Pitfall 8: Privacy Mode Off

**Problem:** Without Privacy Mode, code may be retained by model providers for training.

**Solution:**
- Individual: `Cursor Settings` > `General` > Privacy Mode > ON
- Team: Admin Dashboard > Privacy > Enforce for all members
- Verify at cursor.com/settings

### Pitfall 9: Trusting AI-Generated Security Code

**Problem:** AI generates authentication, encryption, or authorization code that looks correct but has subtle vulnerabilities (timing attacks, SQL injection via string concatenation, missing CSRF protection).

**Solution:**
```
- Security-critical code ALWAYS needs human expert review
- Run SAST tools (Semgrep, Snyk) on AI-generated code
- Never deploy AI-generated auth code without penetration testing
- Add security rules in .cursor/rules/security.mdc
```

## Configuration Pitfalls

### Pitfall 10: No Project Rules

**Problem:** Without `.cursor/rules/`, the AI generates code without knowing your conventions, stack, or patterns. Result: inconsistent code that does not match your project.

**Solution:** Create at minimum:
1. `project.mdc` (stack, conventions, alwaysApply: true)
2. `security.mdc` (security constraints, alwaysApply: true)
3. Language-specific rules with glob patterns

### Pitfall 11: Conflicting Rules

**Problem:** Multiple `.mdc` rules with contradictory instructions (one says "use classes", another says "use functions").

**Solution:**
- Review all rules together for consistency
- Use specific globs so rules apply only to relevant files
- Test with `@Cursor Rules` in Chat to see which rules are active for a given file

### Pitfall 12: Running Multiple AI Completion Extensions

**Problem:** GitHub Copilot + Cursor Tab both enabled. Double ghost text, conflicting suggestions, UI glitches.

**Solution:** Disable all other inline completion extensions:
- GitHub Copilot
- TabNine
- Codeium
- IntelliCode

Only one inline completion provider should be active.

## Performance Pitfalls

### Pitfall 13: Opening Entire Monorepo

**Problem:** Opening a monorepo root with 200K files. Indexing takes hours, `@Codebase` returns noise, editor is sluggish.

**Solution:** Open specific packages: `cursor packages/api/`

### Pitfall 14: No File Watcher Exclusions

**Problem:** Cursor watches every file for changes, including `node_modules/`, `dist/`, and `.git/objects/`. Causes high CPU and memory.

**Solution:**
```json
// settings.json
{
  "files.watcherExclude": {
    "**/node_modules/**": true,
    "**/.git/objects/**": true,
    "**/dist/**": true,
    "**/build/**": true
  }
}
```

### Pitfall 15: Never Clearing Chat History

**Problem:** Running Cursor for weeks with dozens of open chat tabs. Memory grows, editor slows.

**Solution:** Close old chat tabs. Start new conversations. Restart Cursor weekly during heavy use.

## Team Collaboration Pitfalls

### Pitfall 16: Rules Not in Version Control

**Problem:** `.cursor/rules/` not committed to git. Each developer has different (or no) AI behavior rules.

**Solution:** Commit `.cursor/rules/` and `.cursorignore` to git. PR-review rule changes like any other configuration.

### Pitfall 17: No Code Review for AI Output

**Problem:** Developers commit AI-generated code without review. Bugs, wrong patterns, and security issues reach main branch.

**Solution:**
- Pre-commit hooks: lint + test (catches many AI errors)
- PR reviews: all code (human or AI) needs review
- Team policy: "AI output is a first draft, not production code"

### Pitfall 18: Inconsistent Model Selection

**Problem:** Some developers use Opus for everything (consuming quota fast), others use cursor-small (poor quality).

**Solution:**
- Set team default model in admin dashboard
- Document model selection guidance in onboarding
- Use Auto mode as default (Cursor selects appropriate model)

## Enterprise Considerations

- **Risk register**: Add Cursor-specific risks (AI hallucinations, data exposure) to your enterprise risk register
- **Training**: Quarterly refresher on pitfalls, especially security-related ones
- **Incident response**: Have a plan for "AI-generated code caused production incident" scenario
- **Vendor risk**: Review Cursor's security page annually as their practices evolve

## Resources

- [Cursor Security](https://cursor.com/security)
- [Cursor Data Use Policy](https://cursor.com/data-use)
- [Cursor Community Forum](https://forum.cursor.com)
