Claude Code//.claude

- The `.claude/` directory at the project root — houses all Claude Code configuration that isn't pure instructions.


The .claude/ directory at the project root — houses all Claude Code configuration that isn't pure instructions.

CLAUDE.md:: project instructions — rules, architecture, gotchas. Lives at project root (not inside .claude/). Loaded into context at every session start. CLAUDE.local.md for personal additions (gitignored).

settings: permissions and hooks. .claude/settings.json (shared, committed) sets team-wide defaults. .claude/settings.local.json (personal, gitignored) for local overrides.

hooks: automation that fires on tool events. Config goes in settings, scripts live in .claude/hooks/ — not in scripts/, because they consume Claude Code's JSON stdin protocol and are useless outside of it.

skills: reusable workflows invoked as /name. Each skill lives at .claude/skills/<name>/SKILL.md with YAML frontmatter + instructions.

Memory:: persistent notes in .claude/memory/MEMORY.md (auto-loaded) + topic files. Survives across sessions. Claude reads and writes these to remember project-specific patterns, mistakes, and decisions.

Private (gitignored): settings.local.json, CLAUDE.local.md, memory/. Committable: settings.json, skills/, hooks (part of settings).