Промпт-сборки

Промпт-сборки — это самый продвинутый механизм проверки в Pastukhov Agent. В отличие от сборок на основе команд, которые запускают фиксированные команды оболочки, промпт-сборки создают отдельного агента ИИ для проверки вашей кодовой базы. Рассуждения агента происходят в изолированном чате подагента, сохраняя основную беседу чистой. Вывод подагента затем анализируется на ошибки и предупреждения, используя ту же инфраструктуру парсера — и эти ошибки могут передаваться в Автоисправление, как и любая другая сборка.

Auto-validation of project file updates

Как работают промпт-сборки

Промпт-сборка использует поле prompt вместо command в build.yml. При запуске она создает новую сессию чата, отправляет промпт как первое сообщение и мониторит ответ ИИ:

build:
  ai-review:
    watch: chat                                    # Trigger when user chat completes
    prompt: "/verify Review the recent code changes. Read the chat transcript at {chat} and report any problems."
    chatTitle: "Code Review"
    delay: 5
    timeout: 120
    display: always
    autofix: always

Триггер watch: chat срабатывает, когда сессия чата пользователя завершена, очередь сообщений пользователя пуста, а очередь Автоисправление завершена без ошибок или предупреждений. Даже если промпт-сборка использует autofix, она будет выполняться только после того, как командные сборки автоматически исправлены, чтобы гарантировать чистое состояние для ИИ-ревью. Заполнитель {chat} разрешается в путь транскрипции запускающего чата пользователя, предоставляя подагенту доступ к полному контексту разговора. Заполнитель {buildName} также доступен в поле chatTitle для динамических заголовков.


Архитектура с чатом подагента

Промпт-сборки создают отдельный экземпляр чата с собственным окном контекста:

  • Изолированный контекст — Рассуждения подагента и вызовы инструментов происходят в их собственной сессии чата. Они не потребляют токены из или загрязняют контекст основной беседы
  • Отслеживание родительского чата — Каждый чат подагента записывает ParentChatId, связывая его с исходным чатом пользователя. Это создает прослеживаемую цепочку, видимую на панели аналитики
  • Генерация заголовка — Поле chatTitle устанавливает заголовок с чата подагента. Если опущено, по умолчанию используется имя сборки. Заполнитель {buildName} разрешается в фактический ключ конфигурации сборки
  • Извлечение вывода — Когда подагент завершает обработку, система извлекает последнее сообщение ассистента как вывод сборки. Если настроен outputFile, система читает из этого файла вместо этого — вы можете поручить своему агенту записать свои окончательные результаты в файл, чтобы сделать это более надежным и отлаживаемым

Подагент работает в течение настроенного timeout (в секундах). Если он превышает тайм-аут, сборка отменяется. Состояние обработки мониторится через менеджер экземпляров Claude Code — когда isProcessing становится ложным для чата сборки, вывод извлекается и анализируется.


Парсинг вывода и интеграция с Автоисправление

Вывод подагента парсится с использованием той же инфраструктуры .pastukhov/build.parser, что и командные сборки. Это означает, что любые паттерны, определенные для ваших инструментов сборки, также работают для проверки на основе промптов. Если ответ подагента содержит текст, соответствующий паттернам [ERROR] или [WARNING], он извлекается как структурированные ошибки.

Промпт-сборки участвуют в Автоисправление, как и командные сборки:

  • Установите autofix: always, чтобы Автоисправление передавал ошибки подагента обратно в основной чат для исправления
  • Установите autofix: errors, чтобы запускать Автоисправление только тогда, когда подагент сообщает об ошибках (не предупреждениях)
  • Установите autofix: never, если промпт-сборка только информационная — вы хотите видеть анализ подагента на панели сборки, но не хотите, чтобы он запускал исправления

Вывод сборки хранится в .pastukhov/build/ с использованием того же трехфайлового формата: {build-name}.output.txt, {build-name}.errors.txt и {build-name}.warnings.txt.


Конфигурация промпт-сборок

Промпт-сборки поддерживают те же поля конфигурации, что и командные сборки, с prompt, заменяющим command:

