Cargando

Dirigiendo sesiones largas

Lección 16 min
Cargando

Dirigiendo sesiones largas

Indicarle a Claude que resuelva una tarea rápida es fácil. Preguntas, funciona, revisas el resultado. Pero las tareas largas son un juego diferente. Refactorizar una docena de archivos o construir una nueva función puede tomar horas. Y cuanto más tengas que dirigir a Claude en el camino, más se alarga.

La buena noticia es que tienes muchas herramientas para ayudar a Claude durante estas sesiones largas. En realidad se reduce a dos hábitos: delimitar el trabajo antes de que Claude empiece, y dirigirlo mientras se ejecuta. Repasemos ambos.

Delimita el trabajo primero con el modo de planificación

Antes de que Claude escriba una sola línea, haz que elabore un plan. En el modo de planificación, Claude hace su investigación sin editar tus archivos fuente. Lee el código, descubre qué necesita cambiar y te entrega un plan para revisar.

Cuando recibas ese plan, léelo de verdad. No lo hojees. Cuanto más detallado sea el plan, menos sorpresas tendrás una vez que Claude empiece a ejecutarlo. Si algo está mal o falta, simplemente pídele a Claude que lo agregue donde quieras. Iterar sobre un plan es mucho más rápido que dejar que Claude se ejecute y esperar lo mejor, para luego limpiar el desorden.

Dirige mientras Claude trabaja

Una vez que Claude está en marcha, tienes varias formas de mantenerlo apuntando en la dirección correcta. La primera es la compactación.

Compactar

Compactar resume tu conversación, usa ese resumen como el nuevo contexto y elimina los mensajes antiguos. Esto libera tu ventana de contexto para que Claude pueda seguir adelante. El riesgo es que algo importante se pierda en el resumen y Claude se desvíe del rumbo.

Así que no ejecutes /compact solo, sin más. Agrega instrucciones después del comando para decirle a Claude cómo resumir. Por ejemplo, si terminaste de depurar hace un rato y ahora solo te importan algunos cambios de la API, dilo:

/compact Enfócate en la implementación de la bandera --version

Todo lo que escribas después del comando da forma a lo que conserva el resumen. Ese es tu volante para el contexto.

Rebobinar

Cuando Claude se dirige por el camino equivocado, no tienes que indicarle tu salida con prompts. Rebobinar te lleva a tu último punto de control. Cada prompt de usuario crea un punto de control al que puedes volver. Para abrir el menú, presiona escape dos veces en un prompt vacío.

Desde el menú de rebobinado tienes varias opciones:

  • Restaurar código y conversación - retrocede ambos juntos.
  • Restaurar conversación - retrocede solo el chat.
  • Restaurar código - retrocede solo los archivos.
  • Resumir desde aquí - resume todo lo que ocurre después del punto de control. Genial si tuviste una conversación paralela y solo quieres liberar algo de espacio.
  • Resumir hasta aquí - resume todo lo que ocurre antes del punto de control. Genial cuando tuviste una fase de configuración larga que quieres comprimir, pero quieres mantener intactas las partes de implementación.

Deja que Claude se ejecute de forma más autónoma

Todo lo anterior asume que estás involucrado de cerca, observando y corrigiendo. Si quieres algo más autónomo, están goal y loop.

Goal

Goal establece una condición de finalización. Describes cómo se ve "terminado", y Claude sigue trabajando a lo largo de los turnos hasta que un evaluador rápido confirma que se cumplen esas condiciones. No se detendrá simplemente la primera vez que crea que terminó.

Por ejemplo:

/goal todas las pruebas en src/billing pasan, y el verificador de tipos reporta cero errores

Para cancelarlo, ejecuta /goal clear. Una restricción importante: el evaluador solo lee la transcripción. Así que tu condición debe poder verificarse a partir de la salida que Claude realmente produce, como los resultados de una ejecución de pruebas.

Loop

Loop ejecuta un prompt en un intervalo entre turnos, ya sea fijo o a su propio ritmo. Úsalo para sondear algo externo, como una ejecución de CI o un despliegue, y actuar cuando el estado cambie.

Para detener un loop a su propio ritmo mientras espera su próxima ejecución, presiona escape. Un loop con intervalo fijo sigue ejecutándose hasta que le pidas a Claude que lo cancele o pasen siete días.

Ejecuta trabajo en paralelo con worktrees

La metáfora de dirección hasta ahora asume un volante en un auto. Pero cuando estás ejecutando varios agentes en la misma base de código, no quieres dos volantes en un auto. Eso es inseguro. Dos sesiones de Claude peleando por los mismos archivos lleva a conflictos.

Ahí es donde entran los worktrees. En lugar de que las sesiones se pisen entre sí, cada una obtiene su propio árbol de archivos independiente.

Debido a que cada agente tiene su propio árbol, no pueden sobrescribir los cambios del otro. Cuando una sesión termina, un worktree limpio se elimina automáticamente.

Hay un archivo útil que debes conocer. Un archivo .worktreeinclude en la raíz del repositorio enumera los archivos ignorados por git que se deben copiar a cada worktree. Esto es útil para cosas como un archivo de variables de entorno o una configuración local que necesitas en cada worktree pero que no quieres confirmar en el control de versiones.

Juntándolo todo

Manejar sesiones largas de Claude Code se reduce a un puñado de hábitos:

  1. Delimita tu trabajo primero, luego dirige.
  2. Dirige tu compactación para que el resumen conserve lo que importa.
  3. Usa el menú de rebobinado para corregir el rumbo cuando Claude se desvíe.
  4. Establece un goal cuando puedas describir "terminado" mejor de lo que puedes describir los pasos.
  5. Ejecuta trabajo en paralelo en worktrees.

Haz eso, y podrás confiar en una ejecución larga sin vigilar cada paso de ella.