Contenido del curso
Crear la base full-stack del producto
- 6

Composer 2.5 ejecuta tu primer spec en Cursor
02:26 min - 7

Cómo actualizar dependencias sin errores del LLM
06:35 min - 8

Cómo usar MCP en Cursor para validar tu API
07:32 min - 9

Hooks en Cursor para proteger tu código
07:20 min - 10

Playwright y Multitask para testear tu app
06:21 min - 11

Cómo poner a competir dos IA con worktrees
Viendo ahora
Calidad, entrega y automatización
Cómo poner a competir dos IA con worktrees




Todos los cursos GRATIS
Resumen
Los Git worktrees son una metodología de trabajo que te permite duplicar un proyecto tantas veces como necesites para trabajar en paralelo sin que los cambios de una copia afecten a otra. Si desarrollas software y quieres poner a competir modelos de inteligencia artificial sobre el mismo feature, esta técnica te va a resultar clave.
A diferencia de los branches, donde trabajas en una rama a la vez y haces merge a la principal cuando terminas, los worktrees abren la puerta a la paralelización real. Y aquí viene lo interesante: son especialmente útiles cuando trabajas con subagentes o agentes de IA.
Qué diferencia hay entre un worktree y un branch
Muchos desarrolladores estamos acostumbrados a la lógica de branches: creas una rama por feature, trabajas en ella, y cuando terminas haces merge a la rama principal, modificando la historia de tu proyecto. Trabajas en un branch a la vez [00:26].
Con worktrees el enfoque cambia por completo. En lugar de saltar entre ramas, duplicas el proyecto entero y cada copia vive en un ambiente independiente. Ninguna choca con la otra.
¿Qué es un Git worktree? Es una copia independiente de tu proyecto que te permite trabajar en paralelo sobre varias versiones a la vez, sin que los cambios de una afecten a las demás [00:15].
Esa independencia es la que hace posible una idea poderosa: poner a dos modelos de IA a resolver el mismo problema al mismo tiempo.
Cómo poner a competir dos modelos de IA con worktrees
En la clase se ejecuta el spec número nueve: un evaluador de flags con una función pura que decide si un flag está activo o no. La consigna es clara: la lógica debe vivir en el dominio, ser pura, cubrir los casos de flag apagada, activa y regla por ambiente, e incluir los tests de cada caso [01:20].
Como hay varias formas de construir esa función y no siempre sabes cuál es la mejor, la estrategia es dejar que dos modelos compitan y luego elegir el mejor camino.
Estos son los pasos que se siguen en el editor:
- Abrir la pestaña Local y seleccionar New worktree.
- Cambiar el modelo de Auto a Composer 2.5 Fast, pegar el prompt y poner a correr el agente [01:55].
- Abrir un nuevo agente con New Agent en la parte superior izquierda.
- Seleccionar el proyecto, la rama Main y de nuevo New worktree.
- Pegar el mismo prompt, pero esta vez ejecutarlo con ChatGPT 5.5 [02:15].
El resultado es que la raíz del proyecto se duplica en dos copias distintas. Cada agente trabaja aislado y, cuando ambos terminan, tú evalúas los dos resultados antes de decidir cuál mezclas en la rama principal.
Cómo evaluar los cambios de cada agente
Cuando los dos subagentes terminan, toca revisar el gestor de cambios de cada uno.
Composer 2.5 modificó la configuración de TypeScript, agregó los scripts de test en el dominio, creó el documento de test de la función, generó la función para los hashes, el index de los exports, los types, la configuración de tests y actualizó el yarn.lock con las dependencias instaladas [03:00].
ChatGPT, por su parte, creó los scripts de tests, los tests de la función pura, la función flag evaluator y un index con los exports [03:30].
¿Cómo elijo qué solución de IA conservar? Compara los cambios de cada agente en el gestor de cambios y quédate con la más clara o minimalista. Aquí se eligió Composer por dividir mejor y ser más minimalista en el uso de funciones [03:40].
Cómo integrar el worktree elegido a tu rama principal
Una vez decides con cuál solución quedarte, la integración es directa. Abres el chat del agente ganador y, en la parte superior, das clic en el botón Move to local [04:00].
Ese botón mezcla el worktree dentro de tu rama principal y te deja seguir trabajando ahí, sin fricción. Así descartas la copia que no elegiste y consolidas solo el código que sí quieres en producción.
¿Para qué sirve el botón Move to local? Toma el worktree que seleccionaste y lo mezcla en tu rama principal, dejándote continuar el trabajo con esa versión [04:00].
Qué habilidades y conceptos refuerza esta metodología
El reto propuesto es crear tu propio experimento con worktrees. Puedes aplicarlo en el backend, como con el evaluador de flags, o en el frontend, generando dos interfaces distintas y quedándote con la que mejor te parezca.
Estos son los aprendizajes que se conectan a lo largo del módulo:
- Trabajar con Composer, el modelo de IA creado por Cursor para el desarrollo de software.
- Construir tu propio harness mediante MCPs y hooks que guían a los subagentes en sus tareas.
- Paralelizar tareas dándole contexto a cada subagente para que ejecute de inicio a fin, mientras tú decides cuáles van a producción [04:30].
El valor central está en la función pura del dominio: una lógica sin dependencias de UI ni efectos externos, que solo evalúa entradas y devuelve un resultado, cubriendo casos como flag apagada, activa y regla por ambiente.
¿Ya sabes en qué parte de tu proyecto pondrías a competir dos modelos? Cuéntame en los comentarios si lo probarías primero en backend o en frontend.