CLAUDE.md vs Windsurf rules vs .cursorrules
Every comparison page on the web is a capability table someone wrote from the vendor docs in an afternoon. None of them can tell you how many real repositories ship each file, how long the median one runs, or how often two of them turn up in the same project. Those answers need a corpus, and RuleStack counts one every night.
| Format | CLAUDE.md 2026-08-02 | Windsurf rules 2026-08-01 | .cursorrules 2026-08-02 |
|---|---|---|---|
| Asserted — what the docs say it can express | |||
| File | CLAUDE.md | .windsurf/rules/*.md | .cursorrules |
| Status | vendor | vendor | deprecated |
| Cross-tool | No | No | No |
| Tools that read it |
|
|
|
| Frontmatter | No | Yes | No |
| Glob targeting | No | Yes | No |
| Imports other files | Yes | No | No |
| Nested / per-directory | Yes | No | No |
| Multiple files | Yes | Yes | No |
| User-level scope | Yes | Yes | No |
| When it applies | Always in scope. Project file, plus nested files in subdirectories, plus a user-level file (~/.claude/CLAUDE.md) that applies across every project. | Four trigger modes in frontmatter: always_on, glob, model_decision, manual. The legacy single-file .windsurfrules is still read. | Always in scope, single file at the repo root. |
| Size limits | None | Per-rule and total character caps apply; long rules are truncated rather than rejected. | None |
| Measured — counted from real repositories on 2026-08-04 | |||
| Repositories carrying it | 248 | 14 | 27 |
| Share of indexed repos | 35.5% | 2.0% | 3.9% |
| Files indexed | 775 | 102 | 308 |
| Median length (words) | 2,042 | 515 | 366 |
| 90th percentile length | 2,998 | 1,518 | 1,104 |
| Files naming commands | 34.2% | 37.3% | 13.6% |
| Files containing code | 34.5% | 70.6% | 25.0% |
| Median quality score | 44 | 58 | 41 |
| Median repository stars | 114 | 119 | 26 |
How often they turn up together
A capability table cannot answer this at all. Of the repositories carrying the first format, this is the share that also carry the second — counted, both directions, on 2026-08-04.
.cursorrules + Windsurf rules
2026-08-044
repositories carry both. That is 14.8% of everything with .cursorrules, and 28.6% of everything with Windsurf rules.
CLAUDE.md + Windsurf rules
2026-08-047
repositories carry both. That is 2.8% of everything with CLAUDE.md, and 50.0% of everything with Windsurf rules.
CLAUDE.md + .cursorrules
2026-08-0410
repositories carry both. That is 4.0% of everything with CLAUDE.md, and 37.0% of everything with .cursorrules.
What each one is for
CLAUDE.md
2026-08-02Claude Code's memory file. Shaped like AGENTS.md but with two things it lacks: @path imports, so shared rules live in one place, and a user-scope layer that follows the developer across repos rather than shipping with the code.
Strengths
- @path imports — shared conventions written once and pulled into each file
- A user-scope file lets personal preferences live outside the team repo
- Nested project files compose with the root file rather than replacing it
Weaknesses
- Single-vendor: no other agent reads it, so multi-tool teams maintain two files
- No glob targeting, same context cost as AGENTS.md — path-scoped rules exist, but in a separate .claude/rules/ file, not in CLAUDE.md itself
Windsurf rules
2026-08-01Cursor's activation model with a different vocabulary — trigger modes instead of rule types — plus hard character caps, which is the one place a format here will silently drop instructions rather than fail loudly.
Strengths
- Trigger modes give the same glob and on-demand targeting as Cursor rules
- Workspace and global rule scopes
Weaknesses
- Windsurf-only
- Character caps truncate silently — a long rule can be half-applied with no error
- No imports
.cursorrules
2026-08-02Cursor's original single-file format, superseded by .cursor/rules/*.mdc. Tracked here precisely because it is dead: how much of the ecosystem is still shipping a deprecated file is a measurable answer, and a large share of the "best cursor rules" pages on the web still teach this format.
Strengths
- One file, nothing to configure
Weaknesses
- Deprecated — do not start here
- No targeting, no composition, no metadata
