Writing · July 2026

How I actually ship with AI agents

Not a tools pitch. This is the system I use daily to ship production code as a product manager - and the honest numbers on what it changes and what it doesn't.

$120 / monththe entire tooling stack
70-80%of code written by the agent
100%of architecture and review - mine
~3-5×faster than manual coding (self-measured)

The division of labor

The word "vibe coding" suggests chaos. My version is the opposite: a strict split of responsibilities that never changes.

Always mine: architecture and key decisions, technology choices, business logic, security, reading every diff before it's committed, and pushing to remote. Always the agent's: boilerplate, refactoring, tests (I describe the scenarios), first drafts of documentation, CI/CD configs, and styling.

A typical feature: I state the requirement → the agent drafts a plan → I review and correct it → the agent executes in stages → I review each logical block → it writes tests → I commit → it updates docs → I push. The agent writes most of the code. It makes none of the decisions.

Guardrails, not trust

An agent can change 20-30 files in one session, and it will sometimes confidently break working code. So the system assumes failure:

  • git push, git reset --hard and rm -rf are blocked for the agent at the permissions level. Pushing is always a deliberate human act.
  • Every logical block is a separate commit (Conventional Commits), so I can read exactly what the agent changed - and roll it back.
  • CI runs lint, type-check and build on every push; deploys end with an automated smoke test.

Context is the real work

Output quality is set by context quality, not by model choice. Even with million-token windows, models lose focus - more context is not better context.

My setup is a hierarchy: global coding standards and a planning protocol at the machine level, then a per-project entry file under 200 lines (compliance drops sharply past that), then modular per-topic rules, plans, and custom commands. For specialized work I route tasks to purpose-built subagents - a backend architect, a code reviewer, a security auditor - each with its own expert prompt.

ADRs: the secret weapon

The single highest-leverage habit: Architecture Decision Records. My most mature project has 40 of them across 141 commits - context, options considered, the decision, and crucially the rejected alternatives. That last section is what stops an agent from re-proposing ideas that were already rejected for good reasons three weeks ago.

What I deliberately keep out of AI-facing docs: style rules (linters do that), volatile file paths, anything derivable from the code, and secrets.

What the agent is actually good at

From shipping three production projects with this system: TypeScript, React and Tailwind are where agents are strongest - huge training base, few hallucinations. Python with FastAPI and typed schemas is excellent, because the contracts are machine-readable. Vue is noticeably weaker than React; fresh frameworks get their APIs hallucinated unless you feed the docs; complex SQL and raw CSS still need more human iterations.

Honest caveat: the 3-5× number is mine, self-measured, mostly on greenfield work in domains I know. Independent research (METR) shows the same tools making developers slower on unfamiliar legacy code. Both are true - which is rather the point.

Takeaways

  • Git is non-negotiable. AI development without version control is Russian roulette.
  • Context beats prompting. An hour invested in documentation saves ten hours of agent work.
  • Never use the agent for work you couldn't review yourself. The code got cheap; knowing what "correct" means didn't. That part is still the job.
← Back to projects & writing Case: AI due diligence at Proxity →