When AGENTS.md ↔ CLAUDE.md symlinks double your tokens
A common multi-tool trick is ln -s AGENTS.md CLAUDE.md (or the reverse) so Claude Code
and AGENTS.md-aware tools “share” one file. In Cursor, that pattern has a sharp edge:
Context Explorer and always-applied rules can treat the two paths as separate entries even when
they resolve to the same inode — so the same text is injected twice and the token meter doubles.
This matches public Cursor forum reports where maintainers described dedupe by filename, not by inode/content. Treat it as a loader footgun until your client proves otherwise.
Safer patterns
- One canonical
AGENTS.mdfor shared project rules. - Thin
CLAUDE.mdwhose first line is@AGENTS.md(plus Claude-only notes). Imports still cost tokens when loaded, but you avoid silent double injection from two paths. - Do not symlink the two names at the repo root if Cursor loads both as always-on rules.
- Measure both paths. Paste or drop
AGENTS.mdandCLAUDE.mdinto Clogmeter — if totals look like 2× one file, you are paying twice before the model writes a line of code.
Quick check
Count one file with the token counter, then scan the pair in the full inspector. If the combined weight ≈ 2× the single-file count and the bodies match, fix the loader pattern before you trim wording.
Open Clogmeter and weigh your instruction files → Free, browser-only. Token counts, duplicates, conflicts, trimmed export — nothing uploaded.