diffox
Blog

Harness engineering vs. loop engineering: en qué se diferencian

El harness engineering monta el andamiaje de un agente de IA; el loop engineering, el sistema que lo ejecuta una y otra vez. Definiciones, fuentes y un ejemplo.

CompartirXLinkedIn

Resumen. En un agente de IA, el harness es todo lo que no es el propio modelo: las herramientas, el archivo de reglas, las comprobaciones que ponen a prueba la salida. El loop engineering está un piso más arriba: ya no le escribes tú los prompts al agente turno a turno, sino que diseñas el sistema que lo arranca, supervisa su trabajo y lo detiene. El 15 de octubre de 2026 leímos las fuentes primarias que usan los dos términos, y mostramos las piezas sobre una herramienta de revisión de código.

  • Las cuatro capas van una dentro de otra. En el prompt engineering cambias la instrucción; en el context engineering, todo lo que ve el modelo; en el harness engineering, el código que rodea una sola ejecución, y en el loop engineering, las ejecuciones a lo largo del tiempo.
  • El loop engineering diseña el sistema que le escribe los prompts al agente. Las fuentes enumeran un disparador, una condición de parada que la máquina pueda comprobar, un estado que se conserva entre ejecuciones, un verificador separado de quien hace el trabajo, un presupuesto y el traspaso a una persona.
  • Una comprobación escrita en código no se fía de la palabra del modelo. Si la salida la comprueba código normal, la misma entrada da siempre el mismo resultado.
  • El harness crece a partir de los errores. Un error que se repite se convierte en una regla o en una comprobación; la pieza que deja de hacer falta se quita.

¿Qué es un harness?

4capas: prompt, contexto, harness, loop
6piezas en el harness
6piezas en el loop

Por sí solo, un modelo de lenguaje recibe una entrada y produce texto. No puede ejecutar código, no recuerda nada de una conversación a otra y no tiene acceso a lo que apareció después de su entrenamiento. Para que pueda hacerlo, se monta un andamiaje a su alrededor: un bucle que lo llama una y otra vez, herramientas que puede invocar, archivos que se le dan en cada sesión y comprobaciones que ponen a prueba su salida. A ese andamiaje se le llama harness.

De las fuentes que leímos, la definición más amplia está en el artículo de LangChain: «A harness is every piece of code, configuration, and execution logic that isn’t the model itself.» Es decir, todo código, toda configuración y toda lógica de ejecución que no sea el propio modelo. Dentro de los agentes de programación también funciona una capa así: OpenAI llama «Codex harness» a la capa que aporta el bucle del agente y la lógica de ejecución; Anthropic llama «agent harness» a la capa que hace funcionar Claude Code.

El harness engineering es el trabajo de diseñar ese andamiaje. Nosotros también hacemos uno: diffox es una herramienta de revisión de código con IA que revisa pull requests. Los ejemplos de abajo salen de su proceso de revisión y del bucle que monta a lo largo de un pull request (cómo funciona, en otro artículo).

Cómo definen las fuentes el harness engineering

El término es nuevo y las fuentes que leímos no lo definen igual. La tabla recoge cada fuente con sus propias palabras y su fecha.

Cuatro fuentes que usan el término harness engineering, sus fechas y el enfoque de cada una
FuenteFechaQué dice
Mitchell Hashimoto, «My AI Adoption Journey»5 de febrero de 2026Le pone nombre a una costumbre: «I’ve grown to calling this ‘harness engineering.’» Cuando el agente comete un error, se monta una solución para que no pueda volver a cometerlo.
OpenAI, «Harness engineering: leveraging Codex in an agent-first world»11 de febrero de 2026Usa el término en el título, pero no lo define en el texto. Describe el trabajo del ingeniero como diseñar entornos, especificar la intención y montar bucles de retroalimentación.
LangChain, «The Anatomy of an Agent Harness»10 de marzo de 2026«Agent = Model + Harness.» El harness es todo lo que no es el propio modelo; el harness engineering consiste en montar sistemas alrededor del modelo.
Anthropic, «Harness design for long-running application development»24 de marzo de 2026Dice «Harness design». Cada pieza del harness es una suposición sobre algo que el modelo no puede hacer por sí solo.

Fuente: la página de cada artículo, 15 de octubre de 2026. Las citas, en su idioma original.

