Skip to content

A bug is a signal about the generator — fix the workflow that produced it so the class of error becomes impossible, not just this instance.

Principle

Fix the System Not the Issue

The asymmetry

One fix pays once. The other pays forward.

Individual fix

patch the file

Agent produced a phantom edit. You manually touch the files and move on. The generator is unchanged. Tomorrow's invocation can ship the same error.

same class keeps recurring

System fix

add the contract

Implement filesExpected + a Stop hook. Phantom edits become impossible by default — for this agent and every future one.

class is closed, once

Individual fixes cost you every occurrence. System fixes pay forward across every future invocation.

The trajectory

tac-2 → tac-6 is this principle, applied to itself.

Each iteration diagnosed what problem class the system was still capable of producing — and structurally eliminated it.

tac-2

Class

no ADW pipeline at all

Fix

built the pipeline

tac-4

Class

ADWs aren't isolated

Fix

worktree isolation

tac-5

Class

no hook enforcement

Fix

the hook system

tac-6

Class

starting from scratch every project

Fix

the primer repo

Not rewrites — structural eliminations of the next problem class in line.

The diagnostic

Before you fix anything, answer one question.

Can I imagine this happening again with a different agent, a different task, or a different input?

No — one-time

It's an incident.

Genuinely unique context. Won't recur across agents or runs. Rare.

→ patch it and move on

Yes — class

It's a generator defect.

The system is still capable of producing this. Every future invocation is exposed.

→ fix the class, not the case

Most "one-time" bugs are classes in disguise — treat them as classes until proven incidents.

How this principle dies

The moves that leave the system capable.

If you catch yourself doing any of these, the generator is still broken.

  • ✗Patch a specific file without updating the ADW script or command that generated it.output-only
  • ✗Fix a failing test without asking why the builder agent produced incorrect code.symptom
  • ✗Workarounds that bypass root cause — --no-verify, skipped hooks, manual overrides.bypass
  • ✗Treat a recurring error as a one-time incident — every time it appears.amnesia
  • ✗Fix the output instead of fixing the generator that produced the output.downstream

Every bypass is a promise that the class will come back.

What a system fix looks like

Problem class → structural closure.

Each row: the class of error, and the primitive that closes it at the generator.

agents shipping phantom edits

closes withHook-Enforced Contract

verification fires on wrong signal

closes withHook Event Selection

two agents racing the same task

closes withWork Claim

abandoned worktrees piling up

closes withOrphan Reaper

failure with no prescribed recovery

closes withCorrection Task

Every primitive in the harness is a closed class — a defect that can no longer happen by default.

The discipline

A bug is a signal about the generator, not about the output.

The system is only as reliable as its lowest-enforcement boundary. Individual fixes leave gaps; system fixes close them. If it can happen once, it will happen again — unless you change what can happen.