comunidadbóvedaLoop de Verificación
el loop de verificación · agosto de 2026

El estándar lo escribes tú una vez. Cerrarlo ya no es tu trabajo.

Le pides algo a Claude, te lo entrega, lo revisas, no está como lo querías, se lo regresas. Ese ir y venir se llama loop de verificación, y hoy lo estás cerrando tú, a mano, cada vez. Aquí está cómo se cierra solo: el estándar que escribes una vez, y los tres cerradores automáticos que lo usan — /goal para llegar, /loop para mantener, y un hook, que es una regla que dejas puesta en la configuración, para que deje de depender de que te acuerdes.

Guía comunidad · 3 de agosto de 2026

Dos piezas: con qué se mide el trabajo, y quién decide que ya. Nueve paradas, siete prompts para copiar y cinco recetas completas.

Casi todos los loops se rompen en el mismo punto, y no es donde crees: el que juzga no puede ver la prueba. El modelo que revisa si tu meta se cumplió no abre tus archivos ni corre comandos — solo lee lo que Claude ya dejó escrito en la conversación. Por eso un criterio como «que quede bien» nunca se cumple, y uno como «corre las pruebas y pega la salida aquí» sí. En esta guía armas el estándar completo, aprendes a escribir criterios que obligan a enseñar la prueba, y los enchufas a los tres cerradores automáticos según lo que necesites que dispare el siguiente turno.

guía comunidad · agosto 20267 prompts para copiar/goal y /loop, combinadoshooks de prompt y de agentela regla de la evidencia5 recetas completasel que juzga no corre comandosel tope de los 8 bloqueosverificado contra la doc oficial

01 · el ir y venir

Ya tienes un loop de verificación. El problema es que lo cierras tú

Le pides algo a Claude. Te lo entrega. Lo lees y no está como lo querías: le faltó el caso raro, movió algo que nadie pidió, o quedó bien pero no como lo haces tú. Se lo regresas con la corrección, te lo entrega otra vez, y ahora sí. Eso que acabas de hacer ya tiene nombre.

Se llama loop de verificación, y Anthropic lo define así: un ciclo que se repite en el que el agente revisa su propio trabajo — corre pruebas, revisores de estilo o comprobaciones que tú escribiste — y arregla lo que falla antes de seguir. Toda la definición se apoya en dos palabras: su propio. El ciclo existe cuando la revisión ya no la tienes que hacer tú.

Y hay algo que sorprende la primera vez que lo oyes: Claude ya hace un ciclo parecido dentro de un solo turno. Junta el contexto de lo que le pediste, actúa, revisa el resultado de lo que hizo y repite si hace falta, todo antes de contestarte. La maquinaria ya está puesta. Lo que no tiene es tu vara para medir el trabajo, ni tu permiso para seguir solo.

Por eso conviene abrir el loop en sus dos piezas desde ahora, porque el resto de la guía se cuelga de esa separación. Una dice con qué se mide el trabajo. La otra dice quién decide que ya está.

pieza 1

El estándar — con qué se mide el trabajo

Es la lista que corres en tu cabeza cada vez que revisas algo. Nunca la escribiste, pero existe: es lo mismo que corriges vuelta tras vuelta. Que el cambio venga con su prueba. Que no se haya tocado lo que nadie pidió tocar. Que el resumen quepa en una pantalla.

Hoy esa lista vive en tu cabeza, y por eso Claude no la puede usar. No es que se niegue a cumplirla: es que no la conoce. Cada vez que se la dictas en un mensaje se la estás prestando por un rato, y a la siguiente sesión ya no está.

Se escribe una sola vez. Secciones 02 y 03.

pieza 2

El cerrador — quién decide que ya está

Alguien tiene que ver el trabajo, medirlo contra el estándar y tomar una de dos decisiones: se acabó, o va otra vuelta. Ese veredicto es lo que dispara el siguiente turno o lo que apaga el ciclo.

Hoy el cerrador eres tú. Por eso el loop solo avanza cuando estás sentado frente a la pantalla, y se queda congelado en cuanto te levantas por un café.

Se elige según lo que quieras que dispare el siguiente turno. Secciones 04, 05 y 06.

Que el cerrador seas tú tiene un costo que casi no se nota, porque lo pagas en cuotas chicas. Cada vuelta necesita tres cosas al mismo tiempo: que estés ahí, que te acuerdes de qué revisaste la vez pasada, y que revises con el mismo criterio de ayer. Las tres fallan.

Estar ahí falla porque tienes junta. Acordarte falla porque el jueves revisaste seis cosas y hoy te acuerdas de dos. Y el criterio falla en silencio, que es lo peor de los tres: el lunes rechazas algo que el jueves dejaste pasar, y ninguna de las dos decisiones quedó anotada en ningún lado.

Anthropic lo resume en una línea que vale la pena tener a la mano: cualquier cosa que sigas teniendo que hacer cumplir a mano, revisándola tú cada vez, es candidata a volverse un loop.

antes de seguir

No toda chamba amerita un loop

Si es un archivo y una decisión, revisarlo tú es más rápido y más barato. Montar el loop te cuesta media hora entre escribir el estándar y elegir el cerrador; revisar ese archivo te cuesta dos minutos. Los números no dan.

Esto se justifica cuando la misma revisión se repite. Cuando ya corregiste lo mismo tres veces esta semana, cuando el trabajo dura más de lo que aguantas mirando la pantalla, o cuando te importa que la vara sea la misma el lunes y el viernes. Si no estás en ninguno de esos tres casos, cierra la guía y sigue revisando a mano.

El orden de aquí en adelante es ese: primero escribes el estándar una sola vez, y después eliges quién lo cierra.

Al final vienen las recetas completas para cinco chambas reales, y los seis modos en que esto se rompe cuando se rompe.

02 · el estándar

La lista que corres en tu cabeza, pero escrita

Tu estándar ya existe. Es la lista de cosas que revisas cada vez que Claude te entrega algo: que no hayan quedado mensajes de prueba tirados en el código, que los textos estén en español, que el archivo no se haya pasado de largo, que no se tocó lo que pediste que no se tocara. La corres en automático y por eso nunca la escribiste.

El estándar no se inventa: se descubre. No te sientes a imaginar qué te gustaría exigir, porque esa lista sale bonita y no se parece a tu trabajo. Ve a lo que ya corregiste. Eso es lo único que sabes con certeza.

Anthropic lo dice en dos movimientos y funcionan tal cual. El primero: apunta todo lo que te descubres haciendo cada vez que Claude termina una función. Ese reflejo de abrir el archivo y arreglar siempre lo mismo es el dato que andas buscando. El segundo: escribe la versión de buenas prácticas en español llano, como se la darías a alguien que entra al equipo el lunes y no conoce nada del proyecto.

Ese par de frases es todo el método. Lo demás es dónde lo guardas y quién lo va a leer. Y si no confías en tu memoria para el primer movimiento, que Claude lo saque de tu historial.

Sácame las comprobaciones que ya hago a mano

Antes de escribir el estándar tienes que saber cuál es. Este prompt lo deduce de tu propio historial en vez de pedirte que te acuerdes.

Quiero descubrir mi estándar de calidad a partir de lo que ya vengo corrigiendo, no de lo que creo que me importa.

Revisa el historial reciente de este proyecto: los últimos 20 cambios guardados, los mensajes con que se guardaron cuando digan "fix", "arregla", "ajusta" o parecidos, y los archivos que más veces se tocaron seguido de otro cambio inmediato en el mismo archivo. Si tengo comentarios de revisión guardados en el proyecto, léelos también.

Con eso, contéstame tres cosas:

1. Las correcciones que se repiten. Dime cada una en una línea, en lenguaje llano, con cuántas veces la viste y un ejemplo concreto de archivo y línea. Ordénalas de más repetida a menos.

2. Cuáles de esas se pueden medir sin que alguien opine. Sepáralas en dos listas: las que un comando puede comprobar (una prueba, un conteo, una búsqueda de texto en el código, o el código de salida — el número que devuelve un comando al terminar, donde cero quiere decir que salió bien) y las que necesitan criterio humano. Para las medibles, dime exactamente con qué comando se comprueban en este proyecto.

3. Cuáles de las medibles ya están cubiertas por algo que corre solo hoy — las pruebas, el revisor de estilo, el chequeo de tipos, o el sistema que corre todo eso cada vez que se sube un cambio — y cuáles no las agarra nada. Esas últimas son las que valen la pena escribir.

No escribas todavía ningún archivo ni cambies nada. Solo entrégame las tres respuestas y espera.

LA REGLA QUE MANDA

Entre más cuantitativas sean las comprobaciones, más fácil le resulta a Claude verificarse solo

Es la línea de Anthropic y es la que decide qué entra al archivo y qué no. Cuantitativo aquí no significa estadística: significa que la respuesta salga igual la lea quien la lea. Cuatro formas de lograrlo, y no hay una quinta:

  • Un número. El archivo no pasa de trescientas líneas. La página carga en menos de dos segundos.
  • Un conteo. Cuántas veces aparece algo que no debería aparecer, y ese conteo tiene que ser cero.
  • Una lista que queda vacía. Los avisos del revisor de estilo, los pendientes marcados en el código, los errores de tipos.
  • Un comando que termina bien o mal. Corre y pasa, o corre y falla. Sin punto medio y sin interpretación.

Todo lo que dependa de tu gusto se queda fuera del archivo. No porque no importe — importa, y por eso lo sigues revisando tú — sino porque un criterio de gusto nunca se da por cumplido, o peor, se da por cumplido a la primera y tú ni te enteras. Si no puedes decir cuál de esas cuatro formas tiene tu criterio, todavía no es un criterio.

Dónde vive el estándar

