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.pycalcula la coincidencia. - Evaluación de propuestas en una escala.
Si la pregunta es solo una o dos, pregúntalo en el chat.
Ciclo
- 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 unsidecar.jsonaparte, no deben estar en spec.json. - Página.
python3 $SKILL/scripts/build.py spec.json -o page.htmlgenera y abre la página. Coloca spec y página junto al proyecto (por ejemplo, enprivate/), 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. - 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ásdecisionygeneral_comment. - El agente aplica las respuestas según el campo
taskdel JSON e informa: qué cambió, qué queda pendiente. Sidecisionestá 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 ejecutapython3 $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.