Objetivo del tema
Coordinar trabajo de desarrollo complejo mediante ramas y worktrees de Git, sesiones paralelas, Fork y subagentes, manteniendo aislados el historial de conversación, los archivos y las decisiones que no deben interferirse.
| Mecanismo | Qué separa | Qué no separa automáticamente |
|---|---|---|
| Nueva sesión | Conversación, instrucciones e historial. | Archivos del proyecto y directorio de trabajo compartido. |
| Fork de Bionic | Una alternativa de conversación desde una respuesta concreta. | Rama, working tree o procesos de Git. |
| Rama de Git | Historial de commits y línea de desarrollo. | Archivos simultáneos si se usa el mismo working tree. |
| Git worktree | Directorio de trabajo y rama en una carpeta independiente. | Servicios externos, puertos, bases de datos o cachés compartidos. |
| Subagente | Una subtarea y su contexto operativo. | Recursos y archivos, salvo que el flujo los aísle expresamente. |
La documentación de Bionic define Fork como una nueva rama de sesión abierta junto a la original. No indica que cree una rama de Git. Por seguridad, trata ambos mecanismos como independientes.
Git permite responder qué cambió, quién lo incorporó y desde qué estado. Antes de delegar:
Trabaja desde un commit conocido, registra cambios preexistentes y evita mezclar tareas independientes en el mismo commit. Bionic puede utilizar Git, pero la decisión de crear una rama, confirmar, fusionar o publicar debe formar parte explícita del encargo.
Una rama debe representar un resultado coherente y revisable. Usa nombres descriptivos como fix/normalizar-codigos o docs/guia-instalacion.
La prohibición de publicar o reescribir historial es especialmente importante cuando el agente sólo fue autorizado a implementar localmente.
Un commit útil:
Antes de autorizar un commit, revisa git diff --staged. La frase «crea un commit» no implica permiso para hacer push.
Bionic permite abrir sesiones en pestañas y continuar tareas en segundo plano aunque cambies de pestaña o proyecto. Esto resulta útil para:
Un indicador aparece junto a una sesión cuando Bionic termina el trabajo en segundo plano. Revisa el resultado antes de iniciar una acción dependiente.
Las sesiones de un mismo proyecto comparten los archivos y, en un proyecto de código, pueden apuntar al mismo directorio local. Dos ediciones simultáneas pueden:
| Combinación | Riesgo | Medida |
|---|---|---|
| Dos investigaciones de sólo lectura | Bajo | Definir preguntas diferentes y un formato común de entrega. |
| Lectura y edición en el mismo directorio | Medio | Advertir al revisor que el estado puede cambiar mientras inspecciona. |
| Ediciones en archivos distintos del mismo directorio | Medio-alto | Preferir worktrees; scripts y formatters pueden tocar ambos conjuntos. |
| Ediciones en los mismos archivos | Alto | Serializar o usar worktrees y fusionar después. |
| Dos sesiones cambiando ramas | Alto | Nunca hacerlo en el mismo working tree. |
| Dos tareas con worktrees y recursos independientes | Controlado | Revisar cada rama y fusionar en orden. |
git worktree crea directorios separados vinculados al mismo repositorio. Desde una línea base limpia y conocida:
Cada carpeta tiene su propia rama y archivos. Abre cada una como directorio de trabajo separado en Bionic. Verifica antes que las rutas ../inventario-docs y ../inventario-estadisticas no existan y permanezcan dentro del directorio previsto.
Usa Fork sobre una respuesta elegible cuando quieras comparar dos caminos desde el mismo contexto:
Mantén ambas ramas en modo de sólo lectura hasta elegir. Si permites que editen el mismo directorio, los archivos dejarán de reflejar alternativas independientes. Bionic 1.1.1 corrigió además un problema donde mover una sesión bifurcada también movía su sesión padre.
| Situación | Elección |
|---|---|
| Continuar corrigiendo el mismo cambio | Misma sesión. |
| Comparar dos soluciones desde el mismo diagnóstico | Fork. |
| Investigar una tarea independiente en el mismo proyecto | Nueva sesión. |
| Modificar una rama distinta en paralelo | Nuevo worktree y sesión asociada a esa carpeta. |
| Trabajar en otro repositorio | Otro proyecto o directorio claramente separado. |
Un subagente es un proceso especializado que trabaja como parte de una tarea principal y devuelve sus hallazgos al agente coordinador. Bionic documenta agentes de exploración en la configuración y utiliza subagentes especializados, por ejemplo para visión y para revisar comandos de shell en Auto Review.
La disponibilidad y forma exacta de uso dependen de la versión, la configuración, el modelo y la tarea. El agente principal puede decidir delegar; el usuario debe evaluar el resultado consolidado, no asumir que varias opiniones garantizan corrección.
Evita delegar a varios subagentes cambios solapados en los mismos archivos. La exploración de sólo lectura es el punto de partida más seguro.
Cada subtarea necesita objetivo, alcance, prohibiciones y formato de retorno:
El agente coordinador debe comprobar evidencia, reconciliar desacuerdos y decidir qué información pasa al plan.
Dos subagentes pueden compartir el mismo modelo, contexto parcial o supuesto equivocado. Para obtener verificación real:
El paralelismo puede multiplicar solicitudes, tokens, memoria, herramientas y procesos. Con modelos locales, varias tareas pueden competir por CPU, GPU y contexto; con modelos cloud, pueden aumentar consumo y créditos.
Limita cantidad de sesiones y subagentes, define criterios de detención y evita duplicar la misma búsqueda. Una tarea secuencial breve puede ser más barata y rápida que coordinar varias ramas.
Antes de fusionar ramas o implementar un informe de subagentes, crea una tabla de integración:
| Tarea | Base | Archivos | Pruebas | Estado |
|---|---|---|---|---|
| Documentación | Commit de origen | README y guías | Enlaces o lint | Pendiente / aprobada |
| Funcionalidad | Commit de origen | Código y tests | Suite enfocada | Pendiente / aprobada |
| Revisión | Diff exacto | Sólo lectura | Hallazgos | Resuelta / abierta |
Registra el commit base porque dos ramas creadas en momentos distintos pueden comparar estados diferentes.
Antes de cada merge:
No pidas resolver conflictos automáticamente sin entender ambas intenciones. Un archivo sin marcadores puede seguir siendo semánticamente incorrecto.
| Tipo | Ejemplo | Respuesta |
|---|---|---|
| Textual | Dos ramas cambian las mismas líneas. | Comparar intenciones y resolver manualmente. |
| Semántico | Archivos distintos cambian contratos incompatibles. | Ejecutar integración, tipos y pruebas de consumidores. |
| Dependencias | Dos lockfiles o versiones incompatibles. | Regenerar con el gestor correcto y auditar el resultado. |
| Entorno | Dos tareas esperan el mismo puerto o base de datos. | Aislar recursos y repetir la prueba. |
| Producto | Las ramas implementan decisiones contradictorias. | Detener el merge y pedir una decisión humana. |
Crear cambios locales no autoriza automáticamente a:
Estas operaciones afectan a otras personas o sistemas. Deben estar expresamente incluidas en el objetivo y revisarse antes de ejecutarse.
Utiliza inventario-demo de los temas 13 y 14. Asegúrate de que sus pruebas pasen y el repositorio esté limpio. Desde su carpeta raíz crea dos worktrees:
Abre ../inventario-docs como un proyecto o directorio separado y solicita:
Abre ../inventario-estadisticas en otro proyecto y solicita:
tarea/estadisticas y ejecuta npm test.tarea/docs, revisa el README y repite las pruebas.buscarPorCodigo.
| Problema | Comprobación o solución |
|---|---|
| Dos sesiones mezclan cambios. | Detén ambas, revisa Git y reasigna cada tarea a un worktree separado. |
| Un Fork modifica la alternativa original. | Ambas conversaciones comparten directorio; vuelve a la base y utiliza worktrees. |
| Git dice que la rama ya está en uso. | Consulta git worktree list; una rama no puede estar activa en dos worktrees. |
| Las ramas pasan solas pero fallan juntas. | Busca conflicto semántico, dependencia, esquema o recurso compartido. |
| El subagente devuelve afirmaciones incompatibles. | Exige evidencia, marca la contradicción y decide en el agente principal. |
| El equipo se queda sin memoria o créditos. | Reduce concurrencia, usa tareas secuenciales o selecciona modelos apropiados. |
| Una tarea publicó cambios. | Detén nuevas acciones, registra el estado y coordina la recuperación; no reescribas historia compartida sin acuerdo. |
En el próximo tema aprenderemos a utilizar, crear, instalar y compartir Skills con instrucciones reutilizables.
Fuentes oficiales consultadas: sesiones, trabajo en segundo plano y Fork, código, Git y revisión, proyectos y trabajo con repositorios, subagente revisor y estructura de Fork, flujos agénticos de varios pasos, agentes de exploración y cambios actuales de subagentes, Git y sesiones.