Ya que sabes qué mides, falta dónde lo guardas. Hay dos lugares y no dan lo mismo, porque se cargan en momentos distintos.

dóndequé guardas ahícuándo se carga
El archivo de instrucciones del proyecto (CLAUDE.md)Hechos que aplican siempre y caben en una línea: cómo se corren los tests, qué carpeta no se toca, en qué idioma van los textos.En cada sesión, desde el primer mensaje. Ocupa contexto todo el tiempo, así que cada línea de más la pagas siempre, la uses o no.
Una habilidad de verificación (un archivo dentro de .claude/skills/)Un procedimiento de varios pasos: qué comprobar, con qué comando y cuál es el resultado que cuenta como aprobado.Solo cuando se usa. El cuerpo no entra al contexto mientras no la necesites, así que puede ser largo sin costarte nada. Este es el dato bueno.

La regla de corte es corta: si es un hecho de una línea que siempre aplica, va en las instrucciones del proyecto. Si es un procedimiento con pasos, va en una habilidad.

Ese detalle de cuándo se carga cada cosa es el que casi nadie aprovecha. Una habilidad de verificación puede tener veinte pasos y no te cuesta nada mientras no la invoques. El archivo de instrucciones, en cambio, se lee completo en cada sesión, así que ahí solo caben las cosas cortas que de verdad aplican siempre.

El ejemplo que publica Anthropic

Anthropic publica una habilidad de verificación de ejemplo. Se llama verify-log-hygiene y sirve para una cosa muy concreta: que los registros que deja la aplicación cuando algo falla no se lleven datos del usuario de por medio. Los registros son las líneas que el programa escribe para dejar rastro de lo que pasó, y ahí se cuela información sensible con una facilidad que asusta.

Vale la pena verla por partes, porque la forma se repite en cualquier habilidad que escribas después.

Las cuatro partes del archivo, y para qué sirve cada una

  • Un nombre. Es como la invocas tú y como Claude la reconoce entre todas las demás.
  • Una descripción que dice en qué momento se usa, no nada más qué hace. Ese matiz decide si Claude la agarra solo cuando toca o si se queda ahí guardada sin que nadie la use nunca.
  • La lista de herramientas que se le permiten. Lo que la habilidad puede tocar mientras corre, y nada más que eso.
  • El cuerpo, que son los pasos. Primero: lee las rutas de manejo de errores del cambio actual, o sea los pedazos de código que corren cuando algo sale mal.
  • Después: por cada registro comprueba que traiga el identificador de la petición y que no incluya el contenido de la petición, ni los encabezados, ni nada que haya mandado el usuario.
  • Al final: reporta cada violación con archivo y línea, y arréglala. No se queda en señalar el problema.

Fíjate en lo que esa habilidad está pidiendo. No dice que escribas buenos registros: dice qué campo tiene que ir y qué campos no pueden ir, en este proyecto. Ningún revisor de estilo genérico agarra eso, porque ninguno sabe cómo se llama tu identificador de petición ni por qué a ti te importa que no aparezcan los encabezados.

Ese es exactamente el hueco que llena una habilidad de verificación: las reglas que solo existen aquí, y que hasta hoy solo vivían en tu cabeza.

Escribir esa habilidad a mano toma su rato y se te van a olvidar la mitad de los pasos. Este prompt te entrevista sobre tu chamba y deja el archivo puesto en el proyecto.

Escríbeme mi habilidad de verificación

Te entrevista sobre tu chamba y deja el archivo listo en .claude/skills/. Es la vara que después van a usar los tres cerradores.

Quiero que me escribas una habilidad de verificación para este proyecto: un archivo que tú mismo vas a leer y ejecutar cada vez que yo te pida comprobar un cambio, para que dejes de entregarme trabajo a medio revisar.

Primero entrevístame. Hazme las preguntas de una en una y espera mi respuesta antes de seguir:

1. ¿Qué tipo de cambio vamos a verificar? (una pantalla, un punto de entrada de tu servicio, una migración, un documento, otra cosa)
2. ¿Qué revisas tú a mano hoy, en el orden en que lo revisas, antes de darlo por bueno?
3. De esa lista, ¿qué se puede comprobar con un comando en este proyecto, y cuál es el comando exacto?
4. ¿Qué es lo que más veces se te ha colado roto?
5. ¿Hay algo que NO se debe tocar mientras se hace este trabajo? (archivos, carpetas, pruebas, configuración)

Cuando termine de contestar, escribe el archivo en .claude/skills/verificar-<nombre-corto>/SKILL.md con estas reglas:

- El encabezado del archivo — el bloque de datos que va hasta arriba — lleva "name" y una "description" que diga en qué momento se usa esta habilidad, no solo qué hace. Si la habilidad solo debe correr cuando yo la invoque, agrégale la línea disable-model-invocation: true, que le prohíbe a Claude lanzarla por su cuenta, y dímelo.
- El cuerpo es una lista numerada de pasos. Cada paso dice qué comprobar, con qué comando, y cuál es el resultado que cuenta como aprobado.
- Cada paso termina con la instrucción de pegar la prueba en la conversación: la salida del comando, el conteo, el código de salida. Escríbelo tal cual: "pega la salida aquí, aunque sea larga".
- Al final, un paso de cierre que te obliga a repetir la lista completa con una palomita por punto y a decir explícitamente cuáles no pasaron. Si algo no lo pudiste comprobar, se reporta como no comprobado, nunca como aprobado.
- Nada de criterios de gusto. Si algo no se puede medir, no entra en el archivo: me lo dices aparte para que yo decida.

Cuando esté escrito, enséñame el archivo completo y explícame en tres líneas cómo lo voy a invocar.

Los cuatro lugares donde puedes enchufarla

Ya que existe el archivo, falta decidir cuándo corre. La documentación oficial marca cuatro maneras de enchufarlo, de la más manual a la que no te necesita para nada.

01

Suelta

La invocas tú, cuando el trabajo ya existe. Sirve para las comprobaciones que no aplican siempre: la sacas el día que toca y el resto del tiempo ni la ves.

02

Pegada

Corre automáticamente como parte de la habilidad que produce el trabajo. Quien escribe también verifica, en la misma corrida, sin que nadie se lo recuerde.

03

Encadenada

Una habilidad llama a la siguiente al terminar. Así corren varias entregas verificadas de punta a punta, sin que tú tengas que meterte entre una y otra.

04

De pull request

Se aplica sola a cada pull request, que es la propuesta de cambio que alguien manda para que se revise antes de que entre al proyecto. Aquí la comprobación pasa sin que el autor haga nada.

ANTES DE ESCRIBIR NADA

Prueba primero la que ya viene puesta

Claude Code ya trae una habilidad llamada /verify. Construye tu aplicación, la arranca y comprueba que el cambio hace lo que debe hacer. Antes de sentarte a escribir la tuya, córrela y mira hasta dónde te alcanza: es probable que buena parte de tu lista ya esté cubierta y que lo tuyo sea solo lo que le falta.

Un detalle que cambió y conviene tener claro: desde hace unas versiones ya no se lanza sola. La invocas tú cuando la quieres.

La rutina completa de revisión — qué comando corre qué, en qué orden y qué te deja fuera cada uno — vive en su propia guía:

Revisa tu código con Claude · /verify, /code-review y /security-review

El estándar escrito no cierra nada por sí solo. Es la vara. Quien decide que ya está es la otra mitad del loop, y ahí es donde casi todo el mundo se equivoca.

03 · si no se ve, no cuenta

El que juzga no abre tus archivos

Vale la pena frenar aquí. Este es el dato que casi nadie tiene y el que rompe la mayoría de los loops de verificación.

Cuando le pones una condición de completitud a /goal, al terminar cada turno pasa algo muy concreto. Claude Code toma tu condición y la conversación hasta ese punto, y se las manda a un modelo chico y rápido: el evaluador. Ese modelo contesta una sola cosa, sí o no, y agrega una razón corta de por qué.

Lo que sigue depende de esa respuesta. Si dice que no, Claude arranca otro turno por su cuenta y toma esa razón como la instrucción de qué hacer ahora. Si dice que sí, la meta se limpia sola y el ciclo se acaba. Eso es todo el mecanismo, no hay más.

El detalle está en qué alcanza a ver ese modelo en el momento de decidir.

el punto ciego

El evaluador no llama herramientas

Está escrito así en la documentación oficial: ese modelo no llama herramientas. No abre tus archivos. No corre tus pruebas. No entra a tu proyecto ni consulta nada. Solo lee.

Lo único que tiene enfrente son tu condición y el texto de la conversación. Si algo no quedó escrito ahí, para él no existe.

El mecanismo completo del evaluador — cómo se configura, qué modelo lo corre, cómo se lee su veredicto — está desarmado pieza por pieza en la guía de /goal. Aquí no lo repetimos: lo que sigue es la consecuencia práctica, que es cómo se escriben los criterios para que ese modelo pueda decidir.

De ahí sale la regla que ordena esta guía completa: si no se ve, no cuenta. Claude pudo haber corrido la prueba, haberla visto pasar y haber seguido adelante. Si no pegó la salida en la conversación, para el que juzga esa prueba nunca ocurrió.

Esa es la causa número uno de metas que nunca se dan por cumplidas. No es que el trabajo esté mal, ni que el criterio sea imposible: es que la evidencia jamás llegó al único lugar donde el evaluador puede leerla. El ciclo da vueltas de más, la razón que devuelve suena sensata, y tú acabas pensando que el comando está descompuesto.

El ejemplo que trae la documentación oficial funciona justo por esto. Un criterio como todas las pruebas de la carpeta de autenticación pasan sirve porque, para cumplirlo, Claude tiene que correr las pruebas, y al correrlas el resultado aterriza en la conversación. El evaluador no comprobó nada: leyó lo que quedó escrito.

