/goal establece una condición de finalización y Claude sigue trabajando hacia ella sin que usted solicite cada paso. Después de cada turno, un modelo pequeño y rápido verifica si se cumple la condición. Si el modelo juzga que aún no se cumple, Claude inicia otro turno en lugar de devolver el control a usted. El objetivo se borra automáticamente una vez que se cumple la condición, si el modelo juzga que la condición es imposible de satisfacer, o si un turno falla en un error que deba corregir.
Utilice un objetivo para trabajo sustancial con un estado final verificable:
- Migrar un módulo a una nueva API hasta que cada sitio de llamada se compile y las pruebas pasen
- Implementar un documento de diseño hasta que se cumplan todos los criterios de aceptación
- Dividir un archivo grande en módulos enfocados hasta que cada uno esté dentro de un presupuesto de tamaño
- Trabajar a través de un backlog de problemas etiquetados hasta que la cola esté vacía
Comparar formas de mantener una sesión en ejecución
Tres enfoques mantienen la sesión actual en ejecución entre solicitudes. Elija según lo que deba iniciar el siguiente turno:/goal y un Stop hook se activan después de cada turno. /goal es un atajo con alcance de sesión: escribe una condición y está activa solo para la sesión actual. Un Stop hook vive en su archivo de configuración, se aplica a cada sesión en su alcance y puede ejecutar un script para verificaciones deterministas o una solicitud para evaluaciones basadas en modelos.
El modo automático por sí solo aprueba llamadas de herramientas dentro de un único turno pero no inicia uno nuevo. Claude se detiene cuando juzga que el trabajo está hecho. /goal añade un evaluador separado que verifica su condición después de cada turno, por lo que la finalización es decidida por un modelo nuevo en lugar del que realiza el trabajo. Los dos son complementarios: el modo automático elimina solicitudes por herramienta, y /goal elimina solicitudes por turno.
Usar /goal
Solo un objetivo puede estar activo por sesión. El mismo comando establece, verifica y lo borra según el argumento.
Establecer un objetivo
Ejecute/goal seguido de la condición que desea que se cumpla. Si ya hay un objetivo activo, el nuevo lo reemplaza.
◎ /goal active muestra cuánto tiempo lleva ejecutándose el objetivo.
Un objetivo no cambia su modo de permisos. Para permitir que los turnos de objetivo se ejecuten sin supervisión, ejecute /goal en modo automático. En modo Manual, Claude aún pregunta antes de llamadas a herramientas que su configuración no permita, como el comando de prueba anterior.
Mientras el objetivo está activo, la transcripción muestra cada veredicto que devuelve el evaluador, y puede presionar Ctrl+O para ver la razón detrás del mismo. La vista de estado también muestra la razón más reciente, para que pueda ver hacia dónde está trabajando Claude a continuación.
Escribir una condición efectiva
El evaluador juzga su condición contra lo que Claude ha expuesto en la conversación. No ejecuta comandos ni lee archivos de forma independiente, así que escriba la condición como algo que la propia salida de Claude pueda demostrar. “Todas las pruebas entest/auth pasan” funciona porque Claude ejecuta las pruebas y el resultado aparece en la transcripción para que el evaluador lo lea.
Una condición que se mantiene a lo largo de muchos turnos generalmente tiene:
- Un estado final medible: un resultado de prueba, un código de salida de compilación, un recuento de archivos, una cola vacía
- Una verificación establecida: cómo Claude debe probarlo, como “
npm testsale con 0” o “git statusestá limpio” - Restricciones que importan: cualquier cosa que no debe cambiar en el camino, como “ningún otro archivo de prueba se modifica”
or stop after 20 turns. Claude informa el progreso contra esa cláusula cada turno y el evaluador la juzga desde la conversación.
Verificar estado
Ejecute/goal sin argumentos para ver el estado actual.
- La condición
- Cuánto tiempo lleva ejecutándose
- Cuántos turnos se han evaluado
- El gasto de tokens actual
- La razón más reciente del evaluador
Borrar un objetivo
Ejecute/goal clear para eliminar un objetivo activo antes de que se resuelva.
Goal cleared: seguido de la condición para confirmar, o No goal set si nada estaba activo.
stop, off, reset, none y cancel se aceptan como alias para clear. Ejecutar /clear para iniciar una nueva conversación también elimina cualquier objetivo activo.
Reanudar con un objetivo activo
Cuando reanuda una sesión, Claude Code restaura un objetivo que aún estaba activo cuando terminó la sesión. Claude Code lo restaura en cada ruta de reanudación:--continue, --resume con un ID de sesión, nombre o ruta de archivo de transcripción, y el selector de sesión. Antes de v2.1.239, Claude Code restauraba el objetivo en cada ruta excepto el selector claude --resume.
Claude Code lleva la condición pero reinicia el recuento de turnos, el temporizador y la línea de base de gasto de tokens. No restaura un objetivo que ya se logró o se borró.
Ejecutar de forma no interactiva
/goal funciona en modo no interactivo, en la aplicación de escritorio y a través de Control Remoto. Establecer un objetivo con -p ejecuta el bucle hasta su finalización en una sola invocación:
--output-format stream-json --verbose para emitir cada mensaje mientras se ejecuta el bucle.
Interrumpa el proceso con Ctrl+C para detener un objetivo no interactivo antes de que se resuelva.
Cómo funciona la evaluación
/goal es un envoltorio alrededor de un Stop hook basado en solicitud con alcance de sesión. Cada vez que Claude termina un turno, Claude Code envía la condición y la conversación hasta ahora a su modelo pequeño y rápido configurado, que por defecto es Haiku en la API de Claude; en un proveedor de terceros, consulte su página de proveedor para conocer el valor predeterminado de la plataforma. El modelo devuelve uno de tres veredictos, cada uno con una breve razón:
- Aún no se cumple: Claude sigue trabajando y toma la razón como orientación para el siguiente turno.
- Cumplido: Claude Code borra el objetivo y registra una entrada lograda en la transcripción.
- Imposible: el evaluador juzgó que la condición nunca puede satisfacerse. Claude Code borra el objetivo y registra una entrada fallida en la transcripción junto con la razón. No necesita borrarla usted mismo.
Cuando un turno falla
Cuando un turno falla, Claude Code borra el objetivo si el error es uno que usted tiene que corregir. Después de cualquier otro error, el objetivo permanece establecido.Los errores que debe corregir borran el objetivo
Si un turno falla en un error que no se borrará hasta que lo corrija, Claude Code borra el objetivo e imprime una advertencia nombrando la causa. La advertencia comienza conGoal cleared after an unrecoverable error y termina con Run /goal again to continue. Corrija la causa, luego establezca el objetivo nuevamente con /goal <condition>. Cuatro tipos de fallo borran el objetivo:
- Un fallo de autenticación, cuando Claude Code gestiona sus propias credenciales. Cuando un host las gestiona por usted, como la aplicación de escritorio, la extensión de VS Code o una sesión en la nube, Claude Code deja el objetivo activo porque el host restaura el acceso por su cuenta.
- Un saldo de crédito agotado
- Un desbordamiento de contexto que auto-compact no pudo borrar
- Un modelo que no está disponible
Otros errores reintentan o pausan el objetivo
Después de cualquier otro fallo, el objetivo permanece establecido. En una sesión interactiva en Claude Code v2.1.269 o posterior, Claude Code también imprime una línea nombrando la causa e intenta de nuevo por su cuenta o espera a usted:- Reintentar: después de un fallo que tiende a resolverse por sí solo, como un servidor sobrecargado o una conexión perdida, un aviso que comienza con
Goal still activemuestra la espera antes del siguiente intento. Después de tres reintentos automáticos, el objetivo se pausa en su lugar. - Pausar: después de un fallo que un reintento solo repetiría, como un límite de velocidad de API, un límite de uso de claude.ai, o un hook que terminó el turno, un aviso que comienza con
Goal pausednombra la causa. Si la sesión está esperando continuar automáticamente cuando se restablece un límite de uso, Claude reanuda el trabajo hacia el objetivo entonces.
CLAUDE_CODE_GOAL_CHECKIN_MINUTES en 0, lo que también desactiva las verificaciones.
El trabajo en segundo plano difiere la evaluación
Si un subagente o un comando de shell en segundo plano aún se está ejecutando cuando termina un turno, Claude Code omite la evaluación para ese turno. Evalúa al final del siguiente turno que termina sin trabajo en segundo plano ejecutándose. Cuando el trabajo en segundo plano termina, Claude Code entrega el resultado a Claude como un nuevo turno, por lo que no tiene que solicitar. Una vez que el trabajo en segundo plano ha mantenido el objetivo esperando durante 30 minutos, se debe una verificación. En la verificación, Claude Code enumera las tareas en ejecución y le pide a Claude que lea su salida, siga esperando si están progresando, y corrija o detenga cualquiera que esté atascada. Después de la primera verificación, Claude Code espera el doble de tiempo antes de cada verificación posterior, hasta cuatro veces el primer intervalo: con el valor predeterminado, 1 hora después de la primera verificación, luego cada 2 horas. Claude Code entrega una verificación vencida, la primera incluida, de una de dos maneras:- Cuando termina un turno: Claude Code entrega la verificación al final del siguiente turno que termina con el trabajo aún en ejecución. En una sesión no interactiva, como una iniciada con
-p, esta es la única forma en que Claude Code entrega verificaciones. - Mientras la sesión está inactiva: en una sesión interactiva, Claude Code también inicia un turno por su cuenta para entregar la verificación en lugar de esperar su siguiente solicitud. Si el trabajo en segundo plano se ha detenido sin reportar un resultado, Claude Code le pide a Claude que continúe hacia el objetivo. Claude Code inicia como máximo tres verificaciones inactivas por objetivo entre sus solicitudes. En la tercera verificación inactiva, Claude Code dice que las verificaciones inactivas se pausan hasta que envíe otra solicitud. Antes de v2.1.246, las verificaciones inactivas eran ilimitadas. Las verificaciones inactivas requieren Claude Code v2.1.236 o posterior.
CLAUDE_CODE_GOAL_CHECKIN_MINUTES. Claude Code usa su valor en lugar del intervalo de 30 minutos y escala los intervalos posteriores con él. Establézcalo en 0 para desactivar las verificaciones y los reintentos automáticos.
Las verificaciones requieren Claude Code v2.1.234 o posterior.
Modelo de evaluación y costo
Para evaluar en un modelo diferente, establezcaANTHROPIC_DEFAULT_HAIKU_MODEL.
El evaluador se ejecuta en cualquier proveedor para el que esté configurada su sesión. No llama a herramientas, por lo que solo puede juzgar lo que Claude ya ha presentado en la conversación.
Los tokens de evaluación se facturan en el modelo pequeño y rápido configurado para su proveedor y son típicamente insignificantes en comparación con el gasto de turno principal.
Requisitos
Claude Code pone/goal disponible bajo la misma regla de confianza del espacio de trabajo que los hooks en archivos de configuración, porque el evaluador es parte del sistema de hooks. /goal también no está disponible cuando disableAllHooks es true después de que se aplica la precedencia de configuración, o cuando allowManagedHooksOnly se establece en la configuración administrada. En cada caso, el comando le indica por qué en lugar de no hacer nada silenciosamente.
Ver también
- Ejecutar una solicitud repetidamente con
/loop: volver a ejecutar en un intervalo de tiempo en lugar de hasta que se cumpla una condición - Hooks basados en solicitud: escriba su propio Stop hook cuando necesite lógica de evaluación personalizada
- Modo automático: apruebe llamadas de herramientas automáticamente para que cada turno de objetivo se ejecute sin supervisión
- Comparación de programación: ejecute trabajo en un horario independiente de cualquier sesión abierta