Case study · ElMundi UA

Sunset — the proof, not a product

5,000 years of history. 608 commits in 30 days. Then we shut it down.

ElMundi UA was a catalog of human civilization — Sumer, Akkad, Egypt, the Indus Valley, and the long quiet centuries between them. A small team built it by running every ticket through the loop. This is what that looked like, in the order it happened — including the part where we closed it, on purpose.

The receipts

Three numbers from the thirty days it mattered most.

236k+

Production lines, AI-authored

608

Commits in 30 days

99%

Live system uptime, while it ran

Analytics dashboard with DORA-4 charts and live system status from the ElMundi workspace

The dashboard, captured while ElMundi was the reference deployment. The same dashboard now runs on our own delivery — see /method.

Movement one

The catalog before the loop.

ElMundi started as a stubborn question: could a small team actually publish a coherent history of the world — civilizations, characters, episodes, dates, the lines between them — without outsourcing the whole thing to a textbook publisher? Five thousand years. Hundreds of cultures. A schema that has to hold up whether a reader lands on Sumerian tax records or a single year in late-stage Rome.

The content was the easy part. The web around the content was not. Each civilization needed its own landing surface, with the same shape but different texture. Each character needed a page that knew which civilization owned it. Each episode needed to know which character it belonged to and which civilization the character belonged to. The graph was small; the page count was not. By hand, this is a content management system you bolt together over a year and then maintain forever.

We were a handful of people. We do not maintain forever. So the question wasn’t can we hire enough writers; it was can we put the schema, the brand voice, and the editorial rules somewhere a machine can read them, and then run a delivery loop tight enough to ship the next page tonight. That is what the loop had to prove it could do — on something real, not a demo.

elmundi.com catalog above-the-fold showing civilizations including Sumer, Akkad, Egypt, and the Indus Valley

The civilization index, as it ran — served from the same loop this page describes.

Movement two

First ticket through the loop.

The first ticket that walked the full pipeline was small on purpose. A civilization detail page — Akkad, in our memory of it — needed a sibling navigation strip across the top: previous civilization, parent region, next civilization, by chronological order. The planning bundle wrote the spec. The implementation specialist opened the branch. Twelve minutes later there was a pull request, four files changed, with a passing test that compared the rendered HTML to a fixture.

The test was wrong. Not catastrophically wrong — it asserted on an alphabetic sort instead of a chronological one. The validation bundle caught it inside the same pipeline run: the fixture said Akkad came before Sumer, and somebody, somewhere, had once decided Sumer came first because it did. The pipeline paused at the reviewing stage with a clarification request, not a failure, and the operator on duty that morning answered it the way you would answer a junior teammate: yes, sort by start year, not by name; the slug list in civilizations.yml is in the right order — use that as the canon.

The agent re-cut the test, re-opened the PR, and merged. The whole event took less than an hour. We mention it here because this is the shape every ticket had since: agent acts, specialist catches, human decides, evidence lands in the trail. We were not faster than a senior engineer on day one. We were just auditable in a way a senior engineer rarely has time to be.

Movement three

The day a chart said Elite out loud.

DORA‑4 is the four metrics SRE‑literate buyers actually read: deployment frequency, lead time for changes, change failure rate, mean time to recovery. They are not a vanity dashboard. They are how a senior platform engineer decides whether you are telling the truth.

We did not look at them for the first two weeks. We were too busy watching tickets land. Then on a Tuesday we opened the Analytics tab and the deployment frequency chart was at 7.3 deploys per day, labeled Elite. Lead time — the time from first commit to production — was 5 minutes, also Elite. Change failure rate sat at 13%, which is High not Elite, and we were honestly relieved; a 13% failure rate that we caught and rolled back is a better story than a 0% rate that we manufactured by hiding incidents. Mean time to recovery: an hour and a half. Also High.

Two Elite, two High, on a stack where every commit was authored by an agent. We did not celebrate. We screenshotted the dashboard and put it in the inbox, because that was the moment the cadence became visible — not as a vibe, but as a number a CFO could read. That dashboard is the one we now run on our own delivery — see the live numbers on the homepage.

Movement four

Memory took over.

For the first couple of weeks the operator on duty re-explained the same things to the same agents in slightly different words. The civilization schema. The brand voice — declarative, sourced, never breathless. The rule that dates before the common era are negative integers, not strings with the letters BCE tacked on. The convention that an episode title sentence-cases everything except proper nouns. Small rules. Real rules. Rules that, if you forget them in one PR, you ship a page that breaks the schema for the next twenty.

Then we wired persistent memory into the workspace — an operating property of the loop itself, not a bolted-on vendor. The agents now had a place to write what they had learned, and a place to read what previous agents had decided, and that place persisted across runs. The operator stopped re-typing the brand voice. The next ticket about a civilization page already knew the schema.

The shift was not loud. We noticed it in the negative space: fewer clarifications per ticket, fewer reviewer comments that read this is the third time we've said this, fewer PRs that had to be re-opened because someone forgot the convention. This is the memory layer we still run today — the same reference implementation, now serving whichever workspace needs it.

Movement five

What broke.

One afternoon, fifteen identical fix commits landed in a row. A single specialist role was carrying three jobs at once — checking a change against its contract, repairing obvious damage, and triaging regressions when a fix broke a different test. When the repair failed, the role didn’t escalate; it tried again, in almost the same words, fifteen times.

That is a scar, not a feature, and it made the book. We split the role into three narrow specialists — validation, self-heal, regression-triage — each with a job a human could describe in one sentence, and no permission to attempt anything outside it. The fifteen-commit afternoon does not repeat, because the role that used to retry blindly now stops and asks.

Movement six

Why we shut it down.

ElMundi was never meant to run forever. It existed to answer one question honestly: does the loop hold up on something real, with real stakes, run by a team too small to fake it? By the time it had 608 commits in a month, two Elite DORA metrics, and a memory layer that had quietly stopped needing to be re-taught — it had answered that question.

Keeping a media catalog alive as a going concern would have made us a media company. We are not a media company. We are the people who built the loop, ran it on something that mattered, and are now selling the judgment it took to make that loop actually run — not the catalog it happened to produce. Shutting ElMundi down was the same discipline as the fifteen-commit fix: recognize the job is done, and stop doing the thing that isn't the job.

Movement seven

What survived into the methodology.

The catalog is gone. Three things it forced us to build are not: the DORA-4 dashboard that now runs on our own delivery and on every audit we run for a client; the three-way specialist split that keeps a fixing role from retrying blind; and the memory layer, still the reference implementation we point clients at when they ask how agents keep context across sessions.

That is the whole trade. ElMundi spent thirty days and every failure mode in the catalog so the method could be something we trust enough to sell as judgment, not a demo.

A note on this case study

We built this. We ran it. Here is the receipt — and the reasoning for why it’s closed.

ElMundi UA was never a customer logo. It was the reference deployment of the loop, run by the same small team that builds it. Every number on this page came out of the workspace we opened every morning while it ran. We are publishing the sunset alongside the receipts because the judgment we sell includes knowing when to stop.

Next

Have us read your pipeline. Or read the long version first.

The book is the same story at chapter length — forty short essays on the operating model, the scars, and the rules we learned to write down.