You're the architect. Claude is the contractor.
Claude is remarkably good at editing HTML, fixing logic, rewriting functions, and cleaning up code. What it cannot do is understand your project from the outside in. It sees only what you give it. It doesn't know that your API endpoint is tied to a Cloudflare Worker with its own routing rules, that your button label maps to a specific onboarding flow in your docs, or that your form action hits a third-party service with its own field naming conventions. That's your job to know. Claude's job is to execute what you describe, accurately. The split of responsibility is that clean — and when it breaks down, it's almost always because the human handed over the big-picture thinking too.
Before you start: map what's connected outside the files
Before you ask Claude to touch anything, spend two minutes listing what your files talk to that isn't in the files themselves. This includes API endpoints (yours or third-party), Cloudflare Workers or edge functions, environment variables and secrets, external CDN assets, authentication providers, payment processors, analytics scripts, and any redirect rules living in your hosting config. Write this list down — even in a scratch note. When Claude finishes the visible edits, you'll need it. The mistake most people make is assuming that if the HTML looks right, everything is right. It isn't. The file is the tip of the iceberg.
After the edits: make Claude list its own blind spots
Once Claude has finished editing your files, don't just deploy and hope. Instead, prompt it explicitly: "Now list every possible failure point that exists outside of what you just edited. Include API paths, external services, environment variables, routing rules, and anything you assumed was correct but couldn't verify." Claude will produce a methodical list when asked this way — and it's almost always longer than you expected. Then go check each item yourself, or paste the relevant config into a new message and ask Claude to verify it matches.
Keep your chats short and focused — context decay is real
The longer a conversation runs, the more Claude's attention drifts from the early details. Decisions made in message three can be quietly contradicted by message thirty. This isn't a flaw to complain about — it's a constraint to design around. Work in short, scoped sessions: one session per logical task. When you're switching from "edit the frontend" to "now check the Worker routes," start a fresh conversation and paste in only the relevant context. This isn't inefficient — it's the fastest way to get accurate work. A long tangled chat is where subtle bugs get born.
When you have two files with the same name, say so immediately
This one is easy to forget and genuinely dangerous. If you're working with files that share a name but live in different folders — like two different index.html files, or a worker.js in both your dev and prod directories — Claude has no way to know which one you mean unless you tell it. Be explicit every time: "I'm uploading the blog index at /pages/blog/index.html, not the root index." A Claude that edits the wrong file confidently is worse than one that asks for clarification. Don't make it guess.
Ask Claude to approach the problem from a different angle
If something isn't working and you've gone a few rounds trying to fix it, the most powerful thing you can do is ask Claude to reset its assumptions entirely. Try: "Forget the approach we've been using. What's a completely different way to solve this?" or "Assume everything we've tried is wrong. What would you check first?" Claude is good at fresh starts when you explicitly invite one. Staying locked into a failing approach because the conversation has momentum is a human problem — Claude will pivot cleanly if you ask it to.
Test from outside, not just inside
When Claude tells you the edits are done, resist the urge to eyeball the file and call it good. Test the actual behavior: load the page in a browser, submit the form, trigger the API call, check the network tab. For anything involving external services, test in a real environment — not just by reading the code. Claude edited what it could see. Reality includes everything it couldn't. A five-minute real-world test catches more bugs than an hour of re-reading the source.