Hashimoto describe una costumbre y, en el mismo párrafo, escribe que no sabe si ya existe un término aceptado. LangChain, en cambio, traza una frontera: todo lo que queda fuera del modelo es harness. Uno te dice qué hacer; el otro, dónde mirar.

Hay dos detalles que la tabla no muestra. La fórmula «Agent = Model + Harness» aparece en el artículo de LangChain, no en el de Hashimoto. Y la palabra «harness» es anterior al término: Anthropic ya había llamado al Claude Agent SDK «general-purpose agent harness» el 26 de noviembre de 2025. En los cinco artículos de Anthropic que leímos no aparece la expresión «harness engineering».

Qué cambias en cada capa

Los cuatro términos no son intercambiables: son cuatro capas, una dentro de otra. Según la definición de Anthropic, el prompt engineering abarca los métodos para escribir y organizar las instrucciones del modelo. El context engineering, en cambio, abarca las estrategias para elegir y mantener los tokens que el modelo tiene delante durante la inferencia, incluida toda la información que le llega aparte del prompt. El contexto es todo lo que ve el modelo en esa llamada.

No encontramos ninguna fuente primaria que atribuya el context engineering a una sola persona. Los dos usos que leímos son de junio de 2025: Tobi Lütke escribió el 19 de junio que prefería ese nombre a «prompt engineering» («the art of providing all the context for the task to be plausibly solvable by the LLM»), y Andrej Karpathy se sumó el 25 de junio. La definición de Anthropic es del 29 de septiembre de 2025.

En cada capa cambias otra cosa. Prompt engineering. Lo que cambias: Instrucción. Lo que pides al modelo en una llamada. Context engineering. Lo que cambias: Contexto. Todo lo que el modelo ve en una llamada. Harness engineering. Lo que cambias: Andamiaje. El código alrededor del modelo en una ejecución. Loop engineering. Lo que cambias: Bucle. El sistema que arranca y detiene ejecuciones. Las capas van una dentro de otra: cada una abarca la anterior.
Las cuatro capas y lo que cambias en cada una. Definiciones: Anthropic (prompt y context engineering), LangChain (harness) y Osmani (loop), 15 de octubre de 2026.

El harness engineering está una capa más hacia fuera. No se queda en lo que ve el modelo; diseña también lo que pasa después de que responde: por qué comprobación pasa la salida, cómo se divide el trabajo, qué cambia cuando un error se repite. Las capas se contienen unas a otras: según LangChain, los harness de hoy sirven sobre todo para poner en práctica un buen context engineering. El loop engineering está todavía un piso más hacia fuera: no diseña una sola ejecución, sino las ejecuciones a lo largo del tiempo. Le dedicamos una sección aparte más abajo.

El trabajo típico de cada una de las cuatro capas y lo que se hace cuando un error se repite
CapaTrabajo típicoCuando el error se repite
Prompt engineeringEscribir el prompt de sistema, añadir ejemplosSe reescribe la instrucción
Context engineeringElegir qué archivos, qué historial y qué herramientas entran en el contextoSe añade la información que falta y se quita la que sobra
Harness engineeringMontar el bucle, las herramientas, las comprobaciones y el reparto del trabajoSe escribe una comprobación o una herramienta que atrape el error
Loop engineeringMontar el disparador, la condición de parada, el verificador y el presupuestoSe endurece la condición de parada o el verificador

De qué piezas se compone un harness

Los artículos que leímos les dan nombres distintos a las piezas. Cada uno de los seis apartados de abajo aparece en al menos dos fuentes.

Las seis piezas de un harness. Cada una sirve para algo que el modelo no puede hacer solo. agent loop Bucle: Llama al modelo, le pasa lo que dio la herramienta, repite. tools Herramientas: Leen archivos, ejecutan comandos, pasan los tests. AGENTS.md Reglas y memoria: Lleva lo aprendido en una sesión a la siguiente. sub-agents Subagentes: Reparten el trabajo; cada uno mira una tarea acotada. lint · test · hook Comprobaciones: La salida la ponen a prueba reglas en código, no el modelo. logs · traces Observabilidad: Logs y trazas: el agente ve el resultado; tú, al agente.
Las piezas de un harness, agrupadas por nosotros. Fuentes: LangChain, OpenAI, Anthropic y Hashimoto, 15 de octubre de 2026.

