Migrating from Cursor to Claude Code: a 2026 .cursor/rules → CLAUDE.md checklist
Covers the 2026 gotcha: root .cursorrules is now silently ignored by Cursor's agent.
You can also use both
Migrating doesn't have to be all-or-nothing — keep Cursor's tab-completion and hand off complex multi-step work to Claude Code.
2026 gotcha: .cursorrules is now silently ignored
Cursor deprecated the single `.cursorrules` file in late 2024 in favor of `.cursor/rules/*.mdc`. As of 2026, with Cursor's agent as the default, root `.cursorrules` is silently ignored by the agent (present but unread).
Step 1: inventory .cursor/rules/*.mdc
Each `.mdc` file has YAML frontmatter (`description`/`globs`/`alwaysApply`) plus Markdown. List the `alwaysApply: true` ones first — those are top priority to migrate.
Step 2: always-on rules go to CLAUDE.md
Claude Code auto-loads CLAUDE.md every session. Official guidance suggests under 200 lines; community practice trends toward ~60.
Step 3: file-type-specific rules become skills
Rules scoped by `globs` (e.g. only `*.tsx`) are better carved out into a Skill (`.claude/skills/`) that loads only when relevant, instead of bloating CLAUDE.md.
Step 4: agentic automations become hooks
Format-on-save, blocking risky commands, etc. map to `PreToolUse`/`PostToolUse` hooks.
Migration checklist
① Inventory .cursor/rules/*.mdc ② Move alwaysApply:true to CLAUDE.md ③ Carve file-scoped rules into skills ④ Recreate automations as hooks ⑤ Re-set secret handling ⑥ Run one real task through Claude Code to confirm it behaves as intended.