Claude Code as a Daily Driver: Claude.md, Skills, Subagents, Plugins, and MCPs Anthropic's Claude Code tool offers advanced features including a layered configuration system, custom commands, subagents, and plugins that transform it from a basic chatbot into a programmable autonomous agent. The `.claude/` directory provides project and global configuration scopes with files for instructions, settings, skills, commands, and agents that compound in value over time. Daily drivers leverage patterns like plan mode for exploration before coding, delegating tasks rather than pair-programming, and using `CLAUDE.md` to document mistakes so the tool learns from its own failures. Claude Code is one of those tools where the difference between a casual user and someone who has internalized it is enormous. The casual user types prompts, accepts suggestions, and treats it like a fancier autocomplete. The daily driver uses it like a programmable agent with memory, custom commands, parallel sessions, and a project setup that compounds over time. This guide is for the second kind of person, assuming you already know what claude does when you type it in a terminal. 1. Claude Code Beyond the Basics 1-claude-code-beyond-the-basics Once you stop thinking of Claude Code as a prompt-and-wait chatbot and start treating it as an autonomous agent that needs guardrails, your workflow shifts. The single most important principle from Boris Cherny and the Anthropic team: give Claude a way to verify its own work . Without that, you are the only feedback loop. With it, Claude iterates until things actually work, and Boris says this alone gives a 2-3x quality improvement. A few patterns that change how you operate day to day: Explore, then plan, then code. Plan mode Shift+Tab twice puts Claude into read-only exploration. Read files, trace flows, understand the data model. Then get a plan. Then execute. Skip planning for small fixes; use it for anything touching more than one file. Use plan mode like a design document. Have one Claude write the plan, then spin up a second Claude in a fresh session to review it as a staff engineer, with no context bias, so it actually catches gaps. If implementation goes sideways, go back to plan mode and re-plan with verification steps included. Reference, do not describe. Instead of “look at the auth module”, type @src/auth/login.py . Instead of pasting an error, pipe it: cat error.log | claude . Exact context beats approximate description every time. Delegate, do not pair-program. Cat Wu Claude Code team : “The model performs best if you treat it like an engineer you’re delegating to, not a pair programmer you’re guiding line by line.” Write a crisp brief upfront, then let it run. :Press Ctrl+G to open Claude’s plan in your editor and tweak it before Claude proceeds. The plan is just text, so shape it before it becomes code. :When Claude makes a mistake, end your prompt with “Update CLAUDE.md so you do not repeat this.” Boris calls Claude “eerily good at writing rules for itself” from its own failures. This habit compounds more than any other in this guide. 2. The .claude Directory, Properly Understood 2-the-claude-directory-properly-understood Most people open .claude/ once, see CLAUDE.md , and never look further. It is actually a layered configuration system. Two scopes: Project scope lives in .claude/ inside your repo, committed to git so your team shares it. Global scope lives in ~/.claude/ and applies across every project on your machine. Mental model: project files describe the project, global files describe you. | File | Scope | Commit | What it does | |---|---|---|---| CLAUDE.md | Project and global | Yes | Instructions loaded every session | CLAUDE.local.md | Project only | No, gitignore it | Your private project notes | settings.json | Project and global | Yes | Permissions, hooks, env vars, model defaults | settings.local.json | Project only | No | Personal overrides, auto-gitignored | .mcp.json | Project only | Yes | Team-shared MCP servers | skills/