Технологии извлечения и анализа данных

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

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

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 завершена без ошибок или предупреждений. Даже если промпт-сборка использует autofix, она будет выполняться только после того, как командные сборки автоматически исправлены, чтобы гарантировать чистое состояние для ИИ-ревью. Заполнитель {chat} разрешается в путь транскрипции запускающего чата пользователя, предоставляя субагенту доступ к полному контексту разговора. Заполнитель {buildName} также доступен в поле chatTitle для динамических заголовков.


Архитектура с убчатом

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

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

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


Парсинг вывода и интеграция с AutoFix

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

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

  • Установите autofix: always, чтобы AutoFix передавал ошибки субагента обратно в основной чат для исправления
  • Установите autofix: errors, чтобы запускать AutoFix только тогда, когда субагент сообщает об ошибках (не предупреждениях)
  • Установите 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-инъекций, небезопасные зависимости и другие уязвимости, которые автоматизированные инструменты могут не обнаружить
  • Генерация и валидация тестов — Промпт-сборка, которая пишет и запускает тесты, предоставляет сигнал валидации, который не может сравниться ни один инструмент статического анализа. Если субагент генерирует тесты и они не проходят, AutoFix передает неудачи обратно для исправления кода
  • Цепочка с командными сборками — Промпт-сборка, следящая за командной сборкой, создает двухэтапный конвейер: командная сборка ловит статические ошибки, а промпт-сборка ловит семантические ошибки. Сначала настройте командную сборку в порядке зависимостей
  • Держите контекст субагента сфокусированным — Загружайте только соответствующий навык и ссылайтесь на транскрипт. Не загружайте навыки, которые добавляют несвязанный контекст — это разбавляет внимание субагента и производит менее полезный вывод валидации
  • Ручные промпт-сборки — Удалите триггер watch и установите autofix: never, чтобы отключить автоматический запуск и интеграцию AutoFix. Сборка остается видимой на панели сборки, где вы можете запустить ее вручную как валидатор одним щелчком — идеально для действительно тяжелых задач, таких как аудиты безопасности на уровне проекта, которые вы запускаете по требованию после крупномасштабных обновлений проекта, а не при каждом завершении чата

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