La documentación también es específica sobre qué trae una condición que aguanta muchas vueltas. Son tres ingredientes, y el que casi siempre falta es el tercero.

Los tres ingredientes de una condición que aguanta

01

Un estado final medible

Uno solo, no tres. Un resultado de prueba, un código de salida — el número que devuelve un comando al terminar, donde cero quiere decir que salió bien —, un conteo de archivos, una lista que quedó vacía.

Si tu estado final necesita una coma para explicarse, casi siempre son dos criterios metidos en uno. Parte el segundo y bájalo a restricción.

02

Un chequeo declarado

Cómo debe comprobarlo Claude, dicho por ti y no por él. Textualmente: que tal comando termine bien, que el estado del repositorio quede limpio — o sea, sin cambios pendientes de guardar.

Si tú no dices con qué se comprueba, Claude elige, y a veces elige abrir el archivo y opinar. Una opinión no deja rastro que el evaluador pueda leer.

03

Las restricciones que importan

Lo que no debe cambiar en el camino. Por ejemplo: que ningún otro archivo de pruebas se modifique mientras se hace el trabajo.

Suena a exceso hasta la primera vez que caes en cuenta de que la manera más rápida de que las pruebas pasen es borrar la que falla. La restricción no es desconfianza, es la parte del criterio que cierra el atajo.

Con esos tres ingredientes en la mano, mira cómo cambia un criterio de todos los días. A la izquierda va lo que casi todos escribimos la primera vez; a la derecha, lo mismo dicho de forma que se pueda juzgar leyendo nada más la conversación.

Cuando lo que quieres es orden

no se puede juzgar

que el código quede limpio

deja la prueba escrita

ningún archivo de la carpeta de código pasa de 300 líneas: corre el conteo de líneas sobre esa carpeta y pega la salida completa en la conversación

Limpio es tuyo, no del que juzga. Él no tiene tu vara y tampoco puede abrir el archivo para formarse una. En cuanto lo cambias por un número con su comando, la respuesta deja de depender de quién la lea.

Cuando quieres que se acaben los errores

no se puede juzgar

arregla los errores de tipos

deja la prueba escrita

el chequeo de tipos reporta cero errores: corre el comando y pega la salida completa, incluida la línea del conteo

Arregla los errores no dice cuántos había ni cuántos deben quedar, así que cualquier avance parece cumplimiento. Un conteo que llega a cero tiene una sola lectura posible, y la línea del conteo pegada es lo único de todo eso que el evaluador va a alcanzar a ver.

Cuando quieres que las pruebas pasen

no se puede juzgar

que las pruebas pasen

deja la prueba escrita

el comando de pruebas termina bien y con cero fallas, su salida completa queda pegada en la conversación, y ningún archivo de pruebas se modificó durante el trabajo

Este par es el que sale más caro. Sin la restricción del final, la forma más rápida y más obvia de que las pruebas pasen es borrar la que falla, y el criterio queda cumplido al pie de la letra mientras el trabajo real se quedó sin hacer.

Cuando el trabajo es visual

no se puede juzgar

que la página se vea bien en celular

deja la prueba escrita

a 390 píxeles de ancho no hay desbordamiento horizontal y la consola del navegador no muestra errores nuevos: describe en la conversación qué revisaste y a qué ancho, y pega los mensajes de consola tal cual

Que se vea bien es exactamente lo que el evaluador no puede comprobar: no tiene ojos ni navegador. Lo que sí puede leer es la descripción de lo que Claude revisó y la lista de mensajes de consola escrita ahí mismo. Lo visual se juzga por su rastro, nunca por la imagen.

Cuando lo que falta es documentación

no se puede juzgar

documenta las funciones

deja la prueba escrita

cada función exportada tiene su bloque de documentación arriba, el revisor de estilo termina bien con su salida pegada, y no cambió ni una línea de código que se ejecuta

Sin la restricción del final, documentar se convierte en reacomodar, y de pasada se mueve algo que ya funcionaba. Aquí el estado final es la cobertura, el chequeo es el revisor de estilo, y la restricción protege lo que no venías a tocar.

el truco que lo amarra

Oblígalo a pasar lista antes de decir que terminó

Hay una línea que puedes meterle a tu estándar y que arregla la mitad de estos problemas de un jalón: antes de dar el trabajo por terminado, Claude tiene que repetir la lista completa de criterios, uno por uno, con una palomita en cada punto, y pegar la prueba de cada uno junto a su palomita.

La segunda mitad de la línea es la que de verdad pesa: si un punto no lo pudo comprobar, se reporta como no comprobado, nunca como aprobado. Sin esa aclaración, lo que no se pudo medir se cuela con palomita, y de ahí nacen las metas que se cumplen en falso.

El efecto es doble. Tú lees el resumen de un vistazo, y el evaluador se encuentra toda la evidencia junta en el último mensaje, que es precisamente lo único que él puede leer.

Reescribe mi criterio para que deje la prueba

El modelo que juzga si tu meta se cumplió solo lee la conversación. Este prompt convierte cualquier criterio flojo en uno que obliga a enseñar la prueba.

Te voy a dar un criterio con el que quiero medir un trabajo. Necesito que lo reescribas para que se pueda juzgar leyendo solamente la conversación, sin abrir un solo archivo y sin correr un solo comando.

Mi criterio es:
[PEGA AQUÍ TU CRITERIO, COMO LO DIRÍAS EN VOZ ALTA]

Trabájalo así:

1. Dime qué parte de mi criterio es una opinión disfrazada de medida. Si dije "que quede bien", "que sea limpio", "que se vea bonito" o algo parecido, señálalo y pregúntame qué significa eso para mí en números o en una lista cerrada.

2. Conviértelo en un estado final medible: un resultado de prueba, un código de salida, un conteo de archivos, una lista vacía, un número de líneas. Uno solo, no tres.

3. Agrégale el chequeo declarado: con qué comando exacto de este proyecto se comprueba, y la orden explícita de dejar la salida de ese comando escrita en la conversación.

4. Agrégale las restricciones que importan: qué no se debe tocar para llegar ahí. Piensa en las formas de hacer trampa. Si el criterio es "las pruebas pasan", la trampa es borrar la prueba que falla; escribe la restricción que la cierra.

5. Ponle un tope: "o para después de N vueltas". Propón un número según lo grande que sea el trabajo y explícame por qué ese.

Entrégame el criterio final en una sola línea corrida, lista para copiar, y abajo una tabla de dos columnas con lo que decía antes y lo que dice ahora, punto por punto.

Mientras el que cierre sea el evaluador de /goal, tu criterio tiene que dejar la prueba escrita: es lo único que él va a poder leer. Hay una manera de tapar ese punto ciego de raíz, y no es escribir criterios más bonitos, es cambiar de cerrador por uno que sí corra los comandos. Eso llega en la sección 06.

04 · quién cierra

Cuatro cerradores, un solo estándar

Ya tienes la vara. Ahora falta decidir quién la aplica y en qué momento, y ahí es donde la mayoría se complica de más.

Un turno es cada vuelta completa de Claude: recibe algo, trabaja y se detiene. Los cuatro cerradores de abajo usan exactamente el mismo estándar — el que escribiste una vez y no vas a volver a tocar. Lo único que cambia de uno a otro es qué dispara el siguiente turno.

Uno de los cuatro necesita presentación. Un hook es una regla que dejas escrita en la configuración de Claude Code y que se dispara sola en un momento fijo, sin que tú la invoques. El de Stop, que es el que nos importa aquí, se dispara justo cuando Claude va a terminar el turno.

quién cierrael siguiente turno arranca cuandose detiene cuando
Tú, a manoCuando tú escribes el siguiente mensajeCuando Claude juzga que ya terminó, o cuando tú te cansas de revisar
/goalCuando termina el turno anteriorCuando un modelo confirma que la condición se cumple
/loopCuando pasa un intervalo de tiempoCuando tú lo paras, o cuando Claude decide que el trabajo está hecho
Un hook de StopCuando termina el turno anterior, en toda sesión que alcanceCuando tu propio script o tu propio prompt lo decide

Léela por la columna de en medio. Esa columna es la decisión entera: si el disparador es tu mensaje, el cerrador eres tú; si es el fin del turno, es /goal o un hook; si es el reloj, es /loop.

/goal y el hook se disparan igual. No son lo mismo.

Estos dos se confunden todo el tiempo, y con razón: los dos se activan en el mismo instante, cuando termina cada turno. La diferencia está en dónde viven y en qué pueden hacer.

/goal es un atajo con alcance de sesión. Escribes la condición ahí mismo, en la conversación, y ahí se queda: cuando cierras esa conversación, se fue con ella. Sirve justo para eso — le pones meta a una chamba concreta, la chamba se acaba, la meta también.

El hook vive en tu archivo de ajustes de Claude Code, que es donde guardas las reglas fijas. De ahí sale su ventaja: aplica a todas las sesiones de su alcance sin que tú escribas nada, y ese alcance lo decides tú según dónde pongas el archivo — el de tu usuario vale para todos tus proyectos, el del proyecto solo para ese.

Los hooks vienen en varios sabores según quién tome la decisión. Esta guía cubre los dos que sirven para verificar con criterio: el de prompt, que decide con un modelo, y el de agente, que además abre archivos y corre comandos. Los dos van completos en la sección 06.

Y el dato que cierra el círculo: /goal está construido por dentro como un hook de Stop de prompt con alcance de sesión. No son dos mecanismos parecidos. Es el mismo motor, con distinto alcance y distinta forma de escribirlo.

no confundir

El modo automático no es un cerrador

Esta es la confusión más cara de la sección. El modo automático aprueba las herramientas dentro de un turno para que Claude no te esté preguntando por cada acción: abrir un archivo, correr un comando, guardar un cambio. Y ahí termina su trabajo. No arranca otro turno.

