Human in the Loop (Человек в цикле) 是做什么的?
Слой одноразовых интерфейсов между владельцем и агентом. Агент описывает, что владельцу нужно посмотреть и решить, скрипт собирает автономную HTML-страницу, владелец отвечает в браузере в любом порядке и возвращает JSON. Страницу не пишут руками: только spec.json и scripts/build.py.
$SKILL ниже означает папку этого файла.
Когда брать
- Документ на утверждение: спека, PRD, КП, план. Статус по разделам, правка текста на месте, ответы на открытые вопросы.
- Выбор из вариантов по нескольким вопросам сразу, у каждого вопроса варианты агента и свой ответ.
- Разметка эталона вслепую: владелец отвечает, ответы модели лежат в отдельном файле и на страницу не попадают, потом
score.pyсчитает совпадение. - Оценка предложений по шкале.
Если вопрос один или два, спрашивай в чате.
Цикл
- Spec. Собери
spec.json(формат:references/spec-format.md). Для Markdown-документа есть заготовка:python3 $SKILL/scripts/from_markdown.py doc.md --options options.json -o spec.json(разделы##и###становятся блоками с правкой, раздел «Открытые вопросы» становится вопросами с вариантами из options.json). Для слепой разметки скрытые ответы клади в отдельныйsidecar.json, в spec.json их быть не должно. - Страница.
python3 $SKILL/scripts/build.py spec.json -o page.htmlсобирает и открывает страницу. Клади spec и страницу рядом с проектом (например вprivate/), не в scratchpad, чтобы владелец мог вернуться. Скажи владельцу одной строкой, что открыто и что от него нужно. - Владелец отвечает и вставляет в чат JSON (кнопка «Скопировать JSON для агента»). В JSON только то, что он тронул:
status,comment,markdown_old/markdown_new,answers,notes, плюсdecisionиgeneral_comment. - Агент применяет ответы по полю
taskиз JSON и отчитывается: что изменил, что осталось. Пустойdecisionпри наличии кнопок решения значит, что решение не принято: переспроси, не считай документ утвержденным. Для разметки: сохрани JSON и запустиpython3 $SKILL/scripts/score.py labels.json sidecar.json --spec spec.json. Расхождения покажи владельцу списком, ошибки разметки не исправляй сам.
Если spec изменился, страница пересобирается с новой версией, старые ответы в браузере к ней не применяются.
Проверка
python3 $SKILL/tests/selftest.py [папка] собирает оба примера из examples/, проходит их в headless Chromium и проверяет выгрузки. Запускай после любой правки шаблона или скриптов.