SpyBara
Go Premium

goal.md 2026-09-08 20:00 UTC to 2026-09-09 22:58 UTC

This page contains 66 additions and 28 deletions.

2026
Wed 9 22:58 Sat 12 03:02 Mon 14 22:58

Mantener a Claude trabajando hacia un objetivo

Establezca una condición de finalización con /goal y Claude seguirá trabajando hasta que se cumpla, un modelo juzgue que es imposible, o un error que deba corregir borre el objetivo.

El comando /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:

Enfoque El siguiente turno comienza cuando Se detiene cuando
/goal El turno anterior finaliza, o una verificación de inactividad vence mientras el trabajo en segundo plano mantiene el objetivo esperando, hasta tres veces por objetivo entre sus solicitudes Un modelo confirma que se cumple la condición o la juzga imposible, o un turno falla en un error que debe corregir, o ejecuta /goal clear
/loop Transcurre un intervalo de tiempo Usted lo detiene, o Claude decide que el trabajo está hecho
Stop hook El turno anterior finaliza Su propio script o solicitud decide

/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`

Un objetivo puede estar activo por sesión. El mismo comando lo establece, verifica y 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 all tests in test/auth pass and the lint step is clean

Establecer un objetivo inicia un turno inmediatamente, con la condición misma como directiva. No necesita enviar una solicitud separada. Mientras el objetivo está activo, un indicador ◎ /goal active muestra cuánto tiempo ha estado 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 las llamadas a herramientas que su configuración no permite, 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 de él. La vista de estado también muestra la razón más reciente, para que pueda ver hacia qué está trabajando Claude a continuación.

Escribir una condición efectiva

El evaluador juzga su condición contra lo que Claude ha presentado en la conversación. No ejecuta comandos ni lee archivos de forma independiente, así que escriba la condición como algo que la salida propia de Claude pueda demostrar. "Todas las pruebas en test/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 en 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 test sale 0" o "git status está limpio"
  • Restricciones que importan: cualquier cosa que no deba cambiar en el camino, como "ningún otro archivo de prueba se modifica"

La condición puede tener hasta 4.000 caracteres.

Para limitar cuánto tiempo se ejecuta un objetivo, incluya una cláusula de turno o tiempo en la condición, como or stop after 20 turns. Claude reporta 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.

/goal

Si un objetivo está activo, el estado muestra:

  • La condición
  • Cuánto tiempo ha estado ejecutándose
  • Cuántos turnos han sido evaluados
  • El gasto de tokens actual
  • La razón más reciente del evaluador

El recuento de turnos y la razón más reciente aparecen después de que se haya ejecutado la primera evaluación.

Si no hay un objetivo activo pero se logró uno anteriormente en la sesión, el estado muestra la condición lograda junto con su duración, recuento de turnos y gasto de tokens.

Borrar un objetivo

Ejecute /goal clear para eliminar un objetivo activo antes de que se resuelva.

/goal clear

Claude imprime 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 o nombre de sesió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 mantiene 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 completarse en una única invocación:

claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

Con el formato de salida de texto predeterminado, nada se imprime hasta que se cumpla la condición, por lo que un objetivo que se ejecuta muchos turnos puede parecer atascado. Agregue --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.

Si Claude sigue respondiendo al evaluador sin hacer progreso (sin uso de herramientas durante varios turnos seguidos), Claude Code detiene el bucle, imprime una advertencia y devuelve el control a usted con el objetivo aún establecido. La evaluación se reanuda después de su siguiente solicitud. La guía de hooks explica el mecanismo subyacente.

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 con Goal 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

Después de cualquier otro fallo, incluidos errores transitorios como límites de velocidad y servidores sobrecargados, Claude Code deja el objetivo activo.

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.

Antes de v2.1.239, solo las verificaciones inactivas se retrasaban de esta manera; una verificación entregada al final de un turno se repetía en el primer intervalo.

Para cambiar el primer intervalo, establezca 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. Las verificaciones requieren Claude Code v2.1.234 o posterior.

Modelo de evaluación y costo

Para evaluar en un modelo diferente, establezca ANTHROPIC_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.

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