Con el modo automático prendido, Claude se sigue deteniendo cuando juzga que ya terminó. Quien dice «ya» es el mismo que hizo la chamba, y eso es exactamente lo que el loop de verificación viene a corregir.

/goal agrega un evaluador aparte que revisa tu condición después de cada turno. Ahí quien dice «ya» es un modelo chico y rápido que no participó en el trabajo, así que no está calificando su propia tarea.

Son complementarios, no alternativas: el modo automático te quita las preguntas por herramienta, y /goal te quita las preguntas por turno. Encendidos juntos es cuando de verdad se siente.

Los cuatro tipos de loop, según el equipo de Claude Code

La misma decisión, ordenada desde otro lado: no por quién cierra, sino por la forma del trabajo. Ubica tu chamba en la primera columna y la de al lado te dice qué disparador le toca.

tipo de looplo disparase detiene cuandopara qué sirve
Por turnoTu mensajeClaude juzga que terminó o necesita más contextoTrabajo exploratorio y tareas cortas que no son parte de una rutina
Por metaTú, en el momentoSe cumple la meta, o se agota el tope de vueltas que tú escribiste dentro de la condiciónTrabajo con un final que se puede comprobar
Por tiempoUn intervaloTú lo cancelas o el trabajo se completaTrabajo recurrente y vigilancia de sistemas externos
ProactivoUn evento o un horario, sin nadie mirandoCada tarea sale cuando cumple su metaFlujos de trabajo bien definidos que se repiten

Si tu trabajo tiene un final que se puede comprobar, es por meta. Si no tiene final porque el sistema sigue vivo, es por tiempo. Casi todo lo que haces cae en una de esas dos, y las dos usan el mismo estándar.

Esta sección es para elegir, no para configurar. La mecánica completa de /goal — cómo se escribe la condición, cómo revisas el estado, cómo lo apagas — está en la guía de /goal, y la de /loop, con sus modos y sus topes reales, está en la guía de /loop. Ahí está cada comando a fondo. Aquí lo único que importa es cuál te toca.

Cambias de cerrador cuando cambia el disparador. El estándar se queda donde está.

05 · la combinación

/goal llega, /loop mantiene

Vistos por separado, los dos comandos parecen dos maneras de hacer lo mismo. No lo son. Lo que cambia de uno a otro no es la vara con la que se mide el trabajo: es qué dispara el siguiente turno. La vara la escribes una sola vez y la enchufas donde haga falta.

Piénsalo como tres fases del mismo trabajo. Primero hay algo que hoy no cumple tu estándar y alguien tiene que llevarlo hasta que lo cumpla. Después ese algo ya cumple, y lo que quieres es que no se vuelva a caer cuando entre lo nuevo. Y al final, cuando el estándar ya se ganó su lugar, dejas de escribir el comando y se revisa solo.

No compiten. Se pasan la estafeta.

fase 1 · llegar

El cerrador es /goal

Le das la condición y no suelta hasta cumplirla. Al cierre de cada turno, el evaluador —un modelo chico y rápido— lee lo que quedó escrito en la conversación y decide si ya. Si todavía no, Claude arranca otro turno por su cuenta.

Cuando la condición se cumple, termina y se limpia sola. Esta es la fase de llevar algo que hoy no cumple el estándar hasta que lo cumpla.

Cuando hay una distancia que cerrar.

fase 2 · mantener

El cerrador es /loop

Vuelve a levantar el mismo estándar cada tanto, sobre lo que haya entrado nuevo desde la última revisión. No empuja hacia ninguna meta: revisa y te avisa.

Esta es la fase de que lo que ya cumplía no se vuelva a caer. No tiene final propio: sigue corriendo hasta que tú lo apagues.

Cuando ya llegaste y lo que sigue es no perderlo.

fase 3 · permanente

El cerrador es un hook

Aquí ya no escribes ningún comando. El estándar queda puesto en la configuración y se revisa al final de cada turno, en todas tus sesiones.

Esta es la fase de dejar de acordarte. La sección 06 la cubre a fondo, con las dos versiones del hook y sus topes.

Cuando el estándar ya se ganó el lugar.

cómo se combinan de verdad

Van en fila, no encimados

Aquí va lo único de esta guía que no sale de la documentación, y lo marco antes de decirlo. La documentación compara estos caminos como alternativas para mantener viva una sesión — elige uno según qué quieras que dispare el siguiente turno — pero en ningún lado dice qué pasa si los pones a correr juntos. Lo que sigue es deducción a partir de cómo está descrita cada pieza.

Con una meta activa, Claude arranca otro turno apenas termina el anterior. Las tareas programadas, en cambio, solo disparan entre turnos: nunca a media respuesta. Si Claude está ocupado, la tarea espera a que el turno cierre, y lo que se saltó no se recupera después. Con la meta empujando turno tras turno, la mitad que mantiene casi no encuentra hueco por dónde entrar.

Por eso en la práctica el combo va en fila: primero corres la fase que lleva, y cuando cierra, arrancas la que mantiene.

Si lo pruebas y ves otra cosa, la documentación manda sobre esta guía.

Antes de armar cualquiera de los tres pares necesitas la vara traducida al formato que entiende el comando: un estado final medible, los comandos que lo comprueban con la orden de dejar la salida pegada en la conversación, las restricciones contra los atajos y un tope de vueltas.

Ese trabajo no lo tienes que hacer a mano. Este prompt toma la habilidad de verificación que ya escribiste y la deja en esas cuatro piezas.

Convierte mi estándar en la condición completa

Toma la habilidad de verificación que ya escribiste y la traduce a la condición que le vas a dar al comando que no suelta el trabajo hasta cumplirla.

Ya tengo una habilidad de verificación en este proyecto. Quiero que la conviertas en una condición de completitud, esa que Claude Code sigue trabajando hasta cumplir.

Primero lee el archivo de la habilidad (búscalo en .claude/skills/, empieza por los que se llamen verificar-algo). Si hay más de uno, pregúntame cuál.

Después escríbeme la condición con estas cuatro piezas, en este orden:

1. El estado final medible. Uno solo. El que resume que el trabajo está hecho.
2. El chequeo declarado. Los comandos exactos que lo comprueban, con la instrucción de dejar su salida escrita en la conversación. Escribe "y la salida queda pegada en la conversación" de forma literal: el modelo que juzga no corre comandos, solo lee lo que ya está escrito.
3. Las restricciones. Qué no se debe modificar para llegar ahí. Piensa como alguien que quiere terminar rápido y cierra esos atajos.
4. El tope de vueltas. Propón un número y justifícalo.

Reglas duras:
- Todo va en una sola línea corrida, sin saltos, porque así se escribe el comando.
- Máximo cuatro mil caracteres. Si te pasas, recorta lo menos importante y avísame qué quitaste.
- Nada que dependa de mi gusto. Si algo del estándar no se puede juzgar leyendo la conversación, sácalo de la condición y déjalo como nota aparte para que yo lo revise a mano.

Entrégame la condición lista para copiar y, abajo, dime qué línea de mi habilidad quedó fuera y por qué.

Aquí van tres pares completos, cada uno con sus dos mitades. Lo que está entre corchetes es lo único que cambias por lo tuyo: la ruta, la carpeta, el número, el comando que usa tu proyecto.

Combo A · El texto que lee tu usuario

La aplicación funciona pero está escrita a medias: mensajes de error que no dicen qué hacer, el mismo botón con dos nombres distintos, frases sueltas en otro idioma. Quieres emparejarlo todo y que lo nuevo no vuelva a entrar chueco.

La mitad que llega — todo el texto parejo

Cambia la carpeta por la tuya. La clave de esta condición es la lista impresa al final: sin ella, quien juzga no puede saber si quedó alguno fuera.

/goal todos los textos que ve el usuario dentro de [tu carpeta] están en español, sin frases sueltas en otro idioma, y cada mensaje de error dice qué pasó y qué puede hacer la persona; para comprobarlo ve listando en la conversación cada texto que cambies con su archivo y su número de línea, y al final imprime la lista completa de textos visibles de esa carpeta para que se vea que ninguno quedó fuera; no cambies nombres de variables ni claves de traducción, no toques la lógica y no inventes textos para pantallas que no existen; para después de 8 vueltas y dime cuáles no supiste cómo redactar.

La mitad que mantiene — revisa lo que entró nuevo

/loop 1d revisa los textos visibles que entraron nuevos en [tu carpeta] y dime cuáles no cumplen

Combo B · Lo que tarda en cargar

La pantalla principal se siente lenta y nadie sabe desde cuándo se puso así. Quieres bajarla de un número que tú fijes, y enterarte el día que vuelva a subir en vez de que te lo diga un cliente.

La mitad que llega — abajo del número

El número lo pones tú. Las tres mediciones seguidas no son capricho: una sola medición no distingue una mejora de un día con buena suerte.

/goal la pantalla [/tu-ruta] termina de cargar en menos de [N] milisegundos, medida tres veces seguidas y con la memoria del navegador vacía; para comprobarlo corre la medición las tres veces y pega los tres números en la conversación junto con el peso de cada recurso que se descarga; para llegar ahí puedes quitar lo que no se usa, dejar para después lo que no se ve al abrir y comprimir imágenes, pero no borres funcionalidad, no dejes las imágenes por debajo de [tu calidad mínima] y no muevas trabajo a otra pantalla para que esta salga bien; para después de 10 vueltas y dime qué fue lo que más pesó.

La mitad que mantiene — mide una vez al día

/loop 1d mide cuánto tarda en cargar [/tu-ruta] y avísame si pasó de [N] milisegundos

Combo C · La lista de pendientes que no se vacía