build:
  security-audit:
    watch: chat
    prompt: "/verify Run a security audit on the codebase. Check for hardcoded secrets, SQL injection vulnerabilities, and insecure dependencies. Read the transcript at {chat} for context about recent changes."
    chatTitle: "Security Audit"
    delay: 10
    timeout: 300
    display: errors
    autofix: errors

  test-generation:
    watch: chat
    prompt: "/verify Write tests for the code changes described in the chat transcript at {chat}. Run the tests and report any failures."
    chatTitle: "Test Generation"
    delay: 5
    timeout: 180
    display: always
    autofix: always

Написание эффективных промптов проверки

  • Загрузите навык — Добавьте промпт с start with loading skill-name skill (более эффективно, чем синтаксис /skill-name), чтобы загрузить контекст, специфичный для проекта, в подагента. Навык проверки кода загружает стандарты кодирования, по которым подагент может проверять
  • Ссылайтесь на транскрипт — Используйте {chat}, чтобы предоставить подагенту доступ к полному разговору. Без этого подагент знает только то, что вы явно описываете в промпте
  • Будьте конкретны в том, что проверять — «Проверьте наличие проблем» — расплывчато. «Проверьте исключения null reference, отсутствующую обработку ошибок и неправильные асинхронные паттерны» дает подагенту конкретные критерии
  • Укажите формат вывода — Если вы хотите, чтобы вывод был анализируемым, укажите подагенту форматировать ошибки таким образом, который соответствует вашим паттернам парсера сборки. Лучшее место для объяснения этого — навык, так как это делает вашего подагента версионным и повторно используемым

Комбинации триггеров

Как и командные сборки, каждая промпт-сборка следит ровно за одним типом события — масками файлов, именами родительских сборок или chat. Триггер chat доступен для всех типов сборок, не только для промпт-сборок. Если вам нужна одна промпт-сборка, которая активируется на нескольких событиях, используйте схему родитель-потомок, описанную в руководстве Проверка автоматической сборки — создайте несколько легковесных родительских сборок, каждая из которых следит за одним типом события, затем пусть промпт-сборка следит за всеми ними. Установите display: never на родительских сборках, чтобы скрыть их с панели сборки.


Эффективные паттерны проверки

  • Проверка кода после каждой сессии — Промпт-сборка с watch: chat автоматически проверяет работу ИИ после каждой беседы. Подагент ловит проблемы, которые пропускают компиляторы и линтеры — архитектурные проблемы, логические ошибки и нарушения соглашений проекта
  • Аудит безопасности — Специализированная промпт-сборка безопасности проверяет секреты в коде, паттерны SQL-инъекций, небезопасные зависимости и другие уязвимости, которые автоматизированные инструменты могут не обнаружить
  • Генерация и проверка тестов — Промпт-сборка, которая пишет и запускает тесты, предоставляет сигнал проверки, который не может сравниться ни один инструмент статического анализа. Если подагент генерирует тесты и они не проходят, Автоисправление передает неудачи обратно для исправления кода
  • Цепочка с командными сборками — Промпт-сборка, следящая за командной сборкой, создает двухэтапный конвейер: командная сборка ловит статические ошибки, а промпт-сборка ловит семантические ошибки. Сначала настройте командную сборку в порядке зависимостей
  • Держите контекст подагента сфокусированным — Загружайте только соответствующий навык и ссылайтесь на транскрипт. Не загружайте навыки, которые добавляют несвязанный контекст — это разбавляет внимание подагента и производит менее полезный вывод проверки
  • Ручные промпт-сборки — Удалите триггер watch и установите autofix: never, чтобы отключить автоматический запуск и интеграцию Автоисправление. Сборка остается видимой на панели сборки, где вы можете запустить ее вручную как проверку одним щелчком — идеально для действительно тяжелых задач, таких как аудиты безопасности на уровне проекта, которые вы запускаете по требованию после крупномасштабных обновлений проекта, а не при каждом завершении чата

Полный справочник по системе сборки см. в Сборка и развертывание. Для автоматической обратной связи об ошибках см. Автоисправление. Для управления контекстом подагента см. Аналитика и наблюдаемость.