Skip to content

🌐 日本語

Claude Code Configuration File Reference

NOTE

Comprehensive reference of files and directories that make up Claude Code project configuration. Designed to trace "what is this configuration for?" through links to relevant pages in this project.

Directory Structure Overview

User Level (Global)

~/.claude/
├── CLAUDE.md                    # Personal instructions common to all projects
└── settings.json                # Global personal settings (tool permissions, etc.)

Project Level

my-project/
├── CLAUDE.md                    # Main project instruction file (auto-loaded)
├── CLAUDE.local.md              # Local-only instructions (not Git-managed)
├── .claude/
│   ├── settings.json            # Tool permissions, MCP config, Hooks (team-shared)
│   ├── settings.local.json      # Local-only settings (not Git-managed)
│   ├── commands/
│   │   └── deploy.md            # Custom slash commands (executed with /deploy)
│   ├── rules/
│   │   ├── frontend.md          # Conditional rules (auto-injected via glob pattern)
│   │   ├── testing.md
│   │   └── ...
│   └── skills/
│       └── skill-name/
│           ├── SKILL.md         # Skill definition (required)
│           ├── scripts/         # Helper scripts (optional)
│           ├── references/      # Reference documents (optional)
│           └── assets/          # Templates, etc. (optional)
├── src/
│   ├── CLAUDE.md                # Subdirectory-specific (loaded when accessing this directory)
│   └── components/
│       └── CLAUDE.md            # Deeper hierarchies also possible

Enterprise Level (Admin Configuration)

(Distributed by organization admin)
├── managed-settings.json        # Organization policy (distributed via MDM, highest priority)

Configuration Priority

Managed (Highest)   managed-settings.json (organization policy)

Project             .claude/settings.json (team-shared)

Project Local       .claude/settings.local.json (personal local)

User (Lowest)       ~/.claude/settings.json (global personal)

Below, each file/directory is explained by categorizing "how it affects context."

CategoryConfiguration File / FeatureLoadingExplanation
Resident Context (Part 3)~/.claude/CLAUDE.mdAuto on session startHierarchy Merge
CLAUDE.mdAuto on session startDesign Principles
CLAUDE.local.mdAuto on session startOperations
Subdirectory CLAUDE.mdOn-demand when accessing directoryHierarchy Merge
Conditional Context (Part 4).claude/rules/When glob pattern matchesDesign Principles
On-Demand Context (Part 5).claude/skills/When description matchesSkills
Agents (Task())On explicit invocationAgents
Tool Context (Part 6)MCP (mcpServers)Tool definitions always consumedContext Cost
Runtime Control (Part 7)managed-settings.jsonEnforce organization policy (highest priority)settings.json
.claude/settings.jsonRuntime reference (invisible to LLM)settings.json
.claude/settings.local.jsonPersonal local settingssettings.json
~/.claude/settings.jsonGlobal personal settings (lowest priority)settings.json
HooksAuto-execute around LLM behaviorLifecycle
Session Management (Part 8)/compact · /clearManual or auto at 50% thresholdUsage
MemoryPersist across sessionsWhat to Remember

Resident Context — Always Loaded on Session Start

~/.claude/CLAUDE.md (User Level)

ItemContent
Location~/.claude/CLAUDE.md
LoadingAuto on session start (merged first)
Git ManagementNo (home directory)
RolePersonal instructions common to all projects (e.g., "answer in English," "prefer functional style")
Detailed ExplanationHierarchy Merge Mechanism

CLAUDE.md (Project Level)

ItemContent
LocationProject root directory
LoadingAuto on session start
Git ManagementYes (team-shared)
RoleProject-wide instructions, rules, and context provision
Problems AddressedPriority Saturation, Prompt Sensitivity
ConstraintRecommended max 200 lines (avoid Priority Saturation)
Detailed ExplanationCLAUDE.md Design Principles

CLAUDE.local.md

ItemContent
LocationProject root directory
LoadingAuto on session start (merged with CLAUDE.md)
Git ManagementNo (.gitignore recommended)
RolePersonal environment-specific settings (local paths, personal API keys, etc.)
Detailed ExplanationCLAUDE.local.md Operations

Subdirectory CLAUDE.md (Hierarchy Merge)

ItemContent
LocationAny subdirectory (e.g., src/CLAUDE.md)
LoadingOn-demand when operating files in that directory
Git ManagementYes
RoleAdd directory-specific rules. Merged with parent CLAUDE.md
Problems AddressedContext Rot (load only when needed)
Detailed ExplanationHierarchy Merge Mechanism

Conditional Context — Injected Only When Conditions Match

.claude/rules/