Tienes una lista que lleva meses igual: se le agregan cosas y no se le quita ninguna. Quieres vaciarla de una vez y que los nuevos no la vuelvan a llenar sin que nadie los vea.

La mitad que llega — la lista en ceros

Sirve igual para una lista de pendientes en un archivo, para las marcas de pendiente regadas en el código o para una etiqueta de tu gestor. La clave es la lista impresa en la conversación: sin eso, quien juzga no ve que quedó vacía.

/goal la lista de pendientes de [tu archivo o tu etiqueta] queda vacía; para comprobarlo imprime la lista completa en la conversación cada vez que cierres uno, con la línea de cada pendiente y su estado, y al final vuelve a imprimirla entera para que se vea vacía; resuelve cada pendiente de verdad — no borres la línea sin hacer el trabajo, no la muevas a otro archivo, no la comentes ni la reescribas como nota — y después de cada uno corre [el comando de pruebas de este proyecto] y deja su salida pegada en la conversación; para después de 12 vueltas, o antes si un mismo pendiente falla dos veces seguidas, y dime cuál te frenó.

La mitad que mantiene — barre los que entraron nuevos

/loop 4h busca pendientes nuevos en [tu archivo o tu etiqueta] y levántalos

Si tu chamba no se parece a ninguno de los tres, no copies el que más se le acerque. Pídele a Claude que arme el par sobre tu caso: te entrega el estándar compartido, las dos mitades y el orden en que van, y te dice si la mitad que mantiene siquiera aplica.

Arma el par que llega y el que mantiene

La misma vara, dos disparadores: uno que empuja hasta cumplir el estándar, y otro que lo vuelve a revisar cada tanto para que no se caiga.

Quiero armar el ciclo completo de verificación para una chamba, con las dos mitades: la que llega al estándar y la que lo mantiene.

La chamba es:
[DESCRIBE AQUÍ QUÉ QUIERES QUE SE HAGA, EN DOS O TRES LÍNEAS]

Necesito que me entregues cuatro cosas:

1. El estándar compartido. Los criterios con los que se mide esta chamba, en una lista numerada, todos medibles con un comando de este proyecto. Si alguno no se puede medir, dímelo y no lo metas.

2. La mitad que llega. La condición de completitud que empuja el trabajo hasta cumplir ese estándar: estado final medible, comandos que lo comprueban con la orden de dejar su salida escrita en la conversación, restricciones contra los atajos, y un tope de vueltas. En una sola línea, lista para copiar.

3. La mitad que mantiene. El prompt recurrente que revisa cada tanto que el estándar siga cumpliéndose sobre lo que haya entrado nuevo. Propón el intervalo según qué tan seguido cambia esto de verdad, y justifícalo. Si el trabajo tiene un final claro y no algo que vigilar, dime que esta mitad no aplica en vez de inventarla.

4. El orden. Dime cuál corro primero y cuál después, y qué señal me dice que ya puedo pasar de una a la otra. No me los pongas a correr al mismo tiempo: mientras la primera está activa, ocupa todos los turnos y la segunda casi no encuentra hueco para dispararse.

Al final, en tres líneas, dime qué parte de esto se me va a caer primero si no le hago caso.

Lo que hay que saber para que esto corra sin ti

  • Poner una meta no cambia tus permisos. En el modo manual, que es el que te pide aprobación acción por acción, Claude va a seguir preguntándote antes de correr comandos, así que la vuelta se queda esperándote y el combo no avanza solo. Si quieres que corra mientras no estás, empareja la meta con el modo automático.
  • Lo demás de la mecánica ya está resuelto en otra parte: cómo ver el estado de la meta, cómo apagarla, cuánto texto le cabe a la condición y qué pasa cuando reanudas la sesión viven completos en la guía de /goal, enlazada al pie de esta página.

La vara la escribes una vez. Lo único que cambias después es quién la dispara.

06 · el cerrador permanente

El hook que sí corre comandos

Los dos cerradores que ya viste tienen el mismo punto débil, y no es técnico: dependen de que te acuerdes. /goal lo escribes tú al empezar la chamba. /loop lo dejas puesto tú. El día que se te pasa, no hay estándar. Un hook no depende de eso.

Un hook es una regla que vive en tu archivo de configuración y se dispara sola en el momento del ciclo que tú elijas. Hay varios momentos disponibles; el que nos interesa aquí es el de Stop, que se dispara justo cuando Claude va a terminar el turno. O sea, exactamente cuando quieres que alguien revise antes de que te lo entregue.

Cuando digo archivo de configuración me refiero a un archivo de texto donde Claude Code guarda tus reglas fijas: lo lee al arrancar cada sesión y aplica lo que diga sin que se lo pidas. Hay dos, y ahí está la única decisión de alcance que vas a tomar: el tuyo aplica a todos tus proyectos, el del proyecto aplica solo dentro de esa carpeta.

Hay dos versiones de este cerrador, y la diferencia entre ellas es justo el punto ciego de la sección 03.

versión a · hook de prompt

El mismo motor de /goal, pero permanente

Decide un modelo, leyendo nada más lo que ya quedó escrito en la conversación.

Barato y rápido. Solo lee: no abre archivos ni corre nada.

versión b · hook de agente

El que abre archivos antes de decidir

Decide un subagente que antes de contestar abre archivos y corre los comandos.

Este es el que tapa el punto ciego. Es una función experimental.

Empecemos por la barata. El hook de prompt no ejecuta nada: le manda tu instrucción y los datos del momento a un modelo chico y rápido, y ese modelo contesta con un sí o un no y una razón. Si la respuesta es que no, en un hook de Stop esa razón se le entrega a Claude, que arranca otro turno tomándola como instrucción.

Si se te hace conocido es porque ya lo usaste sin llamarlo así: /goal es un hook de prompt de Stop con alcance de sesión. Es el mismo motor, literal. Lo único que cambia es dónde vive. /goal dura lo que dure esa conversación; el hook vive en tu configuración y aplica siempre, sin que lo invoques.

Y por ser el mismo motor, arrastra el mismo punto ciego que vimos en la sección 03: solo lee lo que ya quedó escrito en la conversación. Si la prueba no está pegada ahí, para el que juzga no existe.

El bloque se lee de afuera hacia adentro y son cuatro piezas. La lista de hooks abre las reglas. Stop dice en qué momento se dispara, que es al final del turno. El tipo, puesto en prompt, dice quién decide: el modelo chico, no un programa. Y el prompt es tu instrucción en español, tal cual se la dirías a una persona.

Lo único que vas a escribir tú es esa instrucción, y dentro de ella pides dos cosas: que apruebe cuando ya está, y que cuando no, conteste con ok en falso y una razón. Esa razón no es un adorno. Es el texto que Claude va a leer como su siguiente orden, así que escríbela como una instrucción concreta y no como un reclamo.

Versión A · el bloque completo

Va en tu archivo de ajustes de Claude Code. Lo único que cambias es el texto de la instrucción: lo demás es el andamio.

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "prompt",
            "prompt": "Antes de dejar terminar el turno, revisa lo que quedó escrito en la conversación. Repruébalo solo si la prueba de que algo falló ya está a la vista: un test en rojo, un error de tipos, o un comando de verificación que nunca se corrió. Si todo lo comprobable pasó, aprueba. Responde en JSON: {\"ok\": true} cuando el trabajo cierra, o {\"ok\": false, \"reason\": \"...\"} cuando falte algo, con una sola instrucción concreta de qué hacer en el siguiente turno."
          }
        ]
      }
    ]
  }
}

Cuando verificar de verdad requiere abrir archivos o correr comandos, existe la otra versión. El hook de agente levanta un subagente, o sea una sesión aparte con sus propias herramientas, que puede leer archivos, buscar en el código y ejecutar antes de dar su veredicto.

Devuelve exactamente lo mismo que el de prompt, un sí o un no con su razón, pero trae un tiempo de espera más largo por defecto y puede llamar herramientas hasta cincuenta veces antes de responder. Ese es todo el cambio, y es el que importa: aquí el que juzga sí puede ir a ver.

Dos advertencias, y van en serio. La primera: el hook de agente es una función experimental y su comportamiento puede cambiar, así que para flujos de producción la documentación recomienda los hooks de comando, que corren un programa tuyo. La segunda: levantar un subagente al final de cada turno pesa más que una consulta chica, así que resérvalo para el criterio que de verdad necesita comprobarse contra el proyecto.

El bloque es casi el mismo de arriba. Cambian dos cosas: el tipo pasa a agente, y aparece un tiempo de espera en segundos, porque correr pruebas de verdad tarda. Ponle un número que le alcance a tu comando de pruebas con margen.

La instrucción también cambia de fondo. Ya no le pides que lea la conversación: le pides que corra las comprobaciones y juzgue el resultado real, y que si algo truena te devuelva el comando que falló.

Versión B · el bloque completo

El mismo archivo, dos cambios: el tipo pasa a agente y se agrega el tiempo de espera en segundos.

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "agent",
            "prompt": "Antes de dejar terminar el turno, comprueba tú mismo el estado real del proyecto. Corre todas las pruebas del proyecto y el chequeo de tipos, y abre los archivos que se tocaron en este turno. No te fíes de lo que se dijo en la conversación: lo que cuenta es lo que devuelven los comandos. Responde en JSON: {\"ok\": true} si todo pasa de verdad, o {\"ok\": false, \"reason\": \"...\"} cuando algo falle, nombrando el comando que tronó y la primera línea de su error.",
            "timeout": 300
          }
        ]
      }
    ]
  }
}

la regla

Cuál de los dos, sin darle vueltas

La documentación lo resuelve en una línea: usa el hook de prompt cuando los datos del momento alcanzan para decidir, y el de agente cuando necesitas comprobar contra el estado real del proyecto.

