60%
Modular reading + implementation vs Layered. Operation-local sits at 86% because the file is dense on purpose.
Figures describe one product-rule change — a new persisted setting, two endpoints, one enforcement check — under the three in-process postures. They are relative, not billed tokenizer dumps. Triplets always read Layered · Modular · Operation-local.
Direction
60%
Modular reading + implementation vs Layered. Operation-local sits at 86% because the file is dense on purpose.
38%
Files opened to understand Operation-local vs Layered. Modular navigation is 56%.
90%
First-pass completeness when a playbook names the file. Layered fan-out scores about 40%. These three figures are estimates, not counts.
The headline comparison. Modular is cheapest once the agent already knows the modules. Operation-local spends more tokens inside one file on purpose.
Operation files are verbose: examples, unions, mapping, persistence. You open fewer files; each file is larger.
Layered extras are duplicated types. Operation-local extras are a copied template plus comments.
100% · 56% · 38%
Search tax before the first confident edit. Maps collapse this.
100% · 55% · 45%
Review surface and merge-conflict surface for the same rule.
100% · 36% · 18%
Layered needs a vertical slice of types the other postures never invent.
High · Medium · One root
Mediator conventions hide registration; Operation-local maps the route in one file.
Share of required layers included in the first patch, estimated from hop count and whether an edit ritual is written down. Not a counted sample.
Whether the compiler can answer “did we handle every business status?” before the agent pushes. Layered uses exceptions. Modular uses a shared enum. Operation-local uses a closed union. These are labels, not percentages, because the coverage was not counted.
A green mock will not catch a query the database cannot translate. Correctness of output includes the persistence path.
100% · 33% · 31%
Shorter DI graphs and fewer projects start faster. About a 67–69% reduction vs Layered.
100% · 92% · 85%
Geometric mean of representative operations. Architecture is a few percent on top of the database.
100% · 93% · 93%
Memory is not a product difference. Do not split services to save it.
One change — a daily withdrawal limit — applied once to three demo payment APIs in a single session. Tokens were estimated at roughly four characters each because no tokenizer was available. A SQLite DateTimeOffset translation bug was found while doing the Modular app and then reused in the other two, so Modular paid a debug cost the others did not. A token-measurement harness is still out of scope in the reference repository. The sourced percentages (files opened, files touched, tokens, latency, memory) trace to that session. First-pass completeness is an estimate from hop count, not a counted sample.