MADEBYARIS

Cursor Agent for shipping

4 min read
By Aris Setiawan
Cursor Agent for shipping

Cursor Agent helps when you want the tool to take multi-step actions on a real repo. For client shipping, keep the scope small, keep secrets out, and review every diff before merge. Agent speed without guardrails is just a faster way to break main.

If you already live in Cursor and you keep hearing “just use Agent,” this is the shipping frame I use on client work, not a docs clone or a feature tour: what I let Agent touch, what I do not, and how the PR still has to pass a human.

What Cursor Agent is for (shipping frame)

Agent is for an agentic loop on a real repository. You give an outcome, it plans steps, edits files, runs commands, and comes back with a diff. That is different from a single chat answer or a one-shot Composer paste.

I reach for Agent when the job is multi-step and boring in a good way: “add tests for this module,” “rename this prop across these files,” “wire this form to the existing API shape.” I do not reach for it when I cannot describe done in one or two sentences.

On a deadline, Agent is a junior pair with infinite typing speed, and you still own merge.

Agent vs Composer (one screen)

Quick split so this post does not redo the full chat-vs-composer writeup.

  • Composer (or focused edit flows): tight, local changes when you already know the files. Fast when scope is one screen.
  • Agent: multi-step work across files, with room to run checks and iterate. Useful when the path is longer than a single edit.
  • Chat: explain, explore, decide. Not the merge path by itself.

If you want the deeper comparison, use the sibling post chat vs Composer in Cursor. Here we stay on Agent habits for shipping.

What I let Agent touch

On client repos I give Agent room inside a fence.

  • Scoped files. Named folders or paths in the brief. Not “improve the app.”
  • Tests. Add or extend tests for behavior we already agreed on.
  • Boring refactors. Renames, extract helpers, align types to an existing pattern.
  • Glue that matches the repo. Wire a component to an API shape that already exists. Copy patterns from neighboring files.
  • Check runs. Lint, typecheck, unit tests that the project already has. Agent should run them before it claims done.

The brief I paste usually has: outcome in product language, in-scope paths, out-of-scope paths, and what “done” looks like (test green, UI state, or API response). Without that, Agent invents a tour.

What I don’t

Hard no on client work, even when Agent sounds confident.

  • Secrets. Env files, keys, tokens, production credentials. Agent does not need them in context. If the task needs a secret, I handle that outside the loop.
  • Blind prod deploys. No “just push to main and deploy” as an Agent step. Staging first. Human clicks the risky button.
  • Huge unreviewed diffs. If the diff is a novel, I stop, split the job, or discard and restart smaller.
  • Auth, billing, migrations without a human plan. Those get a written approach before Agent types.
  • Drive-by architecture. New folders, second design systems, “temporary” any-casts that somehow ship.

Those land when the fence is missing.

Guardrails so the PR passes

This is the habit that keeps Agent useful past the demo.

  • Brief first. Outcome, scope, exclusions, done criteria. Paste that before the agent runs.
  • Small scope. One vertical slice. Prefer two small Agent runs over one mega run.
  • Run checks. Types, lint, tests. If the project has them, Agent should use them. If checks fail, fix before review theater.
  • Human review every diff. Open the files. Skim for pattern drift. Reject rubber-stamp summaries.
  • Own the PR description. You explain risk and test notes. Agent can draft. You sign.

Theo’s line in my head: own Agent. Do not outsource judgment. Speed is only useful if main stays shippable.

This post is only Agent constraints on client repos. Sibling posts cover adjacent jobs:

I am not remaking those here. Read them when that is the job you have today.

If Agent is already in your editor and you want a second set of eyes on how you fence client work, that is mentoring territory. I do that through Vibe Code Friend. Bring a real repo habit you want to tighten. We stay on shipping practice and review habits, not a product rebuild engagement.

Aris Setiawan

Aris Setiawan

Senior Full Stack Developer specializing in Next.js, React, and WordPress. I write about web development, performance optimization, and best practices.

Related Articles