Last month I wrote about the skills controllability problem, then covered a community workaround using hooks to auto-activate context based on file patterns.

That workaround is now obsolete. Claude Code 2.0.64 ships native path matching. But let’s be honest: this is Claude Code catching up to what Cursor has had for months.

Cursor vs Claude Code

Cursor shipped .cursor/rules/ with glob-based path matching earlier this year. The implementations are nearly identical:

FeatureCursorClaude Code
Directory.cursor/rules/.claude/rules/
File format.mdc.md
Path matchingglobs: ["src/**/*.ts"]paths: src/**/*.ts
Nested rulesYesYes

Cursor also has features Claude Code lacks:

  • Rule types: Always (global), Auto Attached (path-based), Agent Requested (model decides)
  • alwaysApply toggle: Explicit control over when rules load
  • /Generate Cursor Rules: Create rules from chat
Not a Criticism

Catching up to good ideas is fine. Just being honest about the timeline.

How It Works

# .claude/rules/backend.md
---
paths: src/api/**/*.ts
---

# API Development Rules
- All endpoints must include input validation
- Use the standard error response format

Rules without paths: apply globally. Rules with paths: only load when Claude works with matching files. Run /memory to verify what’s loaded.

If you’ve used Cursor’s rules, this will feel familiar. That’s the point.

What’s Still Missing

Neither tool fully solves workflow orchestration:

  • No explicit invocation: Can’t force a rule when patterns don’t match
  • No disable flags: Can’t skip rules for a session
  • No invocation logging: Can’t see which rules loaded
Slash Commands Still Matter

Path rules for context selection. Slash commands for workflow orchestration. Both patterns have their place.

Using Both Tools? Share Your Rules

Teams using both Cursor and Claude Code don’t need duplicate rules. The key insight: Claude ignores frontmatter, Cursor uses it. Write rules in Cursor’s format and both tools read them.

Option 1: Symlink the directories

# Use Cursor's rules as the source of truth
ln -s .cursor/rules .claude/rules

Option 2: Use AGENTS.md as a standard

The AGENTS.md convention is gaining traction as a tool-agnostic location for AI instructions. Symlink tool-specific files to it:

ln -s AGENTS.md CLAUDE.md
ln -s AGENTS.md .cursorrules

Option 3: Centralized config

mkdir -p .ai/rules
ln -s ../.ai/rules .claude/rules
ln -s ../.ai/rules .cursor/rules

For more complex setups, rulesync generates tool-specific files from a single source, and steipete/agent-rules provides a unified format that works across tools.

For Claude Code Users

If you implemented the hooks workaround from my previous post, delete your scripts and use native rules. Better team workflows, progressive disclosure, less maintenance.

For users choosing between tools: Cursor’s implementation is slightly more mature. Claude Code is playing catch-up.

Good feature, late arrival. Use it if you’re on Claude Code. Don’t pretend it’s novel.

— The bottom line