El bucle es el núcleo. Anthropic describe a los agentes como modelos que usan herramientas dentro de un bucle, guiados por la retroalimentación del entorno. En el artículo sobre el Agent SDK, los pasos del bucle son estos: reunir contexto, actuar, verificar el trabajo, repetir. Las herramientas y la observabilidad le muestran al modelo el resultado de lo que hizo: en el repositorio que describe OpenAI, el agente puede leer los logs, las métricas y las trazas. Los subagentes reparten el trabajo; según Anthropic, cada uno recibe una tarea acotada y empieza con una ventana de contexto limpia.

Las comprobaciones van aparte, porque no las escribe el modelo, sino tú. Según el artículo sobre el Agent SDK, la mejor retroalimentación son reglas claramente definidas para la salida, junto con la explicación de cuál se incumplió y por qué. OpenAI hace cumplir sus reglas de arquitectura de forma automática, con linters propios y tests estructurales.

¿Qué es el loop engineering?

El harness se ocupa de una sola ejecución. El loop engineering hace una pregunta más: ¿quién pone en marcha al agente y cuándo, y quién decide si el trabajo está terminado? El nombre se lo puso Addy Osmani en un artículo del 7 de junio de 2026: «Loop engineering is replacing yourself as the person who prompts the agent. You design the system that does it instead.» Es decir, dejar de ser quien le escribe al agente turno a turno y diseñar el sistema que lo hace por ti.

Dos frases dieron pie al término. Peter Steinberger propuso ese mismo día dejar de escribirles prompts a los agentes y diseñar bucles que se los escriban. Según cuenta Osmani, Boris Cherny, responsable de Claude Code, había dicho: «My job is to write loops». Ninguno de los dos usa la expresión «loop engineering»; el nombre lo puso el artículo de Osmani.

Cuatro fuentes que usan el término loop engineering, sus fechas y el enfoque de cada una
FuenteFechaQué dice
Addy Osmani, «Loop Engineering»7 de junio de 2026Le pone nombre y sitúa el loop un piso por encima del harness: «Loop engineering sits one floor above the harness.»
Anthropic, «Loop engineering: Getting started with loops»30 de junio de 2026«On the Claude Code team, we define loops as agents repeating cycles of work until a stop condition is met.»
IBM, «What Is Loop Engineering?»17 de julio de 2026Diseñar flujos de trabajo que, a base de repetir, llevan a los agentes hasta el objetivo que fija el usuario, con la mínima intervención humana.
«Loop Engineering: Building Blocks, Adoption, and Impact» (arXiv)22 de agosto de 2026Una recopilación que repasa lo publicado sobre el tema. Dice que las fuentes coinciden en gran medida en lo que contiene un buen loop.

Fuente: la página de cada artículo, 15 de octubre de 2026. Las citas, en su idioma original.

Las piezas en las que coinciden las fuentes son seis. La recopilación las enumera así: ejecuciones que se disparan, condiciones de parada que la máquina puede comprobar, archivos de estado persistentes, subagentes verificadores, presupuestos de tokens y puntos de traspaso a una persona.

  • Disparador. Lo que pone en marcha la ejecución: un temporizador o un evento.
  • Condición de parada. Un criterio con el que la máquina puede decidir que el trabajo está terminado: los tests pasan, la lista queda vacía.
  • Estado. El registro que pasa de una ejecución a la siguiente; vive fuera de la ventana de contexto.
  • Verificador. Un supervisor separado del agente que hace el trabajo.
  • Presupuesto. Un límite de turnos o de tokens; al superarlo, el bucle se detiene.
  • Traspaso a una persona. El punto en el que el trabajo que el bucle no resuelve pasa a una persona.

El artículo de Anthropic muestra tres de las piezas juntas. Cada vez que Claude Code intenta parar, un modelo evaluador aparte comprueba la condición. Lo devuelve al trabajo hasta que se cumple el objetivo o se llega al número de turnos que fijaste. Como dice Osmani, así el agente que escribe el código no es el que le pone nota.

Las fuentes se separan en un punto: ¿de qué bucle se habla cuando se dice «loop»? La recopilación distingue dos. En el bucle del agente, el modelo llama a herramientas dentro de una sola ejecución y actúa según el resultado; ese bucle forma parte del harness. El loop engineering, en cambio, se ocupa de las estructuras que arrancan, verifican y vuelven a arrancar esas ejecuciones a lo largo del tiempo. Algunos artículos de proveedores usan la palabra en el primer sentido, y el blog de ingeniería de Anthropic también define el harness como «el bucle que llama a Claude». En este artículo, loop tiene el segundo sentido.

