JOURNAL / 2026.08.22

Asana removes Enzyme in two weeks with Codex agents

Up to four agents completed a migration that followed years of work; the case shows how sharply AI can compress verifiable debt, but not that every five-year project now costs $12,000.

Asana had been moving its frontend tests from Enzyme to React Testing Library since 2022. It had devoted several multi-engineer-year projects to the effort and, at the remaining pace, expected another five years. This summer it changed the method: it ran up to four Codex agents in parallel, reviewed their work morning and evening, and removed Enzyme in a week and a half of engineering effort spread across two calendar weeks.

This is a production result, not a demonstration on a toy repository. It also arrives wrapped in a number that needs care. Asana attributes about $11,000 to model use and $1,000 to infrastructure; it contrasts that $12,000 with a $6 million estimate for keeping three senior engineers dedicated for five years. It did not spend $6 million and then recover it, and the $12,000 does not include all the human and organizational work that made the run possible. The comparison is the company's own counterfactual scenario.

The useful evidence lies beneath the promotional ratio. A general agent could read a large private codebase, imitate existing conventions, run checks, and sustain a repetitive transformation until an obsolete dependency was completely gone. That expands the class of technical debt worth putting on a plan at all.

Five sentences resting on four years of context

The instruction fit into five sentences: migrate files in a directory that used Enzyme, follow repository practices, test the changes, and start with the easy cases. Each agent worked on a different directory and a separate copy of the code. Engineers kept the sessions running day and night, checked progress twice daily, and reviewed proposals before integrating them.

Asana tried more elaborate mechanisms—tickets, a notes file, more subagents, and a long conventions guide—and says almost all of them made the outcome worse. That does not show that plans or documentation are generally harmful. It says something more specific: the relevant information was already expressed in modern tests, well-designed utilities, and local patterns. Adding a second description could compete with the source of truth in front of the agent.

The work was unusually well bounded too. “No Enzyme uses remain” offered an exit condition a search could verify. Type checking, linting, tests, and continuous integration turned many errors into fast signals. Agents stumbled when recent documentation still recommended the old pattern or when a check took more than ten minutes and failed intermittently. The case does not merely say the model wrote quickly: it says the speed depended on repository legibility and verification loops.

That is also the thesis of OpenAI's Codex engineering experiment: short instructions as a map, versioned knowledge near the code, and constraints turned into executable tooling. But there is an important difference. OpenAI built a repository from scratch for agents. Asana inherited years of human-written code, contradictory rules, and a migration already in progress. Success there is evidence closer to the backlog many organizations actually have.

The precedent keeps this from becoming magic

Asana is not the first company to automate this same transition. Airbnb had described a migration of nearly 3,500 test files from Enzyme to React Testing Library. It finished in six weeks against an estimate of one and a half years by hand. Its system was more specialized: it divided each file into stages, retried with Jest, lint, and TypeScript errors, and eventually included 40,000 to 100,000 tokens of examples and related files. It automated 75% in the first bulk run, reached 97% after four days of tuning, and finished the remainder manually.

Those durations should not become a race. Asana does not disclose how many files, tests, pull requests, or lines it migrated; Airbnb did not use the same repository, model, or definition of done. The comparison does show a change in method. In 2024, Airbnb needed to build a purpose-made pipeline and systematically tune its long tail. In Asana's 2026 account, general-purpose agents handled navigation and iterative repair through the project's normal environment, with far less explicit orchestration.

Nor was this a trivial text replacement. The Testing Library migration guide explains that there is no one-to-one mapping: Enzyme permits inspection of internals and isolated component rendering, while React Testing Library directs tests toward what a person sees and does. A conversion can compile yet preserve the wrong assertion, reduce coverage, or lock in accidental behavior. That is why existing tests, human review, and the missing evidence matter.

Asana and OpenAI are partners in this work, the codebase is private, and there is no independent report. The sources do not identify the exact frontier model, number of rejected attempts, review hours, coverage before and after, or defects found after integration. They state that Enzyme is gone and that every proposed change was reviewed, but provide no artifact with which to reproduce the run. This is attributed operational evidence, not a controlled benchmark.

My reading is that the important conclusion is not that five years now costs $12,000. It is that the price of trying certain deferred projects has fallen. Mechanical migrations, API modernizations, and debt cleanup have divisible goals, plentiful examples, and cheap verifiers. It once made sense to tolerate the drag for years; it may now make sense to launch a bounded pilot and let the evidence decide.

This also changes where value accumulates. Clear conventions, fast reliable tests, and documentation that matches the code stop being merely conveniences for people: they become capital many agents can reuse at once. Knowledge debt—obsolete rules, decisions trapped in conversations, brittle checks—becomes a direct ceiling on automation instead.

Generalizing the result would require less spectacular and more useful accounting: the size and difficulty of the starting inventory, total human hours, inference cost, rejected-proposal rate, semantic coverage, and defects observed over several months. Until that exists, Asana should be treated as a well-chosen case, not a universal new price for software. Even with that limit, it shifts a practical question. For a perfectly verifiable migration, estimating five years of human work before trying an agent is starting to look like an incomplete hypothesis.

Sources

← Back to journal