Why this matters
Most people skip day one
Most people open Claude Code, type a prompt, and start building. Then they wonder why the output feels generic, why their API key ends up in chat history, why the same workflow takes 8 prompts on Monday and 12 on Tuesday.
The fix isn't a better prompt. It's a 30-minute setup before you build anything. Five moves. Each one compounds for every project you ever run.
Big credit to Tim Yakubson's Claude Code masterclass for sharpening half of these. Tim's the real one. Watch the full 3 hours when you have time.
Move 1
Create a CLAUDE.md file
CLAUDE.md is the first file Claude reads in every session. Before it touches a single line of code, it loads CLAUDE.md and treats it like its system prompt for the rest of the conversation.
That means it's where you describe the project, your role, the agent's role, how you want it to think, what it should never do, and where to find everything else. If you skip this, every session starts from scratch and you re-explain the same context for the next six months.
Here's a starter template. Drop it in the root of your project, edit the bracketed parts, and you're 80% of the way there.
CLAUDE.md starter template
# Project Name ## What this project is One or two sentences describing the project, who it's for, and what "done" looks like. ## Your role You are working on [project type]. You write [code / copy / scripts / etc.] in the style described below. You ask clarifying questions before you build anything substantial. ## How you think - Plan before you build. Always start in plan mode for anything more than a one-line edit. - Break work into phases. Phase 1, Phase 2, Phase 3. Never one-shot a full feature. - Edit existing files before creating new ones. Never create a doc, README, or summary file unless I explicitly ask. - Be terse. No preambles, no "let me know if you want anything else" sign-offs. ## How the folder is organized - /src: source code - /docs: reference docs you can read but should not edit without asking - /scripts: one-off utilities - /.env: API keys live here, NEVER paste them in chat ## Conventions - Style: [your style, e.g. direct, no em-dashes, no AI tells] - Stack: [Next.js / Astro / Python / etc.] - Tests: [Vitest / Pytest / none] - Deploy: [Vercel / Netlify / Railway] ## Hard rules - Never paste API keys into chat. Reference them by env var name (e.g. process.env.OPENAI_API_KEY). - Never commit .env. It is in .gitignore. - Never push to main without me asking. Use feature branches. - If you're not sure what I want, ask. Don't guess. ## Files worth knowing about - @USER.md: who I am, how I work - @docs/architecture.md: how the system fits together - @docs/voice.md: writing style if you're producing copy
Pro move: link to other docs from CLAUDE.md using @filename syntax. Claude treats those as required reading too. One CLAUDE.md becomes the table of contents for your whole project brain.
Move 2
Always start in plan mode
Plan mode is the toggle that stops Claude from touching any file until you approve a plan. You hit Shift + Tab and it switches into plan-only mode for the next prompt.
The reason this matters: by default, Claude builds first and asks questions second. That's how you end up with a half-finished feature in a folder you didn't want it in, using a library you don't use. Plan mode forces it to think out loud first.
But plan mode alone isn't enough. You also have to force it to ask clarifying questions instead of guessing. Here's the prompt that does both.
Plan-mode forcing prompt
I want to build [describe what you want]. Before you write any code or change any files, do this: 1. Ask me every clarifying question you need. Don't assume, ask. 2. Wait for my answers. 3. Then output a plan with phases (Phase 1, Phase 2, Phase 3). Each phase should be small enough to verify on its own. 4. Wait for me to approve the plan before you touch a single file. Start with the questions.
Bonus: after you drop new files into a project folder, type /init. Claude reads every file in the directory and builds a fresh picture of the project before you start prompting. Pairs perfectly with plan mode.
Move 3
Build in phases, not one-shots
If you give Claude one prompt with twelve requirements, you'll get one output with six bugs. The model is good. It's not magic. Big tasks compound errors.
The fix is to split anything bigger than a one-line change into 3-4 phases. Each phase ships something verifiable. You confirm phase 1 before phase 2 starts. If something breaks, you know exactly which phase broke it.
This is the single biggest accuracy upgrade most people never make. Copy-paste prompt below.
Phased build prompt
Here's what I want to build: [describe outcome]. Break this into 3-4 phases. For each phase: - One sentence on what it ships - The files it touches - How I'll know it works Build only Phase 1 right now. Stop after Phase 1 and ask me to confirm before moving to Phase 2.
Move 4
Lock your API keys in a .env file
If you ever paste an API key into chat, that key is in your chat history forever. It can also accidentally show up in code Claude writes, in a screenshot you share, or in a commit you push to GitHub. People get rate-limited or charged hundreds of dollars this way every day.
The fix is a .env file in your project root. Claude can read it when it needs to. It can write code that references the keys by name. The actual keys never appear in chat.
.env pattern
# .env (in your project root) OPENAI_API_KEY=sk-... ANTHROPIC_API_KEY=sk-ant-... SUPABASE_URL=https://... SUPABASE_KEY=...
.gitignore (so .env never gets committed)
# .gitignore .env .env.local .env.*.local *.key *.pem
Also add this line to your CLAUDE.md hard rules: "Never paste API keys into chat. Reference them by env var name. Never commit .env." Now the rule is enforced every session, not just the ones where you remember.
Move 5
Save what works as a skill
The first time you get Claude to do something useful, it took you 8 prompts and 40 minutes of back-and-forth. The second time should take 8 seconds.
Skills are how. A skill is a saved instruction set Claude Code loads automatically when you trigger it. You build it once, name it, then never re-explain the workflow again. Hook writer skill? Trigger phrase. Newsletter formatter? Trigger phrase. Onboarding email writer? Trigger phrase.
Anytime you finish a session where the output actually worked, run this prompt before you close the tab.
Turn-this-into-a-skill prompt
Look at what we just did over the last [N] prompts. The workflow worked. I want to be able to run it again on a different input without re-explaining every step. Turn it into a Claude Code skill. The skill should: 1. Live in .claude/skills/[short-kebab-name]/ 2. Have a SKILL.md file with: name, description (with trigger phrases), and the full step-by-step instructions. 3. Include any reference files (templates, examples) inside the skill folder so it's self-contained. 4. Trigger automatically when I say [pick a phrase like "run the X workflow" or "/X"]. Show me the SKILL.md before you create the folder so I can approve the trigger and instructions.
The compounding effect: Anthropic's official skill-creator skill exists for exactly this. After your first few skills, ask Claude to build a skill that builds skills. That's where you stop using Claude Code as a chatbot and start running it like an employee.
Day one recap
The 30-minute checklist
Drop a CLAUDE.md in your project root
Use the template above. Edit the bracketed parts. 5 minutes.
Hit Shift + Tab before every build
Then paste the plan-mode forcing prompt. Don't let Claude guess.
Break anything bigger than one file into phases
3-4 phases, one at a time. Confirm phase 1 before phase 2.
Make a .env file and a .gitignore line
Then add the hard rule to CLAUDE.md. Keys never live in chat.
Turn any workflow that worked into a skill
Run the skill-creation prompt at the end of any good session.
Day one done. Now go build something.
Work with Me
Need AI to actually work for your business?
I help businesses cut through the AI hype and build the workflows, automations, and systems that actually move the needle. Direct, hands-on, no fluff.
Work with me