Tampoco el término está asentado todavía. La misma recopilación dice que el debate no ha aclarado si el loop engineering es una disciplina nueva, una técnica de transición o una etiqueta de marketing. En julio de 2026 se llegó a proponer un sucesor, con el nombre de «graph engineering».

Cómo es un harness en una herramienta de revisión de código

El proceso de revisión de diffox muestra cómo encajan las piezas. Un pull request pasa por cuatro etapas hasta convertirse en comentarios, y en cada etapa se ve una idea del harness.

4 etapas; cada una muestra una idea del harness. Un pull request pasa por cuatro etapas hasta convertirse en comentarios. 1. Contexto y asignación. Lo que recibe el modelo antes de empezar: el cambio y tus reglas. 2. Revisión especializada. El trabajo se reparte: cada agente busca una sola cosa. 3. Verificación de pruebas. El código pone a prueba lo que dice el modelo. 4. Elegir y publicar. Se publica lo que tienes que corregir.
Las cuatro etapas de diffox y la idea del harness a la que corresponde cada una. El detalle de las etapas, en nuestro artículo sobre la arquitectura.

Contexto y asignación es lo que el harness le da al modelo antes de que empiece a trabajar. Los agentes especializados reciben cuatro cosas: el diff, los archivos antes y después del cambio, la descripción del pull request y, si existe, el archivo de reglas de tu repositorio (AGENTS.md o CLAUDE.md). El archivo de reglas se lee de la rama en la que se fusionará el pull request, no de la rama del propio pull request; así, un pull request no puede cambiar las reglas de su propia revisión. Esa garantía no la da una frase de las instrucciones, sino el sitio del que se lee el archivo.

Revisión especializada es el reparto del trabajo. «¿Hay algún error aquí?» es una pregunta amplia, así que diffox pone a agentes especializados a leer el mismo cambio. El equipo tiene 17; cada uno tiene su propia instrucción y busca una sola cosa: uno, errores de lógica; otro, problemas de concurrencia; otro, tests que no ponen a prueba nada.

La forma de la salida también la fija el harness. Para que un hallazgo cuente, tiene que decir tres cosas: qué afirma, qué sale mal y en qué situación, y el código en el que se apoya, citado literalmente. Los agentes no dan números de línea; diffox encuentra la línea él mismo, buscando la cita en el archivo.

Elegir y publicar es un paso aparte. Cada hallazgo tiene una clase: Crítico, Advertencia o Sugerencia. Al pull request llega lo que tienes que corregir, es decir, los hallazgos críticos y las advertencias. Las sugerencias esperan un tiempo en la página de Hallazgos de la consola, y desde ahí puedes publicar las que quieras. La revisión nunca bloquea el merge.

Una comprobación que el modelo no puede sortear con palabras

La tercera etapa, la verificación de pruebas, es donde la idea del harness se ve con más claridad en este ejemplo. Un modelo de lenguaje puede escribir algo convincente pero falso: cita una línea que no está en el archivo, objeta código que el pull request no tocó, repite el mismo problema tres veces con tres frases distintas. Esta etapa ata cada hallazgo al propio archivo, no a la palabra del modelo.

Las comprobaciones no son una llamada a un modelo, sino código normal: la misma entrada recibe siempre la misma respuesta.

  • La cita del hallazgo se busca en el archivo. Una cita que no se encuentra no tiene línea que señalar; si la línea encontrada no está en lo que cambió el pull request, el hallazgo queda fuera de alcance.
  • Los hallazgos que hacen la misma objeción en el mismo sitio se unen en uno solo.
  • Si un hallazgo dice que el código contradice un texto, su segunda cita también se busca palabra por palabra.

El modelo no puede convencer a la comprobación de la cita: la comprobación no valora argumentos, busca la cita en el archivo.

También se puede poner a un modelo a supervisar a otro, pero el resultado sigue siendo el juicio de un modelo. Anthropic cuenta que su modelo evaluador, en las primeras pruebas, encontraba problemas reales y luego se convencía de que no eran importantes y aprobaba el trabajo. Por eso, comprobar con código lo que se puede comprobar con código es una pieza aparte; la pregunta que pide criterio se queda en manos del modelo.

