
AI agents at work, inside limits they cannot break.
We are a studio that builds software with AI agents. Every change goes through automatic checks before it reaches production.
The method
The whole methodSeven rules for putting AI agents to work on real code and real processes. We wrote them building our own tools; they hold for any team.
- 01Checks before anything movesNothing reaches the main branch without passing the same checks, in the same order.
- 02Numbers that can only improveDefects are counted; the limit goes down with them and never back up.
- 03Agents in parallel lanesEach agent works in its own copy, with its own data; the work meets only at the checks.
- 04A check on every writeEvery change is verified before it is saved; if it does not hold, it does not go in.
- 05Dry run first, then applyChanges are tried without side effects; only what passes is applied.
- 06A person decidesAgents propose and do the work; the choices that matter stay with a person.
- 07Problems are reportedWhen an agent is blocked it says so; the fix goes back into the tool.
Case: Libretto
The whole caseLibretto is a CMS for design studios and their clients, built with AI agents. It is where the method was born, and where we measure it.
Type errors, at each step of the ratchet

Type errors in Libretto, application plus tests, at each step of the ratchet. The dashed line is todayโs CI limit: 220 (100 application and 120 tests). It can only go down.
| Step | Date | App | Tests | Total |
|---|---|---|---|---|
| baseline | 6 Oct | 636 | 549 | 1185 |
| M1a | 14 Oct | 419 | 302 | 721 |
| M2a | 14-15 | 414 | 285 | 699 |
| M3 G14 | 15 Oct | 278 | 226 | 504 |
| M3c-b | 15 Oct | 278 | 213 | 491 |
| M4b-0 | 16 Oct | 276 | 213 | 489 |
| M4b-0 merge | 16 Oct | 237 | 213 | 450 |
| M5 | 16 Oct | 234 | 213 | 447 |
| M6b | 16 Oct | 187 | 209 | 396 |
| M9 | 16 Oct | 164 | 151 | 315 |
| M7 | 16 Oct | 127 | 145 | 272 |
| M8 | 16 Oct | 123 | 139 | 262 |
| ERG | 19 Oct | 119 | 127 | 246 |
| P5 | 20 Oct | 112 | 122 | 234 |
- 3,665
commits since 21 April 2026, over 75 working days
- 14
steps before main moves
- 17
layer-boundary rules, 0 exceptions
Research notes
All notes
Why โinnestoโ
An innesto, a graft, joins a branch to a plant that already has roots, so the two grow as one. It is how we bring AI into work: into something that already exists, and has to keep holding.
About usIf something here is useful and youโd like a hand making it your own, weโre at info@innestidigital.it. If not, thatโs fine too.