[{"data":1,"prerenderedAt":147},["ShallowReactive",2],{"published-notes":3},[4],{"id":5,"title":6,"author":7,"body":8,"description":14,"extension":131,"kind":132,"meta":133,"navigation":134,"path":135,"publicationStatus":136,"publishedAt":137,"readingTime":138,"seo":139,"stem":140,"summary":141,"tags":142,"updatedAt":145,"__hash__":146},"notes\u002Fnotes\u002Fhow-we-ship-with-ai-agents.md","How we ship software with AI agents","B3N Innovations",{"type":9,"value":10,"toc":119},"minimark",[11,15,24,29,32,35,39,42,45,49,52,55,59,62,87,90,94,97,101,104,108,111],[12,13,14],"p",{},"Most of the code B3N ships for Payd, Vabu, our own products and client work is now written by AI coding agents. Engineering judgement now goes into specifying and checking the work rather than typing it: deciding what should be built, cutting it into pieces and reviewing the result.",[12,16,17,18,23],{},"This note explains how that works in practice, and how a small team carries the amount of work on our ",[19,20,22],"a",{"href":21},"\u002Fwork","work page",".",[25,26,28],"h2",{"id":27},"small-slices-with-a-written-specification","Small slices with a written specification",[12,30,31],{},"An agent is only as good as the instruction it gets. So nothing starts with \"build the business account\". It starts with a slice: one change that can be built, tested and reviewed on its own, small enough to review properly in one sitting. A business-account feature might become fifteen slices across three repositories.",[12,33,34],{},"Each slice has a short written specification: what it must do, which files and services it touches, what it must not change, and which tests prove it works. Writing that down is the slowest part of the process, and the most valuable. When a slice goes wrong, the specification is usually where the fault started.",[25,36,38],{"id":37},"lanes-branches-and-working-copies","Lanes, branches and working copies",[12,40,41],{},"Slices that do not depend on each other run at the same time. Each one gets its own branch and its own copy of the code, so two agents never edit the same files in the same place. We cap how many run at once. More agents do not help when a person still has to review every result, and our machines have limits too.",[12,43,44],{},"For large builds, such as VabuOS, slices are grouped into lanes: tenancy, security, the ledger, notifications. Each lane has an owner and a definition of done.",[25,46,48],{"id":47},"every-change-is-reviewed-some-twice","Every change is reviewed, some twice",[12,50,51],{},"Every change is reviewed against its specification before it merges, often by a separate, stronger AI model as well as by people. Anything that touches money, sign-in, permissions, customer data or a database migration gets a second, deeper review that looks only for correctness: the wrong rounding rule, the missing permission check, the migration that cannot be rolled back. Anything that goes to production waits for a person.",[12,53,54],{},"For money and security fixes we also want proof that the test actually guards the problem: the test fails without the fix and passes with it.",[25,56,58],{"id":57},"done-has-more-than-one-meaning","\"Done\" has more than one meaning",[12,60,61],{},"An agent will happily report that something is finished. We separate the states that people tend to blur together:",[63,64,65,69,72,75,78,81,84],"ul",{},[66,67,68],"li",{},"the code exists;",[66,70,71],{},"the tests pass on a developer's machine;",[66,73,74],{},"the build succeeds;",[66,76,77],{},"the automated pipeline passes;",[66,79,80],{},"the new version is actually deployed;",[66,82,83],{},"the real user journey works in a browser;",[66,85,86],{},"the owner has accepted it.",[12,88,89],{},"A green build is not a deployed release, and a deployed release is not a working feature. Each claim needs the evidence that matches it.",[25,91,93],{"id":92},"notes-that-survive","Notes that survive",[12,95,96],{},"Agent sessions forget. Long builds also outlast any one session, machine or person. So every substantial piece of work keeps short notes in the repository itself: what is true now, what was decided and why, what is left and what the next safe step is. The next session, human or agent, starts from that file, not from memory.",[25,98,100],{"id":99},"what-stays-with-people","What stays with people",[12,102,103],{},"Agents do not decide what to build, approve their own work for release, deploy to production, change live payments settings, delete data or touch secrets. Those steps wait for a person, every time. The same goes for anything a customer will read: product copy, prices and promises.",[25,105,107],{"id":106},"what-changed-for-clients","What changed for clients",[12,109,110],{},"Two things. First, a small senior team can run several workstreams at once and still review everything, which is why our engagements do not need large teams. Second, the habits that make agents useful, clear specifications, small changes, explicit tests and written handovers, are the same habits that make a product easy to hand over. When we finish, the next team inherits a codebase with its reasoning written down.",[12,112,113,114,118],{},"If you want to apply the same approach inside your own organisation, that is part of what our ",[19,115,117],{"href":116},"\u002Fai","AI practice"," does.",{"title":120,"searchDepth":121,"depth":121,"links":122},"",3,[123,125,126,127,128,129,130],{"id":27,"depth":124,"text":28},2,{"id":37,"depth":124,"text":38},{"id":47,"depth":124,"text":48},{"id":57,"depth":124,"text":58},{"id":92,"depth":124,"text":93},{"id":99,"depth":124,"text":100},{"id":106,"depth":124,"text":107},"md","company",{},true,"\u002Fnotes\u002Fhow-we-ship-with-ai-agents","published","2026-11-01","6 min",{"title":6,"description":14},"notes\u002Fhow-we-ship-with-ai-agents","Most of B3N's engineering now runs through AI coding agents. This is how the work is cut up, who checks it, and which decisions never leave people.",[143,144],"AI","Delivery",null,"ji5-UjmXfoUnN19NCIKLEqM92sDtb5iG6UMQxqVUE98",1793493622604]