Communitygithub.com

Tailr — el bucle de revisión

Marca e itera tus proyectos en vivo con tu agente.

¿Qué es Tailr — el bucle de revisión?

Tailr es una habilidad para agentes de IA que establece un bucle de revisión visual en vivo entre un revisor humano y el agente. El revisor puede marcar elementos directamente en el navegador sobre el servidor de desarrollo en ejecución, añadiendo comentarios o instrucciones de cambio. El agente recibe todas las marcas como un lote, las aplica una por una informando el progreso, y cierra la tanda al finalizar. Está diseñado para plataformas como Claude Code, Cursor y Codex, y proporciona tanto comandos CLI como herramientas MCP (tailr_status, tailr_wait, tailr_pull, tailr_progress, tailr_done, tailr_fail) para integrarse sin necesidad de modificar el repositorio del proyecto. Al separar la marcación visual de la implementación, Tailr agiliza la iteración y evita ambigüedades en la comunicación de cambios.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add gcrft123/tailr

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace Tailr — el bucle de revisión?

Tailr permite que la persona con la que trabajas marque su servidor de desarrollo en el navegador — haz clic en un elemento, di qué está mal — y te entregue todas las marcas a la vez como un lote. Tú aplicas el lote e informas cada marca a medida que se aplica.

Las reglas a continuación son todo el protocolo. Son las mismas reglas que tailr init escribe en el AGENTS.md / CLAUDE.md de un proyecto; este plugin las incorpora en su lugar, por lo que no es necesario editar nada en el repositorio del usuario.

Tailr — marcado visual del revisor

El revisor marca la aplicación en ejecución en el navegador y te entrega los cambios como un solo lote. Una sesión está activa cuando existe .tailr/session.json; si no existe, inicia una como proceso en segundo plano de larga duración — debe permanecer activa, así que no bloquees tu turno esperándola:

npx tailr --target http://localhost:<puerto del servidor de desarrollo>

Esto imprime una URL de revisión (normalmente http://localhost:4100). Indica al revisor que use esa URL, no el puerto original. Tailr actúa como proxy de la aplicación e inyecta su superposición; el código fuente no se modifica.

El bucle es wait → pull → progress por cada marca → done o fail.

ComandoHerramienta MCP
npx tailr statustailr_status¿hay un lote esperando? salida 0 sí · 3 sesión activa, nada esperando · 2 sin sesión
npx tailr waittailr_waitbloquear hasta que se presione Enviar; salida 0 hay un lote esperando · 3 tiempo agotado, reinícialo · 2 sesión terminada
npx tailr pulltailr_pulltoma el lote, impreso como JSON
npx tailr progress <ref>tailr_progressinforma que una marca se ha aplicado
npx tailr donetailr_donela ejecución finalizó
npx tailr fail "razón"tailr_faildevolvió incompleto

Cada marca lleva un ref ("01"), un type, la route donde se hizo, una dirección de fuente address de mejor esfuerzo, un selector CSS, el texto del elemento y el comment del revisor.

  • comment — cambia ese elemento según lo descrito
  • remove — elimina ese elemento
  • text — lleva before/after; cambia el texto a after
  • point — lleva las coordenadas de página x/y en lugar de un elemento. El revisor marcó un lugar, no una cosa: puede querer algo nuevo allí, o simplemente estar señalando el punto. Su comentario indica cuál.

Reglas que importan

  • Ejecuta wait como un proceso en segundo plano de larga duración y trata su salida como la notificación. Nunca le pidas al revisor que te diga que ha llegado un lote, y nunca hagas polling para obtener uno. Vuelve a iniciarlo después de cada ejecución que cierres.
  • Informa cada marca con progress a medida que la aplicas, no todas al final. El revisor las ve desaparecer en pantalla; agruparlas hace que parezca que no está pasando nada.
  • Siempre cierra la ejecución con done o fail. Hasta que lo hagas, el revisor no puede enviar otro lote. Si encuentras algo que no puedes hacer, llama a fail con lo que realmente salió mal — Tailr no inventará una explicación, te redirige de vuelta a ti.
  • Cuando la dirección de fuente y el selector no coincidan, confía en la dirección de fuente.
  • Una marca con "orphaned": true perdió su elemento antes de ser enviada. No adivines lo que se quería decir — consúltalo con el revisor.
  • Si una marca es ambigua, pregunta en lugar de elegir una interpretación.
  • Ejecuta estos comandos desde el directorio del proyecto; así es como Tailr encuentra la sesión.

Ejecutar los comandos desde este plugin

Este plugin registra el servidor MCP de Tailr, por lo que tailr_status, tailr_wait, tailr_pull, tailr_progress, tailr_done y tailr_fail están disponibles directamente. Prefiérelos a la CLI: siempre están presentes, mientras que el comodín npx tailr solo se resuelve en un proyecto que tenga Tailr instalado.

Cuando recurras a la CLI, usa el nombre completo del paquete para que funcione en un proyecto que no haya instalado nada:

npx -y @gcrft123/tailr <comando>

Iniciar una sesión es el único paso sin herramienta MCP, porque la sesión es el servidor con el que hablan esas herramientas. Iníciala como un proceso en segundo plano de larga duración — tiene que mantenerse activa, así que no bloquees tu turno esperándola:

npx -y @gcrft123/tailr --target http://localhost:<puerto del servidor de desarrollo>

Si el proyecto tiene Tailr como dependencia, el simple npx tailr es equivalente y más corto.

Skills relacionados