Traducido a tu día: si tu criterio se puede juzgar leyendo lo que quedó escrito en la conversación, el de prompt te sobra. Si para saber si se cumplió hay que abrir un archivo o correr algo, ninguna cantidad de instrucciones va a arreglar al de prompt. Ahí necesitas el de agente.

No tienes que escribir esos bloques a mano. Este prompt te arma las dos versiones con los comandos de tu proyecto, y antes de tocar nada revisa tu configuración actual para no pisar los hooks que ya tengas.

Escríbeme el cerrador permanente

Deja el estándar corriendo en todas tus sesiones, sin que tengas que escribir un comando. Incluye la versión que sí corre comandos y lee archivos.

Quiero que mi estándar de verificación deje de depender de que yo me acuerde de escribir un comando. Quiero que se revise solo al final de cada turno, en todas mis sesiones de este proyecto.

Escríbeme la configuración de un hook de Stop, en las dos versiones, y explícame cuál me conviene:

VERSIÓN A — hook de prompt. El que solo lee la conversación y contesta sí o no. Barato y rápido, pero ciego: no abre archivos ni corre comandos. Escribe el prompt del hook de manera que solo repruebe cuando la prueba de que algo falló ya está escrita en la conversación, y que cuando repruebe devuelva una razón concreta y accionable, porque esa razón se le entrega a Claude como la instrucción del siguiente turno.

VERSIÓN B — hook de agente. El que sí abre archivos y corre comandos antes de decidir. Escríbelo para que ejecute los comandos de verificación de este proyecto y juzgue el resultado real, no lo que se dijo en el chat. Ponle un tiempo de espera acorde a lo que tarda mi comando de pruebas. Adviérteme que esta versión es experimental y que cuesta más por turno.

Para las dos:
- Dime en qué archivo va y por qué ahí: el de mi usuario si lo quiero en todos mis proyectos, el del proyecto si es solo para este.
- Deja fuera cualquier criterio de gusto. Si no se puede medir, no entra.
- Avísame del tope: si el hook bloquea ocho veces seguidas sin avanzar, Claude Code lo ignora y deja terminar el turno. Dime cómo escribir el criterio para que converja antes de llegar ahí, en vez de subir el tope.

Antes de escribir nada, léete mi configuración actual y dime si ya tengo hooks puestos, para no pisarlos. Luego enséñame los dos bloques completos y espera a que yo elija.

el tope que te va a morder

Ocho bloqueos seguidos y te suelta

Claude Code ignora un hook de Stop después de que bloquea ocho veces seguidas sin que haya avance, y termina el turno con un aviso. No es un castigo: es la salida de emergencia para que un criterio imposible no te deje dando vueltas toda la tarde.

Existe una variable de entorno para subir ese tope, se llama CLAUDE_CODE_STOP_HOOK_BLOCK_CAP, y aquí va la recomendación honesta: casi nunca es lo que necesitas. Si tu criterio requiere más de ocho vueltas para converger, el problema es el criterio, no el tope. Ocho intentos sin avance casi siempre significan que pediste algo que no se puede comprobar, o que la razón que devuelve el hook no le dice a Claude qué hacer distinto.

Subirlo es el último recurso, y solo después de comprobar que cada vuelta sí avanza algo.

Antes de que esto corra: lo que se tiene que cumplir

  • Los hooks son parte del sistema de confianza de Claude Code, así que /goal y los hooks solo corren en carpetas donde ya aceptaste el diálogo de confianza. En una carpeta que abriste de volada y no confiaste, no se dispara nada.
  • Si tienes los hooks apagados por configuración, /goal tampoco está disponible. Y te lo dice cuando lo intentas: no falla en silencio.
  • Un hook de Stop se evalúa al final de cada turno, así que el criterio que metas ahí se va a revisar muchas veces al día. Que sea uno solo y que sea barato de comprobar.

El reparto entre las tres capas queda así: /goal para una chamba puntual, /loop para vigilar algo que cambia, y el hook para el criterio que quieres que aplique siempre y en todos lados, sin que te acuerdes de nada.

07 · recetas

Cinco chambas, de principio a fin

Hasta aquí fue el método. Esta parte es el recetario: cinco chambas comunes ya armadas con las dos piezas, el estándar y el cerrador. Cópialas, cámbiales lo que va entre corchetes y córrelas.

Cada receta trae lo mismo en el mismo orden. Primero el estándar, que es la lista de lo que tiene que ser cierto al final. Después la condición completa para dársela a /goal, en una sola línea, lista para copiar. Después el /loop que la vuelve a revisar cada tanto, para que lo que ya lograste no se caiga solo. Y al final la línea que más se rompe en la práctica.

Las cinco condiciones están escritas con la misma forma

  • Van en una sola línea corrida, sin saltos de línea. Escríbelas así para poder pegarlas de un jalón.
  • Empiezan con el estado final medible. Uno solo, el que resume que el trabajo está hecho, no tres cosas amontonadas.
  • Siguen con el chequeo declarado: el comando exacto que lo comprueba y la orden literal de dejar su salida escrita en la conversación. El evaluador no corre nada; solo lee lo que ya está ahí.
  • Traen al menos una restricción que cierra el atajo obvio. Si el criterio es que las pruebas pasen, el atajo es borrar la prueba, y la restricción es la que lo tapa.
  • Cierran con un tope de vueltas, para que un criterio mal escrito no se lleve la tarde entera.
  • Lo que depende de tu proyecto va entre corchetes: [tu comando de pruebas], [tu carpeta], [N]. Cámbialo antes de correr nada.

1 · La pantalla que de verdad se ve bien

Cuándo la quieres: acabas de cambiar una vista y no te fías de que ya quedó hasta abrirla tú en el teléfono.

El estándar — lo que tiene que ser cierto al final

  • La aplicación arranca: el servidor de desarrollo levanta sin tronar y sigue vivo un minuto después.
  • La pantalla carga: la ruta abre y pinta contenido, no una pantalla en blanco.
  • La consola del navegador no tiene errores nuevos. Nuevos respecto a antes de tu cambio, no cero absoluto.
  • A 390 píxeles de ancho, que es el de un teléfono normal, no hay desbordamiento horizontal: nada se sale ni obliga a deslizar de lado.
  • El estado de carga y el estado de error existen. No se quedan como pantalla vacía mientras algo tarda o falla.

La condición de /goal — la pantalla

Va como condición de /goal, en una sola línea. Cambia [/tu-ruta] y [tu carpeta] por lo tuyo antes de correrla.

La ruta [/tu-ruta] carga sin errores nuevos en la consola y se ve completa a 390 píxeles de ancho. Comprueba cada punto y deja la salida pegada en la conversación, aunque sea larga: corre [tu comando de desarrollo] y pega las últimas veinte líneas del arranque; abre la ruta, pega la lista completa de mensajes de la consola del navegador y dime cuántos son errores; con la ventana a 390 píxeles de ancho, pega el ancho del documento y el de la ventana y confirma que el primero no es mayor; enséñame con archivo y número de línea dónde vive el estado de carga y dónde el de error. No toques archivos fuera de [tu carpeta], no borres ni escondas contenido para que deje de desbordarse, y no silencies mensajes de la consola. Para después de 6 vueltas y dime qué quedó pendiente.

El /loop que la vuelve a levantar cada rato

/loop 4h abre [/tu-ruta], pega los mensajes de la consola y avísame si salió un error nuevo

El desbordamiento horizontal es el que más se cuela: en tu monitor no existe y en el teléfono del cliente sí. Por eso el ancho va como número en la condición y no como una sensación.

2 · El presupuesto de tamaño que se mantiene

Cuándo la quieres: ya te cansaste de abrir archivos de mil líneas y quieres un tope que se respete sin que tú lo vigiles.

El estándar — lo que tiene que ser cierto al final

  • Ningún archivo de [tu carpeta] pasa de [N] líneas.
  • Al partir un archivo, todo lo que lo usaba sigue funcionando: no queda una sola referencia apuntando a algo que ya no existe.
  • Las pruebas pasan igual que antes de partirlo.
  • No se toca nada fuera de la carpeta que estás ordenando.

La condición de /goal — el tope de tamaño

El conteo impreso es el estándar entero. Si no queda pegado en la conversación, el evaluador no tiene nada que juzgar.

Ningún archivo dentro de [tu carpeta] pasa de [N] líneas. Comprueba así y deja la salida pegada tal cual sale, sin resumirla: cuenta las líneas de todos los archivos de esa carpeta, ordena la lista de mayor a menor y pégala completa; corre [tu comando de pruebas] y pega el resumen final con el número de pruebas y el código de salida. No borres código para bajar el conteo: lo que salga de un archivo entra en otro del mismo proyecto. No modifiques ninguna prueba para que pase, no toques nada fuera de [tu carpeta] y no dejes ninguna referencia apuntando a un archivo que ya no existe. Para después de 8 vueltas y dime qué archivos quedaron arriba del tope y por qué.

El /loop diario que cuenta y avisa

/loop 1d cuenta las líneas de cada archivo de [tu carpeta] y dime el primero que pasó de [N]

Fíjate en la restricción de en medio: sin ella, la forma más rápida de cumplir el conteo es borrar código, y va a hacer justo eso.

3 · Subir dependencias sin romper nada

Cuándo la quieres: llevas meses posponiendo las actualizaciones porque la última vez algo se rompió y nadie supo qué.

El estándar — lo que tiene que ser cierto al final

  • Nada queda con avisos de seguridad pendientes: la auditoría de dependencias devuelve cero.
  • La construcción del proyecto, que es el paso que arma la versión que se publica, termina bien.
  • Las pruebas pasan.
  • No se cambió ni una línea de código propio para acomodar la subida. Si algo obliga a cambiarlo, se reporta y se deja para otro rato.

