.claude/ Folder: Claude Code's Secret Control Panel ππ₯
Yo, my guy, let's crack open this .claude/ black box. Most peeps ignore it, but that's like driving blindfolded. Time to level up.
1οΈβ£ WHY Does This Even Exist? (The Pain It Kills π)
Before .claude/? Claude Code was generic AF. It guessed your project's rules, commands, and styleβleading to endless "/no, do it THIS way" corrections. Teams fought over prefs, sessions forgot context, and risky commands ran wild.
The "Ohhh" Unlock: .claude/ is your project brain. Injects custom instructions, commands, skills, and safety rails automatically. Claude behaves like a team member from session 1. No more babysitting. Productivity 10x.
PROBLEM (BLACK BOX) β SOLUTION (.CLAUDE/) β
ββββββββββββββββββββββββ ββββββββββββββββββββ
Generic Claude everywhere Custom per project/team
Forgets rules each session Persistent memory + rules
Risky ops (rm -rf? π±) Permissions lock it down
Team chaos on styles Shared config in git
2οΈβ£ BIG PICTURE: Two Folders, Not One π€―
- Project-level
./.claude/: Team-shared, git-committed. Lives in your repo root. - Global
~/.claude/: Your personal vibes, session history, cross-project stuff.
Claude loads both, project first (overrides global). Subdirs too for scoped rules.
YOUR PROJECT ROOT
β
βββ CLAUDE.md (team bible π)
βββ .claude/ β CONTROL CENTER
βββ rules/ β’ Modular rules
βββ commands/ β’ /slash magic
βββ skills/ β’ Auto-triggers
βββ agents/ β’ Sub-experts
βββ settings.json β’ Permissions
β
βββ ~/.claude/ β YOUR GLOBAL VAULT
βββ CLAUDE.md
βββ commands/
βββ projects/ β’ Session memory
LOCK IT IN: Project = team rules. Global = you rules. Stack 'em.
3οΈβ£ MECHANICS: File-by-File Breakdown βοΈ
Loaded on session start, injected into Claude's prompt. Keep files lean (<200 lines) or context chokes.
CLAUDE.md: The System Prompt Boss π
Why? No manual reminders. Claude reads it first, follows forever.
How?
- Write essentials: commands, arch, conventions, gotchas.
- Lives in project root (or subdirs/global).
- Loaded + combined automatically.
Don't Bloat: No linter config or long theoryβlink that shit.
EXAMPLE CLAUDE.md (20 lines gold π₯)
# Commands
npm run dev # etc.
# Arch
- Express + Prisma
# Conventions
- Zod validation always
Personal Twist: CLAUDE.local.md (gitignored) for your quirks.
TL;DR: CLAUDE.md = "Claude, act like this." Edit once, win daily.
rules/: Split the Monolith π
Why? Giant CLAUDE.md β ignored mess. Modular = team owns pieces.
How?
- MD files in
.claude/rules/auto-load. - YAML frontmatter for path-scoping (e.g., only API files).
.claude/rules/
βββ code-style.md (always loads)
βββ api-conventions.md
---
paths: ["src/api/**"]
---
- Zod reqs
TL;DR: Rules scale teams. Scope = smart.
commands/: Custom /slashes π οΈ
Why? Built-ins suck for your workflows. Inject git diffs, args, shell output.
How?
- MD in
.claude/commands/β/project:filename. - Use
!git diff`` for real output. $ARGUMENTSfor user input.
EX: commands/review.md β /project:review
!`git diff main...HEAD`
Review for bugs/tests...
Global: ~/.claude/commands/ β /user:cmd.
TL;DR: Commands = saved prompts on steroids.
skills/: Auto-Pilot Workflows π€
Why? Commands waitβyou type. Skills watch convo, trigger solo.
How?
- Subdir w/
SKILL.md(YAML: desc, tools). - Bundles files (
@DETAILED_GUIDE.md). - Matches desc? Boom, invokes.
.claude/skills/security-review/
βββ SKILL.md
---
description: Use on security mentions
---
1. Scan SQLi/XSS...
Call explicit: /security-review.
TL;DR: Skills = proactive Claude.
agents/: Spawn Experts π§βπ»
Why? Main Claude multitasks poorly on deep dives. Agents = isolated pros.
How?
- MD in
.claude/agents/w/ YAML (name, model=sonnet, tools=Read). - Claude spawns, compresses results back.
agents/code-reviewer.md
---
name: code-reviewer
model: sonnet
tools: Read,Grep
---
Flag bugs + fixes.
TL;DR: Agents = delegate hard tasks.
settings.json: Permission Jail βοΈ
Why? Blind trust = disasters (curl secrets? No.)
How?
{
"permissions": {
"allow": ["Bash(npm run *)", "Read", "Write"],
"deny": ["Bash(rm *)", "Read(.env)"]
}
}
- Allow: No-ask zone.
- Deny: Blocked.
- Else: Asks.
settings.local.json for personal.
TL;DR: Permissions = safety net.
4οΈβ£ GET STARTING: 5-Step Ramp-Up π
/initβ Auto CLAUDE.md.settings.jsonw/ basics.- 1-2 commands (review/fix).
- Split to rules/.
- Global CLAUDE.md prefs.
BURN THIS IN: CLAUDE.md first. Rest optimizes. Treat like infraβsmall setup, big ROI.
You tracking, fam? This flips Claude from helper to teammate. Hit me for examples. π