AI stops feeling like a stranger and starts feeling like a colleague who was already in the room.
The CLAUDE.md
After this drill, you have written project memory for your app — and for the first time, Claude Code already knows your context without being told.
Why this matters
Count the number of times in Module 4 you had to re-explain what your app does before Claude could help you. That number is the cost of working without project memory. CLAUDE.md is how you fix this. It is a plain text file at the root of your project that Claude Code reads at the start of every session. You write it once. From that point on, Claude Code already knows: what the project is, who it is for, the tech stack, the conventions, what to avoid, and what good looks like. This is not a tip. This is a structural change in how you relate to AI. Before CLAUDE.md: every session starts with a stranger. You brief it on the context. It does the work. The next session, it has forgotten everything. After CLAUDE.md: the colleague was already in the room when you arrived. It knows the project. It remembers the decisions. It applies the conventions automatically. This is the first hit of The Crossover.
How to do it
- 1
Create CLAUDE.md at the root of your project
In VS Code: New File → CLAUDE.md. This file must be named exactly CLAUDE.md and live at the top level of your project.
- 2
Write your project memory using the template below
Fill in all sections. Be specific. The more precise your CLAUDE.md, the better Claude Code's behavior. This is the most important file you will write in this course.
- 3
Start a new Claude Code session and ask it to describe your project
Open a terminal. Run: `cd /path/to/your-project` (use your actual folder path). Then type `claude` and press Enter. When the Claude Code prompt appears, type: 'What is this project?' — watch it answer using the exact language you wrote in CLAUDE.md. This is the moment.
- 4
Test a prompt that would have required context-setting before CLAUDE.md
Try a task that, in Module 4, required you to explain the project first. Notice you no longer have to.
The prompt
# [PROJECT NAME] ## What This Is [2-3 sentences describing the application, its purpose, and its primary users] ## Tech Stack - Framework: [e.g. React + Vite] - Styling: [e.g. Tailwind CSS] - Language: [e.g. TypeScript] - Other: [any other key tools] ## Project Structure - src/components/ — [what lives here] - src/pages/ (or app/) — [what lives here] - src/lib/ — [what lives here, if anything] ## Conventions - [Convention 1 — e.g. "Components are functional, never class-based"] - [Convention 2 — e.g. "Use Tailwind utility classes, no custom CSS files"] - [Convention 3 — e.g. "All user-facing text is in the translations/ file"] ## What To Avoid - [Thing 1 to avoid — e.g. "Do not add new dependencies without asking first"] - [Thing 2 — e.g. "Do not modify the auth system"] ## Current State [1-2 sentences on what's working and what's in progress] ## How To Run ```bash npm install npm run dev ```
# [PROJECT NAME — e.g. "Monthly Policy Brief", "Client Research", "Brand Content"] ## What This Is [2-3 sentences: what work product this covers, who it is for, what good output looks like] ## My Context - My role: [your professional title and domain] - Audience: [who reads or uses this work — colleagues, clients, the public, etc.] - Tone: [formal/informal, technical/accessible, first-person/institutional, etc.] - Language: [primary language and any multilingual requirements] ## Style Conventions - [Convention 1 — e.g. "Always use active voice in policy documents"] - [Convention 2 — e.g. "Citation format: author (year) for academic sources"] - [Convention 3 — e.g. "Executive summaries are always under 200 words"] - [Convention 4 — e.g. "Avoid jargon — write for an informed non-specialist"] ## What To Avoid - [Constraint 1 — e.g. "Never name specific vendors or commercial products"] - [Constraint 2 — e.g. "Do not speculate beyond what the source material supports"] ## Recurring Resources [Paste any standing context here: your organization's mission statement, a style guide excerpt, or key terminology definitions that should always be applied] ## Current State [1-2 sentences on what's in progress or recently completed — update this regularly]
Success criteria
- ✓You created CLAUDE.md at your project root with all required sections
- ✓Claude Code accurately described your project in a new session without prompting
- ✓You ran a task that previously required context-setting — without needing to provide context
- ✓You can describe what changed in your relationship with Claude Code because of CLAUDE.md
Common mistakes
Writing a CLAUDE.md that's too generic to change behavior
→ "Write clean code" does nothing. "Use const instead of let for all variable declarations" changes every file. Specificity is the only thing that works.
Putting CLAUDE.md in a subfolder
→ CLAUDE.md must be at the project root — the same level as package.json. Claude Code looks for it there specifically.
Never updating CLAUDE.md as the project evolves
→ CLAUDE.md is project memory. Memory should be current. When you add a new convention, add it to CLAUDE.md. When something changes, update it. Treat it like living documentation.