Beyond the Prompt: Claude Code | Arpan PatelBeyond the Prompt: Claude Code<br>May 26, 2026 · 23 min · Arpan Patel<br>Table of Contents1. Claude Code Beyond the Basics<br>2. The .claude Directory, Properly Understood<br>3. CLAUDE.md, The Way Boris Writes It3.1 The Real CLAUDE.md From the Claude Code Team<br>3.2 Popular CLAUDE.md Files Worth Studying
4. CLAUDE.local.md as a Daily Driver<br>5. Skills, In Depth5.1 What Skills Actually Are<br>5.2 Writing a Real Skill: Go API Conventions<br>5.3 Popular Skills Worth Installing
6. Building Custom Subagents6.1 Walking Through a /pr-review Agent<br>6.2 Popular Subagents Worth Stealing
7. Plugins and the Marketplace<br>8. Underused Claude Code Commands8.1 /goal, the Ralph Loop Built In
9. MCPs as Power Tools9.1 A Real Obsidian Workflow
10. Optimizing Your Daily Workflow<br>11. s From the Anthropic Team<br>12. Resources<br>Closing Notes
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.<br>1. Claude Code Beyond the Basics#<br>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.<br>A few patterns that change how you operate day to day:<br>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.<br>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.<br>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.<br>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.<br>: 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#<br>Most people open .claude/ once, see CLAUDE.md, and never look further. It is actually a layered configuration system.<br>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.<br>Mental model: project files describe the project, global files describe you.<br>FileScopeCommitWhat it doesCLAUDE.mdProject and globalYesInstructions loaded every sessionCLAUDE.local.mdProject onlyNo, gitignore itYour private project notessettings.jsonProject and globalYesPermissions, hooks, env vars, model defaultssettings.local.jsonProject onlyNoPersonal overrides, auto-gitignored.mcp.jsonProject onlyYesTeam-shared MCP serversskills//SKILL.mdProject and globalYesReusable prompts invoked with /namecommands/*.mdProject and globalYesSingle-file slash commandsagents/*.mdProject and globalYesSubagent definitionsrules/*.mdProject and globalYesTopic-scoped instructions, optionally path-gatedA typical layout:<br>10<br>11<br>12<br>13<br>14<br>my-repo/<br>├── .claude/<br>│ ├── settings.json<br>│ ├── agents/<br>│ │ ├── pr-review.md<br>│ │ └── test-writer.md<br>│ ├── skills/<br>│ │ └── api-conventions/SKILL.md<br>│ └── rules/<br>│ ├── frontend.md # path-gated to src/frontend/<br>│ └── migrations.md # path-gated to db/migrations/<br>├── CLAUDE.md # checked in, team-shared<br>├── CLAUDE.local.md # gitignored, personal<br>└── .mcp.json # team-shared MCP servers
A few things easy to miss:<br>CLAUDE.md files cascade. In a monorepo, both root/CLAUDE.md and root/services/billing/CLAUDE.md load when you work in the billing service. Powerful for codebases with different...