Mastering Claude Code

The Customisation Hierarchy

Claude Code's six configuration layers — from permanent project context to deterministic enforcement — how they compose, when each activates, and the mental model that keeps them straight.

Six layers, one system

Claude Code's customisation system is not a flat list of features. It is a hierarchy where each layer serves a distinct purpose, loads at a distinct time, and solves a distinct class of problem. Understanding this hierarchy is the single most important thing you will learn in this course, because every configuration mistake developers make comes from putting the right content in the wrong layer.

Here is the hierarchy, from broadest to most targeted:

LayerWhat it isWhen it loadsWhat it solves
CLAUDE.mdPermanent project contextEvery session, at startupUniversal standards and project overview
RulesModular, scopeable extensionsStartup or on-demand by file pathDomain-specific standards without bloating CLAUDE.md
SkillsOn-demand task recipesWhen Claude detects relevance or you invoke /skillRepeatable workflows and task-specific knowledge
AgentsIsolated execution contextsWhen Claude delegates or you request itHeavy tasks, parallel work, restricted access
HooksDeterministic automationsAutomatically at lifecycle eventsEnforcement, validation, formatting, audit
MCPExternal tool integrationsSession startupDatabase, API, and service access

The hierarchy flows from always-on to event-driven. CLAUDE.md is always in context. Rules may or may not load depending on which files you touch. Skills load when a task matches. Agents spin up when work needs isolation. Hooks fire when specific events occur. MCP tools are available when Claude decides to use them.

?

Which of these is a task you perform regularly with Claude Code?