En un proyecto pequeño, la misma idea cabe en unas pocas líneas. El ejemplo de abajo no es código de diffox; muestra el patrón.

# EJEMPLO: busca en el archivo la cita que dio el modelo
def quote_exists(finding: dict, files: dict[str, str]) -> bool:
    quote = finding.get("quote", "").strip()
    source = files.get(finding.get("file", ""), "")
    return bool(quote) and quote in source

El bucle que dura todo el pull request

Una revisión pasa por un harness; un pull request, en cambio, pasa por muchas revisiones. Se escribe el código, diffox lo revisa, el código cambia y se vuelve a hacer push. Lo escriba una persona o un agente de programación, esto es un bucle, y cada una de sus seis piezas tiene su equivalente en el código de diffox.

Seis piezas, a lo largo de un pull request. Cada push es una ejecución; el bucle dura hasta que se cierra el pull request. trigger Disparador: Al abrirse el pull request y en cada push. state Estado: El último commit revisado; la ronda nueva sigue desde ahí. verifier Verificador: Una revisión aparte de quien escribe el código. stop condition Condición de parada: Un límite por pull request que eliges tú. budget Presupuesto: Una ronda espera a la anterior; solo se revisa el último push. escalation Traspaso a una persona: El merge es tuyo; si mencionas a diffox, vuelve a revisar.
Los nombres de las piezas vienen de la lista de la recopilación; sus equivalentes, del código de diffox.

La lección de fondo de este bucle está en dos decisiones. La primera: el verificador no da un cambio por bueno. Cuando cambian las líneas de un hallazgo, al final del comentario solo se añade en qué commit cambiaron. No se escribe «corregido», porque el código reescrito puede seguir conteniendo el error. Un artículo de junio de 2026 pone la misma condición a la regla de parada: no confundir nunca un error con un éxito.

La segunda: la condición de parada la eliges tú. Las revisiones automáticas se detienen en un límite por pull request, que cambias en la pestaña Ajustes de la consola. Pasado el límite, pides una revisión nueva mencionando a diffox en un comentario. La decisión de hacer merge también es tuya: la revisión nunca bloquea el merge. Ese es el punto en el que el bucle le pasa el trabajo a una persona.

Cómo crece un harness a partir de los errores

Un harness no se monta una vez y se deja. Hashimoto describe dos caminos: una línea en el archivo de reglas para los errores simples y una herramienta escrita en código para el resto. Escribe que cada línea del archivo de reglas de su proyecto salió de un mal comportamiento del agente.

El artículo de OpenAI cuenta el mismo ciclo dentro de un equipo: todo el código del producto lo escribe Codex, y los ingenieros montan el entorno. Cuando al agente le cuesta algo, lo toman como una señal: buscan la herramienta, la protección o la documentación que falta y la añaden al repositorio. Cuando la documentación no basta, la regla pasa al código. El archivo de reglas se mantiene corto: un AGENTS.md de unas 100 líneas, que es un índice y no una enciclopedia.

También existe la dirección contraria. Según Anthropic, cada pieza del harness es una suposición sobre algo que el modelo no puede hacer por sí solo, y puede quedarse anticuada a medida que los modelos mejoran. Cuando llega un modelo nuevo, se vuelve a examinar el harness y se quita la pieza que ya no sostiene nada.

Mientras desarrollábamos esta herramienta, de ese ciclo salieron tres costumbres en nuestro propio repositorio:

  • Cada regla va junto al error que la motivó. Una regla sin su motivo escrito la borra el primero al que le estorba.
  • Un test es de fiar solo después de verlo ponerse en rojo al deshacer la corrección. Un test que no pone a prueba nada también sale en verde.
  • Cuando cambia una comprobación escrita en código, la versión antigua y la nueva se vuelven a ejecutar sobre los resultados guardados. No hace falta una ejecución nueva y de pago; se ve, uno por uno, cada caso en el que las dos versiones no coinciden.

Por dónde empezar en tu proyecto

Para empezar no tienes que elegir un framework ni cambiar de modelo. Dentro del agente de programación que usas ya funciona un harness; tú le añades las piezas de tu propio proyecto.

