Most people use Claude Code like a smarter autocomplete. But it is a fully programmable system, with a stack of configuration mechanisms that each solve a different problem. Knowing which to reach for is what separates chatting with the tool from engineering it.
CLAUDE.md — persistent context
The foundation. Read every session, it holds what is always true about your project: the stack, the conventions, what not to touch. Get this right first; everything else builds on it.
Slash commands — reusable actions
A prompt template you invoke by name. Anything you type repeatedly — a review checklist, a commit format — becomes a command you trigger with a slash. The easiest mechanism to create, and immediately useful.
# .claude/commands/review.md
Review the staged changes for correctness, security,
style and test coverage. Report findings by severity.
Subagents — delegated work
A separate Claude instance with its own context window. When a task needs heavy exploration — "go read the codebase and tell me how auth works" — a subagent does the reading in its own context and returns just the answer, keeping your main session clean.
Hooks — deterministic enforcement
An event-driven script that runs real code. Where CLAUDE.md asks Claude to follow a rule, a hook enforces it at the system level — blocking a dangerous command, running a formatter after every edit. For anything that must never go wrong, a hook is a guarantee, not a request.
Skills and plugins
Skills hold on-demand capability that loads only when relevant, keeping CLAUDE.md lean. Plugins bundle commands, subagents, hooks and skills into a single versioned unit you can share across a team. Together they let a configuration scale from a solo project to an organisation.
Which tool, when
The framework is simple:
- CLAUDE.md — for what is always true
- Slash command — for what you repeat
- Skill — for what loads on demand
- Subagent — for what should stay out of your context
- Hook — for what must be enforced
- Plugin — to package and share it all
When you are unsure, ask what kind of thing you are dealing with — persistent context, a repeated action, an enforced rule, delegated work — and the right tool follows from the question.
The bottom line
You do not need all of this on day one. Start with CLAUDE.md, add commands and skills as you notice repetition, reach for hooks when you need enforcement, and package it into a plugin only once it is worth sharing. The teams getting the most from Claude Code treat it as a programmable platform — and they got there one layer at a time.
Free starter: The format, a complete annotated example, and the one-line test are all on a free cheat sheet: CLAUDE.md Quick-Start Cheat Sheet
Go deeper: The full guide covers the entire configuration stack — hooks, subagents, commands, skills and plugins — with real-world walkthroughs and a 30-day plan: CLAUDE.md: The Complete Claude Code Configuration Guide
Which part of the stack have you actually used so far — just CLAUDE.md, or have you got into hooks and subagents? Curious where people are.
Top comments (0)