latentSource

Claude Code y el futuro del desarrollo asistido por IA

Claude Code integra un agente de IA directamente en tu terminal. Explora lo que las herramientas de codificación autónomas significan para los flujos de trabajo de ingeniería de software.

·6 min read
Compartir
Claude Code y el futuro del desarrollo asistido por IA

El asistente de codificación por IA ha salido de la barra lateral y se ha mudado a la terminal.

Qué es Claude Code

Claude Code es un agente de IA para codificación basado en CLI de Anthropic. Lo ejecutas en tu terminal, le das una tarea en lenguaje natural y este lee tu codebase, planifica los cambios, edita archivos, ejecuta pruebas e itera hasta que la tarea está terminada.

$ claude > Add pagination to the /api/articles endpoint. Use cursor-based pagination with a default page size of 20.

Desde ese prompt, el agente lee tu route handler existente, identifica los patrones de ORM en tu proyecto, modifica el endpoint, actualiza el schema de respuesta, añade parámetros de consulta, escribe o desarrolla pruebas y las ejecuta. Si una prueba falla, lee el error, corrige el código e intenta de nuevo.

Esto no es autocomplete. No es "generar un snippet y pegarlo". Es un agente ejecutándose en un bucle (leer, pensar, editar, verificar) con acceso total a tu proyecto.

En qué se diferencia de Copilot

GitHub Copilot (y herramientas inline similares) funcionan a nivel de sugerencia. Tú estás escribiendo código y la herramienta predice qué sigue. Es un autocomplete muy avanzado que entiende el contexto. Tú eres el conductor, la herramienta es un pasajero que hace sugerencias.

Claude Code funciona a nivel de tarea. Describes lo que quieres lograr y el agente determina cómo hacerlo. Navega por el codebase, realiza cambios en múltiples archivos y valida su propio trabajo. Tú eres el revisor, el agente es el conductor.

La diferencia práctica:

AspectoEstilo CopilotEstilo Claude Code
EntradaCódigo parcial + posición del cursorDescripción de la tarea en lenguaje natural
AlcanceArchivo actual, función actualTodo el codebase
CambiosInserción únicaEdiciones coordinadas en múltiples archivos
VerificaciónNinguna (tú revisas)Ejecuta pruebas, lee errores e itera
Flujo de trabajoTú programas, él sugiereTú describes, él programa

Son complementarios, no competidores. Copilot es excelente para la productividad en el flujo mientras escribes código activamente. Claude Code es ideal para tareas donde prefieres describir el resultado y revisar el producto final.

El bucle del agente

Internamente, Claude Code ejecuta un bucle de lectura-planificación-edición-verificación.

Lectura. El agente explora la estructura de tu proyecto, lee los archivos relevantes y construye un entendimiento de las convenciones, patrones y dependencias. Utiliza herramientas como búsqueda de archivos, grep y listado de directorios; las mismas herramientas que tú usarías.

Planificación. Basándose en la tarea y en lo aprendido del codebase, determina qué archivos necesitan cambios, en qué orden y qué deben lograr esos cambios. Para tareas complejas, divide el trabajo en pasos.

Edición. Realiza ediciones quirúrgicas en archivos específicos. No son reescrituras completas, sino cambios precisos que respetan el estilo de código y los patrones existentes.

Verificación. Ejecuta tu suite de pruebas, linter o verificador de tipos. Si algo falla, lee la salida del error, diagnostica el problema y vuelve al paso de edición.

El bucle continúa hasta que la tarea se completa o el agente decide que necesita intervención humana. El paso de verificación es lo que hace que el agente sea autocorregible. El código de la primera pasada no tiene que ser perfecto, solo lo suficientemente cercano para que el feedback de las pruebas guíe el refinamiento.

Hooks y personalización

Claude Code admite hooks: scripts personalizados que se ejecutan en puntos específicos del ciclo de vida del agente. Eso te permite aplicar reglas específicas del proyecto sin tener que confiar en que el modelo las recuerde.

Algunos patrones comunes de hooks: la validación pre-commit ejecuta linters o formatters antes de que el agente haga commit de los cambios. Las comprobaciones post-edit verifican, después de cualquier edición de archivo, que los imports estén ordenados o que se sigan patrones específicos. La autorización de herramientas personalizadas requiere aprobación antes de que el agente ejecute comandos destructivos.

También puedes configurar al agente mediante ajustes a nivel de proyecto y archivos de memoria que conservan el contexto entre sesiones: convenciones de codificación, decisiones arquitectónicas, archivos que se deben evitar modificar y patrones preferidos.

# CLAUDE.md (instrucciones del proyecto) - Usar imports absolutos, nunca relativos - Todos los endpoints de la API deben tener docstrings de OpenAPI - Las pruebas van en tests/ reflejando la estructura de la fuente - Nunca modificar archivos en migrations/ directamente

