The Claude Code Setup I Wish I Had on Day One A developer published a guide to configuring Claude Code with six repo-level files and settings—CLAUDE.md, plan mode, skills, subagents, hooks, and permissions—so the coding agent retains project conventions across sessions. The setup centers on a short CLAUDE.md at the repo root, generated via the /init command and kept under roughly 200 lines, with folder-scoped variants and a gitignored CLAUDE.local.md for personal notes. The author argues the model is identical for everyone, so the difference lies in what the repository tells it. Six small files that turn a coding agent from a clever stranger into a teammate who knows how your project works. Day one with Claude Code goes like this. You explain your project. Tests live in /tests , not next to the code. We use pnpm , not npm . Never touch the migration files by hand. Claude nods, does good work, and you go home impressed. Day two, you open a new session. It runs npm install . It writes tests next to the code. It edits a migration file. It didn’t get worse overnight. It just doesn’t remember. Every session starts from zero, with a very capable stranger who has never seen your repo. Most people react by typing the same instructions again every morning. That works, but it’s slow, and you’ll forget something. The better fix is to stop explaining and start writing it down, in the places Claude Code already looks. Here’s the whole idea in one sentence: the model is the same for everyone, so the difference is in what your repo tells it. Claude Code reads a handful of files every time it starts. Get them right once and every session, for every person on your team, starts with the same knowledge. There are six pieces. You don’t need all of them on day one. Start at the top and add the next one when you feel the pain it solves. IMAGE: claude-code-setup.png. Caption: “Six pieces, one folder. The first four are instructions Claude follows; the last two are enforced by Claude Code itself.” “It forgets how our project works” → CLAUDE.md “It starts editing before it understands” → Plan mode “I explain the same procedure every week” → Skills “Big tasks fill up its memory with noise” → Subagents “It ignores a rule I really care about” → Hooks “I click approve fifty times a day” → Permissions This is a plain markdown file in your repo root. Claude Code loads it at the start of every session, so anything in it never has to be said again. Don’t start with a blank page. Run /init inside Claude Code and it writes a first draft by reading your repo. If you already have one, it suggests improvements instead of overwriting it. Then edit it down to what a new hire would actually need: Project: fleet-reports Commands - Install: pnpm install never npm - Test: pnpm test - Lint and format: pnpm lint --fix Rules - Tests go in /tests, mirroring the src/ folder structure - Never edit files in /migrations by hand; run pnpm db:migrate:new - All dates are UTC in the database, local time only in the UI Where things are - API routes: src/api/ - Report templates: src/templates/ - Shared types: src/types/ check here before creating a new type Three rules that make this file work: Keep it short. Anthropic’s docs suggest under 200 lines. Every line costs context in every session, whether it’s relevant or not. Write commands, not essays. “Run pnpm test " beats "We value thorough testing." Split by folder when it grows. A CLAUDE.md inside src/api/ only loads when Claude starts working in that folder. Your API conventions don't need to sit in memory while it edits CSS. Two more files worth knowing about: ~/.claude/CLAUDE.md applies to every project on your machine good for personal habits , and CLAUDE.local.md is for personal notes on this project that shouldn't be committed. Add it to .gitignore . The most expensive Claude Code mistake isn’t bad code. It’s good code in the wrong place, built on a wrong assumption, across twelve files. Plan mode fixes that. Press Shift+Tab to cycle through the modes until you reach plan mode, or start your message with /plan . In plan mode, Claude reads your code and writes a plan, but it can't edit anything until you approve. Use it for anything bigger than a one-file change. Read the plan. Correct the one wrong assumption. Then let it build. Two minutes of reading saves an hour of undoing. Every team has procedures that live in someone’s head. How we add a new API endpoint. How we cut a release. How we write a database migration. A skill is that procedure, written down where Claude can find it. It’s a folder with one markdown file: .claude/skills/new-endpoint/SKILL.md --- name: new-endpoint description: "Adds a new REST API endpoint. Use when the user asks to add, create or expose a new API route." ---1. Create the route in src/api/