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

Скрипты

Скрипты — это исполняемые файлы в вашем репозитории, которые можно запустить по требованию из Pastukhov Code. Оболочечные скрипты (.sh) показывают кнопку run в редакторе файлов при открытии. При выполнении вывод потоками в реальном времени передаётся в диалог вывода скриптов, где вы можете мониторить прогресс, копировать результаты или останавливать выполняющийся скрипт.

Run button appears in the file editor when a shell script is opened

Скрипты можно запускать из двух мест — диалог файлов (файлы проекта) и диалог навыков (файлы навыков). Оба используют один и тот же редактор файлов и процесс выполнения. Скрипты отличаются от сборок и развёртываний — сборки автоматизируются наблюдателями файлов и настраиваются в build.yml, а скрипты запускаются вручную и могут быть любым исполняемым файлом в вашем репозитории.


Диалог вывода скриптов

При выполнении скрипта диалог вывода скриптов открывается автоматически, показывая:

Script Output dialog showing real-time streamed output
  • Панель заголовка — отображает путь к скрипту, имя и бейдж репозитория (project или skills)
  • Таймер выполнения — показывает прошедшее время while the script runs, and final duration on completion
  • Индикатор состояния — вращающийся значок во время выполнения (кликабельный для остановки), зелёная галочка при успехе или состояние ошибки при неудаче
  • Область вывода — прокручиваемый предварительно форматированный текст, показывающий вывод скрипта в реальном времени
  • Кнопка копирования — копирует полный вывод в буфер обмена (отключена во время выполнения скрипта)

Область вывода подсвечивает строки цветовым кодированием:

  • Красный — строки ошибок (сопоставлены по правилам в .pastukhov/output.parser или встроенным шаблонам)
  • Оранжевый — строки предупреждений
  • По умолчанию — нормальный вывод

Как выполняются скрипты

Скрипты проходят через этот процесс:

  1. Путь к скрипту разрешается в полный путь к файлу в репозитории (project или skills)
  2. Файл делается исполняемым (chmod +x в Unix-системах)
  3. Запускается процесс bash с /bin/bash scriptPath
  4. Вывод (stdout и stderr) захватывается асинхронно и буферизуется для предотвращения перегрузки
  5. Буферизованный вывод передаётся в браузер через SignalR каждые 100мс
  6. Когда процесс завершается, отправляется сообщение о завершении и таймер останавливается

Рабочий каталог для выполнения скриптов — корень проекта. Переменные окружения PYTHONIOENCODING=utf-8 и LANG=en_US.UTF-8 устанавливаются автоматически.


Остановка скрипта

Чтобы остановить выполняющийся скрипт, нажмите на вращающийся значок остановки в заголовке диалога. Сервер убивает всё дерево процессов (включая дочерние процессы), сбрасывает любой буферизованный вывод и отправляет сообщение “Скрипт остановлен пользователем”.

Stop button in the Script Output dialog header to terminate a running script

Закрытие диалога также автоматически останавливает скрипт — это предотвращает продолжение выполнения скриптов в фоновом режиме, если вы случайно уходите или закрываете окно вывода.


Парсинг вывода

Вывод скриптов автоматически парсится для подсветки ошибок и предупреждений. Правила парсинга определены в .pastukhov/output.parser — нет необходимости редактировать этот файл вручную. Простейший способ исправить шаблоны парсера: выберите необработанный текст в выводе и нажмите плавающую кнопку Fix parser для отправки его ИИ. См. .pastukhov/README.md для справки по формату файла парсера.

[ERROR]
Error:\s+(.*)
[/ERROR]

[WARNING]
Warning:\s+(.*)
[/WARNING]

Встроенные шаблоны обнаружения охватывают распространённые форматы ошибок без какой-либо конфигурации:

  • Ошибки оболочки: “command not found”, “Permission denied”, “Segmentation fault”
  • Python: Tracebacks, SyntaxError, ModuleNotFoundError, ImportError
  • Node.js: Error:, TypeError, npm ERR!
  • .NET: Build errors, exceptions
  • HTTP: Status codes 4xx/5xx, connection refused, timeouts

Поддерживаемые репозитории

Скрипты могут быть выполнены из двух репозиториев:

  • Project — основной репозиторий рабочего пространства проекта
  • Skills — каталог навыков Claude (.claude/skills)

Репозиторий отображается как бейдж в заголовке диалога, поэтому вы всегда знаете, в каком контексте выполняется скрипт.


Скрипты против сборок

Скрипты и сборки служат разным целям в Pastukhov Code:

  • Скрипты — запускаются по требованию, любой исполняемый файл, вывод в реальном времени через SignalR, интерактивная возможность остановки. Файл конфигурации не требуется.
  • Сборки — запускаются автоматически при изменении файлов, настроены в .pastukhov/build.yml, вывод кэшируется в файлы, могут запускать развёртывания при завершении. См. Build & Deploy для подробностей.

Используйте скрипты для специальных задач, таких как запуск тестов, миграция данных или разовые операции. Используйте сборки для непрерывной компиляции и автоматизированных рабочих процессов.