Bun 창시자 Jarred Sumner가 Zig로 짜인 Bun을 Rust로 재작성한 과정을 공개했다. TypeScript로 작성된 기존 테스트 스위트를 conformance suite(적합성 오라클)로 삼아 에이전트 하네스가 Zig→Rust 초기 포팅을 자동화했고, 며칠 만에 테스트의 상당 비율이 통과하자 실험에서 실제 머지로 방향을 틀었다. 동적 워크플로, 시행 실행(trial run), 적대적 리뷰(adversarial review)를 엮었고 use-after-free·double-free 같은 메모리 버그는 Rust에서 컴파일 에러로 잡혔다.
Jarred Sumner는 Bun을 여기까지 끌고 온 Zig에 대한 감사로 글의 절반을 채운 뒤, 왜 Rust로 옮겼는지를 설명한다. 버그 리스트의 큰 비중이 use-after-free, double-free, 에러 경로에서의 free 누락이었는데, safe Rust에서는 이것들이 컴파일 에러이자 Drop을 통한 자동 정리 대상이 된다. GC와 수동 메모리 관리를 섞는 드문 요구가 Zig에서 버그를 낳았다는 진단이다.
포팅을 가능케 한 결정적 요인은 Bun의 테스트 스위트가 TypeScript로 작성돼 언어와 무관한 적합성 오라클로 쓸 수 있었다는 점이다. 에이전트 하네스가 이를 이용해 초기 포팅을 자동화했고, 처음엔 될 거라 기대하지 않았으나 며칠 만에 높은 통과율과 원본 Zig 코드와의 높은 일치를 확인하며 '머지하겠다'로 확신이 바뀌었다. 11일간 대부분의 시간 동안 그는 워크플로 출력을 직접 읽으며 모니터링했다.
동적 워크플로, 시행 실행, 적대적 리뷰 등 정교한 에이전틱 엔지니어링 기법이 총동원됐다는 점에서, 이 글은 '에이전트로 무엇이 가능한가'가 아니라 '어떻게 엮는가'의 사례집이다.