Feature Request: Support excluding specific rules files from loading (.claudeignore or settings config)
Resolved 💬 3 comments Opened Jan 29, 2026 by r1ckyIn Closed Feb 2, 2026
Problem
When working in a monorepo or nested project structure, Claude Code loads all .claude/rules/ files from parent directories. This causes significant context usage even when many rules are irrelevant to the current project.
My Setup
r1ckyIn_GitHub/
├── .claude/rules/ # 6,635 lines (shared rules for all projects)
│ ├── 07-language-practices/
│ │ ├── cpp.md # Not needed for TypeScript projects
│ │ ├── java.md # Not needed for TypeScript projects
│ │ ├── python.md # Not needed for TypeScript projects
│ │ └── typescript.md # Needed
│ └── ...
└── borealis-fabrics/ # A NestJS/TypeScript project
└── .claude/rules/ # Project-specific rules
The Issue
- My TypeScript project loads C++, Java, Python rules from parent directory
- These irrelevant rules consume ~38% of context on session start
- I cannot delete parent rules because other projects need them
- I cannot move my project out because I need some parent rules
Proposed Solution
Support one of these approaches:
Option 1: .claudeignore file
# .claude/.claudeignore
rules/07-language-practices/cpp.md
rules/07-language-practices/java.md
rules/07-language-practices/python.md
Option 2: Settings config
// .claude/settings.json
{
"rules": {
"exclude": [
"07-language-practices/cpp.md",
"07-language-practices/java.md"
]
}
}
Option 3: Glob pattern in settings
{
"rules": {
"excludePatterns": ["**/cpp.md", "**/java.md", "**/python.md"]
}
}
Why paths frontmatter doesn't solve this
The existing paths field in rules only controls when rules are applied, but the files are still loaded and consume tokens.
Related Issues
- #579
- #1304
- #4160
Impact
This would significantly improve context efficiency for users with:
- Monorepo setups
- Nested project structures
- Multi-language codebases with shared configuration
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