Building Your Personal System
Combine everything — CLAUDE.md, hooks, skills, commands, MCPs — into a system that compounds over time. A framework for continuous improvement.
You've got every piece now. CLAUDE.md for instructions. Hooks for enforcement. Skills for reusable workflows. Subagents for specialized tasks. MCPs for external integrations. Auto memory for accumulated knowledge.
Individually, each one is useful. Together, they form something that gets better every time you use it.
That's what this whole course has been building toward.
The Layers
Think of your setup as five layers, each solving a different problem.
Layer 1: Instructions (CLAUDE.md files)
Your project CLAUDE.md holds team conventions. Your user-level ~/.claude/CLAUDE.md holds personal preferences. CLAUDE.local.md handles project-specific overrides you don't want in git. The .claude/rules/ directory holds modular rules that activate based on file paths.
Layer 2: Memory
Claude saves things it learns to ~/.claude/projects/<project>/memory/. Build commands. Debugging insights. Your preferences. MEMORY.md loads automatically every session. You can edit or delete anything in there. Over time, it becomes a dense knowledge base of your project's quirks.
Layer 3: Enforcement (Hooks) CLAUDE.md is advisory. Hooks are deterministic. Need something to happen every single time, without exception? Use a hook. Lint after every file edit. Block writes to protected directories. Send a notification when a task finishes. Hooks don't ask. They execute.
Layer 4: Workflows (Skills and Subagents)
Skills in .claude/skills/ encode multi-step processes you have already figured out. Subagents in .claude/agents/ handle specialized tasks in their own context. Your main conversation stays clean.
Layer 5: Integration (MCPs) MCP servers connect Claude to the outside world. Issue tracker. Database. Monitoring tools. Instead of copy-pasting error logs into the chat, Claude pulls them directly.
Instructions tell Claude what you want. Memory gives it context. Hooks guarantee outcomes. Skills encode processes. MCPs extend reach.
Why It Compounds
This took me a while to appreciate.
Add a rule to CLAUDE.md that says "always use early returns." From now on, every function Claude writes in every project follows that pattern. You never mention it again.
Create a hook that runs your linter after every file edit. Every file Claude touches gets linted automatically. You never ask for it.
Build a skill for your deployment process. Every deploy follows the exact same steps. You never walk Claude through it again.
Auto memory works the same way. Claude notices your project uses a specific test pattern. It saves that. Next session, it already knows. The session after that, it knows more. Over months, the memory file becomes a surprisingly detailed reference.
Every rule, every hook, every skill persists and stacks. The hundredth session is wildly more productive than the first, not because you got better at prompting (though you did), but because the system accumulated all those small improvements.
The Four Questions
The system only compounds if you maintain it. After every project, or every couple of weeks, ask yourself four things:
What did Claude keep getting wrong? If Claude repeatedly used the wrong import style or forgot to run tests, add a specific rule or hook. Don't tolerate the same mistake twice. That's what your config is for.
What did I type more than once? If you kept pasting the same multi-step prompt for deployments or reviews, turn it into a skill. Your future self should never re-derive a workflow you already figured out.
What did Claude waste time exploring? If Claude burned tokens reading files to understand your architecture, add those details to CLAUDE.md or auto memory. Give it the map upfront.
What rules are dead weight? Claude already follows some conventions by default. If a rule isn't changing behavior, remove it. Every line you remove makes the remaining lines more impactful. Prune dead instructions the way you prune dead code.
Try It: Audit Your Setup
# Check your user-level instructions
cat ~/.claude/CLAUDE.md
# Check project instructions
cat ./CLAUDE.md
# Check what auto memory has accumulated
ls ~/.claude/projects/
# Check any skills you have
ls .claude/skills/ 2>/dev/null
# Check hooks
cat .claude/settings.json 2>/dev/nullFor each file, ask: is every line still earning its place? Patterns you keep correcting manually should be a rule. Workflows you repeat should be a skill. Actions that need to happen every time should be a hook, not an instruction.
Here's a maintenance skill that keeps you honest:
# .claude/skills/system-review.md
## System Review Checklist
When asked to review the system setup:
1. Read all CLAUDE.md files and flag rules that seem redundant
2. Check auto memory for outdated or incorrect entries
3. List any hooks and verify they still match current workflows
4. Suggest new rules based on patterns from recent conversations
5. Recommend skills for any repeated multi-step workflowsKeep It Alive
Projects change. Tools change. Your preferences change. When you switch from Jest to Vitest, update your hooks and CLAUDE.md. When you adopt a new deployment process, update your deploy skill. When you join a new team, create a new project CLAUDE.md that reflects their conventions while keeping your personal preferences in your user-level file.
The layered architecture makes this natural. Team stuff lives in project config, checked into git. Personal stuff lives in user config or CLAUDE.local.md. Nothing tangled.
Some people review their setup monthly. Some do it whenever something annoys them. The frequency matters less than the habit. Your Claude Code config is a living system, not a one-time setup.
What a Mature System Looks Like
After a few months of active use and refinement:
- A user CLAUDE.md with 50 lines of personal coding preferences that apply everywhere
- A project CLAUDE.md with 80 lines of team conventions, architecture notes, and build commands
- 3-5 hooks that enforce critical rules automatically
- 5-10 skills covering your most common workflows
- 2-3 subagents for specialized tasks
- Auto memory with accumulated project knowledge Claude references without being asked
- A review skill for periodic auditing
Not a lot of configuration. Maybe a couple hundred lines total. But each line is load-bearing. Each one prevents a mistake, saves a conversation turn, or encodes a lesson learned.
Final Words
Seventy lessons. You know how the tools work, how to configure them, how to avoid the pitfalls, and how to build workflows that stack over time. Most developers are still copy-pasting into ChatGPT and hoping for the best. You're not most developers anymore.
But knowing isn't doing. None of this matters if it stays theoretical. Start small. One CLAUDE.md. One skill. One hook. Use them for a week, notice what's missing, add the next piece. Don't try to set up all five layers in an afternoon. Let the system grow from real friction in your real workflow.
I built my own system exactly this way. One rule at a time, one hook when I got tired of repeating myself, one skill when I realized I'd typed the same deployment steps for the fifth time. Six months in, I barely recognize how I used to work. The tooling didn't change. My system around it did.
The best personal system is the one you actually maintain.
Go build yours.
Mastering Claude Code
Lesson 70 of 70