Cinco pasos, en este orden. Se empieza sin cambiar de modelo ni de framework. Anota el error que se repite: Cuando el agente comete el mismo error por segunda vez. Añade una línea al archivo de reglas: Con su motivo; que el archivo siga siendo corto. Si se repite, lleva la regla al código: Una regla de linter, un test o un pequeño script. Pon a prueba la propia comprobación: Deshaz la corrección: la comprobación debe ponerse en rojo. Con un modelo nuevo, repasa las piezas: Quita la pieza que ya no sostiene nada.
Pasos reunidos a partir de las recomendaciones de los artículos de Hashimoto, OpenAI y Anthropic, y de las costumbres de nuestro propio repositorio.

Primero mira el error y luego elige el remedio más barato. Para los errores simples, el primer remedio es una línea en el archivo de reglas. Si el error se repite a pesar de la regla, lleva la regla al código: una regla de linter, un test, un script. La recomendación general de Anthropic vale también aquí: busca la solución más simple y aumenta la complejidad solo cuando haga falta.

Al montar tu primer loop, el orden es el mismo: primero comprueba que una sola ejecución es fiable y después escribe la condición de parada y su límite. La recomendación de Anthropic es clara: parar cuando se alcanza el objetivo o al llegar al número máximo de turnos; para controlar el uso de tokens, el bucle tiene que tener límites claros.

Preguntas frecuentes

¿Qué es el harness engineering?

El harness engineering es el trabajo de diseñar y mejorar el andamiaje (harness) que rodea al modelo en un agente de IA: el bucle que llama al modelo, las herramientas, el archivo de reglas, los subagentes y las comprobaciones que ponen a prueba la salida. Mitchell Hashimoto, en un artículo del 5 de febrero de 2026, le dio ese nombre a esta costumbre: cuando el agente comete un error, se monta una solución para que no pueda volver a cometerlo.

¿Qué es el loop engineering?

El loop engineering es el trabajo de diseñar el sistema que arranca a un agente de IA, supervisa su trabajo y lo detiene, en lugar de escribirle prompts turno a turno. Addy Osmani le puso nombre en un artículo del 7 de junio de 2026. El equipo de Claude Code de Anthropic define el loop como agentes que repiten ciclos de trabajo hasta que se cumple una condición de parada.

¿Qué diferencia hay entre harness engineering y loop engineering?

El harness equipa una sola ejecución: las herramientas, el archivo de reglas, las comprobaciones. El loop gestiona muchas ejecuciones a lo largo del tiempo: cuándo arranca el agente, quién comprueba si el trabajo está terminado, cuándo se detiene y cuándo el trabajo pasa a una persona. La mayoría de las fuentes sitúan el loop un piso por encima del harness; algunos artículos, en cambio, usan la palabra para el bucle del agente dentro de una sola ejecución.

¿Qué diferencia hay entre context engineering y harness engineering?

El context engineering es el trabajo de elegir y organizar todo lo que ve el modelo en una llamada: las instrucciones, los archivos, el historial de la conversación, las definiciones de las herramientas. El harness engineering lo incluye y va un paso más allá: diseña por qué comprobación pasa la salida después de que el modelo responde, cómo se divide el trabajo y qué cambia cuando un error se repite.

¿De dónde vienen estos términos?

El context engineering se extendió en junio de 2025 con las publicaciones de Tobi Lütke y Andrej Karpathy. De las fuentes que leímos, la primera que usa el nombre harness engineering es el artículo de Mitchell Hashimoto del 5 de febrero de 2026. El nombre loop engineering lo puso Addy Osmani el 7 de junio de 2026; en julio de 2026 se propuso un sucesor con el nombre de «graph engineering». Las fuentes no definen estos términos de la misma manera.

¿Qué dicen OpenAI y Anthropic sobre estos términos?

OpenAI llama «Codex harness» a la capa que aporta el bucle del agente y la lógica de ejecución, y publicó un artículo titulado «Harness engineering»; no encontramos ninguna página de OpenAI que use el término loop engineering. Anthropic dice «harness design»; el 30 de junio de 2026 publicó un artículo titulado «Loop engineering: Getting started with loops», y la documentación de Claude Code enlaza a él.

¿diffox es un harness o un loop?

diffox es un ejemplo de las dos cosas. En una sola revisión, un pull request pasa por cuatro etapas: contexto y asignación, revisión especializada, verificación de pruebas, y elegir y publicar. A lo largo del pull request también monta un bucle: revisa en cada push, sigue desde el último commit revisado, marca el hallazgo cuyas líneas cambiaron y detiene las revisiones automáticas en el límite que tú eliges.