[{"data":1,"prerenderedAt":257},["ShallowReactive",2],{"note-how-i-build-with-agents":3,"notes-list":219},{"id":4,"title":5,"author":6,"body":7,"date":207,"description":208,"extension":209,"featured":210,"image":211,"meta":212,"navigation":213,"path":214,"seo":215,"sitemap":216,"stem":217,"tags":211,"updated":211,"__hash__":218},"blog\u002Fblog\u002Fhow-i-build-with-agents.md","How I build with agents, and where I don't trust them","Jeremy Hutchcraft",{"type":8,"value":9,"toc":196},"minimark",[10,14,17,20,25,32,38,44,50,54,57,60,63,67,70,104,108,111,117,123,129,135,141,155,159,162,165,168,171,175,178,182,185,188],[11,12,13],"p",{},"AI agents write most of the code I ship. I am not shy about that, and you should be suspicious of anyone in my line of work who is.",[11,15,16],{},"An agent is an AI that does more than answer a question. You hand it a job, and it reads the code, makes changes, runs the checks and reports back. Used well, it is the fastest pair of hands I have ever worked with. Used carelessly, it is the fastest way I know to build something wrong.",[11,18,19],{},"So here is how I split the work.",[21,22,24],"h2",{"id":23},"who-does-what","Who does what",[11,26,27,31],{},[28,29,30],"strong",{},"I decide what gets built."," Before an agent touches anything, the job is written down in plain words: what it should do, what it must not touch, and how we will know it worked. If I can't write that down, the job isn't ready, and no amount of clever prompting will save it.",[11,33,34,37],{},[28,35,36],{},"Agents do the typing."," They draft the code, write the first round of tests, and do the tedious parts quickly and without complaining.",[11,39,40,43],{},[28,41,42],{},"I read what comes back."," All of it. Not a summary of the change. The change.",[11,45,46,49],{},[28,47,48],{},"I put my name on what ships."," Nothing goes to your customers until a person who can defend it says so. That person is me.",[21,51,53],{"id":52},"small-jobs-clean-edges","Small jobs, clean edges",[11,55,56],{},"I don't run one giant AI conversation that knows everything about the project. Long conversations go stale. The AI starts forgetting what it was told at the beginning and trusting its own earlier guesses.",[11,58,59],{},"Five cheap, narrow agents beat one long tired thread. One job each, clear edges, a fresh start every time.",[11,61,62],{},"Sorting the work matters as much as doing it. For 64 Analytics I built an intake system where every bug report and feature request gets sized up before anyone starts: how urgent, how big, and whether it is actually ready to build. Then it gets one of two labels. Ready for an agent, or ready for a human. Plenty of work is safe to hand to a machine. Some of it is not, and the time to decide that is before the work starts.",[21,64,66],{"id":65},"where-i-trust-them","Where I trust them",[11,68,69],{},"Give an agent a job with a clear right answer and a way to check it, and it earns its keep.",[71,72,73,80,86,92,98],"ul",{},[74,75,76,79],"li",{},[28,77,78],{},"First drafts of well-described work."," If the job is written down properly, the first version is usually close.",[74,81,82,85],{},[28,83,84],{},"The boring parts."," Renaming things across a hundred files. Moving code from one pattern to another. Work a person would do badly out of sheer boredom.",[74,87,88,91],{},[28,89,90],{},"Reading."," Digging through logs or an unfamiliar codebase to find where something happens. It reads faster than I do.",[74,93,94,97],{},[28,95,96],{},"Writing the checks."," Drafting tests for behavior I have already defined. I decide what must be true. It writes the code that checks it.",[74,99,100,103],{},[28,101,102],{},"A second pair of eyes."," Reviewing my own work for things I missed. It catches plenty.",[21,105,107],{"id":106},"where-i-dont","Where I don't",[11,109,110],{},"These are the claims I never take an agent's word for. Every one of them comes from something that actually happened to me.",[11,112,113,116],{},[28,114,115],{},"\"It works.\""," An agent told me all tests passed. They did. I used the real thing anyway and found about fourteen more bugs. Types and unit tests passing is necessary. It is not sufficient.",[11,118,119,122],{},[28,120,121],{},"Any number it reports."," I asked how complete a set of records was and got \"99.96% populated.\" It had counted the placeholder word \"auto\" as a real answer. If a number is going into a decision, I check how it was counted.",[11,124,125,128],{},[28,126,127],{},"Facts about your business."," While I was researching how late payments get handled, an agent told me there was a 72-hour grace period. There wasn't. It made up a rule and stated it like policy. An agent does not know your business. It knows what sounds like a business.",[11,130,131,134],{},[28,132,133],{},"\"I only changed what you asked.\""," I asked for one small edit to a page customers read. It also slipped in wording nobody approved. This is why I read every change, especially from the cheaper, faster models.",[11,136,137,140],{},[28,138,139],{},"Its own fix."," And mine. A kids' learning game was marking right answers wrong. I shipped a fix, and my fix recreated the same bug one screen over. It only hit kids typing on a keyboard, never tapping, so the usual check missed it. I caught it by checking what was actually live. \"Fixed\" is a claim, not a fact, no matter who says it.",[11,142,143,146,147,154],{},[28,144,145],{},"Anything it can't take back."," Deleting data. Touching the live database. Sending something to customers. An agent can prepare those. A person pulls the trigger. In 2025 a coding agent ",[148,149,153],"a",{"href":150,"rel":151},"https:\u002F\u002Ffortune.com\u002F2025\u002F07\u002F23\u002Fai-coding-tool-replit-wiped-database-called-it-a-catastrophic-failure\u002F",[152],"nofollow","deleted a company's live database"," during a freeze, when it had been told not to change anything. The data was recovered. I would rather not need the luck.",[21,156,158],{"id":157},"checking-the-checkers","Checking the checkers",[11,160,161],{},"At my day job, half my time now goes to teaching a whole engineering team to work this way safely. Two things I built there say a lot about how I think.",[11,163,164],{},"One is a test harness that checks whether an AI's skills actually fire. You can give an AI instructions for a certain kind of task, and it will tell you it follows them. The harness finds out whether it really does.",[11,166,167],{},"The other is a loop that turns a reviewer's comment into a proposed change, ready for a person to approve. The agent does the legwork. The reviewer still decides.",[11,169,170],{},"Same idea both times. Let the machine do the work, and never let it grade its own homework.",[21,172,174],{"id":173},"for-the-technical-reader","For the technical reader",[11,176,177],{},"The loop is: a written spec, a narrow agent per task on its own branch, automated checks, then a human review gate before merge. I verify behavior in a running build, not only in the test output. Agent notes and scratch files stay out of anything that gets handed over. Anything that can't be undone waits for a person.",[21,179,181],{"id":180},"why-i-tell-you-all-this","Why I tell you all this",[11,183,184],{},"Because you are entitled to know how your product gets built, and because this workflow is part of what you are buying. When you are ready to run it yourselves, I will teach your team how.",[11,186,187],{},"The speed comes from the agents. The reason you can trust the result does not.",[11,189,190,191,195],{},"Want to see it on your own project? ",[148,192,194],{"href":193},"\u002Fcontact","Book the free half hour",".",{"title":197,"searchDepth":198,"depth":198,"links":199},"",2,[200,201,202,203,204,205,206],{"id":23,"depth":198,"text":24},{"id":52,"depth":198,"text":53},{"id":65,"depth":198,"text":66},{"id":106,"depth":198,"text":107},{"id":157,"depth":198,"text":158},{"id":173,"depth":198,"text":174},{"id":180,"depth":198,"text":181},"2026-10-08","AI agents write most of the code I ship. Here is how the work is split between them and me, the jobs I hand over without worry, and the claims I never take their word for.","md",false,null,{},true,"\u002Fblog\u002Fhow-i-build-with-agents",{"title":5,"description":208},{"loc":214,"lastmod":207},"blog\u002Fhow-i-build-with-agents","GJ2ZSxJissowNrLGG8GBMmA0Gup1dT1cQ6uu3D9MiTM",[220,221,225,229,233,238,243,248,253],{"path":214,"title":5,"description":208,"date":207,"updated":211,"featured":210},{"path":222,"title":223,"description":224,"date":207,"updated":211,"featured":213},"\u002Fblog\u002Fjudgement-over-tokens","Judgement over tokens","Anyone can prompt an app into existence now. The hard part is knowing when the machine is wrong, and that is the part you are actually paying for.",{"path":226,"title":227,"description":228,"date":207,"updated":211,"featured":210},"\u002Fblog\u002Fwhat-a-buyer-opens-first","What a buyer opens first","When somebody wants to buy your software company, they send a technical person to look under the hood. Here is what that person asks for, and the folder I build so the answers are already there.",{"path":230,"title":231,"description":232,"date":207,"updated":211,"featured":210},"\u002Fblog\u002Fyour-ai-says-its-secure-how-to-check","Your AI says it's secure: how to check","Seven checks a non-technical owner can run on an AI-built app this afternoon, what a bad result looks like, and what these checks will not catch.",{"path":234,"title":235,"description":236,"date":237,"updated":207,"featured":210},"\u002Fblog\u002Fai-agents-small-business-safety-checklist","AI agents: a safety checklist before you let them work","AI agents can use files, browsers, apps and automations. Run this checklist before you give one real access to your business or your product.","2026-04-17",{"path":239,"title":240,"description":241,"date":242,"updated":207,"featured":210},"\u002Fblog\u002Fai-security-risks-small-business","The holes AI code ships with","AI writes code that works in the demo and leaves the same handful of security holes behind. Here are the five I look for first, in plain English, and why the AI leaves them.","2026-04-16",{"path":244,"title":245,"description":246,"date":247,"updated":207,"featured":210},"\u002Fblog\u002Fwhy-most-ai-projects-fail-for-small-businesses","Why AI-built MVPs stall","The first 80% of an AI-built product shows up in a weekend. Then every fix breaks something else. Here is why that happens and how to get moving again.","2026-04-15",{"path":249,"title":250,"description":251,"date":252,"updated":207,"featured":210},"\u002Fblog\u002Fwhat-does-an-ai-consultant-do","What you pay a senior builder for","AI made the typing cheap. Here is what is left on the bill when you hire a senior person to build your product, and how to tell one from somebody with a chat window.","2026-04-13",{"path":254,"title":255,"description":256,"date":247,"updated":211,"featured":210},"\u002Fblog\u002Fai-use-policy-for-small-business-template","AI Use Policy for Small Business: A Template You Can Use Today","A practical AI use policy for small business teams, including approved tools, data rules, review requirements, and a one-page template.",1791574787511]