Creating Claude Rules
Overview
Rules in .claude/rules/ are modular instructions scoped to specific files via glob patterns. They load automatically with same priority as CLAUDE.md .
When to Use
-
Creating new rules in .claude/rules/
-
Fixing rules that use wrong frontmatter (globs instead of paths )
-
Migrating Cursor rules to Claude format
-
Organizing project-specific conventions
Quick Reference
Field Claude Cursor
Path patterns paths
globs
Always apply Omit paths
alwaysApply: true
Description Not documented description
Frontmatter
Path-Scoped Rules
paths:
- "src/api/**/*.ts"
- "tests/**/*.test.ts"
Or single pattern:
paths: src/**/*.{ts,tsx}
Global Rules
Omit frontmatter entirely - applies to all files:
TypeScript Conventions
Use .js extensions in imports.
Common Mistakes
❌ WRONG - globs is Cursor format
globs:
- "**/*.ts"
✅ CORRECT - Claude uses paths
paths:
- "**/*.ts"
❌ WRONG - alwaysApply is Cursor-only
alwaysApply: true
✅ CORRECT - just omit paths for global rules
(no frontmatter needed)
❌ WRONG - unquoted patterns
paths:
- **/*.ts
✅ CORRECT - quote glob patterns
paths:
- "**/*.ts"
Directory Structure
.claude/rules/ ├── testing.md # Path-scoped or global ├── typescript.md └── frontend/ # Subdirectories supported └── react.md
Files discovered recursively. Use subdirectories to organize.
Glob Patterns
Pattern Matches
**/*.ts
All .ts files anywhere
src/**/*
Everything under src/
*.md
Markdown in root only
**/*.{ts,tsx}
.ts and .tsx files
{src,lib}/**/*.ts
.ts in src/ or lib/
Reference
https://code.claude.com/docs/en/memory#modular-rules-with-claude/rules/