Integración con MCP

Claude Code es compatible con servidores MCP (Model Context Protocol), lo que significa que puedes extender el conjunto de herramientas del agente mucho más allá de las operaciones de archivos. Conecta servidores MCP para acceso a bases de datos (el agente puede consultar tu base de datos de desarrollo para entender el schema y los datos de prueba), pruebas de API (conéctalo a tu servidor de desarrollo en ejecución para probar endpoints directamente), rastreadores de problemas (lee issues de GitHub o tickets de Jira como parte del entendimiento de los requisitos de la tarea) o herramientas personalizadas (cualquier herramienta interna o servicio envuelto como un servidor MCP queda disponible para el agente).

Esto convierte a Claude Code de un editor de código a un participante del entorno de desarrollo que puede comunicarse con todo tu stack.

Trabajando con codebases existentes

La capacidad más impresionante es cómo Claude Code maneja codebases que nunca ha visto. No necesita un índice especial, un modelo entrenado o un asistente de configuración. Lee archivos bajo demanda, de la misma manera que lo harías tú.

Dale un reporte de bug:

> El endpoint /api/search devuelve un 500 cuando el parámetro de consulta contiene
  caracteres especiales como & o %. Corrígelo.

El agente encuentra el endpoint de búsqueda, lee el handler, observa que el query string no está siendo URL-decoded o saneado, aplica la corrección, escribe una prueba con caracteres especiales y la ejecuta. Si tu proyecto usa un framework de pruebas o un estilo de aserción particular, lo identifica a partir de tus archivos de prueba existentes.

Esto funciona porque el agente tiene una ventana de contexto amplia y la capacidad de buscar entre archivos. No necesita entender todo tu codebase; necesita encontrar y entender las partes que importan para la tarea. Así es como los desarrolladores experimentados trabajan en proyectos desconocidos.

El ecosistema de extensiones para IDE

Claude Code comenzó como una herramienta de CLI pero se ha expandido a integraciones con IDEs.

La extensión de VS Code trae las capacidades de agente de Claude Code a VS Code con una interfaz de panel junto a tu editor. El plugin de JetBrains ofrece las mismas capacidades en IntelliJ, PyCharm, WebStorm y los demás IDEs de JetBrains.

Las integraciones con IDE añaden facilidades visuales. Puedes ver qué archivos está leyendo el agente, revisar diffs antes de que se apliquen y obtener anotaciones inline. El bucle del agente subyacente es el mismo. La terminal sigue disponible para quienes la prefieren.

Qué significa esto para los flujos de trabajo de desarrollo

El desarrollo asistido por IA está cambiando varios patrones.

El code review se convierte en la habilidad principal. Cuando el agente escribe el código, tu trabajo pasa de escribir a revisar. Esa es una habilidad diferente: leer código críticamente, evaluar decisiones arquitectónicas y detectar casos de borde que el agente omitió. Los desarrolladores que son buenos revisores se vuelven más valiosos.

La descripción de tareas es la nueva interfaz. La precisión y claridad de tu descripción de la tarea determina directamente la calidad del resultado. "Arregla el bug" produce peores resultados que "El flujo de checkout falla cuando un usuario tiene múltiples direcciones porque el componente selector de direcciones no maneja el caso donde la dirección predeterminada es eliminada. Corrige el selector para que use la primera dirección disponible como alternativa".

La velocidad de iteración aumenta. En lugar de implementar una funcionalidad durante horas, la describes, revisas el resultado en minutos e iteras con feedback. "Esto está cerca, pero el manejo de errores debería usar nuestra clase personalizada AppError, no excepciones genéricas".

La documentación y las pruebas se vuelven más baratas. Las tareas que históricamente los desarrolladores dejaban en segundo plano (escribir pruebas para código existente, añadir docstrings, actualizar READMEs) se vuelven triviales de delegar.

Lo que sigue siendo difícil

El agente no es infalible.

Los refactors a gran escala que afectan a docenas de archivos con interdependencias sutiles pueden producir inconsistencias. El agente maneja bien cada archivo, pero puede pasar por alto invariantes entre archivos. Los bugs sutiles que requieren un entendimiento profundo del dominio o que solo se reproducen bajo condiciones específicas son difíciles de diagnosticar para el agente sin descripciones detalladas. Las decisiones arquitectónicas deben seguir siendo dirigidas por humanos. El agente puede implementar cualquier arquitectura que describas, pero no debería elegir la arquitectura de tu sistema por ti. La optimización de rendimiento que requiere profiling y medición todavía está fuera de lo que el bucle del agente maneja bien.

La herramienta es un multiplicador de fuerzas para desarrolladores competentes, no un reemplazo para la competencia. Todavía necesitas saber cómo se ve el buen código. Simplemente pasarás más tiempo dirigiendo y revisando que escribiendo.