I keep seeing posts and videos where engineers share their coding setup and it looks CRAZY. Skills, agents, loops?? etc.

I’ve spend a LOT of time coding with AI (pretty much all my code over the past 3 months), and my process is much simpler, so I wanted to share it with you here to show you there is another way.

TL;DR

  • Give your agent the same dev infrastructure you use.

  • Keep your CLAUDE.md tiny. Mine is three rules.

  • Build an end to end testing skill.

  • Test more the more a change can hurt you.

  • A human still merges every PR.

If you’re really lazy, just copy paste this newsletter into your coding agent and tell it to implement this stuff.

Context

Most of this development work was for Losava, an AI-powered wedding planning app I’ve been working on for awhile. This is a production system with thousands of users, so I can’t afford to just blindly ship things and break it. Tech stack is Next.js on Vercel, Supabase, Clerk, Stripe, and the OpenAI Agents SDK. Every tab has a manual UI and an agent tool that does the same thing. This is a fairly complex project, which helped me develop my process.

Development was mostly Claude Code (Fable lately), some Codex, a bit of Cursor, but none of this is tool-specific, and you can slot it into any agent.

Initial setup

I'd ask for a feature. The agent wrote it. Then I did everything else by hand: start the dev server, click through, create test accounts, poke at Stripe, open the PR.

AI writes code way faster than one person can manually verify it (both by reading or testing manually), so I was the bottleneck.

Rule 1: Never push without my permission

^ this is the first line of my CLAUDE.md, word for word. It has never violated it since I added it. I know this is not bulletproof, but it has worked for me so far.

I run in auto-mode, so it does whatever it wants locally, then stops and asks before pushing.

Give the agent your dev infrastructure

The might be the most important thing in this post. Whatever YOU need to debug, your agent needs too.

Clerk (auth). I gave it access to the CLI plus a skill which explains how to use the CLI. This let it create and manage test accounts which is a must for end to end testing.

Vercel logs (server). Dev and prod. Sentry alert comes in, I say "we got some 500s last night, find the root cause," and it does.

Amplitude (analytics). MCP plus an API key. "Why aren't users reaching feature X?" and it pulls the data. PostHog works too.

Stripe (payments). Trial starts, account creation, failing webhooks.

Supabase (database). Add a table, check Supabase to confirm it's there, then write the integration. Seat someone at table 15, refresh, confirm they're still there. The agent verifies the full loop before handing it back.

If you have other dev tools, make sure your agent can access them.

Rule 2: Don't kill the dev server

^ add this to your claude.md. Really easy win here. These tools love to start the dev server, test one thing, kill it, then restart it 5 seconds later on the same port.

Second line of my CLAUDE.md: the dev server is running on port 3000, reuse it, never kill it. Saves a shocking amount of time, esp if you have slower build times.

Build an end-to-end testing skill

After every change the agent made, I found myself testing everything manually on localhost with the same process. Create a new account, test onboarding, test changes to the desired feature, etc. This felt very repetitive so I figured my agent could do it (it can).

How it works: The agent drives the browser with Playwright and does exactly what I'd do by hand: new account, onboarding, check off a to-do and confirm it hit the backend, draft a vendor email, ask the in-app agent "who's not seated?" and confirm the tool calls land, click every tab while it's still running in the background.

It runs after any real feature or DB change. I still do a pass after, but the dumb stuff is already caught.

Two ways to build one: screen-record yourself testing and hand the video to Codex (record and replay), or talk through the process in voice mode and supervise. I don't love third-party skills, but if you build one, build this one.

Test based on blast radius

Some things I couldn't test locally (Google integration, server-side package parsing on Vercel, DNS). So: any server-side dependency change gets a preview deployment. That grew into tiers.

Copy, emails, UI polish. Spot check, unit tests, ship.

Standard features and bugs. Full e2e run plus CodeRabbit in agent mode. It flags, the agent fixes, I read the PR.

Billing, migrations, GCP. All of the above, plus I verify manually in the real dashboards and require a preview deploy on a branch.

AI behavior. When your product is LLM-forward, inference cost is part of the business model. Any model or tool change goes through LLM-as-judge, a golden dataset, and human eval. Takes hours to days and I haven't automated it yet. (Want an issue on this? Reply and tell me.)

What this all looks like in practice

Take some feature you want to add, ask the agent to go ahead and get started on it. The agent uses the dev tools you’ve provided to examine the current setup and build the feature. Once it’s complete, it tests via provided dev tools on the always-on dev server on your designated port. If it’s a riskier feature, it can make a preview deployment for your to verify and iterate. If it looks good, open the PR, allow an automated review by another agent (ie CodeRabbit, Greptile, etc), then manually review the code and merge.

TLDR again:

Put three rules in CLAUDE.md: don't push without permission, don't touch the dev server, run the e2e skill after big changes. Connect your tools. And I have never let an agent merge a PR.

Have a good week!

Arjay.

P.S. If you want to chat with me directly or get advice on this stuff, the best way is through my private discord server included with Devmaxx. It’s 8.99 a month (or 4.99 on a yearly plan) and you get personal advice from me + daily system design questions. We are adding new features every week based on feedback from the discord! Try it free for 7 days here: devmaxx.dev