ItemContent
Location.claude/rules/*.md
LoadingWhen glob pattern matches file operation
Git ManagementYes
RoleAuto-applied rules per file type (e.g., inject test conventions when editing *.test.ts)
Problems AddressedPriority Saturation (inject conditionally, not always), Lost in the Middle
Detailed Explanation.claude/rules/ Design Principles, Glob Pattern Design Practice

Example:

markdown
---
description: TypeScript test files
globs: **/*.test.ts, **/*.spec.ts
---

- describe/it nesting max 2 levels
- Minimize mocks, prioritize integration tests with real services

On-Demand Context — Deployed Only When Invoked

.claude/skills/

ItemContent
Location.claude/skills/<skill-name>/SKILL.md
LoadingWhen description matches
Git ManagementYes
RoleReusable prompt templates. Code generation patterns, documentation generation procedures, etc.
Problems AddressedContext Rot (doesn't consume context when unused)
Detailed ExplanationSkills Design Principles

Directory Structure Example:

.claude/skills/
└── component-gen/
    ├── SKILL.md          # Prompt instructions (required)
    ├── scripts/          # Helper scripts
    ├── references/       # Reference documents
    └── assets/           # Templates, etc.

Agents (Sub-processes via Task())

ItemContent
DefinitionUse Task() within Skills or during conversation
ContextExecute in independent context window from parent
RoleCross-model QA, parallel processing, domain separation
Problems AddressedSycophancy (independent judgment), Knowledge Boundary
Detailed ExplanationAgents Design Principles, Skill vs Agent Decision

Tool Context — Tools Consume Context

MCP (Model Context Protocol)

ItemContent
Config LocationmcpServers in .claude/settings.json
Context CostTool definitions themselves consume tokens
RoleConnect external tools, APIs (DB queries, file operations, external service calls, etc.)
Problems AddressedKnowledge Boundary (access external knowledge), Hallucination (fact-check)
Detailed ExplanationMCP Context Cost, Tool Search / Deferred Loading

Runtime Control — Layers Outside LLM Context

.claude/settings.json

ItemContent
Location.claude/settings.json
LoadingRuntime reference (invisible to LLM)
Git ManagementYes
RoleTool permission settings, MCP server definition, Hooks definition, environment variables
Detailed Explanationsettings.json Role, Why Hide from LLM

Example:

json
{
  "permissions": {
    "allow": ["Bash(npm run test)", "Read"],
    "deny": ["Bash(rm -rf)"]
  },
  "hooks": { ... },
  "mcpServers": { ... }
}

.claude/settings.local.json

ItemContent
Location.claude/settings.local.json
Git ManagementNo (.gitignore recommended)
RolePersonal tool permission settings, local MCP server configuration
RelationshipMerged with settings.json (local takes priority)

~/.claude/settings.json (User Level)

ItemContent
Location~/.claude/settings.json
Git ManagementNo (home directory)
RoleGlobal personal settings common to all projects
PriorityLowest (overridden by project settings)

managed-settings.json (Enterprise Level)

ItemContent
DistributionVia MDM (Mobile Device Management) or server management
RoleOrganization-wide security policy and permission enforcement
PriorityHighest (overrides all settings. Users cannot modify)
Detailed Explanationsettings.json Role

Hooks

ItemContent
Config Locationhooks in .claude/settings.json
Execution TimingAuto-execute before/after LLM behavior (LLM unaware)
RoleMechanical validation, auto-format, notifications, etc.
Problems AddressedHallucination (auto test execution), Sycophancy (mechanical check), Instruction Decay
Detailed ExplanationHooks Lifecycle

Main Events:

EventTiming
PreToolUseBefore tool execution
PostToolUseAfter tool execution
NotificationOn notification
StopOn session stop

Session Management — Conversation Lifespan and Memory

/compact · /clear Commands

CommandBehaviorUse Case
/compactSummarize and compress contextPreventive handling of Context Rot. Also auto-executes at 50% threshold
/clearCompletely reset contextTask switching. Eliminate accumulated noise
ItemContent
Problems AddressedContext Rot, Lost in the Middle, Instruction Decay
Detailed Explanation/compact and /clear Usage

Memory (Persistence Across Sessions)

ItemContent
MechanismPersist information across sessions
Problems AddressedContext Rot (rescue information lost in compression), Instruction Decay
Detailed ExplanationWhy Memory Matters, What to Remember, When and How to Recall, Tool Comparison and Selection

Custom Commands

.claude/commands/

ItemContent
Location.claude/commands/*.md
InvocationExecute with / + filename (e.g., /deploy)
RoleReusable boilerplate prompts. Deploy procedures, review procedures, etc.

Example (.claude/commands/deploy.md):

markdown
Execute pre-production deployment checklist.

1. `npm run test` must pass all
2. `npm run build` must complete without errors
3. Output summary of changes

Configuration Loading Timing Overview


Next: FAQ — Frequently Asked Questions and Design Decisions

Previous: Structural Problems × Claude Code Countermeasures Map

Discussion: For suggestions or corrections, please post in Discussions

Released under the CC BY 4.0 License.