Claude Code: CLAUDE.md, Skills, Subagents and Hooks

Most teams begin with Claude Code as a conversation. They ask for a change, review the result, correct what went wrong, and repeat. That works for a while. Then the same corrections start appearing in every session. The same deployment checklist is pasted again. The main conversation fills with search output. A formatting command gets forgotten.
At that point, the problem is no longer prompting. It is system design.
I previously looked at the community-built Everything Claude Code toolkit and the discipline required around agentic coding. This article takes a different route. It focuses on Anthropic’s native Claude Code primitives and how to design a clean operating model from first principles.
Claude Code gives engineering teams four building blocks for turning an ad hoc coding assistant into a repeatable working system: CLAUDE.md, skills, subagents, and hooks. Each solves a different class of problem. The important design decision is knowing which layer should carry which responsibility.
This guide explains that distinction using the current official Anthropic documentation, then combines the pieces into a practical repository setup.
The short version: four layers, four jobs
Think of the setup as an operating model for AI-assisted engineering.
CLAUDE.mdis persistent context. It contains facts and instructions Claude should see in every relevant session.- Skills are reusable procedures. They package knowledge, checklists, and multi-step workflows that load only when needed.
- Subagents are isolated specialists. They perform focused work in their own context window and return a result to the main conversation.
- Hooks are deterministic automation. They run at specific lifecycle events, whether or not the model remembers to ask for them.
The boundary matters. If a rule must always block an unsafe action, putting it in CLAUDE.md is not enough. Anthropic explicitly describes those files as context, not enforced configuration. A PreToolUse hook is the stronger mechanism. Conversely, putting a long release procedure in CLAUDE.md wastes context in sessions that never release anything. That procedure belongs in a skill.
Continue reading after sign in.
This article is available to registered readers. Sign in to continue, or register with a basic subscriber account.