CommunityProgramación y desarrollogithub.com

human-in-the-loop

Interfaz desechable en el navegador para que el propietario proporcione comentarios al agente: aprobar y corregir un documento por secciones, responder preguntas abiertas con opciones predefinidas, etiquetar materiales a ciegas para la referencia o evaluar propuestas en una escala. La página se genera con un script a partir de spec.json, el propietario presiona «Copiar JSON para el agente» y el agente aplica las respuestas. Úsalo cuando el propietario deba revisar, editar, elegir o etiquetar más de unos pocos elementos, en lugar de un largo cuestionario en el chat. Disparadores: «dame la interfaz».

¿Qué es human-in-the-loop?

Este skill proporciona un sistema de interfaces desechables de una sola página entre el propietario del proyecto y un agente de IA. Permite al agente describir tareas que requieren la revisión o decisión del propietario, y luego generar automáticamente una página HTML autónoma donde el propietario puede responder en cualquier orden y devolver un JSON estructurado. Está diseñado para casos de uso como aprobación de documentos, selección entre variantes, etiquetado ciego para referencias (donde las respuestas del modelo se almacenan aparte para una comparación posterior) y evaluación por escala. El skill soporta las plataformas comunes de agentes (Claude Code, Cursor, Codex, etc.) ya que su especificación es simple (spec.json) y el script de construcción es un script Python independiente. El ciclo de trabajo consiste en: (1) construir un spec.json (con ayuda de from_markdown.py para documentos Markdown), (2) generar la página con build.py, (3) el propietario interactúa y pega el JSON resultante, y (4) el agente aplica los cambios o ejecuta score.py para evaluar etiquetados ciegos. La página se regenera si el spec cambia, y las respuestas antiguas no se aplican automáticamente a la nueva versión. Incluye pruebas automatizadas con selftest.py.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vasilievyakov/human-in-the-loop/tree/HEAD/skills/human-in-the-loop

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

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

Documentación

Human in the Loop

Capa de interfaces desechables entre el propietario y el agente. El agente describe lo que el propietario necesita ver y decidir, el script genera una página HTML autónoma, el propietario responde en el navegador en cualquier orden y devuelve un JSON. La página no se escribe a mano: solo spec.json y scripts/build.py.

$SKILL a continuación indica la carpeta de este archivo.

Cuándo usarlo

  • Documento para aprobación: especificación, PRD, propuesta comercial, plan. Estado por secciones, edición de texto en el lugar, respuestas a preguntas abiertas.
  • Selección entre variantes para varias preguntas a la vez, cada pregunta con opciones del agente y respuesta propia.
  • Etiquetado a ciegas para referencia: el propietario responde, las respuestas del modelo están en un archivo aparte y no aparecen en la página, luego score.py calcula la coincidencia.
  • Evaluación de propuestas en una escala.

Si la pregunta es solo una o dos, pregúntalo en el chat.

Ciclo

  1. Spec. Crea spec.json (formato: references/spec-format.md). Para un documento Markdown existe una plantilla: python3 $SKILL/scripts/from_markdown.py doc.md --options options.json -o spec.json (las secciones ## y ### se convierten en bloques editables, la sección «Preguntas abiertas» se convierte en preguntas con opciones de options.json). Para etiquetado a ciegas, coloca las respuestas ocultas en un sidecar.json aparte, no deben estar en spec.json.
  2. Página. python3 $SKILL/scripts/build.py spec.json -o page.html genera y abre la página. Coloca spec y página junto al proyecto (por ejemplo, en private/), no en scratchpad, para que el propietario pueda volver. Dile al propietario en una línea qué se ha abierto y qué se necesita de él.
  3. El propietario responde e inserta el JSON en el chat (botón «Copiar JSON para el agente»). En el JSON solo lo que él ha tocado: status, comment, markdown_old/markdown_new, answers, notes, más decision y general_comment.
  4. El agente aplica las respuestas según el campo task del JSON e informa: qué cambió, qué queda pendiente. Si decision está vacío y hay botones de decisión, significa que no se ha tomado una decisión: vuelve a preguntar, no des el documento por aprobado. Para etiquetado: guarda el JSON y ejecuta python3 $SKILL/scripts/score.py labels.json sidecar.json --spec spec.json. Muestra las discrepancias al propietario en una lista; no corrijas los errores de etiquetado tú mismo.

Si el spec cambia, la página se regenera con la nueva versión; las respuestas antiguas en el navegador no se aplican a la nueva.

Pruebas

python3 $SKILL/tests/selftest.py [carpeta] genera ambos ejemplos de examples/, los ejecuta en Chromium sin interfaz y verifica las descargas. Ejecútalo después de cualquier modificación en la plantilla o los scripts.

Skills relacionados