La condición de /goal — las dependencias

La salida de la auditoría va pegada completa. Es el único documento que prueba que ya no hay avisos pendientes.

La auditoría de seguridad de dependencias devuelve cero avisos pendientes. Comprueba así y deja pegada en la conversación la salida completa de cada comando, aunque sea larga: corre [tu comando de auditoría] y pega el reporte tal cual, con el conteo por severidad; corre [tu comando de construcción] y pega las últimas quince líneas junto con el código de salida; corre [tu comando de pruebas] y pega el resumen. Pega también la lista de archivos modificados: ahí solo pueden aparecer los archivos de dependencias. No cambies código propio para acomodar una versión nueva, no fijes una versión vieja para esquivar un aviso y no uses la opción que ignora avisos. Si un paquete no se puede subir sin tocar código, no lo subas: dime su nombre y qué se rompe. Para después de 5 vueltas.

El /loop cada tres días que revisa si salió algo nuevo

/loop 3d corre [tu comando de auditoría] y avísame solo si apareció un aviso nuevo

La restricción de no tocar código propio es la que hace que puedas dejar esto corriendo. Sin ella, una actualización de rutina se convierte en una reescritura que nadie pidió.

4 · Cerrar los errores de accesibilidad de un flujo

Cuándo la quieres: ya sabes que tu formulario no se puede usar con el teclado y no quieres arreglarlo pantalla por pantalla a mano.

El estándar — lo que tiene que ser cierto al final

  • Cada imagen tiene su texto alternativo, que es la descripción que lee en voz alta un lector de pantalla.
  • Cada campo del formulario tiene su etiqueta asociada, no nada más un texto puesto encima.
  • El flujo se puede recorrer completo solo con el teclado, de principio a fin, sin quedarse atorado en ningún paso.
  • El contraste entre el texto y su fondo cumple el mínimo.
  • La revisión automática de accesibilidad devuelve cero errores en las pantallas del flujo.

La condición de /goal — la accesibilidad

El reporte va pegado y el recorrido con teclado va escrito. Lo segundo no lo comprueba ninguna herramienta automática.

La revisión automática de accesibilidad devuelve cero errores en [las pantallas de tu flujo]. Comprueba así y deja pegado en la conversación todo lo que salga: corre [tu comando de revisión de accesibilidad] sobre cada pantalla del flujo y pega el reporte de cada una, con el conteo de errores y el de advertencias; aparte, escribe el recorrido con teclado paso por paso, diciendo qué elemento recibe el foco en cada tabulación y en qué punto se puede enviar el formulario sin tocar el ratón. No desactives ni una regla de la revisión, no le pongas texto alternativo vacío a una imagen que sí comunica algo, y no cambies colores ni tamaños del diseño para subir el contraste sin avisarme primero qué vas a cambiar. Para después de 6 vueltas y enséñame qué quedó como advertencia.

El /loop que la vuelve a correr cuando cambia esa parte

/loop 1d si cambió [tu carpeta del flujo], corre la revisión de accesibilidad y dime qué salió

El recorrido con teclado es la parte que la herramienta no ve. Por eso la condición pide que se escriba tabulación por tabulación: es la única forma de que quede como prueba.

5 · La documentación que no se queda vieja

Cuándo la quieres: tu archivo de instrucciones describe cómo se hacían las cosas hace tres meses y ya nadie lo abre.

El estándar — lo que tiene que ser cierto al final

  • El registro de cambios tiene una entrada por cada cambio que entró desde la última versión publicada.
  • Los comandos que aparecen en el archivo de instrucciones existen de verdad y corren.
  • Cada enlace interno apunta a un archivo o a una sección que existe.
  • No se tocó una sola línea de código que se ejecuta. Esto es documentación y nada más.

La condición de /goal — la documentación

Tres listas pegadas: los cambios contra sus entradas, los comandos contra su código de salida, y los enlaces contra lo que existe.

El registro de cambios cubre todo lo que entró desde [tu última versión publicada], y todos los comandos y enlaces de la documentación existen. Comprueba así y deja las tres listas pegadas en la conversación: pega la lista de cambios que entraron desde esa versión y, junto a cada uno, la entrada del registro que lo cubre o la palabra falta; corre cada comando que aparezca en el archivo de instrucciones y pega una lista de dos columnas con el comando y su código de salida; pega la lista de enlaces internos con el destino de cada uno y si existe o no. No modifiques ningún archivo de código, no borres entradas viejas del registro para acomodar las nuevas y no inventes una entrada para un cambio que no entiendas: si no sabes qué hizo, escríbelo como pendiente de revisar. Para después de 4 vueltas.

El /loop cada tres días que la mantiene al día

/loop 3d revisa si el registro de cambios cubre lo que entró y dime qué falta

La restricción de no tocar código evita el escenario feo de siempre: entrar a arreglar la documentación y salir con un cambio de comportamiento que nadie revisó.

AJÚSTALAS

Las cinco están escritas para que las rompas

Cámbiales el número, el comando y la restricción hasta que describan tu proyecto. El tope de líneas que te sirve no es el que puse aquí, tu comando de pruebas no se llama como el mío, y el atajo que hay que cerrar depende de cómo trabajas tú.

Una receta que no menciona tu forma de trabajar no te va a servir. Si copias una tal cual y nunca se da por cumplida, lo primero que hay que revisar no es el comando: es si el estándar es el tuyo.

08 · cuando se rompe

Nunca se cumple, o se cumple en falso

Cuando un loop se porta mal, lo primero que uno hace es culpar al comando. Casi nunca es el comando.

Los loops se rompen de seis maneras, y las seis se arreglan en el mismo lugar: el criterio. Una restricción que faltaba, una orden de enseñar la prueba, un tope. Aquí están los seis, con el síntoma tal como se siente, la causa de verdad y la línea que lo cierra.

Los seis modos de falla

falla 01

Nunca se da por cumplido

Se siente así: da vueltas y vueltas, cada turno arranca solo, y siempre falta algo. Tú lees la conversación, el trabajo se ve terminado, y el evaluador sigue diciendo que no.

La causa casi nunca es el trabajo. Es que la evidencia no está en la conversación: Claude corrió la prueba, vio que pasó y siguió sin pegar la salida. Para el que juzga, esa prueba no existe, porque lo único que lee es lo que quedó escrito. Es la causa número uno de los loops que no cierran.

El arreglo: agrégale a tu condición la orden literal de dejar la salida del comando escrita en la conversación.

falla 02

Se cumple en falso

Se siente así: dijo que ya, cerró el loop, y cuando abres el trabajo está mal.

La causa es que tu criterio se puede cumplir al pie de la letra sin hacer el trabajo. Si el criterio es que las pruebas pasen, la forma más rápida de cumplirlo es borrar la prueba que falla. No es mala fe: es el camino más corto a lo que pediste, y lo pediste así.

El arreglo: restricciones. Escribe qué NO se debe tocar para llegar ahí.

falla 03

Se detiene antes de tiempo

Se siente así: se dio por bueno con la mitad hecha y te devolvió el turno como si nada.

La causa es que el criterio mide una sola cosa de varias, o mide algo que ya era cierto desde antes de empezar. Si pediste que el archivo exista y el archivo ya existía, la meta se cumplió antes de escribir la primera línea.

El arreglo: que el estado final sea el resultado, no el esfuerzo.

falla 04

Son tres criterios disfrazados de uno

Se siente así: la razón que da el evaluador cambia de tema cada vuelta. Primero le falta una cosa, la arreglas, y en la siguiente vuelta le falta otra que no habías oído.

La causa es que metiste tres metas en una sola frase. El que juzga tiene que contestar sí o no sobre las tres juntas, así que en cada turno reporta la que ve más floja y las otras dos quedan sin cerrar.

El arreglo: uno es el estado final; los otros dos bajan a ser restricciones.

falla 05

Da vueltas de más

Se siente así: sigue corriendo mucho después de que el trabajo ya servía. Pule, reacomoda, vuelve a revisar lo mismo.

La causa es sencilla: no le pusiste tope. Nadie le dijo cuándo dejar de intentar, así que sigue.

El tope va escrito dentro de la condición, no aparte. Claude reporta el avance contra esa cláusula en cada turno, y el evaluador la juzga leyendo la conversación, igual que todo lo demás.

El arreglo: mete la cláusula de tope dentro de la condición, algo como «o para después de diez vueltas».

falla 06

El hook se apaga solo

Se siente así: Claude sigue trabajando un rato y de pronto termina con un aviso de que el hook bloqueó demasiadas veces.

La causa es el tope de ocho bloqueos seguidos sin avance. Al llegar ahí, Claude Code deja de hacerle caso al hook y cierra el turno. Ese tope no es un defecto: es lo que impide que un criterio imposible te deje dando vueltas para siempre.

El arreglo: que el criterio converja, no subir el tope.

Si no tienes claro cuál de los seis te está pasando, no le adivines. Pégale a Claude el criterio tal como lo escribiste y que lo audite causa por causa antes de que le muevas nada. Su lista no es idéntica a la de arriba: aquélla ordena los síntomas, la del prompt ordena las causas.

Audita mi loop, que no está funcionando

Para los dos casos feos: el que nunca se da por cumplido, y el que se da por cumplido dejando pasar cosas rotas.

Tengo un ciclo de verificación que no está funcionando y quiero saber por qué antes de tocarle nada.

Mi criterio es:
[PEGA AQUÍ LA CONDICIÓN O EL CRITERIO TAL CUAL LO ESCRIBISTE]

Lo que está pasando es:
[ELIGE UNA: nunca se da por cumplido y da vueltas de más · se da por cumplido pero el trabajo quedó mal · se detiene antes de tiempo · no sé, solo se siente raro]

