--- name: config-hierarchy description: | This skill should be used when the user asks about Claude Code configuration files, CLAUDE.md hierarchy, settings.json structure, MCP server configuration, or rules directory patterns. Triggers on: "CLAUDE.md hierarchy", "config file locations", "settings.json", ".mcp.json", "rules directory", "configuration inheritance", "where does Claude read config from". --- # Claude Code Configuration Hierarchy Comprehensive reference for understanding Claude Code's configuration system. ## Overview Claude Code loads configuration from multiple sources, with a defined precedence order. Understanding this hierarchy is crucial for effective configuration management. ## Configuration Sources (By Priority) ### 1. CLAUDE.md Hierarchy From highest to lowest priority: | Level | Location | Shared? | Purpose | |-------|----------|---------|---------| | **Managed** | System-level paths | All users | Enterprise/organization policies | | **Project local** | `./CLAUDE.local.md` | No (gitignored) | Machine-specific project overrides | | **Project shared** | `./CLAUDE.md` or `./.claude/CLAUDE.md` | Yes (git) | Team-shared project instructions | | **Project rules** | `./.claude/rules/*.md` | Yes (git) | Modular, path-scoped rules | | **User global** | `~/.claude/CLAUDE.md` | No | Personal defaults | ### 2. Settings.json Hierarchy | Level | Location | Purpose | |-------|----------|---------| | **Managed** | System `managed-settings.json` | Enterprise policies (highest) | | **CLI args** | Command line | Session-only overrides | | **Local** | `.claude/settings.local.json` | Machine-specific project | | **Project** | `.claude/settings.json` | Team-shared project | | **User** | `~/.claude/settings.json` | Personal defaults (lowest) | ### 3. Other Configuration Files | File | Location | Purpose | |------|----------|---------| | `.mcp.json` | Project root | MCP server definitions for project | | `~/.claude.json` | Home | OAuth tokens, global MCP servers, state | | `.claudeignore` | Project | File/directory exclusions | | `~/.claude/agents/` | User | Custom subagent definitions | ## Managed Configuration Paths For enterprise/organization-wide settings: | Platform | Path | |----------|------| | macOS | `/Library/Application Support/ClaudeCode/CLAUDE.md` | | Linux | `/etc/claude-code/CLAUDE.md` | | Windows | `C:\Program Files\ClaudeCode\CLAUDE.md` | ## Key Concepts ### Inheritance - Files are loaded from current directory upward to root - Subtree files loaded on-demand when entering directories - Lower priority files provide defaults - Higher priority files override specific settings ### Path-Scoped Rules In `.claude/rules/`, files can be scoped to specific paths: ```yaml --- globs: ["src/**/*.ts", "src/**/*.tsx"] --- # TypeScript Rules These rules apply only to TypeScript files in src/ ``` ### @Imports CLAUDE.md files can import other files: ```markdown # Project CLAUDE.md @./docs/api.md @./CONTRIBUTING.md ``` ## Further Reading See the reference files for detailed schemas: - `references/claude-md-structure.md` - CLAUDE.md sections - `references/settings-json-schema.md` - settings.json keys - `references/mcp-json-patterns.md` - MCP configuration - `references/rules-directory.md` - Rules pattern - `references/quality-criteria.md` - Quick reference (detailed rubric in `agents/analyzer-agent.md`)