Intent SystemsIntent Systems

Cursor Rules vs Intent Nodes

Cursor Rules (Tool-specific context in .cursor/rules/) vs Intent Nodes (Tool-agnostic AGENTS.md context files)

The Verdict

Use both. Intent Nodes for portable, hierarchical codebase context. Cursor Rules for tool-specific behaviors and preferences. They complement, not compete.

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

DimensionCursor RulesIntent Nodes
Location.cursor/rules/Any directory
ScopeFile-pattern basedDirectory-based hierarchy
Tool supportCursor onlyCursor, Claude Code, Codex, others
Focus"How to write code""What this code is for"
StructureFlat rulesHierarchical map
PortabilityLocked to CursorWorks 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.ts files should use vitest, not jest"
  • Tool-specific behaviors — "Always run pnpm not npm"
  • 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:

  1. Keep your rules — Style, formatting, and tool-behavior rules stay in .cursor/rules/
  2. Extract architecture — Move "what this code is for" and "how the system fits together" content into AGENTS.md files
  3. Add hierarchy — Create Intent Nodes at root, then major modules, with downlinks connecting them
  4. Symlink for compatibility — Create CLAUDE.md → AGENTS.md symlinks 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.