Fetching from the wire…
Public story · 2026-07-19 · high
Bun used the method to port roughly 1 million lines from Zig to Rust in under two weeks for about $165K in inference.
Why now: Anthropic published the methodology on July 16, three days before July 19.
Anthropic published its internal methodology for large-scale code migrations with Claude Code on July 16, with receipts most playbooks skip. For teams stalling on a legacy rewrite, the pitch is direct: a repeatable process that ends with the test suite passing, not a demo that mostly works.
Bun used the method to port roughly 1 million lines from Zig to Rust in under two weeks, for about $165K in inference. The existing test suite passed before merge. A separate 165K-line Python-to-TypeScript port took one weekend and 27 million tokens.
The method runs in six steps. Build a rulebook, a dependency map, and a gap inventory. Stress-test the rules on three throwaway sample files. Translate in parallel with small models, then compile, smoke test, and verify against the suite.
Step two is where most people flinch. You run the mini-migration across those three sample files, then throw away everything produced. Only the rules survive. A mistake caught in a throwaway file costs an afternoon. The same mistake caught four thousand files in costs the migration.
The rule behind it: fix systemic failures in the rulebook, never by hand-patching the file. Hand-edit the file once, and a re-runnable process turns into patches you can't regenerate. I've made this mistake on smaller migrations myself. The tell is when you're afraid to re-run the generator.
Model tiering carries the economics. Sonnet-class models handle bulk translation. Opus-class models write the rules and run adversarial review. Fixer agents clear compiler errors in parallel. Rule-writing, not translation, is where the payoff sits.
Pick a migration you've been avoiding, 5-10K lines with real test coverage, not the big one. Run all six steps, including throwing away the pilot. If your test suite is thin, that's the blocker to fix first.
Each link below shares sources, entities, or timing with this story.
Claude Code uses Opus / Shared entities / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (Claude Code uses Opus); both cover Build, Claude Code, Model, Rust; overlapping topics (agent, code, model).
Anthropic released Fable / Shared entities / Shared topic
Linked by a graph relationship (Anthropic released Fable); both cover Anthropic, Claude Code, July, Rulebook; overlapping topics (suite, test).
Anthropic released Fable / Shared entities / Shared topic / Earlier coverage
Linked by a graph relationship (Anthropic released Fable); both cover Anthropic, Never, Python, Rust; overlapping topics (agent, anthropic, model).
Linked by a graph relationship (Anthropic released Fable); both cover Anthropic, Claude Code, Model, Opus; overlapping topics (agent, cost, model).
Anthropic released Fable / Shared entities / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (Anthropic released Fable); both cover Anthropic, Claude Code, Rust, TypeScript; overlapping topics (agent, anthropic, code, cost).
Anthropic released Fable / Shared entities / Same source domain / Shared topic / Earlier coverage
Linked by a graph relationship (Anthropic released Fable); both cover Anthropic, Claude Code, Opus, Sonnet; reported by the same outlet (claude.com).
Anthropic released Fable / Shared entities / Shared topic / Earlier coverage / Tension
Linked by a graph relationship (Anthropic released Fable); both cover Anthropic, Build, Fable, Opus; overlapping topics (anthropic, code, model).
Linked by a graph relationship (Anthropic released Fable); both cover Anthropic, Claude Code, Fable, Opus; overlapping topics (anthropic, code, model).