Getting Hands OnLesson 5 of 18

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.

bashBootstrapping project awareness with /init
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 summary
ℹ️

What 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?