Session Frame
Source: session page
The official session description says Jarred Sumner, creator of Bun, walks through why and how the team rewrote Bun to Rust using dynamic workflows in Claude Code.
Problem: Rust Demands Structure The Old Code Never Had
Source: IMG_7475
A strict dependency order between ~100 crates
Five years of Zig and C++ had none.
Classify every cyclical dependency
Delete it, move the code, or restructure.
Problem: Rust Has Lifetimes, Zig Does Not
Source: IMG_7476
Use a workflow to read every file and figure out lifetimes up front.
Who creates it?
Who frees it?
Can it outlive its owner?
One Loop, Four Phases
Source: IMG_7477
- Generate.
- Adversarial review.
- Apply fixes.
- Count what is left until zero.
Each phase zooms out and groups work its own way:
| Phase | Scope |
|---|---|
| Phase 1 | Files x 1,300 |
| Phase 2 | Crates x ~100 |
| Phase 3 | Binary x 1 |
| Phase 4 | Behavior x 4,174 tests |
Ground rule: the old code never leaves. Every original file stays beside its translation as the spec.
Adversarial Review
Source: IMG_7478
2+ adversarial reviewers for every change
Author and reviewer: separate context windows
A fresh reviewer cannot be talked into the author's justifications.
Instruction
Assume it is wrong. Only report what you can prove.
Spend the tokens. It is worth it.
Maximize Throughput
Source: IMG_7479
16 agents x 4 worktrees = 64 Claudes
Ban Git
One reset in a shared tree equals 16x slowdown.
Ban cargo, ban slow commands
Own checkout, build, memory budget per worktree.
cgroups is good
Translate All 1,300 Files, All At Once
Source: IMG_7480
For each file:
- Write the
.rsfile. - Run two adversarial reviews against the original and the rules.
- Apply fixes.
None of it has to work yet.
Fix All Compiler Errors, All At Once
Source: IMG_7481
Each round:
- Build once per round: the only compile.
- Split errors by file.
- Run 30 fixers in parallel with no compiler access.
- Commit.
- Next build grades everyone and loops.
Make It Run
Source: IMG_7482
Many failures, few causes. Dedupe before you assign agents, or pay 4x for the same fix.
- Build.
- Run 15 smoke tests.
- Dedupe crashes by location.
- Assign one agent per crash.
- Loop.
Slide aside: the day console.log(1) printed 1 was a very good day.
Fix The Process That Generates The Code
Source: IMG_7483
Do not fix the code. Fix the process that generates the code.
- Sample some of the results.
- Edit prompts to handle things that went wrong.
- Regenerate the code.
Round 1's Postmortem Is Round 2's Prompt
Source: IMG_7484
| Round 1 postmortem | Round 2 prompt carry-forward |
|---|---|
| Converted only 9% - agents played it safe. | Converted only 9% - agents played it safe. |
| A pattern that moves memory C still points at. | A pattern that moves memory C still points at. |
| Re-discovered settled findings. | Re-discovered settled findings. |
| Linux-only checks shipped a macOS break. | Linux-only checks shipped a macOS break. |
Even The Reviewers Get Reviewed
Source: IMG_7485
Hallucinated bugs
Solo findings default to "not confirmed".
Over-correction
Itself a named, rejectable finding.
Laundering
"Did the hazard go away, or just move?"
Never take one agent's word for it, including the skeptics.
It Works
Sources: IMG_7486, IMG_7487
+1,009,257 lines. And it works.
11 days
May 3 -> merged May 14
6,778
commits
0
tests skipped or deleted
| Platform | Expect() calls | Tests | Files |
|---|---|---|---|
| Debian 13 x64 | 1,386,826 | 60,624 | 4,174 |
| macOS 14 arm64 | 1,259,953 | 58,850 | 4,175 |
| Windows 2019 x64 | 1,007,544 | 57,337 | 4,173 |
The team kept going: 10 rounds of fixes from Claude Security, 24/7 coverage-guided fuzzing of all 14 parsers, every LeakSanitizer-detectable memory leak fixed, plus a Windows bug hunt and an audit of every Rust-C boundary.
What 1.39M Assertions Missed
Source: IMG_7488
JavaScript tests cannot see Rust-level mistakes
13,000+ uses of the unsafe escape hatch
Untested corners are untranslated corners
Every gap the test suite had became a bug the team shipped.
Rewrites Make Sense Now
Source: IMG_7489
1 team x 1 year
The old price.
1 engineer x 11 days
The price with Claude Code workflows.
Large Rewrites With Claude Code
Source: IMG_7490
Most of the human job during those 11 days: reading code, reading reviews, and waiting.
- Get an independent judge: a test suite that does not care how the code is written.
- Write the rules.
- Bound every task and regroup the work at each phase.
- Review adversarially, then sample.
- Fix the instructions, not the code; regenerate.
- Loop until a number is zero.