Cómo refactorizar JavaScript con un agente de código
Agentes manos a la obra · ES · 2026-10-24 · 140 lecturas
Dejar que un agente de código refactorice JavaScript heredado puede ahorrar trabajo, siempre que el objetivo sea verificable. «Moderniza este repositorio» deja demasiadas decisiones abiertas. Una tarea como «simplifica el cálculo de descuentos sin cambiar sus resultados» permite comprobar el resultado. Este tutorial propone un proceso para delegar cambios pequeños y conservar el comportamiento que necesita tu aplicación.
Paso 1. Prepara una referencia recuperable
Empieza con el árbol de trabajo limpio y crea una rama con git switch -c refactor/descuentos. Identifica cómo instalar dependencias, ejecutar las pruebas y arrancar la aplicación. Utiliza el archivo de bloqueo existente; si trabajas con npm y tienes package-lock.json, ejecuta npm ci.
Ejecuta las comprobaciones actuales antes de editar. Anota los fallos existentes para distinguirlos de posibles regresiones. Si el proyecto carece de pruebas, dedica el siguiente paso a cubrir el comportamiento de la función elegida.
Paso 2. Conecta el agente y limita el alcance
Puedes trabajar con Claude Code, Codex o Gemini CLI. Si necesitas centralizar el acceso a modelos, ApiCabin ofrece una clave con pago por uso para desarrolladores independientes y equipos pequeños. Es compatible con estas herramientas y con SDK compatibles con OpenAI; por ejemplo, permite acceder a Claude Sonnet 5.5 o GPT-6 Astra.
La dirección de la API es https://api.apicabin.ai. Sigue la configuración documentada para tu herramienta: no todas utilizan las mismas variables ni interpretan igual la URL base. Guarda la clave fuera del repositorio. Para utilizar este acceso centralizado, regístrate en https://apicabin.ai.
Delimita después la tarea: un módulo, una función o una responsabilidad. Excluye actualizaciones de dependencias, migraciones de módulos y cambios de formato generales salvo que sean necesarios para resolverla.
Paso 3. Pide un diagnóstico antes de modificar archivos
Entrega al agente una instrucción concreta: «Analiza src/descuentos.js y sus consumidores. Explica las entradas, salidas, efectos secundarios y casos límite. Propón una refactorización pequeña que conserve el comportamiento. Todavía no edites archivos».
Revisa especialmente las conversiones implícitas, las mutaciones y el tratamiento de valores ausentes. En JavaScript, sustituir valor || predeterminado por valor ?? predeterminado cambia el resultado para cero, false y cadenas vacías. Una expresión más reciente puede introducir una regresión.
Paso 4. Captura el comportamiento con pruebas
Antes de refactorizar, pide pruebas de caracterización: deben describir lo que hace hoy el código. Para un cálculo de descuentos, incluye un pedido normal, una lista vacía, cantidades cero, precios decimales y propiedades opcionales ausentes. Comprueba también si la función modifica los objetos recibidos.
Usa el ejecutor de pruebas que ya tenga el proyecto. Pide al agente que ejecute estas pruebas contra la implementación original. Si encuentra un comportamiento extraño, documéntalo y decide por separado si corresponde corregirlo: cambiar una regla de negocio requiere una expectativa nueva y explícita.
Paso 5. Delega una transformación pequeña
Ahora puedes dar una instrucción ejecutable: «Extrae el cálculo del subtotal a una función interna y reduce la duplicación. Conserva la firma pública, los resultados, los errores y las mutaciones observables. No añadas dependencias. Ejecuta las pruebas pertinentes y explica cualquier diferencia».
Prefiere una transformación por iteración. Extraer una función y renombrar variables locales resulta más fácil de revisar que reorganizar todo el módulo. Si el agente descubre un problema ajeno al alcance, pídele que lo registre para otra tarea.
Paso 6. Revisa el cambio y ejecuta las comprobaciones
Inspecciona git diff y verifica que cada modificación contribuya al objetivo. Busca cambios en exportaciones, orden de operaciones, promesas, excepciones y acceso a propiedades. Una función convertida innecesariamente en async también cambia su contrato.
Ejecuta las pruebas del módulo, la suite disponible y las comprobaciones habituales de estilo o compilación. Confirma que el agente no haya debilitado las pruebas para obtener resultados satisfactorios. Si cambia una ruta visible, comprueba también ese flujo en la aplicación.
Paso 7. Guarda una unidad revisable
Pide al agente un resumen de los archivos modificados, las comprobaciones ejecutadas y sus resultados. Revisa ese resumen frente al diff y crea un commit que describa la transformación concreta. Continúa con otra mejora pequeña cuando esta primera unidad esté validada.
¿Quieres probar? Al registrarte recibes $0.30 de crédito. Registrarse