You open Claude Code, and it asks what your email is. Again. You tell it your address. Again. It asks permission to edit a file it has edited a hundred times. The tool is brilliant and you are spending half your time spoon-feeding it the same facts.
That is not a Claude Code problem. That is a setup problem. The fix takes one afternoon, and after it you never hand over the same information twice.
The shift: a system, not a chat
Writing code is no longer the hard part. The hard part is the system around the work: your accounts, your logins, your preferences, your guardrails, the thousand small facts an assistant needs to actually help. If you keep re-explaining those every session, you have built nothing. You are just chatting.
The win comes from writing that context down once, in files the assistant reads automatically, so it shows up already knowing your world. Three rules make the whole thing work:
- One home per fact. Every piece of information lives in exactly one file. No copies, no "I think I told you that somewhere."
- Give it once. When you tell the assistant something new, it gets written down on the spot, so you never give it again.
- Never punt. If the assistant has a tool that can do a thing, it does the thing instead of handing you busywork.
Stop chatting with a tool. Start running a system.
CLAUDE.md is the brain. Keep it short.
CLAUDE.md is the file Claude reads at the start of every session. There is a global one (rules for everything you do) and a per-project one (rules for one codebase). Type /init and Claude drafts one for you. That is your starting point, not your finish line.
Here is the trap: people dump everything into CLAUDE.md until it is a 600-line wall nobody maintains. Do not. Think of it as a table of contents with a few hard rules, not the whole encyclopedia. What belongs directly in it:
- Who does what. Example: "I make decisions and review the output. You own technical execution. Never hand me a command to run that you can run yourself."
- Hard prohibitions. The handful of things you never want done. Never push to main. Never write secrets to a file. Never delete data without asking.
- How to talk to you. Tone, format, length. Lead with the answer. One recommendation, not a menu.
- Pointers to everything else. This is the part that ends the runaround.
What CLAUDE.md should point to
CLAUDE.md stays short by pointing at a small set of dedicated files. These three are the ones that matter.
USER.md, your profile, given once. A plain file holding the facts you keep retyping: your name, address, time zone, every email and what each is for, your phone, your team or family contacts, your businesses, payment links, booking links. The rule you put in CLAUDE.md: "When I give you a new personal fact, write it into USER.md right away. Read USER.md before asking me for any of this." The second time you would have given your address, the assistant already has it. Keep passwords out of this file. Those live in a password manager.
ACCESS.md, a living map of your tools and logins. This is the one that feels like magic. Most of us have credentials scattered across a password manager, a dozen config files, and a handful of command-line tools that may or may not be logged in. Nobody remembers what is connected. The fix is a single file that lists every tool, every connected service, every credential name (the name and where it lives, never the secret), and every project config. CLAUDE.md tells the assistant: "Before asking me about access to any tool, read ACCESS.md first."
The key move: do not write ACCESS.md by hand. A hand-written inventory is out of date the day after you write it. Instead, a small script inspects your actual machine (which tools are installed, which accounts they are logged into, what is in your password manager, where your config files are) and regenerates the file. Run it at the start of every session. Now the map cannot lie, because it is built from reality each time.
A reference folder for the deep stuff. Anything long and procedural (how you deploy, your git workflow, how your secrets are organized) goes in its own file that CLAUDE.md links by name. The assistant pulls it up when it is relevant instead of carrying it around all session.
In practice the pointer block in CLAUDE.md is this small:
## Check before asking
- ~/.claude/USER.md : who I am, contacts, businesses, links
- ~/.claude/ACCESS.md : every tool, login, credential (auto-generated)
- ~/.claude/agent_docs/ : deploy, git, secrets, other procedures
Read these before asking me anything they already answer.
Permissions: full speed, hard brakes
By default Claude Code asks permission before a lot of actions. That is right when you are new. Once you trust your setup, the constant prompts become the friction. Set it so the assistant runs freely on normal work and only stops you for genuinely dangerous commands: wiping a drive, deleting your home folder, anything with elevated sudo rm.
One gotcha causes most mystery prompts: the assistant asks before touching files outside the folders it has been told it can work in. List your real working directories and that noise disappears. A lot of "why is it asking me again" is this single misconfiguration.
Hooks: the system maintains itself
Hooks are scripts that run automatically at certain moments (when a session starts, before a file is saved, when work stops). This is what makes the setup self-maintaining instead of something you babysit. Start with one: regenerate your ACCESS.md map at session start, so it is always current. Add more when you notice yourself fixing the same thing twice.
You will know it is working when
- You never type your email, address, or "which account" twice.
- The assistant stops asking permission for ordinary work but still stops cold on anything destructive.
- When it needs a login or a tool, it checks what you already have before asking you.
- Adding a new fact takes one sentence, and it is remembered forever.
When all four are true, you have stopped chatting with a tool and started running a system. The kit below gives you every file ready to drop in: a starter CLAUDE.md, a USER.md template, the ACCESS.md generator script, and a permissions config. One command to install.
Get the Claude Code Starter Kit
Starter CLAUDE.md, USER.md template, the ACCESS.md generator, and a permissions config.
One command to install. One email. No spam.
You're in.
Download the kit, unzip it, and run the installer. Setup notes are in the README.
Download the kit →Know someone building with Claude Code?
Forward this to a colleagueWant this built for your business?
I set this up for teams so the whole company gets an assistant that already knows the business. 90-minute strategy session: we look at your stack, find the highest-ROI automations, and you leave with a written plan.
Book a Strategy Session →