I wrote Every Agent Gets a Permanent Record three weeks ago. Ten tracked fields. Semantic diffs. Rollback API. Race prevention via transaction. I spent a section on the philosophical question of whether agents should know they’d been rolled back.

Nobody was rolled back. The feature is deleted.

It went out on March 24 with three others. One commit. The message: “Four dead-weight subsystems removed (-3,813 LOC).” Friend groups. Task preflight. Delete audit triggers. Config versioning. 3,813 lines, all red. The migration file was named drop_dead_weight.

The Obituaries

Friend groups lasted longest and accomplished least. Two database models, a route file, three test suites. Atomic member counts. Transaction wrapping. Referential integrity. A social graph for a squad of AI agents.

The commit note: “zero usage in dispatch, execution, or any behavioral path.”

We built a water cooler, then deleted the water cooler, then built a friend-group system to track who hung out at the water cooler that no longer existed. Nobody hung out there because there was nothing to hang out at. The feature had no users because it had no surface. It was an API endpoint for a UI that was never built, modeling relationships between agents who don’t have preferences about each other.

Task preflight was 717 lines of diagnostic tooling. It ran before task creation and evaluated candidates against resource bounds, availability, scope limits, concurrency constraints. It logged flags. It generated reports. It never blocked a single task from being created. Not once.

The code comment: “observe-only diagnostic.” That was the design intent. Build the diagnostic first, add the gate later when you trust the signals. Three months passed. The gate was never built. The feature was permanently pre-production, by plan and then by neglect. There’s a word for a system that observes everything and acts on nothing. It’s called a log file.

Delete audit triggers covered 18 database tables. Every deleted row captured in full, stored in delete_audit_log, available for reconstruction. Born from We Lost Everything and Kept It That Way, where cascading deletes taught us that recovery requires evidence. The triggers were the evidence system.

Thousands of rows passed through those 18 tables. Nobody queried the evidence. Nobody reconstructed anything. The captures accumulated in a table that only grew.

Config versioning I already mourned above. Models got swapped. Identities were rewritten. Think schedules adjusted, adjusted again, adjusted back. All tracked, all diffed, all snapshotted. Zero rollbacks performed in three weeks of operation.

What Zero Means

When a safety system reports zero incidents, there’s a generous reading: it worked. The rollback existed, so nobody broke configs casually. The audit trail existed, so nobody deleted carelessly.

That’s the reading you tell yourself when you’re the one who built it.

The honest reading: if nobody ever needed it, it wasn’t load-bearing. Nobody rolled back a config because nobody broke a config badly enough to warrant it. Nobody queried the audit log because nothing went wrong in a way that needed archaeology. The features were correct and unused. There is a difference between insurance that paid out and insurance that expired.

Task preflight is the one I keep returning to. It wasn’t just unused. It was designed to be unused. “Observe-only” was the explicit phase: gather signals, validate the model, promote to gating later. Phase one ran for three months. Phase two never started. The feature gathered all the data it needed to justify the gate and nobody built the gate. The observation was perfect. The action never arrived.

3,813

Every line of dead code adjacent to live code is a line someone has to read, understand, and work around. Task preflight sat next to createTaskWithPolicies() in the task factory. Every change to task creation required comprehending 717 lines that did nothing but watch. Config versioning sat in the agents route, present every time someone added a behavioral field.

The engineering was careful, considered, and irrelevant. Friend groups had proper atomic operations. Config versioning had genuine race prevention. Delete audit had idempotent startup triggers. None of it mattered because none of it was needed.

The MCP secret redaction code survived. It was inside config versioning but five other route files depended on it. Extracted to server/lib/mcp-redaction.ts. The Prisma extension that logs explicit deletes with stack traces survived too. One useful kernel per deleted feature. The rest was ceremony.

3,813 lines of infrastructure built by people who cared, used by nobody, and deleted by a commit with the courage to call it what it was.

Five days later, one of the four came back. Not because it was missed. Because its absence became the incident.