~/arnaud.rocks

$ cat blog/5-lessons-from-shipping-code-with-claude-code.md

5 lessons from shipping code with Claude Code

· originally on LinkedIn

🔧 5 game-changing lessons from shipping code with Claude Code

I’ve been deep in the trenches with Claude Code lately. Here’s what actually moves the needle:

  1. Remove yourself from the loop

The biggest unlock? Stop being the one who checks if the code works. Give Claude the tools to verify its own output: curl for API testing, Vercel’s agent-browser for UI validation, whatever fits your stack. The less you’re the bottleneck, the more Claude can iterate autonomously.

  1. Make your dev environment deterministic

This isn’t even AI-specific—it’s just good engineering—but it becomes critical for autonomous coding. Your setup should work instantly, for any dev, on any machine:

  • Seed your dev environment with known test credentials (standard emails, passwords)
  • If you use Auth0 or similar, create a bypass for local dev
  • Document all of it in your CLAUDE.md

Claude can’t “figure out” your auth flow or guess test accounts. If there’s friction to run tests, Claude will fail. Zero-step testing setup = autonomous loops that actually work.

  1. The Ralph Wiggum hype is real - but not for the reason you think

Everyone’s talking about Ralph Wiggum loops right now. But the loop itself is dead simple (it’s literally just a bash while loop). The real magic is in how you write the specs. I rebuilt the same feature three times, refining my prompts and skills each iteration. The difference between run 1 and run 3? Incomparable. That’s where you should invest your energy.

  1. Context is king - and less is more

If your CLAUDE.md is too bloated, Claude will basically ignore it. What works: a lean root file with references to purpose-specific sub-documents. Unclog the context window and Claude gets dramatically sharper.

  1. MCPs are now discovered on-demand (game changer)

Latest Claude Code versions enable MCP discovery by default. No more injecting every MCP into context upfront. You can define many MCPs without the bloat penalty. If you haven’t upgraded recently, do it now.

The TL;DR: Build a frictionless, documented dev environment. Give Claude tools to self-verify. Write specs like your output depends on it. Guard your context.

What’s working for you?

cd ../