Parallel slots
Several agents at work, each with its own checkout and database.
git worktree; scripts/merge-gate.mjs (a gate checkout with its own database)
Case
A CMS for design studios and their clients, which we built with AI agents. It is the proof of the method: here are the numbers.

The librettocms.com home page, on 27 October 2026. librettocms.com
Libretto is a system for building sites in a visual editor, on top of each siteโs own design system: colours, type, space and components are parameters of the site. Motion is staged with GSAP, text is published in every language the site speaks, and the client edits words and images without touching the design. Agents use it in two ways: they write its code and, through an MCP interface, they build and edit sites.
The first commit is from 21 April 2026. The pace was not steady: 662 commits in April, 90 in June, 2,197 in October, more than all the previous months together. Of 3,665 commits, 2,642 carry an AI agent as co-author.

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 |
35
25 Oct ยท catalogue trim

Issues reported by knip: files, exports and dependencies nobody uses. The CI limit goes down with the number; a push that exceeds it stops.
| Step | knip |
|---|---|
| 6 Oct ยท baseline | 483 |
| 14 Oct ยท M1a | 115 |
| 14-15 Oct ยท M2a | 108 |
| 15 Oct ยท M3 G14 | 85 |
| 15 Oct ยท M3 review | 73 |
| 15 Oct ยท M3c-b | 72 |
| 16 Oct ยท M4b-0 | 71 |
| 16 Oct ยท ADM | 68 |
| 16 Oct ยท M6b | 67 |
| 16 Oct ยท M9 | 39 |
| 16 Oct ยท M7 | 38 |
| 20 Oct ยท P5 | 37 |
| 25 Oct ยท catalogue trim | 35 |
On GitHubโs free plan, Librettoโs private repository cannot protect its main branch. The gate is a script: it merges the branch into main in a dedicated copy, with its own database, and runs the same fourteen steps as CI, cheapest first. Only if they all pass does main move.
Every push runs these seven jobs; a final check fails if a single one is red, and the release waits for that check.
Several agents at work, each with its own checkout and database.
git worktree; scripts/merge-gate.mjs (a gate checkout with its own database)
Every write goes through validateTree, or is refused.
validateTree, on every write to the tree (I1-I14)
A batch of operations is tried without writing, then applied.
docs/architecture/mcp.md: dry_run_ops, apply_ops
Some imports cannot be written.
.dependency-cruiser.cjs (17 rules), .dependency-cruiser-known-violations.json (0)
A colour below 4.5:1 is not saved.
docs/design/design-system-section.md, Contrast
Agents propose; the choices that matter stay with a person.
Libretto plugin: publication.publish only on a personโs explicit go
When an agent is blocked it opens a ticket; the fix goes back into the product.
Libretto MCP: report_issue
Commits per day, 6 to 27 October 2026

Peak: 274 commits on 25 October. The 27th is partial.
| Date | commit |
|---|---|
| 2026-10-06 | 113 |
| 2026-10-07 | 138 |
| 2026-10-08 | 8 |
| 2026-10-09 | 61 |
| 2026-10-10 | 0 |
| 2026-10-11 | 0 |
| 2026-10-12 | 99 |
| 2026-10-13 | 51 |
| 2026-10-14 | 119 |
| 2026-10-15 | 128 |
| 2026-10-16 | 216 |
| 2026-10-17 | 81 |
| 2026-10-18 | 65 |
| 2026-10-19 | 153 |
| 2026-10-20 | 78 |
| 2026-10-21 | 57 |
| 2026-10-22 | 39 |
| 2026-10-23 | 121 |
| 2026-10-24 | 173 |
| 2026-10-25 | 274 |
| 2026-10-26 | 191 |
| 2026-10-27 | 32 |
Functions above complexity 15 are counted since 25 October: there were 149, now 143.
The research note tells how the limits came in, what broke and what it taught us.
If 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.