What Each Approach Does
Cursor Rules (.cursor/rules/) are configuration files specific to the Cursor IDE. They tell Cursor's AI how to behave — coding style preferences, framework conventions, project-specific instructions. They can be scoped to file patterns (e.g., "for all *.tsx files, use this component pattern").
Intent Nodes (AGENTS.md, CLAUDE.md) are tool-agnostic context files placed in your codebase directories. They declare the purpose, patterns, boundaries, and relationships of each area. They form a hierarchical Intent Layer that any AI tool can read.
Key Differences
| Dimension | Cursor Rules | Intent Nodes |
|---|---|---|
| Location | .cursor/rules/ | Any directory |
| Scope | File-pattern based | Directory-based hierarchy |
| Tool support | Cursor only | Cursor, Claude Code, Codex, others |
| Focus | "How to write code" | "What this code is for" |
| Structure | Flat rules | Hierarchical map |
| Portability | Locked to Cursor | Works across all agent tools |
When Cursor Rules Shine
Cursor Rules are excellent for:
- Style enforcement — "Use single quotes, 2-space indent, trailing commas"
- Framework patterns — "When creating React components, use this exact structure"
- File-type conventions — "All
.test.tsfiles should use vitest, not jest" - Tool-specific behaviors — "Always run
pnpmnotnpm" - Response formatting — "Keep explanations concise, show code first"
These are instructions about how to write code — preferences and conventions that apply across the codebase or to specific file types.
When Intent Nodes Shine
Intent Nodes are the better choice for:
- Architectural context — "This service handles all payment processing and integrates with Stripe"
- Boundaries — "This module owns user auth. It does NOT handle authorization (that's in
permissions/)" - System relationships — "Changes here affect the notification pipeline downstream"
- Decision context — "We use event sourcing here because of audit requirements"
- Navigation — "The key subsystems are:
webhooks/,billing/,refunds/"
These are declarations about what the code is and why — context that any AI tool needs, regardless of which IDE you use.
Why You Should Use Both
The best setups layer both approaches:
Intent Nodes provide the foundational context layer — the map of your codebase that any AI agent can navigate. This is portable across Cursor, Claude Code, Copilot, and future tools. When you switch tools (or use multiple), this context travels with the code.
Cursor Rules provide tool-specific refinements on top — behavioral preferences, style enforcement, and Cursor-specific instructions that fine-tune the AI's output.
Example Setup
my-project/
├── AGENTS.md # Root Intent Node: system overview
├── .cursor/
│ └── rules/
│ ├── style.md # Coding style rules
│ └── testing.md # Test framework conventions
├── services/
│ ├── payment/
│ │ └── AGENTS.md # Payment service context
│ └── auth/
│ └── AGENTS.md # Auth service context
The Intent Nodes explain what each service does and why. The Cursor Rules explain how to write code that fits your style.
The Portability Argument
This is the strongest case for Intent Nodes over Cursor-only context. The AI tooling landscape is moving fast. Teams use Cursor, Claude Code, Copilot, Codex, and new tools every quarter.
Context locked into .cursor/rules/ only helps you in Cursor. Context in AGENTS.md helps you everywhere — and it survives tool transitions. Your codebase map shouldn't be coupled to a specific IDE.
Migration Path
If you're already using Cursor Rules, you don't need to change anything:
- Keep your rules — Style, formatting, and tool-behavior rules stay in
.cursor/rules/ - Extract architecture — Move "what this code is for" and "how the system fits together" content into
AGENTS.mdfiles - Add hierarchy — Create Intent Nodes at root, then major modules, with downlinks connecting them
- Symlink for compatibility — Create
CLAUDE.md → AGENTS.mdsymlinks so Claude Code reads the same context
The result: your Cursor experience stays the same (or improves), and every other AI tool you use gains access to your codebase context.