Diagnostícalo revisando estas seis causas, una por una, y dime de cada una si aplica o no y por qué:

1. Falta la prueba. ¿Mi criterio le pide a Claude que deje la evidencia escrita en la conversación? Si el comando corrió pero la salida no quedó pegada, quien juzga no vio nada. Esta es la causa más común de los que nunca se cumplen.

2. El criterio es una opinión. ¿Hay algo ahí que dependa del gusto de quien lo lea? Señálame la palabra exacta.

3. Se puede hacer trampa. ¿Existe una forma de cumplir mi criterio al pie de la letra sin hacer el trabajo? Borrar la prueba que falla, meter el resultado a mano, cambiar el número esperado. Enséñame el atajo concreto y la restricción que lo cierra.

4. Son varios criterios disfrazados de uno. ¿Estoy midiendo dos o tres cosas a la vez? Si sí, dime cuál debería ser el estado final y cuáles bajan a ser restricciones.

5. No hay tope. ¿Le puse un límite de vueltas? Si no, propón uno.

6. El costo. Dime cuántas vueltas lleva esto y qué tanto se está gastando, y si el criterio se puede comprobar con un solo comando en vez de con varios.

Al final, entrégame el criterio corregido en una sola línea, lista para copiar, y en dos renglones cuál de las seis causas era la de verdad.

el costo, sin adornos

Lo caro no es el que juzga: son las vueltas

Lo que gasta el evaluador corre en un modelo chico y rápido, y comparado con el gasto del turno principal suele ser despreciable. No es ahí donde se te va el presupuesto.

Lo caro son los turnos. Cada vuelta es Claude trabajando otra vez: leyendo, escribiendo, corriendo comandos. Un criterio que nunca converge no te cuesta unas cuantas revisiones de más, te cuesta veinte turnos completos.

Por eso conviene asomarte antes de que se te vaya de las manos: escribe el comando sin nada más y te dice cuántas vueltas llevas y cuántos tokens — los pedacitos de texto con los que se mide el trabajo consumido — se han ido en ellas.

Y la línea de Anthropic, traducida: no toda tarea necesita un loop complicado. Empieza por la solución más simple.

Ver el estado del loop: cuántas vueltas y cuántos tokens llevas

/goal

permisos

Poner una meta no te cambia los permisos

Poner una meta no cambia lo que Claude tiene permitido hacer. En el modo manual, que es el que revisa contigo cada acción, te va a seguir preguntando antes de correr comandos que no tengas aprobados, y ahí mismo se te para la vuelta: el loop se queda esperando tu clic en lugar de avanzar solo.

Para que corra sin ti, empareja el loop con el modo automático, que es el que deja de pedirte permiso comando por comando.

La advertencia va textual, como viene en la documentación: el modo automático reduce las preguntas, pero no garantiza que todo sea seguro. Úsalo cuando confías en el rumbo, no como reemplazo de revisar lo delicado.

Lo que se rompe del lado de /loop

Cuando usas el cerrador que mantiene, el que vuelve a pasar la vara cada tanto, los modos de falla son otros. Ya no son de criterio: son de la mecánica del comando. Estos son los límites con los que te vas a topar tarde o temprano.

  • Si Claude está ocupado cuando toca el turno, la tarea espera a que termine, y la que se saltó no se recupera después. Este es el que importa para el combo: es la razón de que la mitad que mantiene casi no encuentre hueco mientras la mitad que llega sigue empujando turnos.
  • Vive dentro de la sesión. Si la cierras deja de dispararse, y vuelve sola cuando reanudas esa misma sesión, siempre que no haya expirado. Fuera de esa sesión no existe.
  • Los otros tres límites — cuánto dura una tarea que se repite, cuántas caben por sesión y por qué el reloj no dispara al minuto exacto — están con sus números en la guía de /loop, enlazada al pie de esta página.

Los seis modos de falla se arreglan reescribiendo el criterio. Los límites de esta última lista no se arreglan: se planean.

09 · empieza hoy

Una sola comprobación, esta tarde

Si cierras esta guía y te sientas a montar el estándar completo, los tres cerradores y el hook en la misma tarde, lo más probable es que no termines ninguno de los tres. No armes el sistema. Arma una comprobación.

Uno solo, y de preferencia el más aburrido que tengas. La ruta de abajo es la que recomienda Anthropic y va de menos a más a propósito: cada paso te deja algo funcionando antes de que pases al siguiente, y en dos de ellos la respuesta correcta puede ser que ya terminaste.

01

Elige el seguimiento que más repetiste esta semana

Piensa en la revisión que hiciste a mano una y otra vez en los últimos días: abrir la pantalla a ver si el cambio se ve, correr el mismo comando de siempre, revisar que no se haya quedado un archivo a medias.

Escoge una sola. La que ya te dio flojera hacer por tercera vez es la correcta, porque el ahorro se nota desde la primera semana y no tienes que convencerte de nada.

02

Prueba primero lo que ya viene incluido

Antes de escribir nada, prueba lo que Claude Code ya trae puesto. Hay una habilidad incluida, /verify, que construye tu aplicación, la arranca y comprueba que el cambio hace lo que debe hacer.

Si con eso te alcanza para lo que elegiste en el paso anterior, ya acabaste. No escribas una sola línea de estándar propio.

03

Escribe el procedimiento en español llano

Si lo incluido no cubre tu caso, siéntate a escribir el procedimiento como se lo darías a alguien que entra al equipo el lunes y todavía no conoce el proyecto.

Sin formato, sin estructura, sin pensar en cómo se lo vas a entregar a Claude. Nada más los pasos, en el orden en que tú los haces. Si te sale en cinco renglones, está bien: eso es el borrador que sirve.

04

Pásaselo a Claude, o deja tú el archivo

Ahora conviértelo en una habilidad, que es un archivo de instrucciones que Claude lee y sigue cuando toca. Hay dos formas y las dos valen igual: le pegas el texto a Claude y le pides que lo vuelva una habilidad, o dejas tú mismo el archivo en la carpeta de habilidades del proyecto.

Si dudas cuál escoger, empieza pidiéndoselo a él. Te va a preguntar justo lo que a tu borrador le falta.

05

Invócalo en una tarea nueva y confirma que aparece

Abre una tarea nueva, invoca la habilidad y revisa lo que te entrega. No le preguntes si la corrió: busca la comprobación dentro de la respuesta, con su salida pegada.

Si no aparece, ajusta el archivo y vuelve a probar. En la mayoría de los casos lo que falta es la instrucción explícita de dejar la prueba escrita en la conversación.

06

Cuando ya te fíes de él, encadénalo

Solo cuando esa comprobación te haya salido bien varias veces seguidas, encadénala: que una habilidad llame a la siguiente y que varias entregas verificadas corran de punta a punta sin que tú entres en medio.

Ese es el sistema completo. Se construye encima de una comprobación que ya funciona, nunca en lugar de ella.

LA ADVERTENCIA

Encadenar cuesta, y en equipo se nota más

Anthropic lo dice sin adornos: encadenar loops de verificación sube el gasto en tokens. Cada vuelta extra es trabajo que el modelo hace de más, y varias cadenas corriendo juntas se suman más rápido de lo que esperas. Pruébalos en algo chico antes de soltarlos en grande.

Y aguántate antes de ponerlo como puerta obligatoria de cada pull request, esa revisión por la que pasa un cambio antes de entrar al proyecto, mientras la cadena siga cambiando. En cuanto es obligatoria, cada ajuste que le hagas se vuelve un evento que todo el equipo ve.

EL ARRANQUE MÍNIMO

Una meta chiquita antes de la grande

Antes de pedirle una migración completa, ponle una meta chiquita y verificable nada más para sentir el ritmo. Algo como que el archivo de instrucciones del proyecto tenga una sección de instalación con al menos un comando adentro.

En esas dos o tres vueltas vas a entender lo que no se explica bien por escrito: cómo se ve el indicador de que hay una meta activa, cómo se lee la razón que da el evaluador cuando dice que todavía no, y a qué velocidad pasan las vueltas.

Antes que nada, comprueba que lo tienes

/goal

Escríbelo solo, sin nada más. Si te contesta con el estado de la meta, ya lo tienes y puedes seguir. Si te dice que no conoce el comando, actualiza Claude Code y vuelve a intentarlo antes de escribir un solo criterio.

El ir y venir no se acaba. Cambia de dueño. Tú sigues poniendo la vara, y esa parte sigue siendo la difícil; lo que dejas de hacer es sostenerla vuelta tras vuelta.

Y la última, tal como la dice Anthropic: corre el loop, observa dónde se atora y dónde se pasa de la raya, y no te dé miedo cambiarlo.

Guía de la comunidad

Esta guía es parte de la bóveda abierta de tododeia.

Sigue por aquí

Lo que yo hago

A mí lo que me costó cachar fue lo del punto ciego. Yo escribía condiciones larguísimas y sentía que Claude no las entendía, cuando lo que pasaba era que el que juzga nunca vio la prueba: el comando corría, salía bien, y la salida no quedaba escrita en ningún lado. El día que empecé a pedirle que pegara la lista con palomita en cada punto antes de decir que ya, se me acabaron los loops que daban vueltas para siempre. No cambié el comando. Cambié una línea del criterio.

Una nota honesta

Esto no sale gratis y no siempre vale la pena. Cada vuelta es Claude trabajando otra vez, y un criterio mal escrito te puede dar veinte vueltas sin acercarse. Si la chamba es un archivo y una decisión, revisarla tú sigue siendo más rápido y más barato. Un loop de verificación se justifica cuando la misma revisión se repite, cuando ya te cansaste de hacerla, y cuando lo que revisas se puede medir sin que nadie opine.