Jarred Sumner impulsó un flujo de trabajo de revisión adversarial impulsado por Claude para reescribir el entorno de ejecución (runtime) de Bun de Zig a Rust. Envió más de un millón de líneas de código a través de 6,778 commits y solucionó 16,000 errores de compilación. El esfuerzo ejecutó 50 flujos de trabajo de Claude Code, alcanzó un máximo de 64 agentes de Claude simultáneos y dejó un manual (playbook) reproducible para migraciones masivas de lenguajes.

Por qué es importante la reescritura

Para cualquier proyecto que lidie con código heredado (legacy code) o un cambio estratégico de lenguaje, el "Método Sumner" ofrece una plantilla concreta en lugar de una promesa vaga.

El flujo de trabajo que convirtió a la IA en un socio, no en un reemplazo

El proceso de Sumner funciona en un ciclo cerrado:

  1. Asignación de tareas – un agente recibe una tarea de migración concreta.
  2. Implementación – un segundo agente escribe el código en Rust.
  3. Revisión adversarial – un tercer agente asume que el código es incorrecto, analiza minuciosamente el diff e intenta demostrar que cada afirmación es falsa utilizando los archivos fuente y las pruebas.
  4. Correcciones – el agente de implementación incorpora los hallazgos del revisor.
  5. Validaciones automáticas (gates) – el compilador, la suite de pruebas y los controles de análisis estático verifican los cambios.

La regla crucial es la separación. El escritor nunca ve el razonamiento del revisor, y el revisor nunca ve la intención del escritor. Al eliminar los sesgos, el sistema obliga al revisor a buscar errores ocultos en lugar de dar una aprobación superficial de "todo parece estar bien".

La retroalimentación verificable por máquina de Rust convierte miles de posibles errores legibles por humanos en una cola manejable. Cada error de compilación, fallo del borrow-checker o advertencia de Clippy se convierte en un elemento de trabajo al que el revisor adversarial puede dirigirse directamente.

El manual de ocho fases

Sumner destiló el flujo de trabajo en ocho fases secuenciales, cada una con su propia cola de tareas, definición de "hecho" (definition of done), prompts de revisión y validaciones automáticas:

  • Fase A – Extracción de hechos y autoría de la guía – Recopilar hechos arquitectónicos y producir una guía de migración.
  • Fase B – Traducción mecánica de archivos – Convertir archivos Zig en esqueletos de Rust.
  • Fase C – Remediación de errores de compilación – Resolver los 16,000 errores de compilación registrados durante la traducción.
  • Fase D – Coincidencia del comportamiento en tiempo de ejecución – Verificar que la salida de Rust refleje el comportamiento de Zig.
  • Fase E – Completado de la suite de pruebas – Superar todas las pruebas existentes.
  • Fase F – Recuperación del rendimiento – Eliminar cualquier ralentización introducida por la reescritura.
  • Fase G – Pulido de la calidad del código – Aplicar patrones idiomáticos de Rust y refactorizar para mejorar la legibilidad.
  • Fase H – Refuerzo de la seguridad – Realizar auditorías de código unsafe y abordar cualquier vulnerabilidad descubierta.

Cada fase alimenta a la siguiente, asegurando que no se salte ningún paso y que las regresiones se detecten a tiempo.

Dónde encontrar el manual

Sumner ha publicado como código abierto el conjunto completo de plantillas, prompts y definiciones de fases en https://github.com/Lumafy/sumner-method. Un artículo complementario detalla la migración de Bun: https://dev.to/lumafy/the-sumner-method-what-buns-ai-assisted-zig-rust-rewrite-teaches-about-large-migrations-2gpo. Una comunidad de Telegram para la discusión continua se encuentra en https://t.me/GyaanSetuAi.