Three production defects, found and fixed the same night
** Three production defects in Content Ops — a runs race, an artifacts race, and a polling fan-out — surfaced and fixed the same night from structured logs.
Read more »Content Ops is a console for running a client's knowledge and content. Discovery notes and an open-questions tracker. A knowledge base where documents move through an editorial lifecycle (draft, needs review, approved, deprecated) with version history. A content plan built from keyword data. A drafting pipeline that writes from approved sources. And a one-way sync that publishes approved knowledge into Sadyr, so the revenue agent answers from the same documents.
It's live in production, at version 5.12.
Most AI content starts from a prompt and hopes. Content Ops starts from evidence: what the business actually knows, approved by a person, with sources attached. The AI proposes changes as a changeset, and a human reviews them before anything is written. That's slower than letting the model write straight to the database, and it's the reason I trust what comes out.
We run Adroit on it. It drafted our own website.
Claude Code writes the code, the tests and the documentation; I set the backlog, review, and decide what ships. The app is Next.js and TypeScript with a Python agent layer and PostgreSQL, hosted on Sevalla. Every release has to pass the full test suite and a production build before it's pushed.
It runs one project at a time. At three parallel jobs the process ran out of memory, and the choice was a bigger server or a slower queue. We chose slower.
The first time we ran it at real concurrency, rewriting our live website, it produced three production defects in one night. All three were the same habit in agent-written code: writing to a database table by deleting the whole table and re-inserting every row. At one job at a time that's harmless. At three, two jobs collide.
The lesson I kept: agent-written code can carry one bad habit across several unrelated tables, so finding it once doesn't mean it's gone. And build the diagnostic tool before the incident that needs it. The postmortem exporter paid for itself before midnight on the night it shipped.
Cost per page isn't on this page yet. Cost capture only started recently and there isn't enough measured history to publish a number I'd stand behind.
| Figure | What | Source |
|---|---|---|
| 839 + 57 | TypeScript + Python tests passing, 0 failing | state/repo-state.md, last full run at f861f98, pulled 2026-09-25 |
| 92 of 95 | planned website pages drafted in two days of batch runs | manifest B-03 / B-08, 2026-09-08 to 09-09 |
| 74 + 17 | website pages updated + created, live 2026-09-23 | manifest B-03 |
| 3 | production defects found and fixed the same night | manifest B-08, 2026-09-08 |
| 24 | approved public documents published to Sadyr | manifest B-02, 2026-09-21 |
All measured. More on the receipts page.