Two more decisions that shape how far an agent can reach.
Monolith and microservices
A monolith is one program, deployed as one thing. Microservices split it into many small programs that talk over a network, each deployed by itself. One is simpler to run. The other lets teams move separately.
An agent does its best work when it can run and test the whole system from one place. Each network hop adds failures it can't see locally. Microservices mostly solve a problem of coordinating people. That is our judgement, and nobody has good data yet on how agents change the sums.
“Keep this as one deployable. Make src/billing a module with one exported interface, add a structural test so nothing reaches inside it, and we can split it out later if a real reason appears.”