Project Setup
Initializing Claude Code for Your Project
When you first run Claude Code in a project directory, it operates without any project-specific context. The /init command bootstraps project awareness by analyzing your codebase and generating a CLAUDE.md file that serves as persistent memory.
cd your-project/
claude
# Bootstrap project awareness
> /init
# Claude will:
# 1. Scan directory structure and key files
# 2. Identify tech stack (languages, frameworks, tools)
# 3. Note architectural patterns and conventions
# 4. Generate CLAUDE.md with structured project summaryWhat Goes in CLAUDE.md
The generated CLAUDE.md typically includes: project description, tech stack, directory structure overview, key files and their purposes, coding conventions, build/test commands, and any notable architectural decisions.
Customizing Project Configuration
After /init generates the base CLAUDE.md, you should customize it with project-specific instructions that improve Claude's effectiveness. Think of it as an onboarding document -- what would a new developer need to know?
- •Always reference critical files: 'Check src/db/schema.prisma before any database changes'
- •Document testing conventions: 'Run tests with npm test, use vitest for unit tests'
- •Specify coding style: 'Use functional components with hooks, no class components'
- •Note deployment: 'Main branch auto-deploys to production via Vercel'
- •Flag sensitive areas: 'Never modify src/auth/encryption.ts without security review'
Team Sharing
CLAUDE.md is committed to git, so the entire team benefits from project instructions. Each developer can add personal preferences to .claude/settings.local.json (gitignored) without affecting others.
Key Takeaways
- ✓Use /init to bootstrap project awareness -- it generates CLAUDE.md from codebase analysis
- ✓CLAUDE.md acts as persistent memory, included in every request automatically
- ✓Customize CLAUDE.md with critical file references, conventions, and project-specific rules
- ✓CLAUDE.md is committed to git so the whole team benefits from shared project instructions
- ✓Personal preferences go in .claude/settings.local.json (gitignored) to avoid conflicts
Check Your Understanding
Test what you learned in this lesson.
Q1.What does the /init command generate?
Q2.Where should personal Claude Code preferences that shouldn't be shared with the team go?
Q3.Why should you add critical file references to CLAUDE.md?